版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、p4.1 白盒测试p4.2 黑盒测试p4.3 错误猜测p4.4 测试策略第4章 测试用例的设计p软件测试中最重要的因素是设计和生成有效的测试用例n 任何程序的测试必定是不完全的,所以很难做到完全发现软件中的错误,那么如何发现尽可能多的错误?p软件测试最关键的问题n 在给定的时间和成本约束下,在所有可能的测试用例中,哪个子集最有可能发现最多的错误?p采用某种策略设计测试用例n 随机输入测试:低效n 有策略的黑盒测试和白盒测试第4章 测试用例的设计p黑盒测试n边界值分析n等价类划分n因果图n判定表n错误猜测第4章 测试用例的设计设计方法p白盒测试n语句覆盖n判定覆盖n条件覆盖n判定/条件覆盖n多重
2、条件覆盖p语句覆盖:设计若干测试用例,运行被测程序,使得每一个可执行语句至少执行一次。p判定/分支覆盖:设计若干测试用例,运行被测程序,使得程序每个判断的取真分支和取假分支至少经历一次。p条件覆盖:设计若干测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。p判定/条件覆盖:设计若干测试用例,运行被测程序,使得判断中每个条件的所有可能取值至少执行一次,同时每个判断本身的所有可能判断结果至少执行一次。p多重条件覆盖:设计若干测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。4.1 白盒测试逻辑覆盖准则p例子4.1 白盒测试/被测试的程序段如下if
3、(a1 & b=0) x = x / a;if (a=2 | x1) x = x + 1;a1 &b = 0a=2 |x 1x = x / ax = x + 1ABCDEyesyesnonop 语句覆盖的测试用例(1个)n(2,0,4),(2,0,3) 覆盖acep 判定/分支覆盖的测试用例(2个)n方案1:(2,0,4),(2,0,3) 覆盖ace (1,1,1),(1,1,1) 覆盖abdn方案2:(2,1,1),(2,1,2) 覆盖abe (3,0,3),(3,1,1) 覆盖acd问题:如果将x1错写成x1真时为T1,否则为T1 条件b=0真时为T2,否则为T2对于第二个
4、判断:条件a=2真时为T3,否则为T3 条件x1真时为T4,否则为T4p条件覆盖的测试用例(2个)n 方案1:(2,0,4),(2,0,3) 覆盖ace T1,T2,T3,T4 (1,0,1),(1,0,1) 覆盖abd T1 ,T2, T3, T4 (2,1,1),(2,1,2) 覆盖abe T1, T2 , T3, T4n 方案2:(1,0,3),(1,0,4) 覆盖abe T1 ,T2, T3, T4 (2,1,1),(2,1,2) 覆盖abe T1, T2 , T3, T44.1 白盒测试测试用例设计p判定/条件覆盖的测试用例(2个)n(2,0,4),(2,0,3) 覆盖ace T1,
5、T2,T3,T4 (1,1,1),(1,1,1) 覆盖abd T1, T2 , T3, T4p多重条件覆盖(4个)n(2,0,4),(2,0,3) 覆盖ace T1,T2,T3,T4 (1,1,1),(1,1,1) 覆盖abd T1, T2 , T3, T4 (2,1,1),(2,1,2) 覆盖abe T1,T2,T3,T4 (1,0,3),(1,0,4) 覆盖abe T1, T2 , T3, T44.1 白盒测试测试用例设计p对包含每个判定只存在一种条件的程序的测试准则n设计出足够数量的测试用例,实现:l将每个判断的所有结果都至少执行一次p对包含多重条件判断的程序的测试准则n是设计出足够数量
6、的测试用例,将每个判断的所有可能的条件结果的组合4.1 白盒测试测试准则总结p以上的每种方法都能提供一组有用的测试用例,但都不能单独提供一个完整的测试用例集合,用以下策略可得到较好的测试结果:1. 如果规格说明中输入条件有明显的逻辑关系以及与结果的因果关系,应该首先使用因果图分析或判定表2. 在任何情况下都应该使用边界值分析方法,而且是对输入和输出边界进行的分析,用以产生一系列补充的测试用例3. 应为输入和输出确定有效和无效的等价类,在必要时对上面确认的测试用例进行补充4. 使用错误猜测技术增加更多的测试用例5. 针对上述测试用例检查程序的逻辑结构,使用判定覆盖、条件覆盖、判定/条件覆盖或多重
7、条件覆盖准则。如果为前4步确定的测试用例尚未满足覆盖准则,那么在可能的情况下,增加足够的测试用例,使覆盖准则得以满足。4.1 白盒测试测试策略p练习4.1 白盒测试if (g3) x = x / 3;if (g=0 | x1) x = x + 1;pNextDate函数的设计、实现和测试n 函数有3个参数:月份、日期和年;它们都具有整数值,且满足以下条件:l 1=月份=12l 1=日期=31l 1812=年=2012n 函数返回输入日期之后的那个日期;如果输入无效值,如2000年6月31日,输出指示相应变量超出取值范围;对于无效的日月年组合,如“1999年13月32日”输出“无效输入日期”。p
8、要求:n 每个人实现该函数,并设计一组测试用例n 两人一组,互相测试对方的程序n 提交源程序和测试用例报告,注明采用的测试用例设计技术,该用例发现的错误,并对测试效果进行简要分析4.1 白盒测试综合训练p4.2.1 等价划分p4.2.2 边界值分析p4.2.3 判定表p4.2.4 因果图4.2 黑盒测试p黑盒测试是最常用和最有效的软件测试技术p有效的黑盒测试需要软件的文档n需求文档或者产品说明书,通过这些了解输入什么能得到什么或者操作的结果n没有产品说明书时使用探索测试了解软件、设计测试、执行测试同时执行4.2 黑盒测试p通过性测试:确认软件至少能作什么(软件的基本功能),而不会考验其能力。软
9、件测试员并不需要想尽办法使软件崩溃,紧紧运用最简单、最直观的测试用例。p失效性测试:纯粹为了破坏软件而设计和执行的测试用例称为实效性测试(错误强制测试),它是蓄意攻击软件的薄弱环节。4.2 黑盒测试通过性测试和失效性测试p要从所有可能的测试用例中要找出某个小的子集,而且是可能发现最多错误的子集,精心挑选的测试用例还应该具备两个特征:n 它覆盖了大部分其他可能的测试用例对程序输入范围进行划分,将其划分为有限数量的等价类,就可以合理地假设测试每个等价类的代表性数据等同于测试该类的其他任何数据。即,如果等价类的某个输入发现了某个错误,该等价类的其他数据也应该能发现同样的错误,反之如果等价类的某个输入
10、不能发现错误,那么该等价类中的其他数据也不能发现错误。n 严格控制测试用例的增加每个测试用例必须体现尽可能多的不同的输入情况4.2.1 等价划分p第一步:确定等价类n 选取每个输入条件(通常是规格说明中的一个句子或短语),并将其划分为两个或多个组:有效等价类代表对程序的有效输入,无效等价类代表其他任何可能的输入。n 根据输入条件确定等价类的指导原则l 取值范围:一个有效等价类,两个无效等价类l 取值个数:一个有效等价类,两个无效等价类l 输入值的集合,且每个值处理不同:为每个值确定一个有效等价类和一个无效等价类l “必须是”:一个有效等价类,一个无效等价类l 如果有任何理由可以认为程序并未等同
11、地处理等价类中的元素,那么应该将这个等价类再划分为小一些的等价类4.2.1 等价划分设计测试用例p第二步:生成测试用例n为每个等价类设置一个不同的编号;n编写新的测试用例,尽可能多地覆盖那些尚未被涵盖的有效等价类,直到所有等价类都被测试用例所覆盖;n编写新的用例,覆盖一个且仅一个尚未被覆盖的无效等价类,直到所有无效等价类都被测试用例所覆盖。4.2.1 等价划分设计测试用例p例:某报表处理系统要求用户输入处理报表的日期,日期限制在2003年1月至2008年12月,即系统只能对该段期间内的报表进行处理,如日期不在此范围内,则显示输入错误信息。 要求:系统日期由年、月的6位数字字符组成,前四位代表年
12、,后两位代表月。p问题:如何用等价类划分法设计测试用例,来测试程序的日期检查功能?4.2.1 等价划分一个范例p等价类划分4.2.1 等价划分一个范例输入条件输入条件有效等价类有效等价类无效等价类无效等价类报表日期的类型及长度6位数字字符(1)有非数字字符 (4)少于6个数字字符 (5)多于6个数字字符 (6)年份范围在20032008之间 (2)小于2003 (7)大于2008 (8)月份范围在112之间(3)小于1 (9)大于12 (10)p为有效的等价类设计一个测试用例n对表中编号为1,2,3的3个有效等价类用一个测试用例覆盖:4.2.1 等价划分一个范例测试数据测试数据期望结果期望结果
13、覆盖范围覆盖范围200306输入有效输入有效等价类等价类(1)(2)(3)(1) 6位数字字符位数字字符(2) 年在年在20032008之间之间 (3) 月在月在112之间之间p每一个无效的等价类至少设计一个测试用例4.2.1 等价划分一个范例测试数据测试数据期望结果期望结果覆盖范围覆盖范围003MAY输入无效等价类(4)20035输入无效等价类(5)2003005输入无效等价类(6)200105输入无效等价类(7)200905输入无效等价类(8)200300输入无效等价类(9)200313输入无效等价类(10)p等价划分虽然优于随机选取用例,但不足之处在于忽略了某些特定类型的高效测试用例p经
14、验证明,考虑了边界条件的测试用例与其他测试用例相比,具有更高的测试回报率n 边界条件:输入和输出等价类中那些恰好处于边界、或超过边界、或在边界以下的状态P4849p边界值分析与等价划分的不同n 边界值分析需要选取一个或多个元素(而不是选任一个代表元素),以便等价类的每个边界都经过一次测试n 边界值分析不仅关注输入条件,还考虑从输出等价类设计测试用例4.2.2 边界值分析p边界值分析的通用指南1.输入条件规定了一个输入值范围:针对范围的边界设计测试用例,针对刚刚越界的情况设计无效测试用例2.输入条件规定了输入值的数量:针对最小数量、最大数量、最小数量少一、最大数量多一的情况设计测试用例3.对每个
15、输出条件应用1;是否产生超过输出范围的结果4.对每个输出条件应用2;5.如果程序的输入或输出是一个有序序列,则应该特别注意序列的第一个和最后一个元素6.边界值分析是具有创造性的方法,发挥聪明才智找出其他的边界条件4.2.2 边界值分析p次边界值(内部边界条件)n 普通的边界值在软件产品说明书或者在软件的使用过程中容易发现。而有些边界值在软件内部,最终用户几乎看不到,但是软件测试仍有必要检查,称为次边界条件,如数据的表示范围的边界。p默认、空白、空值、零值和无n 当软件要求输入时,根本没有输入任何内容,通常用默认值处理,或提示错误信息n 这些值与合法值和非法值都不同,应对它们建立单独的等价区间p
16、无效数据非法、错误、不正确和垃圾数据n 这些数据是失败测试的对象,没有实际的测试规则。4.2.2 边界值分析其他特殊测试数据4.2.2 边界值分析“报表日期”测试用例输入条件输入条件测试用例说明测试用例说明测试数据测试数据期望结果期望结果选取理由选取理由报表日期类型及长度1个数字字符5显示出错仅有1个合法字符6个数字字符200305输入有效类型及长度均有效5个数字字符20035显示出错比有效长度少17个数字字符2003005显示出错比有效长度多1有1个非数字字符 2003.5显示出错只有1个非法字符全是非数字字符MAY-显示出错6个非法字符年份范围年份为2003年200305输入有效最小年份年
17、份为2008年200805输入有效最大年份年份为2002年200205显示出错刚好小于最小年份年份位2009年200905显示出错刚好大于最大年份月份范围月份为1月200301输入有效最小月份月份为12月200312输入有效最大月份月份为0200300显示出错刚好小于最小月份月份为13200313显示出错刚好大于最大月份p边界值分析和等价划分的弱点是没有对输入条件的组合进行分析p判定表适合描述不同输入条件的组合,被测软件有以下特征时可以使用判定表n 输入变量之间存在逻辑关系n 输入与输出之间存在因果关系p判定表的结构n 条件部分(输入):列出条件和条件的组合,条件是根据输入和环境因素归结为真或
18、假的判定变量。n 动作部分(输出):列出了相应的条件组合下产生的响应。4.2.3 判定表p构造判定表n 确定判定变量输入n 确定要选择或控制的结果动作输出n 确定对特定的条件组合将产生哪些动作规则n个条件的判定表,理论上规则共有2n条,但是因为存在无关条件和不可能发生的条件,判定表的实际大小通常比理论上小。p从判定表得到测试用例n 规则中的条件部分对应输入,动作部分对应预计输出4.2.3 判定表p三角形问题的判定表(假设a,b,c都是范围内正数)4.2.3 判定表举例p从判定表得到的测试用例4.2.3 判定表举例p特点n与判定表一样,因果图考虑了输入的组合,有助于用一种系统的方法选择出高效的测
19、试用例集n因果图还可以指出规格说明的不完整性和不明确之处n不能生成全部应该被确定的有效测试用例,没有充分考虑边界条件,因此在由因果图生成测试用例时,可以一并考虑边界条件分析n因果图转换为判定表的过程比较复杂,可以借助自动化的工具4.2.4 因果图p因果图不善于处理较大的规格说明。p确定规格说明中的因果关系,并对每个因果编号n因:一个明确的输入条件或输入条件的等价类n果:一个输出条件或系统转换p分析规格说明的语义内容,并将其转换为连接因果关系的布尔图,即因果图p给图加上注解符号,即约束符号(某些原因/结果的组合在现实中不可能存在,需要对此进行说明)p仔细跟踪图中的状态变化情况,将因果图转换为一个有限项的判定表,表中的每一列代表一个测试用例p将判定表中的列转换成测试用例4.2.4 因果图生成测试用例p基本符号nidentity, NOT, AND, OR(图4-5 p36)n例子 (图4-6 p36)p约束符号nE约束(不同时为真),I约束(不能同时为零),O约束(有且仅有一个为真),R约束(输入a为1b必为1)(图4-8 p37)nM约束(图4-9 p38)l建立结果之间的约束关系(结果a为0b必为0)4.2.4 因果图常用符号4.2.4 因果图常用符号4.2.4 因果图常用符号p处理单价为5角钱的饮料自动售货机软件的规格说明:若投入5角或1元的硬币,压下橙汁或啤酒的按
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025江西上饶东南智慧技工学校工作人员招聘考试试题
- 2025汉川市中等职业技术学校工作人员招聘考试试题
- 成人失禁患者一次性吸收型护理用品临床应用专家共识总结2026
- 2026年超导材料技术突破报告及能源领域应用分析报告
- 2026年高端化妆品成分分析报告及未来五至十年个性化护肤市场报告
- 历史教学中AI模型解释性对教学效果影响分析教学研究课题报告
- 幼儿园教师观察记录工具跨文化效度研究-基于观察量表跨国验证数据分析深度研究
- 卡口系统施工方案
- 格力电器渠道改革修复竞争力出海与多品类构筑第二增长曲线
- 2026年绿色物流发展报告
- 2026年广西真龙彩印包装有限公司笔试题及答案
- (2026年)低钾血症诊治与管理专家共识解读
- 河南资本集团笔试题库
- 2026湖北神农架林区公安局招聘辅警22人笔试备考试题及答案解析
- 2026菏泽特殊教育职业学校公开招聘人员(2人)考试模拟试题及答案解析
- 全国数据资源调查报告(2025年)
- 2026年ESG(可持续发展)考试题及答案
- 2026年防治碘缺乏病日宣传课件
- 身骑白马 SSA 三声部合唱谱
- 2026年高级社会工作师押题宝典题库及1套完整答案详解
- 2026年辅警转正考试时事政治试题及答案
评论
0/150
提交评论