1、第四章通用测试技术二高效设计测试用例高效设计测试用例上一章内容回顾上一章内容回顾?黑盒测试和白盒测试黑盒测试和白盒测试?等价类划分方法等价类划分方法?边界值分析方法边界值分析方法?100 x2000?String 长度长度 前后前后 结束结束 取值范围取值范围1012019本章学习目标本章学习目标?掌握因果图法掌握因果图法?掌握通过测试和失败测试方法掌握通过测试和失败测试方法?掌握错误猜测方法掌握错误猜测方法?掌握随机测试方法掌握随机测试方法内容进度内容进度?因果图法因果图法?其他测试方法?通过测试和失败测试?错误猜测?随机测试?测试方法的选择因果图法提出问题因果图法提出问题?使用因果图法设计
2、测试用例测试两位数加法计算器使用因果图法设计测试用例测试两位数加法计算器因果图法解决问题因果图法解决问题?分析输入条件和输出条件分析输入条件和输出条件?输入输入?输入输入1:条件条件1:0=X=99 条件条件2:-99=X0 条件条件3:X99?输入输入2:条件条件1:0=X=99 条件条件2:-99=X0 条件条件3:X99?输出输出?正确计算正确计算?错误提示错误提示因果图法解决问题因果图法解决问题?分析、简化分析、简化并画出判定表并画出判定表输入输入1条件1条件2条件3条件4输入输入2条件1条件2条件3条件4输出输出T-T-T-T-T-T-T-T-T-T-T-T正确计算错误提示XXXXX
3、XXX因果图法解决问题因果图法解决问题?得到测试用例得到测试用例测试用例编号输入数值预期输出1234567898+99正确输出:197正确输出:0正确输出:-49正确输出:-79错误信息错误信息错误信息错误信息99+(-99)-99+(50)-34+(-45)-100+47100+(-31)0+(-123)(-1)+(123)因果图法小结因果图法小结?分析输入输出条件分析输入输出条件?判定表(分析、简化)判定表(分析、简化)?得出测试用例得出测试用例因果图法实战因果图法实战?案例:某厂工资发放案例:某厂工资发放描述、分析:描述、分析:?工资分为年薪制工资分为年薪制a1,月薪制,月薪制a2;?错
4、误程度分为普通错误程度分为普通a3,严重,严重a4;?工资为工资为a1的员工犯普通错误的扣工资的员工犯普通错误的扣工资2(b1),犯严重错误扣),犯严重错误扣工资工资4(b2););?工资为工资为a2的员工犯普通错误的扣工资的员工犯普通错误的扣工资4(b3),犯严重错误扣),犯严重错误扣工资工资8(b4););其中,其中,a1和和a2为互斥;为互斥;b1,b2和和b3,b4是互斥;是互斥;a3和和a4可以同时可以同时具备。具备。因果图法实战因果图法实战?案例:某厂工资发放(续)案例:某厂工资发放(续)输入输入a1a2a3a4输出输出b1TFTFXTFFTTFTTXTFFFFTTFFTFTFTT
5、TFTFFb2b3b4XXXXXX因果图法实战因果图法实战?案例:某厂工资发放(续)案例:某厂工资发放(续)因果图法因果图法?因果图的核心要点,参见教材因果图的核心要点,参见教材P31?条件和规则条件和规则?因果图的适用范围因果图的适用范围?适用于多种条件的组合适用于多种条件的组合?因果图的局限性因果图的局限性?软件规模软件规模?条件的顺序问题条件的顺序问题内容进度内容进度?因果图法?其他测试方法其他测试方法?通过测试和失败测试通过测试和失败测试?错误猜测?随机测试?测试方法的选择通过测试和失败测试通过测试和失败测试?通过测试通过测试?通过测试主要用于验证系统和它陈述的需求一致,确认软件至少能
6、做什通过测试主要用于验证系统和它陈述的需求一致,确认软件至少能做什么,一般通过分析规格需求说明书来设计测试用例。么,一般通过分析规格需求说明书来设计测试用例。?失败测试失败测试?为了破坏软件而设计和执行的测试案例称为失败测试或迫使出错测试。为了破坏软件而设计和执行的测试案例称为失败测试或迫使出错测试。?失败测试用于证明失败测试用于证明“一个系统不会做不需要它做的事情一个系统不会做不需要它做的事情”,同时也保证,同时也保证了系统的容错性。了系统的容错性。内容进度内容进度?因果图法?其他测试方法其他测试方法?通过测试和失败测试?错误猜测错误猜测?随机测试?测试方法的选择错误猜测错误猜测?错误猜测错
7、误猜测?错误猜测是基于经验和直觉推测程序中所有可能存在的各种错误,错误猜测是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例的方法。从而有针对性地设计测试用例的方法。?需要测试人员具备的技术:需要测试人员具备的技术:?掌握被测系统的知识,如设计方法或实现技术掌握被测系统的知识,如设计方法或实现技术有关的早期测试阶段的结果的知识有关的早期测试阶段的结果的知识测试类似或相关系统的经验测试类似或相关系统的经验典型错误的知识典型错误的知识通用的测试经验规则通用的测试经验规则内容进度内容进度?因果图法?其他测试方法其他测试方法?通过测试和失败测试?错误猜测?随机测试随机测试?测
8、试方法的选择随机测试随机测试?随机测试随机测试?如果让一百万只猴子在一百万只键盘上敲一百万年,它们最终就如果让一百万只猴子在一百万只键盘上敲一百万年,它们最终就可能写出莎士比亚话剧等巨著。可能写出莎士比亚话剧等巨著。内容进度内容进度?因果图法?其他测试方法?通过测试和失败测试?错误猜测?随机测试?测试方法的选择测试方法的选择如何选择测试方法如何选择测试方法?在任何情况下都必须使用边界值分析方法在任何情况下都必须使用边界值分析方法?用等价类划分方法补充一些测试用例用等价类划分方法补充一些测试用例?用错误猜测法再追加一些测试用例用错误猜测法再追加一些测试用例?如果程序的功能说明中含有输入条件的组合
9、情况,则如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用因果图法应在一开始就选用因果图法?如果程序某功能适合自动测试,可以采用自动测试以如果程序某功能适合自动测试,可以采用自动测试以及随机测试及随机测试如何选择测试方法实战一如何选择测试方法实战一?某保险公司承担人寿保险已有多年历史,该公司保某保险公司承担人寿保险已有多年历史,该公司保费计算方式为:投保额保险率,保险率又依点数费计算方式为:投保额保险率,保险率又依点数不同而有别,不同而有别,10点以上费率为点以上费率为0.6%,10点以下费点以下费率为率为0.1%。如何选择测试方法实战二如何选择测试方法实战二?有一个处理单价为有一
10、个处理单价为 5 角钱的饮料自动售货机,软件角钱的饮料自动售货机,软件测试用例的设计规格说明如下:测试用例的设计规格说明如下:若投入若投入 5 角钱或角钱或 1 元钱的硬币,押下橙汁或啤酒元钱的硬币,押下橙汁或啤酒的按钮,则相应的饮料就送出来的按钮,则相应的饮料就送出来;若售货机没有零钱找,则一个若售货机没有零钱找,则一个显示零钱找完的红灯亮,这时在投入显示零钱找完的红灯亮,这时在投入 1 元硬币并押下按钮元硬币并押下按钮后,饮料不送出来而且后,饮料不送出来而且 1 元硬币也退出来;若有零钱找,则显元硬币也退出来;若有零钱找,则显示零钱找完的红灯灭,在送出饮料的同时退还示零钱找完的红灯灭,在送出饮料的同时退还 5 角硬币。角硬币。”本章内容小结本章内容小结通过本章的学习,将:通过本章的学习,将:?掌握因果图法掌握因果图法?其他测试技术其他测试技术?通过测试和失败测试通过测试和失败测试错误猜测错误猜测随机测试随机测试?选择测试方法选择测试方法