基于模型比较的软件测试用例生成方法研究
【摘要】:
随着计算机应用范围不断扩大,关键领域的计算机应用越来越多。从而对软件质量和可靠性提出了更高的要求。作为软件质量和可靠性保证最重要的技术手段,软件测试在软件开发中的地位日益重要。
软件工程相关技术的发展不断对软件测试技术研究提出了新的要求。软件工程技术对软件测试研究的影响表现在三个方面:软件开发过程模型决定了软件测试过程模型;软件体系结构决定了软件测试的层次划分;软件模型决定了软件测试用例生成方法。
软件测试用例生成是软件测试的核心问题。选择较好的测试准则,从而提高测试用例集合的发现软件错误的效率具有重要意义。为比较不同测试准则之间的优劣,研究人员引入了分割测试方法,并使用至少发现一个错误的概率来判定测试准则的优劣。然而分割测试无法解释实践中采用等价类方法、路径覆盖等常用的测试用例生成方法的优势所在。事实上,这些常用测试方法优于随机测试以及其他的分割测试方法的原因是,这些方法表达了测试人员对被测软件的错误预期。在测试时这些方法对输入域的分割使得处于同一子域的输入之间的测试相关性较高,不同子域间的测试相关性较低。这使得所产生的测试用例在分布和检错效果上更接近于理想测试,从而能够提高测试效率。
考虑到大多数软件错误可以归结为开发中需求与实现之间的差异,提出了基于模型比较的测试方法。该方法将软件需求和软件实现转换为用同一模型语言描述的模型,称从软件需求中得到的为需求模型,从软件实现中得到的为实现模型,用于描述它们的模型语言为基准模型。通过比较需求模型和实现模型,得到需求和实现之间的差异,并根据差异生成测试用例。
采用不同的基准模型可以产生不同的基于模型比较的测试方法。在使用等价类作为基准模型的基于模型比较的测试方法中,需求模型需要测试人员手工生成。而实现模型可以通过符号执行技术,分析被测程序的源代码,得到各执行路径的路径约束和处理函数,然后将路径约束和处理函数转换成为等价类模型。比较需求模型和实现模型可以得到的差异模型,可以用于测试用例生成。
在使用EFSM(扩展有限状态机,Extended Finite State Machine)模型作为基准模型的基于模型比较的测试方法中,通过将UML(统一建模语言,the Unified Model Language)模型状态图转换成为EFSM模型得到需求模型。而实现模型则需要先生成每一成员方法的每一执行路径的状态变迁对,然后生成类的状态集合以及状态变迁集合。状态集合以及状态变迁集合构成了原始状态图。得到原始状态图后,需要对原始状态图进行优化,以保证最后的实现模型是确定的、一致的。
实验结果表明,基于等价类的基于模型比较的测试方法和基于EFSM的基于模型比较的测试方法都是可行的。与相应的软件测试用例生成方法相比,具有较高的测试效率。
|
|
|
|
1 |
饶芳蕾,温晓慧;银行业务应用系统2000年测试[J];中国金融电脑;1998年09期 |
2 |
何新华,张威,赵宇,卢庆龄;软件可靠性数学仿真测试平台设计与研制[J];装甲兵工程学院学报;1998年01期 |
3 |
冯柳平,武小年,周德新;软件测试技术在医保管理系统中的应用[J];桂林电子工业学院学报;2001年01期 |
4 |
王毅,蔡建平;基于API测试的分布式测试框架的研究与实现[J];计算机工程与设计;2004年08期 |
5 |
段红玉,陈炎龙;程序调试技巧[J];郑州牧业工程高等专科学校学报;2005年02期 |
6 |
张元华;王峻;;通过软件测试提高航空电台软件质量[J];电讯技术;2006年03期 |
7 |
贺青春;叶柏龙;;完全路径覆盖测试法[J];矿业研究与开发;2007年01期 |
8 |
刘海鹏;;手机软件测试简介[J];科技咨询导报;2007年01期 |
9 |
刘杰;;软件测试与测试中的复用技术[J];科技资讯;2007年04期 |
10 |
李宝林;李志蜀;李斌;金虎;王莉;;基于Bayes的软件可靠性模型研究[J];计算机工程与科学;2007年10期 |
11 |
胡冬萍;;一种基于遗传算法的黑盒测试应用[J];科技广场;2008年08期 |
12 |
韩毅;周晏;;敏捷型软件开发方法与极限编程[J];科技信息;2009年14期 |
13 |
张卫祥;刘文红;;灰盒测试方法的实践与研究[J];飞行器测控学报;2010年06期 |
14 |
李华莹;于秀山;;软件自动化测试用例选择策略探讨[J];指挥信息系统与技术;2011年01期 |
15 |
高建华;辛敏杰;;影响GUI测试性能的两个因素:测试用例及测试预测[J];小型微型计算机系统;2011年09期 |
16 |
刘超;程序交互执行流程图及其测试覆盖准则[J];软件学报;1998年06期 |
17 |
冯华,王戟,徐锡山;基于使用模型的统计测试方法的研究[J];计算机工程;2002年12期 |
18 |
梁瀚;计算机软件系统测试方案研究[J];鞍山师范学院学报;2003年04期 |
19 |
李祎,陈嶷瑛;一种有效的软件测试模型[J];计算机工程与应用;2004年10期 |
20 |
宋春明,徐拾义;C++类测试描述语言的设计和实现[J];计算机工程;2004年12期 |
|