基于自学习控制算法优化软件测试用例的研究
- 格式:pdf
- 大小:1.30 MB
- 文档页数:4
若以 e (t) 表示软件某时刻测试缺陷, 在不同时间点软件系 统期望输出值 y( ) , 实际输出值为 y (t) , x (t) 表示每个测试过 d t 程中输入参数状态变量, u (t) 表示每时刻选取作用在软件系统 上控制策略。考虑到软件测试是一个不断回归循环往复的测 试过程, 并且第 j 次回归的每个时间点 t 上输出 y( ) 和行动 i t u( ) 都会影响下一个 t+1 时间点输出 y( ) , 整个测试过程可 i t i t+1 以转换为一个迭代控制过程, 如图 2 所示。
1
引言
目前软件规模越来越庞大, 软件测试也日益为大家所重
试目标, 如何设计最优测试用例集来实现软件自动化测试目 标 [2-4]。 Walcot 等 [5] 研究了分支覆盖测试中不同测试策略的选 取问题, 用复合泊松模型描述不同测试策略产生的分支覆盖 数, 均衡各种测试策略效率给出了相对应的停止准则; Cai[6-8]等 人使用控制理论将软件测试等转换为一个控制问题, 对软件 测试使用马尔可夫控制方法、 自适应控制等方法将被测软件 作为被控对象, 将软件测试策略作为控制器, 并能在线调整软 件测试策略。但这些研究仅针对测试脚本用例进行优化, 没 有考虑到测试过程是一个不断回归过程, 在每次回归测试中 如何持续优化测试用例是一个值得研究的问题。研究了在被 测软件参数动态变化条件下, 如何调节测试策略, 设计最优软 件测试用例, 快速检测并排除软件缺陷, 提出了一种测试系统 状态转移模型, 并给出了一类二维变因子自学习控制方法, 在 回归测试过程中快速学习软件过程缺陷, 加速了优化整个测 试回归过程。
0£t£T , 这里 T 为一次学习时间, N 为正整数, 且外部干扰 δξ j + 1(×)
初始误差为 0 (即 e j (0) = 0 ) , 且满足 I - CBk 2 < 1 , 则采用式
¥
λ
7 ) 学习控制律将保证该系统输出 y j (t) 当 j ® ¥ 时收敛于 y d (t) 。 δξ j + 1(t) = ξ j + 1(t) - ξ j (t), ( £ ε d(这里 j 为回归测试次数) , 证明 y d (t) - y j + 1(t) = y d (t) - [C exp( At) x j (0) +
[1]
2
Байду номын сангаас
软件测试状态转移矩阵模型
对于某被测软件系统, 图 1 给出了软件测试转化为控制问
基金项目: 广东省自然科学基金 (the Natural Science Foundation of Guangdong Province of China under Grant No.10151064101000011); 广东 省科技攻关计划 (the Key Technologies R&D Program of Guangdong Province, China under Grant No.2009Z2-D021)。 作者简介: 曾敏 (1983—) , 女, 硕士研究生, 研究方向软件测试; 黄颖 (1986—) , 女, 硕士研究生, 研究方向软件测试, 优化算法。 收稿日期: 2010-08-10 修回日期: 2010-10-14
曾 题的结构图[7]。
控制器 (测试策略) 控制
敏, 黄
颖: 基于自学习控制算法优化软件测试用例的研究
2011, 47 (3)
71
当不考虑外部测试不确定性干扰时, 由式 (1) 知
被控对象 (被测软件) 输出变量
u(t) = B+ ( ẋ (t) - Ax(t)) = ((CB)-1 ẏ (t) - B+ AC + y(t)) u d (t) = (CB) ẏ d (t) - B AC y d (t) e(t) = y d (t) - y(t)
视, 软件测试自动化程度也越来越高, 人们可以用多种方法设 计测试用例来开展测试工作。软件测试是一个不断的重复过 程, 通过回归测试过程来使测试用例日益完善。但如何减少 回归测试次数, 尽可能在有限的测试过程中尽量多地发现软 件缺陷, 或者选择合适的测试用例尽可能多地发现软件缺陷 是软件测试中研究中的热点问题, 因此软件测试优化方法主 要集中在选择优化测试用例, 加快回归测试过程两个这方 面。另外在测试过程中, 考虑到程序执行的连续性, 一个有效 的测试用例和程序执行状态, 与先前选取的测试用例和已经 检测的软件缺陷都是紧密相关的, 如何在有限测试用例中选 取最优化测试用例和测试资源, 充分利用测试脚本运行过程 中搜集到的测试信息, 设计合理的测试策略是一个值得研究 的问题。 在目前软件测试用例研究中, 一方面是从工程化的角度 研究软件自动化测试平台, 基于平台自动产生测试用例脚本 及测试脚本路径可达性等问题 ; 另一方面是研究给定一个测
u j + 1(t)
控制器 (测试策略 f (u j e j ) )
e j (t)
由递推最小二乘得增益阵 k (i, j) 估计为:
ì p(i j)Y (i j + 1)Y T (i j + 1) p(i j) ï p(i j + 1) = p(i j) ï I + Y (i j + 1)T p(i j)Y (i j + 1) ï ïk(i j + 1) = k(i j) + (12) í ï T ï Y ( i j + 1) p ( i j ) ï [u(i j + 1) - k(i j)Y (i j + 1)] ï I + Y T (i j + 1) p(i j)Y (i j + 1) î 这种递推算法不同于一般的最小方差参数估计, 式 (12) 的估计是沿学习轴 j 迭代进行的, 而不是通常的时间轴, 因此 可以不象自适应算法那样在线求解估计值, 而是在两次学习 间隔上离线地运算。正因为这种特点, 较为复杂的递推最小二 乘的运算时间对测试效果性能没有影响, 算法可以推广到较 为复杂测试流程, 而且在这种算法基础上可发展出更为复杂 的算法。下面定理给出了该学习控制律收敛性的必要条件。 定理 1 考虑式 (1) 的线性时变系统, 若满足每次回归测试
存储器
u j (t)
考虑到测试过程状态的离散性, 将式 (7) 写成离散形式, k1(i j)、 k 2 (i j) 可采用如下递推算法求出:
U T (i j) = [q u (i 1) q u (i 2) q u (i j)]
(8) (9) (10) (11)
被测对象 (被测软件)
图2
软件测试迭代控制问题转化图
整个测试过程可以以如下状态转移矩阵来描述: ẋ (t) = A(t) x(t) + B(t)u(t) + ξ (t) y(t) = C (t) x(t) x(0) = x0
(1)
这里 x (t) 、 u (t) 分别为 n × 1 维测试输入状态矢量和 m × 1 维控 制矢量, ξ (t) 为 n*1 维外部测试不确定性随机干扰。考虑到软 件测试是一个回归测试过程, 每一次回归程序执行过程都是 相同的, 因此系统矩阵 A (t) 、 B (t) 、 C (t) 严格满足: A(t + NT ) = A(t) B(t + NT ) = B(t) C (t + NT ) = C (t)
-1 + +
(3) (4) (5) (6)
图1
软件测试控制问题转化图
由式 (3) ~ (5) 得:
u d (t) = u(t) - B+ AC + e(t) + (CB)-1ė (t) C + 分别表示 B、 这里 B+、 C 的广义逆。当考虑使用如下学习控 制律: u j + 1(t) = u j (t) + k1(i j)e(t) + k 2 (i j)ė (t) (7)
基于自学习控制算法优化软件测试用例的研究
曾 敏, 黄 颖 ZENG Min, HUANG Ying
华南理工大学 计算机科学与工程学院, 广州 510006 College of Computer Science and Science, South China University of Technology, Guangzhou 510006, China E-mail: bearbearmin@ ZENG Min, HUANG Ying.Research on optimal software testing case based on self learning control puter Engineering and Applications, 2011, 47 (3) : 70-73. Abstract: This paper demonstrates an approach to optimize software testing by rapid fixing software bug with given software parameter uncertainty during regressive testing process.Taking software testing process into time-varied system control problem, a state transform matrix model is presented.The two dimension variable factor self learning strategy is used to get optimized test case.Simulation results show that the learning control strategy is better than random testing and Markov testing strategy, and can significantly reduce regressive test numbers and save test cost. Key words:software testing; state transforms matrix; self-learning control; convergence 摘 要: 研究了软件参数变化条件下, 在回归测试中以最快速度修复软件缺陷为目标的软件优化问题, 将软件测试过程转化为一