TA的每日心情 | 奋斗 2015-9-13 19:38 |
---|
签到天数: 1 天 连续签到: 1 天 [LV.1]测试小兵
|
白盒测试中的许多诸如控制流测试和数据流测试问题以及黑盒测试中的一些问题都可以归结为面向路径的测试数据生成问题(本文简称为问题Q),其非形式化描述为:给定一个程序P和P中一条路径W,设P的输入空间为D,求x∈D,使得P以x为输入运行,所经过的路径为W.
自动求解问题Q将有效地提高单元测试的效率.求解问题Q的实质在于约束系统的建立和求解.求解约束系统的主要困难之一在于其中所存在的非线性约束
Davis 1973年证明不存在能求解任意约束系统有效数值方法.
Wicker 1979年进一步证明不存在有效的算法,对于任意的P和W,能生成使W被经过的输入数据.尽管这些理论结果令人沮丧,但是实际应用的需要迫使人们进行研究,并提出各种方法求解问题Q.
1)随机法:基本思想是对输入数据空间D进行随机取样。
2)静态法:采用符号执行等方法将路径上的所有(判断)语句转换成约束系统,然后进行求解.
3)动态方法:基于程序实际运行,生成测试数据的过程是确定性
4)试探方法:遗传算法和模拟退火算法. |
|