朱婷婷
摘要:概述软件测试目前的研究现状,根据测试工作常出现的问题,提出了基于自动化需求分析软件的快速测试方法。通过使用自动化需求分析软件,有效降低了需求分析阶段所需的人力和时间。通过历史类似项目软件测试用例的复用和使用快速测试表格设计测试用例,使得测试用例的设计更快且更好维护。
关键词:自动化需求分析;时间;快速测试表格
中图分类号:TP311.56 文献标识码:A
文章编号:1009-3044(2020)03-0113-03
国内软件测试行业虽然起步晚,但拥有良好的发展势头,截至目前,已成立了若干个国家级的软件测评中心。各个测评组织对软件测试的流程、方法以及相关要求等已形成了非常全面的体系管理规定。通过各种体系标准为软件的质量把关,软件质量相比以往,有了质的提升。
目前,在实际工作中,软件测试工作能按照相应的质量管理体系有效开展,进行的测试类型分为静态测试、动态测试等,其中,动态测试包含对功能、接口、软件性能及软件安全性方面的测试。测试需求规格说明的设计、测试用例的编写、测试用例的执行等,一般需覆盖上述的各个测试类型。测试需求规格说明、测试用例的编写部分,耗时较长。
通过工作经验的积累发现,提高软件测试工作的效率可以从以下两方面人手:1)利用软件对软件需求规格说明进行自动化分析,生成测试项,节省了一部分测试需求规格说明编写的时间;2)大部分同类软件的实现进行了代码复用,软件测试也可以根据其特点,进行测试用例的复用,从而避免了一定程度上的时间、人力等方面的浪费[2-5]。
此外,由于部分项目进度时间紧迫,预留给软件测试的时间比较短,很难按照标准规范开展测试工作。所以,对于时间紧任务重的测试任务,如何按质按量高效完成测试工作,是目前亟待解决的问题。全文所述的“基于自动化需求分析软件的快速测试方法”就是为了解决上述问题而提出的。
1 软件测试简介
1.1 软件测试的定义及目的
什么是软件测试?如何定义?于是许多专家经过多年的研究和总结,对软件测试这个行为给出了各式各样的定义。在此,经过归纳总结,引用一个目前认为比较全面的定义“软件测试,首先是设计一个有限的测试用例集,然后软件在这些测试用例集上,产生相应结果,最后验证结果是否符合预期”[6]。众所周知,不存在没有问题的软件,所以,高效的软件测试过程就是短时间内最大限度找出软件中存在的问题和缺陷。
1.2 软件测试的分类
由于软件测试工作可以从各个不同的角度人手,测试种类也不唯一,本文暫且从一个角度将软件测试划分为以下几类:
1)根据测试中只验证软件功能是否正确或者对代码进行逐条分析,可将软件测试种类划分为黑盒测试和白盒测试。
2)按软件集成的大小,软件测试可从大到小划分为系统集成测试、配置项级测试、单元性测试。
3)按专题的不同,软件测试可分为功能测试、接口测试、性能测试等[2-3]。
1.3 测试需求分析的概念
所谓测试需求,主要是理清被测对象中哪些内容需要测试[6]。配置项级的测试需求分析,一般是对软件的需求规格说明里的各个细目进行分析,分解提取出各个测试项,即生成了待测试内容。系统测试需求通常是以系统规格说明为基础进行分析,并结合研制总要求、研制任务书等顶层文件对系统需求进行分解。测试需求是设计测试用例的重要依据。
1.4 测试用例设计方法
文献[7-8]提到设计测试用例的常用方法有错误推测、等价类划分、因果图及边界值分析等方法。
等价类划分法。某个输入域的子集称为一个等价类。一个等价类中各个输入数据产生的输出是等效的,因此选取其中一个输入即可代表其他输入,无须穷举所有的输入
边界值分析法。程序设计常犯的错误就是没有考虑到输入或输出数据的上下边界,因此在各类输入的上下边界处设计测试用例,得以有针对性地对常犯问题重点测试,从而快速找到缺陷。
因果图法。在实际测试工作中,绝大多数软件设计都使用了层层嵌套的条件判断语句,多种条件相组合的测试就需要通过因果图来理清输入与输出的对应关系,从而在测试用例的设计过程中,能做到不遗漏地设计出较为全面的用例。
错误推测法。此方法就是列举出软件的常见错误,然后基于这些错误设计测试用例,从而高效定位常见错误。
2 基于自动化需求分析软件的快速测试方法
基于自动化需求分析软件的快速测试方法,首先利用自动化需求分析软件,实现软件需求规格说明到测试需求规格说明的自动转化,分析出每个测试项,再手动对描述不完备的测试项进行补充;然后,依据测试项,复用以往历史项目的类似软件的部分用例,对于无法直接复用的用例使用快速测试表格,进行快速用例设计。最后逐条执行测试用例、记录测试结果、对测试结果进行总结、针对发现的问题撰写问题报告、根据测试综合情况编写测试报告等,完成测试任务。
该快速测试方法,通过使用自动化需求分析软件、快速测试表格及复用测试用例,不仅节省了测试需求分析的时间,还大大缩短了软件测试用例编写的时间。
2.1 自动化需求分析软件
自动化需求分析软件,即利用软件需求分析的标准规范对软件需求规格说明进行分析,生成测试需求的框架。该框架包含测试项标识及名称、优先级、测试目的、测试内容及要求、测试约束/终止条件及测试要求等内容。该自动化需求分析软件的工作过程如图1所示。
下面对自动化软件的工作步骤进行详细描述:
1)打开自动话分析软件,新建项目,如图2所示。
2)在软件需求页签下,新建需求类型:功能需求、接口需求等,如图3所示。
3)分别导人软件需求word文档后,根据软件需求规格说明文档,生成测试需求文档。测试需求文档中的测试项如图4所示。
在该自动化需求分析软件中,自动生成测试项的完整程度取决于软件需求规格说明编写的规范性,需求规格说明越规范越详细,测试项中能自动填写的内容越多,完整性越高。
此外,软件需求规格说明中的部分潜在需求,例如内存余量测试等需人工挖掘,手动录入相应测试项,与自动化需求分析软件生成的测试项手动合并,最后生成完整的测试需求文档。
2.2 快速测试用例设计
测试用例的设计依赖于测试需求文档中的测试项,快速全面设计测试用例也是提高测试质量及速度的方法之一。快速测试用例设计,在使用快速测试表格提升用例编写速度的同时,复用相同或类似测试用例,从而达到节省人力、节省时间的目的。
快速测试表格,如图5所示。采用表格的形式设计测试用例,方便用例维护,且能直观纵览、判断用例是否覆盖全面.在测试执行过程中,可直接在“实际结果”列记录测试结果,无须再单独新建测试记录文件,省时省力的同时,测试结果一目了然。
编写测试用例,分别按照如下步骤顺序进行:
1)通过复制的方式,提取测试需求规格说明追溯表中列出的各个测试项,粘贴在快速测试表格的测试项列
2)考虑历史项目中是否存在可复用的测试用例,若存在,则将可复用的测试用例分别填写在测试子项、测试标题、测试前提条件、测试步骤、预期结果等列。复用完成后,填写复用的用例编号。
3)针对尚未进行用例设计的测试项,使用等价类划分、猜错法、边界值分析法等方法进行测试用例的设计。
以上三步完成后,一个完整的测试用例文档生成。在测试执行阶段,执行每条测试用例,记录测试原始数据,填写实际测试结果,通过对比预期结果和实际结果,确定用例是否通过,把不通过的用例分类汇总到问题报告中。
基于自动化需求分析软件的快速测试方法:1)通过研发自动化需求分析软件,减少了需求分析阶段的工作量。2)设计测试用例时,考虑用例的可维护性。把用例使用的数据和步骤分别管理,类似于编写代码时对各个库的封装,封装完成后留出调用的接口,当后期遇到类似项目,只是数据不同,而步骤相同时,可把步骤直接取而用之。在类似软件测试时,相似的测试用例只需部分变更便可直接复用,缩减了测试用例设计的耗时。3)通过使用快速测试表格中实际测试结果列记录测试时的原始数据,无须新建测试记录文档,使得测试结果一目了然。
3 结束语
基于自动化需求分析软件的快速测试方法,不仅能保证软件产品的质量,更重要的是能减少软件测试所需的人力及时间,对软件测试工作具有非常重要的实践意义。但仍存在一定程度的不足,即在自动化需求分析阶段,无法自动挖掘出软件的潜在需求,需要人力手动补充。但是随着技术的进步,不断优化自动化需求分析软件,将自动挖掘潜在测试需求并添加到工具集中,从而做到完全自动化,尽可能减少人力的投入。在未来的研究当中,还可以继续研究以快速测试用例表格作为输入自动生成軟件问题报告,以及将软件问题报告作为输入自动生成问题处理报告的技术等。
参考文献:
[1] Perry W E.软件测试的有效方法[M].高猛,冯飞,徐璐,译,北京:清华大学出版社,2008.
[2]李龙,李向函,冯海宁,软件测试实用技术与常用模板[M].北京:机械工业出版社,2010.
[3]丁志义.提高软件测试效率的方法探讨[EB/OL].http://www.5 ltesting.com/html/0 2/n-214402-2.html.
[4] Mosley D J,Posey B A.软件自动化测试[M].邓波,黄丽娟,曹青春,等,译.机械工业出版社,2003:12-45.
[5]张向芳,李华,姜英伟.软件测试自动化的实施方案[J]山西科技,2006,21(4):40-42.
[6]康一梅,张永革,李志军,嵌入式软件测试[M].北京:机械工业出版社,2008.
[7]李刚,姚红,软件测试用例设计的方法与实现[J].大众科技,2012,14(1):14-15.
[8]王雷,张莉.编写有效用例[M].,北京:机械工业出版社,2002:10-91.