一种实现软件自动测试的方法及装置的制作方法

文档序号:6366374阅读:647来源:国知局
专利名称:一种实现软件自动测试的方法及装置的制作方法
技术领域
本发明涉及计算机应用技术,尤其涉及实现软件自动测试的方法及装置。
背景技术
计算机技术的飞速发展,使得软件产品在人们生活中已不可或缺。随着软件产品广泛地使用在人们工作和生活中,使得人们对软件产品质量的要求亦不断提高。作为保证软件产品质量的措施之一,软件测试也越来越显示出它的巨大优势。然而,随着软件设计规模的加大以及软件产品复杂度的提升,使得软件的自动化测试变得愈来愈重要。目前,软件自动测试技术的发展,使得软件自动测试工具逐渐向多样化和专业化的方向发展。
软件自动测试有一个显而易见的优势是它能够提高测试效率,这是手工测试无法企及的。当然,它的优势并不止于这一点,还包括能够跨越语言障碍,摆脱时间限制,进行回归测试等,能够保证测试过程对软件测试的一致性和准确性,并能够实现手工测试所无法做到的测试,如压力测试(即对软件在各种压力状态下的测试)以及并发测试等。但目前软件自动测试方法也存在很多局限性,例如,I)无法进行一些特殊的测试项目,例如软件使用性能测试,操作系统或网络项目测试等;2)不能对程序中意想不到的意外事件进行测试;3)自动化测试会受到具体项目资源的限制。综上可以看出,软件自动测试的优势很强,能在繁琐重复性的回归测试中极大地减少人力、物力消耗,提高软件测试的效率。但因其目前尚存在一些局限性而使得软件测试效率提高的极为有限,还不能充分发挥自动化测试的全部优势,因此亟待改进。

发明内容
本发明所要解决的技术问题是提供一种实现软件自动测试的方法及装置,能够进一步提高软件测试的效率。为了解决上述技术问题,本发明提供了一种实现软件自动测试的方法,涉及测试工具,该方法包括设置被测模块的输入和输出规则;在测试工具上根据设置的输入和输出规则编辑或导入测试脚本,设定测试用例及其参数;启动测试工具运行,通过测试工具执行测试用例对被测模块进行测试。进一步地,在测试工具上根据设置的输入和输出规则编辑或导入测试脚本,设定测试用例及其参数,具体包括在测试工具上按照输入和输出规则编辑测试脚本,或者通过测试工具导入按照输入和输出规则编辑的测试脚本;设定一个或多个测试用例,针对每一测试用例设定执行的次数、执行的时间间隔以及两个测试用例之间执行的时间间隔中的一种或多种参数。进一步地,通过测试工具执行测试用例对被测模块进行测试,包括以下测试中的一种或多种对被测模块进行正常功能测试;对被测模块进行异常处理的测试,包括被测模块接收其它模块输出的非正常输入、符合被测模块输入规则的边界或界外输入以及不符合被测模块输入规则的输入中的一种或多种异常处理的测试;对被测模块处于压力情况下的测试,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。进一步地,在测试工具上设定测试用例及其参数的同时,还设定系统资源监控的参数,包括占用CPU、内存或虚拟内存以及句柄中的一种或多种参数;
通过测试工具执行测试用例对被测模块进行测试,还包括对被测模块进行测试过程中监测系统的资源,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。进一步地,该方法还包括待测试结束后获取测试结果,验证被测模块的正确性,分析被测模块和/或软件的性能,具体包括对获取的测试结果进行分析,包括对被测模块处理的正确性验证和对被测模块和/或软件性能监测数据的分析,并通过表格或图形的形式展示分析结果。为了解决上述技术问题,本发明提供了一种实现软件自动测试的装置,包括依次连接的输入输出规则设置模块、脚本编辑/导入模块、测试用例设定模块、测试执行模块以及测试结果分析模块,其中输入输出规则设置模块,用于设置被测模块的输入和输出规则;脚本编辑/导入模块,用于根据设置的被测模块的输入输出规则编辑或导入测试脚本;测试用例设定模块,用于根据测试脚本设定测试用例及其参数;测试执行模块,用于通过执行测试用例对被测模块进行测试;测试结果分析模块,用于待测试结束后获取测试结果,验证被测模块运行的正确性,分析被测模块和/或软件的性能。进一步地,测试执行模块除了通过正常测试单元对被测模块进行正常功能测试外,还通过异常测试单元对被测模块进行异常处理的测试,或通过压力测试单元对被测模块处于压力情况下的测试,或通过资源监测单元在对被测模块进行测试过程中监测系统的资源。进一步地,异常测试单元对被测模块进行异常处理的测试,包括被测模块接收其它模块输出的非正常输入、符合被测模块输入规则的边界或界外输入以及不符合被测模块输入规则的输入中的一种或多种异常处理的测试。进一步地,压力测试单元对被测模块处于压力情况下的测试,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。
进一步地,资源监测单元在对被测模块进行测试过程中监测系统的资源,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。本发明通过对测试工具统一约定被测软件模块间的数据传输格式,在测试工具上编辑测试脚本自动生成测试用例,并设定测试用例的次数,提供对被测软件单模块在各种情况下进行自动测试,包括正常、异常、压力情况下的测试,并在测试过程中提供对系统资 源的监控。同时,本发明的测试工具可以获取被测单模块在执行测试用例后执行的结果,对结果进行解析,通过判断执行结果的正误来验证被测单模块的正确性。本发明较大程度地提高了软件单模块测试的工作效率,并可以全面分析软件运行情况。


图I为本发明的实现软件自动测试的方法实施例的流程图;图2为本发明的实现软件自动测试的装置实施例的结构框图。
具体实施例方式以下结合附图和优选实施例对本发明的技术方案进行详细地阐述。应该理解,以下列举的实施例仅用于说明和解释本发明,而不构成对本发明技术方案的限制。本发明的实现软件自动测试的方法实施例,其流程如图I所示,包括如下步骤110 :设置被测模块的输入和输出规则;为了实现对特定单模块的测试,通过这样的设置,可使得测试工具能够通过模拟被测单模块的输入,以被测模块支持的通信方式与其它模块进行通信,从而尽量模拟被测模块在软件系统中所处的环境;并通过解析被测单模块的输出来判断被测单模块的正确性。120 :编辑或导入测试脚本,设定测试用例及其参数,设定系统资源监控的参数;通过在本发明的测试工具上按照指定格式(输入和输出规则)编辑测试脚本,或者通过该测试工具导入按照指定格式外编辑的测试脚本,并设定测试用例及其执行的次数、执行的时间间隔以及两个测试用例之间执行的时间间隔等;同时还可设定测试过程中进行系统资源监控的参数。130 :启动测试工具运行,执行测试用例;测试脚本完成编辑及测试用例及其参数的设定后,启动测试工具,根据脚本设置的测试用例开始进行测试。140 :除了对被测模块进行正常功能测试外,还对被测模块进行如下的一种或多种测试1401 :异常测试,主要包括I)软件异常情况下被测模块接收的其它模块的非正常输入,即其它模块发生故障时返回给该被测模块的消息,通知该被测模块其它模块有异常发生;测试该被测模块是否能正常处理该非正常输入,执行指定的错误处理。该非正常输入的格式应符合被测模块输入规则。
2)符合被测模块输入规则但无法处理的边界或界外输入,测试被测模块是否能正确执行报错处理。譬如,被测模块可以处理1-30范围内的数字,如果输入是31的话,就在处被测模块无法处理的范围内,但它是符合输入规则的,由此测试被测模块的报错机制是否正常。3)不符合被测模块输入规则的输入,例如测试被测模块是否能正常识别格式错误。比如模块能够处理格式为{2,3}的输入,而对于这个输入{2. 3,则是不符合输入规则的,则测试被测模块是否能识别该不可接受的输入。1402 :压力测试,主要包括I)测试被测模块由多线程并发造成的压力下是否能够正常运行 当多线程并发的向被测模块输入数据,会给软件的整体运行造成压力。此时要测试在大压力情况下被测模块是否依然能够运行正常。2)测试被测模块在系统压力下是否能够正常运行譬如模拟出系统CPU使用率为99%,或者内存耗尽或接近耗尽的情况,判断该情况下被测模块是否依然能够正常运行。1403 :系统资源监测,主要包括I)当软件执行各种操作时,对系统的CPU的总占用率,对被测模块的CPU占用率,对内存和虚拟内存的占用,以及对句柄的占用;2)软件运行在各阶段(启动,处理不同输入,退出等),对被测模块的CPU占用率,对内存或虚拟内存的占用,以及对句柄的占用3)对这些数据进行分析,可以统计出被测模块运行过程的情况,例如,当被测模块运行过程中,监视到内存占用不断增长,说明该被测模块存在内存泄露的非正常情况,需要查找问题所在并给予解决。在测试过程中,既可单独监测系统资源,亦可对被测模块对应的进程占用资源进行监测,记录监测数据,以便于后面对被测模块的性能分析。本发明提供测试过程中对系统资源进行监测的功能,根据编辑脚本设定自动监测操作系统中各项资源的使用情况,被测模块对应进程的系统资源占用情况,通过可用数据或者图表的形式来展示,以全面地掌握被测模块运行的性能情况。150:获取测试结果,验证被测模块运行的正确性,分析其性能。待软件整个测试过程完成后,对测试结果进行整理,包括对被测模块处理的正确性验证和对被测模块性能监测数据的整理。由于被测模块的性能监测直接得到的是数据结果,故可以通过表格或图形的形式来展示。本发明针对上述方法实施例,相应地还提供了实现软件自动测试的装置实施例,其结构如图2所示,包括依次连接的输入输出规则设置模块、脚本编辑/导入模块、测试用例设定模块、测试执行模块以及测试结果分析模块,其中输入输出规则设置模块,用于设置被测模块的输入和输出规则;脚本编辑/导入模块,用于根据设置的被测模块的输入输出规则编辑或导入测试脚本;测试用例设定模块,用于根据测试脚本设定测试用例及其参数;
测试执行模块,用于通过执行测试用例对被测模块进行测试;测试结果分析模块,用于待测试结束后获取测试结果,验证被测模块运行的正确性,分析被测模块和/或软件的性能。在上述装置实施例中,测试执行模块除了通过正常测试单元对被测模块进行正常功能测试外,还通过异常测试单元对被测模块进行异常处理的测试,或通过压力测试单元对被测模块处于压力情况下的测试,或通过资源监测单元在对被测模块进行测试过程中监测系统的资源。在上述装置实施例中,测试执行模块通过异常测试单元对被测模块进行异常输入处理的测试,包括被测 模块接收其它模块输出的非正常输入、符合被测模块输入规则的边界或界外输入以及不符合被测模块输入规则的输入中的一种或多种异常处理的测试。在上述装置实施例中,测试执行模块通过压力测试单元对被测模块处于压力情况下的测试,包括测试被测模块分别在由多线程并发造成的压力下和在系统压力下是否能够正常运行。在上述装置实施例中,测试执行模块通过资源监测单元在对被测模块进行测试过程中监测系统的资源,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。在上述装置实施例中,测试结果分析模块待测试过程完成后,对获取的测试结果进行分析,包括对被测模块处理的正确性验证和对被测模块和/或软件性能监测数据的分析,并通过表格或图形的形式展示分析结果。对于本领域的专业人员来说,在了解了本发明内容和原理后,能够在不背离本发明的原理和范围的情况下,根据本发明的方法进行形式和细节上的各种修正和改变,但是这些基于本发明的修正和改变仍在本发明的权利要求保护范围之内。
权利要求
1.一种实现软件自动测试的方法,涉及测试工具,该方法包括 设置被测模块的输入和输出规则; 在测试工具上根据设置的所述输入和输出规则编辑或导入测试脚本,设定测试用例及其參数; 启动所述测试工具运行,通过所述测试工具执行所述测试用例对被测模块进行测试。
2.按照权利要求I所述的方法,其特征在于,在测试工具上根据设置的所述输入和输出规则编辑或导入测试脚本,设定测试用例及其參数,具体包括 在所述测试工具上按照所述输入和输出规则编辑测试脚本,或者通过所述测试工具导入按照所述输入和输出规则编辑的测试脚本; 设定ー个或多个测试用例,针对每ー测试用例设定执行的次数、执行的时间间隔以及两个测试用例之间执行的时间间隔中的ー种或多种參数。
3.按照权利要求2所述的方法,其特征在干,通过所述测试工具执行所述测试用例对被测模块进行测试,包括以下测试中的ー种或多种 对被测模块进行正常功能测试; 对被测模块进行异常处理的测试,包括被测模块接收其它模块输出的非正常输入、符合被测模块输入规则的边界或界外输入以及不符合被测模块输入规则的输入中的ー种或多种异常处理的测试; 对被测模块处于压カ情况下的测试,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。
4.按照权利要求3所述的方法,其特征在干,在测试工具上设定测试用例及其參数的同时,还设定系统资源监控的參数,包括占用所述CPU、内存或虚拟内存以及句柄中的ー种或多种參数; 通过所述测试工具执行所述测试用例对被测模块进行测试,还包括对被测模块进行测试过程中监测系统的资源,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。
5.按照权利要求I至4任一项所述的方法,其特征在于,还包括 待测试结束后获取测试结果,验证所述被测模块的正确性,分析所述被测模块和/或所述软件的性能,具体包括对获取的测试结果进行分析,包括对被测模块处理的正确性验证和对被测模块和/或软件性能监测数据的分析,并通过表格或图形的形式展示分析结果。
6.一种实现软件自动测试的装置,其特征在于,包括依次连接的输入输出规则设置模块、脚本编辑/导入模块、测试用例设定模块、测试执行模块以及测试结果分析模块,其中 输入输出规则设置模块,用于设置被测模块的输入和输出规则; 脚本编辑/导入模块,用于根据设置的所述被测模块的输入输出规则编辑或导入测试脚本; 测试用例设定模块,用于根据所述测试脚本设定测试用例及其參数; 测试执行模块,用于通过执行测试用例对被测模块进行测试;测试结果分析模块,用于待测试结束后获取测试结果,验证被测模块运行的正确性,分析被测模块和/或软件的性能。
7.按照权利要求6所述的装置,其特征在干, 所述测试执行模块除了通过正常测试单元对所述被测模块进行正常功能测试外,还通过异常测试单元对所述被测模块进行异常处理的测试,或通过压カ测试单元对被测模块处于压力情况下的测试,或通过资源监测单元在对被测模块进行测试过程中监测系统的资源。
8.按照权利要求7所述的装置,其特征在干, 所述异常测试单元对所述被测模块进行异常处理的测试,包括被测模块接收其它模块输出的非正常输入、符合被测模块输入规则的边界或界外输入以及不符合被测模块输入规则的输入中的一种或多种异常处理的测试。
9.按照权利要求7所述的装置,其特征在干, 所述压カ测试单元对被测模块处于压カ情况下的测试,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。
10.按照权利要求7所述的装置,其特征在干, 所述资源监测单元在对被测模块进行测试过程中监测系统的资源,包括软件执行各种操作或运行在各阶段下被测模块对CPU、内存或虚拟内存以及句柄的占用情况,根据分析监测结果数据统计出被测模块运行中的情况。
全文摘要
本发明披露了一种实现软件自动测试的方法及装置,其中方法包括设置被测模块的输入和输出规则;在测试工具上根据设置的输入和输出规则编辑或导入测试脚本,设定测试用例及其参数;启动测试工具运行,通过测试工具执行测试用例对被测模块进行测试。本发明提供对被测软件单模块在各种情况下进行自动测试,包括正常、异常、压力情况下的测试,并在测试过程中提供对系统资源的监控;同时可以获取被测单模块在执行测试用例后执行的结果,对结果进行解析,通过判断执行结果的正误来验证被测单模块的正确性。本发明较大程度地提高了软件单模块测试的工作效率。
文档编号G06F11/36GK102662828SQ201210067518
公开日2012年9月12日 申请日期2012年3月14日 优先权日2012年3月14日
发明者戴文军, 王倩 申请人:浪潮(北京)电子信息产业有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1