本发明涉及软件测试技术领域,尤其涉及一种软件测试方法及系统。
背景技术:
医学图像三维重建技术已被广泛应用于医院的医疗系统中,例如,医学影像三维重建系统。通过医学影像三维重建系统可以对ct(computedtomography、计算机体层摄影)、mr(magneticresonanceimaging,核磁共振成像)等扫描人体后生成的图像进行三维建模,得到三维模型,便于医生对人体内部结构进行观察与分析。
医生对三维模型进行观察与分析时,往往会进行浏览、旋转、放大、标注信息等操作,而医学影像三维重建系统在响应医生的操作时,往往需要一定的响应时间。为了缩短医生对病人病情诊断的时间,就需要医学影像三维重建系统能够缩短为医生提供模型的时间。
现有技术中,用户在对医学影像三维重建系统的响应时间等进行测试时,通常使用人工测试的方式来完成,由于人工测试无法保证每次测试过程中的测试环境和测试操作动作的一致性,因此人工测试需要耗费大量的时间以降低误差率,导致测试效率较低。
技术实现要素:
本发明实施例提供一种软件测试方法及系统,可以按照相同测试动作组对系统进行测试,减小误差率,提高了测试效率。
本发明实施例提供一种软件测试方法,包括:
根据相同测试动作组在指定测试环境内进行至少两次测试,生成相应的单次测试结果;
根据所有单次测试结果进行计算,输出测试结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述根据相同测试动作组在指定测试环境内进行至少两次测试,生成相应的单次测试结果包括:
在使用相同测试动作组在指定测试环境内的每次测试过程中,利用预设控件采集测试数据;
根据采集到的测试数据生成每次测试对应的日志;
分别从每次测试的日志提取每次测试各自对应的时间信息;
对所述时间信息进行处理,得到每次测试结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述方法还包括:
将生成的日志统一存储在为所述控件配置的存储位置,所述将生成的日志统一存储在为所述控件配置的存储位置发生在所述分别从每次测试的日志提取每次测试各自对应的时间信息之前,或者之后。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,在根据相同测试动作组在指定测试环境内进行至少两次测试,生成相应的单次测试结果之前,所述方法还包括:
加载所述指定测试环境;
采集用户在所述指定测试环境内录入的所有测试动作;
将已录入的所有测试动作确定为所述测试动作组。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,对所述时间信息进行处理,得到每次测试结果,包括:
当所述时间信息表示单张图像渲染时间时,根据所述时间信息,计算单张图像的平均渲染时间;或者,
当所述时间信息表示每个测试动作的触发时间和响应时间时,根据所述时间信息,计算单次测试动作的处理时长。
本发明实施例还提供一种软件测试系统,包括:
测试单元,用于根据相同测试动作组在指定测试环境内进行至少两次测试,生成相应的单次测试结果;
输出单元,用于根据所有单次测试结果进行计算,输出测试结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述测试单元具体用于:
在使用相同测试动作组在指定测试环境内的每次测试过程中,利用预设控件采集测试数据;
根据采集到的测试数据生成每次测试对应的日志;
分别从每次测试的日志提取每次测试各自对应的时间信息;
对所述时间信息进行处理,得到每次测试结果。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述系统还包括:
存储单元,用于将生成的日志统一存储在为所述控件配置的存储位置。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述系统还包括:
加载单元,用于加载所述指定测试环境;
采集单元,用于采集用户在所述指定测试环境内录入的所有测试动作;
确定单元,用于将已录入的所有测试动作确定为所述测试动作组。
如上所述的方面和任一可能的实现方式,进一步提供一种实现方式,所述测试单元具体用于:
当所述时间信息表示单张图像渲染时间时,根据所述时间信息,计算单张图像的平均渲染时间;或者,
当所述时间信息表示每个测试动作的触发时间和响应时间时,根据所述时间信息,计算单次测试动作的处理时长。
本发明实施例提供的软件测试方法及系统,通过在每次测试中均使用相同测试动作组进行测试,可以保障每次测试时使用相同测试动作,进而避免由于每次测试时不能保障相同测试动作而产生的误差率,减少了对误差率进行调整的时间,并且,使用相同测试动作得到的相应的单次测试结果,再根据所有单次测试结果进行计算,输出测试结果,也可以保障在指定测试环境中进行测试的准确性,进而整体上缩短了测试的时间,提高了测试效率,解决了现有技术中由于人工测试无法保证每次测试过程中的测试环境和测试操作动作的一致性,因此人工测试需要耗费大量的时间以降低误差率,导致测试效率较低的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软件测试方法实施例的流程图;
图2为本发明实施例提供的软件测试方法实施例的另一流程图;
图3为本发明实施例提供的软件测试方法实施例的另一流程图;
图4为本发明实施例提供的软件测试方法实施例的另一流程图;
图5为本发明实施例提供的软件测试系统实施例的结构示意图;
图6为本发明实施例提供的软件测试系统实施例的另一结构示意图;
图7为本发明实施例提供的软件测试系统实施例的另一结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
图1为本发明实施例提供的软件测试方法实施例的流程图,如图1所示,本发明实施例的软件测试方法,具体可以包括如下步骤:
101、根据相同测试动作组在指定测试环境内进行至少两次测试,生成相应的单次测试结果。
软件或者系统在编写完成后,需要进行性能确认测试或者性能提升测试,以确定该软件或者系统的性能是否可以达到预期的结果,例如,测试a系统的某个功能的响应时间是否小于5秒钟。当测试的结果表明该软件或者系统的性能达到预期的结果,则说明该软件或者系统通过测试,当测试的结果表明该软件或者系统的性能不能达到预期的结果,则说明该软件或者系统需要进行修改。
因此,为了能够缩短测试时间,本发明实施例所提供的方式可以通过在指定测试环境内使用相同测试动作组进行测试,以减少测试过程中因人工完成测试动作或设定测试环境而带来的误差,而避免产生误差,由此可以节约由于调整人工误差而浪费的时间。在本发明实施例中,每次测试使用相同测试动作,均可以生成相应的单次测试结果,多次测试就会生成多个相应的单次测试结果。
可以理解的是,由于系统或者软件是由机器运行的,在不同的测试过程中机器响应时间也可能会有所不同,因此,为了避免测试结果的偶然性,在本发明实施例中可以进行至少两次测试,通过对比至少两次的单次测试结果,或者对所有的单次测试结果进行计算,获得最终的测试结果。
102、根据所有单次测试结果进行计算,输出测试结果。
在本发明实施例中,为了能够提高测试结果的准确性,可以对所有的单次测试结果均进行计算,例如,当单次测试结果中包含有时间值时,可以对所有的单次测试结果中的时间值取平均值,又例如,当单次测试结果中包含有指定测试结果时,可以对所有的单次测试结果中出现指定测试结果的数量进行统计。
输出的测试结果可以显示在指定位置处,例如,终端的显示装置中。也可以存储在指定存储位置中,例如,某个文件夹内。
在一个具体的实现过程中,测试结果的记录或表达形式可以是表格、文档、图标等。
需要说明的是,在本发明实施例中,测试动作组中可以包含有至少2个动作,动作可以是用户在测试环境内的操作,例如,点击、拖拽、旋转、平移、去骨、裁剪、探针等。测试环境可以是某个具体的场景,例如,某个软件的页面,或对指定图像进行处理等。
本发明实施例提供的软件测试方法,通过在每次测试中均使用相同测试动作组进行测试,可以保障每次测试时使用相同测试动作,进而避免由于每次测试时不能保障相同测试动作而产生的误差率,减少了对误差率进行调整的时间,并且,使用相同测试动作得到的相应的单次测试结果,再根据所有单次测试结果进行计算,输出测试结果,也可以保障在指定测试环境中进行测试的准确性,进而整体上缩短了测试的时间,提高了测试效率。
在本发明实施例中,为了体现实际用户的操作行为,测试过程中使用的测试动作组所包含的各个动作需要根据用户操作行为预先录入,具体的,图2为本发明实施例提供的软件测试方法实施例的另一流程图,如图2所示,本发明实施例的软件测试方法,在前述内容的基础上,还可以包括如下步骤:
103、加载指定测试环境。
可以理解的是,指定测试环境可以由用户来决定或设备默认选择,当用户准备对某个软件或者系统进行测试时,首选要选择打开相应的测试环境,机器相应用户的动作,加载用户选取的指定测试环境。例如,用户想要测试a软件中,某个按钮的功能,则机器根据用户的选择,显示包含有该按钮的页面。
104、采集用户在指定测试环境内录入的所有测试动作。
所有测试动作可以理解为至少一种测试动作,例如,当用户的测试动作为拖拽图片的位置,图片可以是一个矩形,则采集该测试动作时需要采集用户的鼠标在位置a时,图片中某个角的顶点的第一坐标,以及,采集用户的鼠标在位置b时,图片中某个角的顶点的第二坐标,以及用户的鼠标从位置a移动到位置b时使用的时长以及速度,由此可知用户的一个测试动作为从图片选择一个矩形区域,一个顶点为a,对角顶点为b,对角线长度为速度与时长之积。
在本发明实施例中,采集用户在指定测试环境内录入的测试动作的过程可以使用第三方软件来完成,例如,autoit。使用第三方软件录入的测试动作可以生成一个.exe文件,以利于当开始进行测试时,可以直接调取相应的.exe文件。
105、将已录入的所有测试动作确定为测试动作组。
在本发明实施例中,用户每完成一次录入测试动作,就可以将录入的测试动作添加至测试动作组中。或者,用户在完成多次录入测试动作后,将所有的测试动作添加至测试动作组中。
另外,补充说明的是,测试动作组的动作随时进行调整、新增和删除。
前述内容可以用于在测试开始之前来完成,使得用户可以录入一次测试动作组就可以完成所有的测试或者部分测试,在每一次进行测试时,都可以直接调取测试动作组中的测试动作,节约了人工成本,进一步的缩短了测试时间,提高测试效率。
当本发明实施例中的软件测试方法应用到具体场景中时,例如,三维影像系统中时,步骤101还可以具体为下述内容,具体地,图3为本发明实施例提供的软件测试方法实施例的另一流程图,如图3所示,具体可以包括如下步骤:
101a、在使用相同测试动作组在指定测试环境内的每次测试过程中,利用预设控件采集测试数据。
在本发明实施例中,为了便于进行统计以及计算,可以预先设置一个控件,并为该控件设计采集测试数据的功能,在本发明实施例中,测试数据可以是测试过程中生成的日志,还可以其他格式或类型数据文件。例如,在某个测试页面内设置一个控件,控件的属性可以设置为隐藏,例如该控件来采集测试过程中生成的日志。
101b、根据采集到的测试数据生成每次测试对应的日志。
测试环境中可以包含不同的页面内或者不同的数据来源,往往日志的格式会不同,因此当采集到的测试数据为日志时,可以对采集到的日志进行整理或者截取,生成每次测试对应的日志,可以理解的是,每次测试对应的日志的格式以及内容既可以与控件采集到的相同,也可以不同。
101c、分别从每次测试的日志提取每次测试各自对应的时间信息。
在本发明实施例中,三维影像系统着重与对三维影响的构建,构建过程中会涉及到不同的步骤,例如,发送指令、接收指令、渲染、反馈、推送、显示等步骤。每个步骤都对应各自的时间信息,时间信息可以包括时刻和时长。因此,在本发明实施例中,为了便于计算,需要分别从每次测试的日志中提取每次测试各自对应的时间信息,可以理解的是,时间信息的数量等于或者大于步骤的数量。
101d、对时间信息进行处理,得到每次测试结果。
对时间信息的处理过程可以根据用户的需求进行设定,例如,提取每个步骤的总时长,可以理解的是,总时长等于该步骤结束的时刻与该步骤开始的时刻的差值。
在本发明实施例中,测试需要至少两次,得到的测试结果需要根据所有单次测试结果进行计算,因此,可以为每次测试过程中采集到的测试数据生成每次测试对应的日志选择一个固定的位置进行存储,图4为本发明实施例提供的软件测试方法实施例的另一流程图,如图4所示,在前述内容的基础上,本发明实施例中,还可以包括如下步骤:
101e、将生成的日志统一存储在为控件配置的存储位置。
可以理解的是,为控件配置的存储位置可以是某个只读存储器中的部分存储空间,也可以是服务器中的部分存储空间等位置。在本发明实施例中,步骤101e可以发生在步骤101b之后的任意位置。优选的,步骤101e发生在101b与101c之间,进行步骤101c时可直接从所述存储位置提取相应的信息。即,步骤101e为101c提供了便捷提取相应信息的途径。
当本发明实施例中的软件测试方法应用到三维影像系统中时,步骤102还可以具体为下述内容,具体地,步骤101d可以包含如下两种实现方式,具体地:
第一种,当时间信息表示单张图像渲染时间时,根据时间信息,计算单张图像的平均渲染时间。
当测试动作为拖拽、放大、旋转等连续性动作时,在渲染步骤中需要使用多张图像,单张图像具有各自的渲染时间,因此,当时间信息表示单张图像渲染时间时,可以利用如下公式计算单张图像的平均渲染时间。
t1表示渲染第一张图像的时刻,t2表示渲染第n张图像的时刻,n表示渲染过程中使用图像的总数,则平均渲染时间t可以表示为(t2-t1)/(n-1)。每秒钟更新的图像数可以为n=1/t。
第二种,当时间信息表示每个测试动作的触发时间和响应时间时,根据时间信息,计算单次测试动作的处理时长。
当测试动作为点击、菜单响应等一次性动作时,在渲染步骤中需要使用多张图像,由于动作是一次性动作,当点击时即为发送请求,显示装置中呈现的画面为响应请求的结果,则当时间信息表示每个测试动作的触发时间和响应时间时,可以利用如下公式计算单次测试动作的处理时长。
t1表示发送操作请求的时刻,t2表示返回的渲染最后一张图像的时刻,
单次测试动作的处理时长t=t2-t1。
可以理解的是,前述内容为本发明实施例中提供的软件测试方法结合具体应用场景的过程。
图5为本发明实施例提供的软件测试系统实施例的结构示意图,如图5所示,本发明实施例提供的软件测试系统具体可以包括:测试单元11和输出单元12。
测试单元11,用于根据相同测试动作组在指定测试环境内进行至少两次测试,生成相应的单次测试结果;
输出单元12,用于根据所有单次测试结果进行计算,输出测试结果。
本实施例的装置,可以用于执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
在一个具体的实现过程中,测试单元11具体用于:
在使用相同测试动作组在指定测试环境内的每次测试过程中,利用预设控件采集测试数据;
根据采集到的测试数据生成每次测试对应的日志;
分别从每次测试的日志提取每次测试各自对应的时间信息;
对时间信息进行处理,得到每次测试结果。
图6为本发明实施例提供的软件测试系统实施例的另一结构示意图,如图6所示,本发明实施例提供的软件测试系统,在前述内容的基础上,还可以包括:存储单元13。
存储单元13,用于将生成的日志统一存储在为控件配置的存储位置。
图7为本发明实施例提供的软件测试系统实施例的另一结构示意图,如图7所示,本发明实施例提供的软件测试系统,在前述内容的基础上,还可以包括:加载单元14、采集单元15、确定单元16。
加载单元14,用于加载指定测试环境。
采集单元15,用于采集用户在指定测试环境内录入的所有测试动作。
确定单元16,用于将已录入的所有测试动作确定为测试动作组。
在一个具体的实现过程中,测试单元11具体用于:
当时间信息表示单张图像渲染时间时,根据时间信息,计算单张图像的平均渲染时间;或者,
当时间信息表示每个测试动作的触发时间和响应时间时,根据时间信息,计算单次测试动作的处理时长。
本实施例的装置,可以用于执行图2~图4所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。