本文摘要:摘要:软件测试是保证软件质量的重要手段,在软件开发周期中的重要程度越来越高。其中软件测试用例的设计和生成是整个测试工作的重点和难点。场景法作为一种黑盒测试方法,提供了一种基于使用的测试设计思路,能够提高测试质量和效率。本文根据被测软件的使
摘要:软件测试是保证软件质量的重要手段,在软件开发周期中的重要程度越来越高。其中软件测试用例的设计和生成是整个测试工作的重点和难点。场景法作为一种黑盒测试方法,提供了一种基于使用的测试设计思路,能够提高测试质量和效率。本文根据被测软件的使用需求归纳建立场景模型,构建场景模式,优化场景切换路径,设计测试用例,对场景法思想的有效性进行了验证。
关键词:软件测试,测试用例,场景优化
根据GJB5326-2004《军用软件质量度量》的要求,软件产品质量需求一般包括内部质量、外部质量和使用质量,其中使用质量是指特定用户使用的产品满足其要求,以在特定使用环境下达到有效性、生产率、安全性和满意度等指标的程度[1]。目前软件测试的重点集中在基于需求的测试,对最终用户的使用需求的重视度不够[2]。
本文针对软件测试,给出一种基于场景的测试方法,从用户角度出发设计测试用例,以提高软件的使用质量。场景法测试思想是基于用例驱动的典型方法,将用例驱动的思想引入软件测试,通过分析、构建软件使用场景,基于场景路径覆盖设计、生成用例,提高软件测试效率和质量[2]。
1场景模型
基于场景的测试方法更关注软件系统的业务流程,测试流程中的各个功能点是否能够满足需求并正确执行,是针对测试目标和测试对象提出来的测试方法[3]。场景测试更加关注业务流程,从最终用户角度来测试软件系统,使软件能更加满足用户需求。使用场景法测试思想进行测试时,首先要搭建场景模型。通常,我们把系统一个最小的功能状态定义为粒子场景,粒子场景按照既定的规则通过执行顺序、执行条件等控制逻辑组成场景。
一个场景的状态空间可以用一个三元组表示,其中S0是状态空间的初始状态,S是状态空间的所有状态,T是场景变迁规则的集合,当与Si和Ti相关的输入满足变迁要求时,状态发生切换Si→Sj。根据场景模型设计用例时,有状态覆盖和路径覆盖两种准则,其中路径覆盖的要求更加严格。
测试用例设计流程如下:a.根据说明书或规约,分析出系统或程序功能的基本流(初始状态S0)及所有的备选流(变迁规则T);b.根据基本流和各项备选流设计不同的场景,对每一个场景生成相应的逻辑测试用例,根据逻辑测试用例设计实际测试用例;c.最终形成测试用例集并进行评审,要求用例集至少覆盖场景图中所有的基本流和备用流一次。
2场景法路径优化
在软件使用场景状态图的基础上,遍历场景状态图的每一条路径,即对应一个测试用例。利用遍历的方式,对使用场景状态图中的全部流使用遍历的方式,以获得覆盖所有路径所有的测试用例,根据测试路径的条件来确定相关的用例输入。每一个测试用例包含的执行路径((Si,T)i、(Sj,T))j、输入条件(Ti,T),这些因素我们计为jC((S,T),(T)),是一个测试用例的特定要求。
两个测试用例之间的差别也就是C((S,T),(T))之间的差别。建立测试用例场景以及撤销用例场景是场景测试中工作量较大的一部分工作,本文从测试场景之间的包含关系入手,分析测试用例执行路径,优化测试顺序,合并测试用例,降低用例个数,提高用例的有效性。优化方式1:同一个测试用例可用于场景S1和场景S2的测试,假设场景S1包含场景S2,那么,若测试用例对S2执行失败,那么对场景S2执行必然失败。
依据此条结论,我们在进行场景测试时,从较简单到复杂场景逐步测试,a.若测试成功则进入子状态来测试更复杂场景,而未撤销任何语境对象,直接减少代价;b.若测试失败,可以判定从成功场景到失败场景的新加的断言失败,这样可以缩小范围,分析原因更加方便。
优化方式2:对于两个不同测试用例TC1和TC2,若TC1需测试状态S1,TC2需测试状态S2,且场景S1包含场景S2,则只需状态S1就能满足化TC1和TC2的测试要求。这种情况下,TC2测试S1与测试S2将得到相同的测试结果。所以可将两个测试用例合并为一个,能同时满足多个测试用例的需求,减少测试用例数量。
3场景法应用案例
3.1软件场景模型构建、根据软件需求规格说明和用户使用手册,从基于使用的角度提取软件系统的工作状态。根据应答软件使用场场景建立应用场景,分析出系统或程序功能的基本流及所有可能的备选流,绘制基本流与备选流图,是测试用例对应的最基本路径。备选流用带有箭头的弧线表示,表示需要特定条件出发的测试路径,经过用例的每条路径都由基本流和备选流来表示。
本软件系统具有两种工作模式,两种工作模式之间能够进行切换,每种工作状态下有不同使用场景。第一种工作模式下有基本流0A(S0A)、备选流1A(T1A)、备选流2A(T2A)、备选流3A(T3A)、备选流5(T5),其中备选流5能够切换到状态2,进入第二种工作模式。在第二种工作模式下,软件具有基本流0B(S0B)、备选流1B(T1B)、备选流2B(T2B)、备选流3B(T3B)、备选流4(T4)、备选流6(T6),其中备选流6(T6)能够切换至第一种工作模式。
根据软件场景状态图中的流程,设计不同的场景,对每一个场景生成相应的逻辑测试用例,根据逻辑测试用例设计实际测试用例。针对软件的工作流程,我们设计软件测试用例共22个,测试用例集覆盖场景状态图中的所有路径。
3.2场景路径切换优化
根据3.1章节设计的测试用例,软件场景测试需执行22个测试用例,这些用例包含了针对第一种工作模式的测试用例。根据测试用例先执行简单场景,再执行复杂场景的顺序,故测试时先执行第一种工作模式对应的用例。
利用上文中提到的优化方式2分析测试用例集变迁条件C((S,T),(T)),故测试用例TC9包含用例TC2、TC16的变迁条件,TC10包含用例TC3、TC17的变迁条件,TC17包含用例TC4、TC18的变迁条件,TC19包含用例TC5、TC12的变迁条件,TC20包含用例TC6、TC13的变迁条件,TC21包含用例TC7、TC14的变迁条件,TC22包含用例TC8、TC15的变迁条件,故只需执行复杂环境下的测试用例即可。优化后只需执行8个测试用例就可以满足覆盖所有路径的基本要求,满足测试充分性要求的同时提高了测试用例的有效性,提高了测试效率。
结束语
在本文中,通过基于场景测方法,使用用例驱动的场景法设计用例,提高了对软件产品使用质量的重视程度,从用户角度出发测试软件产品,更好的为用户服务。
本文中在场景法设计用例的基础上,提出优化方法,在保证测试充分性的前提下减少了测试用例的数量,提高测试的有效性,减少了测试工作量,提高了测试效率。测试结果得到了软件研制单位和软件用户的一致认可和高度好评。
参考文献
[1]王万金,韩成柱.一种基于场景的装备软件测试用例设计方法研究[J].舰船电子工程,2018,38(10):134-137.
[2]许昌年.软件场景测试法中场景切换路径的优化方法研究与应用[D].南京:南京理工大学,2015.
[3]盛晓娟,贾丽娟,姬鹏超.场景法在系统测试用例设计中的应用[J].计算机工程与设计,2016,37(7).
计算机方向刊物推荐:《计算机工程与设计》刊载内容:覆盖计算机工程与设计领域的各个层面,包括各型计算机及其系统的研究、研制、设计、开发应用等各方面的学术、技术论文。刊登基金项目论文,获奖课题论文,学术会议优秀论文,博士、硕士论文等。
转载请注明来自发表学术论文网:http://www.fbxslw.com/dzlw/20021.html