《软件工程教学课件chapter18.ppt》由会员分享,可在线阅读,更多相关《软件工程教学课件chapter18.ppt(39页珍藏版)》请在第壹文秘上搜索。
1、1第18章 测试传统的应用系统2可测试性n可操作性有效地操作n可观察性每个测试用例的结果都是易观察的n可控制性测试能被自动化执行和优化的程度n可分解性有针对的测试n简单性减少复杂的体系结构和逻辑以简化测试n稳定性测试过程需求变更不经常发生n易理解性对设计的较好理解3什么是“好”的测试n好的测试有较高的发现错误的可能性n好的测试是不冗余的n好的测试应该既不简单也不太复杂4内部视角和外部视角n任何工程化的产品(以及大多数其他东西)都可以采用以下两种方式之一进行测试:n了解已设计的产品要完成的指定功能,可以执行测试以显示每个功能是可操作的,同时,查找在每个功能中的错误;n了解产品的内部工作情况,可以
2、执行测试以确保“所有的齿轮吻合”即内部操作依据规格说明执行,而且对所有的内部结构已进行了充分测试。5测试用例设计流图表示n简单的控制流表示方法6流程图与流图7复合逻辑89穷举设计10选择测试选择路径选择路径Selected path11软件测试方法策略白盒方法黑盒方法MethodsStrategieswhite-boxmethods black-box methods12白盒测试13为什么要覆盖?环复杂性n对于流图G环复杂性V(G)定义如下nV(G)=E-N+2nV(G)=P+1n其中E为流图的边数,N为流图的结点数。P为包含在流图G中的判定结点数。1415基本路径测试首先,我们计算出环复杂性
3、:首先,我们计算出环复杂性:简单决策数+1 或或封闭区域数+1在这个例子中,V(G)=416环复杂性17基本路径测试18基本路径测试说明例1920导出测试用例n总结n以设计或源码为基础,画出相应的流图。n确定所得流图的环复杂性。n确定线性独立路径的基本集合。n准备测试用例,强制执行基本集合中的每条路径。21控制结构测试n条件测试通过检查程序模块中包含的逻辑条件进行测试用例设计的方法n数据流测试根据变量的定义和使用位置来选择程序测试路径22循环测试23循环测试:简单循环24循环测试:嵌套循环25黑盒测试26黑盒测试n如何测试功能的有效性?n如何测试系统的行为和性能?n哪种类型的输入会产生好的测试
4、用例?n系统是否对特定的输入值特别敏感?n如何分离数据类的边界?n系统能承受什么样的数据速率和数据量?n特定类型的数据组合会对系统运行产生什么样的影响?27等价类划分28等价类样本划分等价类的方法n1)在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。如:输入值是学生成绩,范围是0100;29划分等价类的方法n2)在输入条件规定了输入值的集合或者规定了必须如何的条件的情况下,可确立一个有效等价类和一个无效等价类;n 3)在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。n 4)在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值
5、分别处理的情况下,可确立n个有效等价类和一个无效等价类。n 例:输入条件说明雅典娜的圣斗士:钢铁、青铜、白银、黄金四种之一,则分别取这四种这四个值作为四个有效等价类,另外把四种圣斗士之外的任何圣斗士作为无效等价类。30划分等价类的方法n 5)在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则);n 6)在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类。31例n.设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月2049年12月,并规定日期由6位数字字符
6、组成,前4位表示年,后2位表示月。现用等价类划分法设计测试用例,来测试程序的日期检查功能。32例n1)划分等价类并编号,下表等价类划分的结果33输输入等价入等价类类有效等价有效等价类类无效等价无效等价类类日期的类型及长度6位数字字符有非数字字符少于6位数字字符多于6位数字字符年份范围在19902049之间小于1990大于2049月份范围在0112之间等于00大于12例n2)设计测试用例,以便覆盖所有的有效等价类在表中列出了3个有效等价类,编号分别为、,设计的测试用例如下:测试数据 期望结果 覆盖的有效等价类 200211 输入有效 、34例n 3)为每一个无效等价类设计一个测试用例,设计结果如
7、下:测试数据 期望结果 覆盖的无效等价类 95June 无效输入 20036 无效输入 2001006 无效输入 198912 无效输入 200401 无效输入 200100 无效输入 200113 无效输入 3536边界值分析边界值分析指导原则n若输入条件指定为以a和b为边界的范围,则测试用例应该包括a和b,略大于和略小于a和b;n若输入条件指定为一组值,则测试用例应当执行其中的最大值和最小值,以及略大于和略小于最大值和最小值的值;n指导原则1和2也适用于输出条件;n若内部程序数据结构有预定义的边界值,一定要设计测试用例,在其边界处测试数据结构3738基于模型的测试n分析软件的已有行为模型或创建一个行为模型。n回忆一下,行为模型指明软件是如何响应外部事件或刺激的。n遍历行为模型,并标明促使软件状态之间进行转换的输入。n输入将触发事件,使转换发生。n评估行为模型,并标注当软件在状态之间转换时所期望的输出。n运行测试用例。n比较实际结果和期望结果,并根据需要进行调整。39软件测试模式n测试模式可以采用与设计模式(第12章)同样的描述方式。n举例:模式名称:场景测试场景测试 摘要:一旦已经执行了单元测试,就需要确定软件是否以让用户满意的方式执行。场景测试场景测试描述一种从用户的角度测试软件的技术。在这个层次上的失败表明软件不能满足用户的可见需求。Kan01