基于蕴含关系的场景测试法路径优化方法研究

基于蕴含关系的场景测试法路径优化方法研究

ID:25256805

大小:66.00 KB

页数:11页

时间:2018-11-19

基于蕴含关系的场景测试法路径优化方法研究_第1页
基于蕴含关系的场景测试法路径优化方法研究_第2页
基于蕴含关系的场景测试法路径优化方法研究_第3页
基于蕴含关系的场景测试法路径优化方法研究_第4页
基于蕴含关系的场景测试法路径优化方法研究_第5页
资源描述:

《基于蕴含关系的场景测试法路径优化方法研究》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、基于蕴含关系的场景测试法路径优化方法研究严悍,许昌年,朱文,丁锋,王宇(南京理工大学计算机科学与工程学院,江苏南京210094)摘要:针对场景测试法中多场景切换代价优化问题,在复合状态分析、逻辑蕴含概念基础上,从测试场景结构分解的角度,给出状态蕴含和场景蕴含关系的定义及推论,由场景蕴含形成场景蕴含图SIG,然后采用图论方法求解优化路径。给出系统化处理方法,并与其他方法比较。最后实例验证该方法的有效性。关键字:场景测试法;蕴含关系;路径优化;场景蕴含图;状态蕴含中图分类号:TN911-34;TP311文献标识码:A:1004-373X(2015)12-0118-05

2、收稿日期:2014-12-12基金项目:国家自然科学基金(61300053)0引言场景测试法[1](ScenarioTest)也称为用例测试法(UseCaseTest),是一种软件黑盒测试方法,广泛用于复杂交互式软件测试,尤其适用于嵌入式软件的分布式测试。分布式测试中人员、设备和测试对象都具有特定的地理分布要求,导致测试场景的构建和撤销代价较大。如何通过减少场景数量、避免重建场景、优化场景切换路径来减少代价,提高测试效率,已成为一个重要且亟待解决的问题。场景测试法依据测试需求形成多个不同测试场景。测试实施中先建立场景、执行测试用例、撤销场景,再建下一个场景,如此循

3、环直到完成所有场景。对于多场景执行次序目前缺乏科学有效的定义和方法指导。多场景执行次序如果选择不当,将导致重复建设和浪费。当测试失败时往往需要重建多个场景后重测,代价更大。Jacobson在文献[2-3]中提出用例驱动的软件工程思想,在此基础上IBMRational公司在RUP2000中提出场景测试法。该方法未说明多场景执行的次序。文献[4]采用用例行为矩阵度量场景的优先级,通过该优先级对多个场景进行排序和路径合并,从而减少测试代价。文献[5]先依据用例事件流建立事件有向树,然后对该树进行路径搜索,最后合并子路径,提高场景重用率。文献[6]依据业务流选择部分场景优

4、先测试,减少测试代价的同时保证功能可用性。以上研究大多侧重于测试场景的行为特征,而忽视场景结构特性。本文通过研究测试场景结构、复合状态分析、逻辑蕴含概念,通过状态蕴含和场景蕴含关系,探索一种新思路来减少多场景切换代价。1测试场景的构成与场景蕴含首先分析场景简单切换的问题,给出状态蕴含和场景蕴含的关系。1.1测试场景的简单切换在一般场景测试法中,测试一个场景s1前构建该场景,测试完成后需撤销该场景。场景切换就是撤销前一个场景并构建下一个场景的过程,如图1所示。图1中假设场景s1的构建代价为b1,撤销代价为d1,场景s2的构建代价为b2,撤销代价为d2,那么在由s1切

5、换到s2时,切换代价可量化为d1+b2,由s2切换到s1时,代价为d2+b1。这种切换称为简单切换。这种切换可能导致重复构建/撤销。以s1切换到s2为例,如果s1中的部分对象在s2中也要使用,那么切换时就额外增加了撤销和重建的代价。简单切换的好处是可在任意两个场景之间进行切换,缺点是代价高。将场景作为结点,简单切换作为有向边,切换代价作为边权值,就可形成一个赋权有向图,而且该图是有向完全图。基于该图选择任何路径都无法得到优化,原因是简单切换边不能表示场景之间内在的蕴含关系。1.2场景和状态蕴含关系定义1:测试场景。一个测试场景s是针对一个或几个用例的测试需求,由一

6、组语境对象组成的执行环境,这些对象具有特定的类型、个体及其状态的要求。场景s的语境对象的集合记为c(s)。图2表示测试场景中的语境对象的性质。图2中一个测试场景包含一个或多个语境对象,而且每个语境对象都具有类型、个体及其状态的限定。语境对象按类别可划分为:测试人员、测试设备、测试对象。其中,测试对象可能是一套受测软件,或者一组构件,或者一组对象,或者单个对象(最简单场景)。由定义1可知,两个测试场景之间的差别就是其语境对象之间的差别,即对象类型、对象个体及其状态的差别。下面分析对象状态之间关系及其对测试用例(testcase,下称测例)执行的作用机制。UML状态机

7、定义了一个对象的2个状态s1s2之间可能具有子状态的复合关系。假设s1是s2的一个子状态,若处于s1态则必处于s2态,反之不然[7]。定义2:状态蕴含。设一个语境对象有状态s1和s2,若s1是s2的一个子状态,则s1s2有状态蕴含关系,记作s1→s2。直观理解,若s1→s2,则s2态表示较简单场景,s1态较复杂且具有更多属性限制要求,即针对s1态测试的判定断言比针对s2更多。推论1:一个测例tc对s1s2态分别测试,有s1→s2,若s2测试失败,则s1也失败,记为fai(ltc,s2)→fai(ltc,s1)。直观理解,若较简单场景测试失败,则较复杂场景也失败。证

8、明,因s1

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。