110 likes | 234 Views
绩效奖学金答辩. 姓 名:张智强( 2010 级 硕博连读 ) 导 师:张 健. 带 约束条件的组合测试生成 方法. SUT. Input1. Output. Pass ?. Input2. Check. Fail ?. Input3. 组合 测试是一种有效的黑盒测试方法 用于测试多参数系统 被测 系统被看做一个黑盒 多 个输入参数 每个参数有若干取值 有研究表明,在某些系统中,错误多是由少量几个参数相互作用引起的 多采用覆盖数组作为测试用例集 成对 测试 (pairwise testing)
E N D
绩效奖学金答辩 姓 名:张智强(2010级硕博连读) 导 师:张 健
带约束条件的组合测试生成方法 SUT Input1 Output Pass? Input2 Check Fail? Input3 • 组合测试是一种有效的黑盒测试方法 • 用于测试多参数系统 • 被测系统被看做一个黑盒 • 多个输入参数 • 每个参数有若干取值 • 有研究表明,在某些系统中,错误多是由少量几个参数相互作用引起的 • 多采用覆盖数组作为测试用例集 • 成对测试(pairwise testing) • 覆盖所有t个参数间的组合(t是事先给定的覆盖强度) • 测试用例数量少 • 错误覆盖率高
组合测试示例 自动咖啡机 4个参数
组合测试示例 咖啡溢出 糖不溶解 • 大多数错误都较简单,由少量参数的组合引起 • 如果能够测试到所有少量参数的组合,则我们能够达到很高的覆盖率 • 覆盖所有两两组合(2覆盖强度)——多样性 • 仅需9条测试用例
组合测试的参数约束 • 输入参数之间可能存在约束 • 浓缩咖啡只允许小杯 • 所有的测试用例都应当满足约束,否则某些测试用例会无效而无法被执行,使得某些参数组合不能被测到,无法达到覆盖要求 • 约束处理 • 如何判断所有的t组合中,哪些满足约束? • 判断当前的测试用例集是否已满足覆盖要求 • 如何有效地对参数进行赋值,避免过多的冲突,以提高生成效率?
基于伪布尔优化的组合测试用例生成 • 采用一次一行的生成策略(one-test-at-a-time) • 一次生成一条测试用例,覆盖尽量多未被覆盖的t组合,直到所有的t组合都被覆盖 • 生成每条测试用例,都是一个优化问题 • 伪布尔优化问题(0-1整数规划) • 将生成每条测试用例的问题编码为伪布尔优化问题,使用求解器计算结果 • 约束也可编码成伪布尔约束
成果 • 期刊论文: • Zhiqiang Zhang, Jun Yan, Yong Zhao, and Jian Zhang. “Generating combinatorial test suite using combinatorial optimization”, Journal of Systems and Software, accepted, 2014. (CCF B类) • 书籍: • Jian Zhang, Zhiqiang Zhang, and Feifei Ma. “Automatic Generation of Combinatorial Test Data”.Springer, 2014.
工具研发 开发了组合测试生成工具Cascade 设计了全新的组合测试模型描述语言 使得用户更加方便地描述被测系统的参数化模型、覆盖需求和约束 组合测试的易用性
成果 • 开发的组合测试生成工具和错误定位工具成功应用于与某单位的横向项目中,解决了甲方单位在软件测评过程中遇到的实际问题。
其他成果 • 申请专利: • 蒙睿, 张智强, 赵恒军.“一种多模式反馈控制系统在逐点收敛情况下安全初始状态的估计方法”. 已受理, 申请号:201310743417.2.