基于蕴含关系的场景测试法路径优化方法研究
方案可选:
方案1:子图分割,形成多个连通子图,再分别对各连通子图按情形2处理。
方案2:在图中添加第2.1节讨论的简单切换边,每条边添加边权值,边权值表示切换代价,蕴含边的权值是新建对象和转入子状态操作的代价,形成一个赋权有向图,再求解货郎担问题,即遍历所有场景一次且仅一次,而且路径边权之和最小。
情形2,连通。求最长路径P,然后在图G中去掉P中结点和边,剩下子图若连通则继续求最长路径,若不连通则按情形1的子图分割处理。
与其他相关方法进行比较见表1。
4 实例验证
将该方法应用于一个软件测试实例,被测功能是开发人员持续上传新版本移动应用程序,使移动用户能持续更新版本。
功能需求:对于一个移动应用程序,服务器仅保留最新版本,包括一个apk文件,一个xml文件记录当前版本号以及版本说明。apk的版本号应与xml中版本号一致。开发人员上传新版本时,应在页面上输入新版本号及版本说明,然后上传apk文件。页面输入信息将记录到xml文件中。
根据以上功能需求可识别该测试的基本流与备选流,描述如表2所示。
将基本流和备选流组合形成9个测试场景,如表3所示。分析场景间蕴含关系,形成场景蕴含图,如图3所示。为展示清楚,省略一些间接蕴含关系。对图3计算最长路径:场景6→场景5→场景7→场景1→场景4→场景8→场景9。该路径未覆盖场景3和2。根据第3节讨论应构建赋权有向图。
先确定权值量化规则如下:
(1) 添加或修改一个页面属性权值为1;
(2) 打包apk权值为5;
(3) 设置网络权值为3。
然后构建赋权有向图,如图4所示。
对图4再计算路径:场景6→场景5→场景7→场景1→场景4→场景8→场景3→场景2→场景9,此路径边权和为37。若9个场景简单随机选择,经计算其平均边权和为106。此实例的优化率为[106-37106]=65%。采用文献[5]的优化率为44%。
5 结 语
本文从测试场景的结构特征的角度,定义了场景蕴含关系,基于蕴含关系提出一种多场景测试路径优化方法,并给出针对场景蕴含图SIG的系统化解决方法。该方法适用于多场景测试,尤其是场景切换代价较大的嵌入式分布式系统测试。
参考文献
[1] 杜庆峰.高级软件测试技术[M].北京:清华大学出版社,2011.
[2] JACOBSON I. Object oriented software engineering: a use case driven approach [M]. USA: ACM Press, 1992.
[3] JACOBSON I. Basic use⁃case modeling [J]. The Road to the Unified Software Development Process, 2000, 18: 167⁃172.
[4] KIM Y, CARLSON C R. Scenario based integration testing for object⁃oriented software development [C]// Proceedings of 1999 Eighth Asian Test Symposium. [S.l.]: IEEE, 1999: 283⁃288.
[5] 潘建勇,陈邦兴.基于场景的测试用例设计方法研究[J].通信技术,2012,44(12):77⁃80.
[6] 刘春玲,雷海红.基于场景的信息系统黑盒测试方法[J].信息与电子工程,2012,10(4):509⁃512.
[7] 刘佳,尹治本.基于对象状态的面向对象软件测试方法研究[J].电脑知识与技术,2008,4(35):2169⁃2170.
[8] 方世昌.离散数学[M].北京:高等教育出版社,2000.
[9] ADLEMAN L M. Molecular computation of solutions to combinatorial problems [J]. Science⁃AAAS⁃Weekly Paper, 1994, 266(5187): 1021⁃1023.
推荐访问: 蕴含 路径 场景 优化 关系