测试方法的选择.ppt
3.8测试方法的选择测试方法的选择3.8测试方法的选择测试方法的选择l具体的黑盒测试用例设计方法包括等价类划分法、边界从值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等等。这些方法都是比较实用的,但具体工作中要采用什么方法,需要针对项目的特点加以适当的选择。在实际高水平的测试工作当中,往往需要综合使用各种方法以有效的提高测试效率和测试覆盖度。3.8测试方法的选择测试方法的选择l为了最大程度地减少测试遗留的缺陷,同时也为了最大限度地发现存在的缺陷,在测试实施之前,测试者必须确定将要采用的测试策略和测试方法,并以此为依据制定详细的测试方案。通常,一个好的测试策略和测试方法必将给整个测试工作带来事半功倍的效果,从而充分利用有限的人力和物力资源,高效率、高质量地完成测试。3.8测试方法的选择测试方法的选择如何才能确定好的测试策略和测试方法,通常,在确定测试方法时,应遵循以下原则:l根据程度的重要性和一旦发生故障将造成的损失来确定测试等级和测试重点。l认真选择测试策略,以便能尽可能少地使用测试用例,发现尽可能多的程度错误。因为一次完整的软件测试过后,如果程度中遗留的错误过多并且严重,则表明该次测试是不足的,而测试不足则意味问着让用户承担隐藏错误带来的危险,但测试过度又会带来资源的浪费。因此,测试需要找到一个平衡点3.8测试方法的选择测试方法的选择以下介绍的是种测试用例设计方法的综合策略原则,可灵活运用。1.首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限工,这是减少工作量和提高测试效率最有效的方法。2.在任何情况下,都必须使用边界值分析法。经验表明,用这种方法设计出的测试用例发现错误的能力最强。3.8测试方法的选择测试方法的选择3.可以使用错误推测法追加一些测试用例。这需要依靠工程师和智慧和经验。4.对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当再补充足够的测试用例。5.如果程序的功能说明中含有输入条件的组合情况,则一开始就可以选用因果图法和判定表驱动法。3.8测试方法的选择测试方法的选择6.对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果。7.利用功能图法可以通过不同时期条件的有效设计不同的测试数据。8.对于业务流清晰的系统,可以利用场景法贯穿整个测试案例设计过程,在案例中综合使用各种测试方法。3.9黑盒测试案例运用n保险公司计算保费费率的程序保险公司计算保费费率的程序 某保险公司的人寿保险的保费计算方式为:投保额保险费率其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如下:年龄年龄 性别性别婚姻婚姻抚养人数抚养人数 20392039 40594059 其它其它 M M F F 已婚已婚 未婚未婚 1 1人扣人扣0.50.5点点 最多扣最多扣3 3点点(四舍五入取整)(四舍五入取整)6 6点点 4 4点点 2 2点点 5 5点点 3 3点点 3 3点点 5 5点点计算保费费率的程序(1)分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。n年龄:一位或两位非零整数,值的有效范围为199n性别:一位英文字符,只能取值M或Fn婚姻:字符,只能取值已婚或未婚n抚养人数:空白或一位非零整数(19)n点数:一位或两位非零整数,值的范围为199(2)根据(1)中的等价类表,设计能覆盖所有等价类的测试用例。输入条件输入条件有效等价类有效等价类编号编号无效等价类无效等价类编号编号年龄年龄2039岁岁14059岁岁2119岁岁6099岁岁3小于小于112大于大于9913性别性别单个英文字符单个英文字符4非英文字符非英文字符14非单个英文字符非单个英文字符15M5除除M和和F之外之外的的其它单个字符其它单个字符16F6婚姻婚姻已婚已婚7除除已婚已婚和和未婚未婚之外的其它字符之外的其它字符17未婚未婚8抚养人数抚养人数空白空白9除空白和数字之外除空白和数字之外的其它字符的其它字符1816人人10小于小于11969人人11大于大于920测试用例测试用例编号编号输入数据输入数据预期输出预期输出年龄年龄性别性别婚姻婚姻抚养人数抚养人数保险费率保险费率127F未婚未婚空白空白0.6%250M已婚已婚20.6%370F已婚已婚70.1%40M未婚未婚空白空白无法推算无法推算5100F已婚已婚3无法推算无法推算699男男已婚已婚4无法推算无法推算71Child未婚未婚空白空白无法推算无法推算845N已婚已婚5无法推算无法推算938F离婚离婚1无法推算无法推算1062M已婚已婚没有没有无法推算无法推算1118F未婚未婚0无法推算无法推算1240M未婚未婚10无法推算无法推算决策表测试应用案例n测试以下程序:该程序有三个输入变量month、day、year(month、day和year均为整数值,并且满足:1month12和1day31),分别作为输入日期的月份、日、年份,通过程序可以输出该输入日期在日历上隔一天的日期。例如,输入为2007年11月29日,则该程序的输出为2007年12月1日。(说明:有31天的月份(1,3,5,7,8,10,12);有30天的月份(4,6,9,11);有29天的月份(闰年的2月);有28天的月份(非闰年的2月))。决策表测试应用案例n1)分析各种输入情况,列出为输入变量month、day、year划分的有效等价类(即列出所有的条件桩)。n答:(1)month变量的有效等价类:m1:month=4,6,9,11m2:month=1,3,5,7,8,10m3:month=12m4:month=2n(2)day变量的有效等价类:d1:1day26d2:day=27d3:day=28d4:day=29d5:day=30d6:day=31n(3)year变量的有效等价类:y1:year是闰年y2:year不是闰年决策表测试应用案例n2)分析程序规格说明,结合以上等价类划分的情况给出问题规定的可能采取的操作(即列出所有的动作桩)。n答:a1:day+2a2:day=2a3:day=1a4:month+1a5:month=1a6:year+1习题1、某城市电话号码由三部分组成,分别是:地区码空白或三位数字;前缀非0或1开头的三位数字;后缀4位数字。假定被测程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的电话号码。要求:(1)请选择适当的黑盒测试方法,写出选择该方法的原因,并使用该方法的步骤,给出测试用例表。(2)如果所生成的测试用例不够全面,请考虑用别的测试方法生成一些补充的测试用例。多于多于3位数字位数字少于少于3位数字位数字有非数字字符有非数字字符 空白空白3位数字位数字地区码地区码编号编号无效等价类无效等价类编号编号有效等价类有效等价类输入条件输入条件前缀前缀200999有非数字字符有非数字字符起始位为起始位为0起始位为起始位为1少于少于3位数字位数字多于多于3位数字位数字后缀后缀4位数字位数字有非数字字符有非数字字符少于少于4位数字位数字多于多于4位数字位数字341256789101112131415解答:测试用例测试用例编号编号输入数据输入数据预期输出预期输出地区码地区码前缀前缀后缀后缀1空白空白1234567接受(有效)接受(有效)21238059876接受(有效)接受(有效)320A1234567拒绝(无效)拒绝(无效)4332345678拒绝(无效)拒绝(无效)512342344567拒绝(无效)拒绝(无效)61232B31234拒绝(无效)拒绝(无效)71230131234拒绝(无效)拒绝(无效)81231231234拒绝(无效)拒绝(无效)9123231234拒绝(无效)拒绝(无效)1012323451234拒绝(无效)拒绝(无效)111232341B34拒绝(无效)拒绝(无效)1212323434拒绝(无效)拒绝(无效)1312323423345拒绝(无效)拒绝(无效)覆盖等价类覆盖等价类1,3,42,3,456789101112131415