本发明涉及计算机技术领域,尤其涉及一种软件测试方法及装置。
背景技术:
各种手机、电脑以及车载电脑等各种电子设备上运行的各种软件在开发人员编写完成之后,为了减少运行过程中可能出现的诸如卡顿、软件崩溃、运行错误等各种缺陷,通常需要对软件进行运行测试,以发现软件运行过程中可能出现的问题,从而有助于帮助开发人员对软件进一步进行完善软件。
现有的软件测试过程主要通过测试人员控制待测软件运行,并在软件运行过程中出现缺陷时,通过截图辅以文字描述的形式记录缺陷,并将测试人员记录的文字和截图提交给开发人员,以便开发人员对软件进行进一步检测和完善。但是不同的测试人员对缺陷的描述可能存在差异,不同开发人员对同一缺陷描述的理解也可能存在差异。
所以,现有的测试方式由于测试人员的描述和开发人员理解可能存在的差异,可能导致无法还正确还原缺陷的实际情况。
技术实现要素:
第一方面,本公开的实施例提供了一种软件测试方法,包括步骤:
读取目标软件的运行日志;
在所述运行日志中存在目标缺陷标识时,从所述运行日志中提取与所述目标缺陷标识对应的缺陷步骤的步骤信息;
整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本。
在一些实施例中,所述读取目标软件的运行日志的步骤之后,所述方法还包括:
在所述运行日志中存在目标缺陷标识时,抓取所述缺陷步骤的日志截图。
在一些实施例中,所述整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本的步骤之前,所述方法还包括步骤:
根据所提取的步骤信息回放所述缺陷步骤,并在接收到截图指令时,抓取所述目标软件运行界面的运行状态截图。
在一些实施例中,所述整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本的步骤之后,所述方法还包括:
提交所述缺陷步骤的缺陷描述文件,所述缺陷描述文件包括所述目标软件的运行日志、所述回放脚本、所述缺陷步骤的截图和目标软件的运行状态截图中的一种或多种。
在一些实施例中,所述读取目标软件的运行日志的步骤之前,所述方法还包括:
建立与所述目标软件的连接,并导出所述目标软件的运行日志;
在同一显示界面显示所述目标软件的连接状态、所述目标软件的运行日志、所述目标软件的运行界面以及缺陷信息描述界面。
第二方面,本公开的实施例提供了一种软件测试装置,包括:
读取模块,用于读取目标软件的运行日志;
提取模块,用于在所述运行日志中存在目标缺陷标识时,从所述运行日志中提取与所述目标缺陷标识对应的缺陷步骤的步骤信息;
整合模块,用于整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本。
在一些实施例中,还包括:
抓取模块,用于在所述运行日志中存在目标缺陷标识时,抓取所述缺陷步骤的日志截图。
在一些实施例中,所述抓取模块,还用于根据所提取的步骤信息回放所述缺陷步骤,并在接收到截图指令时,抓取所述目标软件运行界面的运行状态截图;所述装置还包括:
提交模块,用于提交所述缺陷步骤的缺陷描述文件,其中,所述缺陷描述文件包括所述目标软件的运行日志、所述回放脚本、所述缺陷步骤的截图和所述目标软件的运行状态截图中的一种或多种。
第三方面,本公开的实施例提供了一种软件测试设备,包括处理器、存储器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上述任一项所述的软件测试方法的步骤。
第四方面,本公开的实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的软件测试方法的步骤。
附图说明
图1是本公开的实施例软件测试方法的流程图;
图2是本公开的实施例中显示界面的状态图;
图3是本公开的实施例一种软件测试装置的结构图;
图4是本公开的实施例一种软件测试装置的结构图;
图5是本公开的实施例一种软件测试装置的结构图;
图6是本公开的实施例一种软件测试装置的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本公开的实施例提供了一种软件测试方法。
本公开的实施例主要应用于软件的测试过程中,以对软件可能存在的缺陷(bug)进行测试。
图1为一个具体实施方式中软件测试方法的流程图,如图1所示,该软件测试方法包括步骤:
步骤101、读取目标软件的运行日志。
本公开的实施例中首先读取目标软件的运行日志。目标软件的运行日志可能是由运行目标软件的操作系统生成的,也可能是目标软件运行过程中自行生成的,还可以是由第三方软件记录并生成的,本实施例中对目标软件运行日志的来源不作进一步限制。
软件的运行日志一般是以log文件的形式存储的,显然,对于不同的操作系统中的软件或者不同设定的软件,其运行日志也是不同的,例如,某些软件的运行日志还可以是以文本文档(txt)的形式保存的,因此,本实施例中对目标软件的运行日志的格式不作具体的限制。
读取运行日志的过程可以是在测试后台进行,也可以在前台进行以便于观察。
步骤102、在所述运行日志中存在目标缺陷标识时,从所述运行日志中提取与所述目标缺陷标识对应的缺陷步骤的步骤信息。
在读取运行日志的过程中,如果读取到目标缺陷标识,则提取相应的运行步骤的步骤信息。
对于软件测试过程来说,缺陷指的是软件的实际运行结果与预计运行结果存在差异,具体包括但不限于运行结果存在错误、软件运行过程中崩溃、软件运行过程中无响应等运行异常状况。
如果目标软件在一次运行过程中出现了某种缺陷,导致实际运行结果与预期运行结果存在偏差,实际上为目标软件运行过程中的某个或某些步骤存在异常,本公开的实施例中,将存在异常的步骤称之为缺陷步骤。
而软件运行的每一个步骤及相应的运算结果均会记录在目标软件的运行日志中,而缺陷步骤的运行过程及运行结果必然与正常运行的步骤存在区别,而正常步骤的运行结果由于是可预期的,所以其运行日志的格式也是可预期的,而对应不同的缺陷,例如如果目标软件在运行过程中崩溃,则在软件的运行日志中会生成对应的崩溃日志(crash),因此,软件的正常运行过程中的运行日志与出现缺陷时的运行日志必然存在区别。
本公开的实施例中,可以将软件运行中出现或可能出现的缺陷对应的运行日志中,与正常运行日志差异的部分字符或者全部字符作为目标缺陷标识,也可以将缺陷步骤的全部运行日志整体作为目标通用标识。这样,如果在读取软件的运行日志过程中,发现了目标通用标识,则目标软件运行日志中包含该目标通用标识部分对应的目标软件的运行步骤也就是缺陷步骤。
本公开的实施例中进一步读取该缺陷步骤的步骤信息,这里的步骤信息包括但不限于软件的具体运行过程、软件的操作过程等相关过程。
例如,在某一具体实施方式中,目标软件的操作过程包括在触控屏上沿某一路径进行滑动,并通过不同的滑动方向和速度和方向发出控制信号,则目标软件中记录的该步骤的步骤信息可能包括接收到的触控操作的方向、速度、路径等相关信息,进一步的,还可能包括根据控制信号进一步获取的运行结果等信息。
步骤103、整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本。
本实施例中整合所提取的步骤信息,以生成回放上述缺陷步骤的回放脚本,该回放脚本在执行时,能够在目标软件上重新执行缺陷步骤。
由于该回放脚本是根据目标软件的运行日志中的软件运行步骤所整合生成的,所以在执行该回放脚本时,目标软件的运行过程也与出现缺陷时一致,所以,在执行该回放脚本时,也能真实的了解缺陷的出现过程,能够避免因为不同的描述方式和对描述的理解方式造成差异。
在本公开的实施例中,还可以包括步骤:在所述运行日志中存在目标缺陷标识时,抓取所述缺陷步骤的日志截图。
在本公开的实施例中,抓取目标软件缺陷步骤的截图的步骤具体可以在上述步骤102之前执行,也可以在步骤102之后执行,本实施例中对其顺序不作进一步限定。
本公开的实施例中抓取的缺陷步骤的日志截图,在又一具体实施方式中,还进一步的可以包括目标软件运行缺陷步骤的运行界面的截图。在执行过程中,具体可以是在读取到目标标识特征时,触发截图功能,抓取目标软件在执行该步骤时的截图。
本公开的实施例中,通过抓取目标软件运行所述缺陷步骤的截图,有助于直观的了解缺陷具体发生的时间和步骤,以便准确理解存在的缺陷。
可选的,在一具体实施方式中,所述整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本的步骤之前,所述方法可以还包括步骤:
根据所提取的步骤信息回放所述缺陷步骤,并在接收到截图指令时,抓取所述目标软件运行界面的运行状态截图。
为了确保提交的回放脚本能够正常运行,测试人员在向测试人员提交缺陷描述文件之前,还可以自行对回放脚本的运行状态进行检测。例如,在一具体实施方式中,可以由测试人员执行一次该回放脚本,在执行该回放脚本的过程中,可以抓取一些目标软件运行过程的截图,以丰富提交的缺陷描述文件,使得对缺陷的描述更加全面。
本公开的实施例中,在接收到截图指令时,抓取目标软件的运行界面的运行状态截图,该截图指令可以由测试人员手动发出,也可以根据目标软件的运行过程自动发出,例如在运行某些关键运行步骤时自动触发截图过程。
通过提供目标软件更多的运行状态截图,能够进一步提高对缺陷描述的准确程度。
在上述步骤103之后,该方法还可以包括步骤:
提交所述缺陷步骤的缺陷描述文件,所述缺陷描述文件包括所述目标软件的运行日志、所述回放脚本和所述缺陷步骤的截图中的一种或多种。
提交缺陷描述文件的过程是将缺陷描述文件由测试人员反馈至开发人员的过程,以便开发人员根据缺陷描述文件中对缺陷的描述,对目标软件进行进一步的优化和改进,以消除缺陷。
本公开的实施例中,提交的缺陷步骤的缺陷描述文件包括目标软件的运行日志、整合生成的回放脚本、缺陷步骤的截图和目标软件运行界面的运行状态截图中的一种或多种。
具体的,所提交的运行日志可以是全部的运行日志,也可以仅是缺陷步骤及和该缺陷步骤相关联的步骤对应的运行日志,提交的格式可以运行日志的源文件的格式提交,也可以以抓取运行日志的截图的格式提交。
本实施例中通过提交运行日志、回放脚本和缺陷步骤截图中的一种或多种,能够向开发人员提供和目标软件的缺陷步骤相关的缺陷描述文件,而通过这些缺陷描述文件能够直接反应缺陷的真实情况,能够避免因为描述差异导致的理解差异。
可选的,在上述各实施例中,在步骤101之前,该方法还可以包括:
建立与所述目标软件的连接,并导出所述目标软件的运行日志;
在同一显示界面显示所述目标软件的连接状态、所述目标软件的运行日志、所述目标软件的运行界面以及缺陷信息描述界面。
本公开的实施例中首先建立与目标软件的连接,然后导出目标软件的运行日志以便读取该运行日志,该过程可以由测试端向目标软件持续发送连接请求,直至确定成功建立连接为止,也可以由待测的目标软件的测试接口向测试发送连接请求,以建立测试端与目标软件的连接。
进一步的,本公开的实施例中还可以在同一界面中显示目标软件的连接状态、目标软件的运行日志、目标软件的运行界面以及缺陷信息描述界面。
如图2所示,在一个具体实施方式中,软件测试过程中的显示界面包括如图2所示的四部分,其中201区域显示目标软件的连接状态,202区域显示目标软件的运行日志、203区域显示目标软件的运行界面、204区域显示缺陷信息描述界面。显然,对各个区域的具体分布情况以及尺寸等均是可以根据具体情况所调整的,本公开的实施例并不对具体的显示方式做进一步限制。
其中,缺陷信息描述界面指的是供测试人员填写缺陷信息的界面,该缺陷信息可以包括但不限于缺陷的名称、该缺陷步骤的预计运行结果、该缺陷步骤的实际运行结果、提交的缺陷描述文件目录等和软件测试过程中相关的信息。
通过在同一界面上显示目标软件的连接状态、目标软件的运行日志、目标软件的运行界面以及缺陷信息描述界面,能够提供同一时刻相对应的各种信息,一方面有助于测试人员了解测试工作的进行状态,另一方面也提高了抓取的截图中信息的丰富程度。
应理解的是,上述各可选的步骤并非必须的,即使不执行上述可选步骤,或仅执行上述可选步骤中的一项或多项,均能实现提供准时的缺陷的出现过程,能够避免因为不同的描述方式和对描述的理解方式造成差异。
如图3所示,本公开的实施例还提供了一种软件测试装置300,包括:
读取模块301,用于读取目标软件的运行日志;
提取模块302,用于在所述运行日志中存在目标缺陷标识时,从所述运行日志中提取与所述目标缺陷标识对应的缺陷步骤的步骤信息;
整合模块303,用于整合所提取的步骤信息生成回放所述缺陷步骤的回放脚本。
如图4所示,在一些实施例中,该软件测试装置300还包括:
抓取模块304,用于在所述运行日志中存在目标缺陷标识时,抓取所述缺陷步骤的日志截图。
在一些实施例中,所述抓取模块304还用于:
根据所提取的步骤信息回放所述缺陷步骤,并在接收到截图指令时,抓取所述目标软件运行界面的运行状态截图。
如图5所示,在一些实施例中,该软件测试装置300还包括:
提交模块305,用于提交所述缺陷步骤的缺陷描述文件,所述缺陷描述文件包括所述目标软件的运行日志、所述回放脚本和、所述缺陷步骤的截图和所述目标软件运行界面中的一种或多种。
如图6所示,在一些实施例中,该软件测试装置200还包括:
连接模块306,用于建立与所述目标软件的连接,并导出所述目标软件的运行日志;
显示模块307,用于在同一显示界面显示所述目标软件的连接状态、所述目标软件的运行日志、所述目标软件的运行界面以及缺陷信息描述界面。
由于该回放脚本是根据目标软件的运行日志中的软件运行步骤所整合生成的,所以在执行该回放脚本时,目标软件的运行过程也与出现缺陷时一致,所以,在执行该回放脚本时,也能真实的了解缺陷的出现过程,能够避免因为不同的描述方式和对描述的理解方式造成差异。
本公开的实施例还提供一种软件测试装置,包括处理器,存储器,存储在存储器上并可在所述处理器上运行的计算机程序,该计算机程序被处理器执行时实现上述软件测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
本发明实施例还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述软件测试方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。其中,所述的计算机可读存储介质,如只读存储器(read-onlymemory,简称rom)、随机存取存储器(randomaccessmemory,简称ram)、磁碟或者光盘等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。