边界测试理论与实践_第1页
边界测试理论与实践_第2页
边界测试理论与实践_第3页
边界测试理论与实践_第4页
边界测试理论与实践_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、边界测试理论与实践操作维护/测试工具室 谭晓松 定义 1)边界范围的测试)边界范围的测试 2)边界点(上)的测试)边界点(上)的测试 测试范围 1)一个特定的值)一个特定的值 2)一个数值域)一个数值域 3)一组相关值()一组相关值(enum 类型)类型) 4)一个布尔条件)一个布尔条件边界测试不仅仅只是数值范畴上的测试! 测试方法 1 1)如何把漫无边际的随机测试变成针锋相对的测)如何把漫无边际的随机测试变成针锋相对的测试?试? 2 2)如何尽可能用少量有代表性的用例代替大量内)如何尽可能用少量有代表性的用例代替大量内容相似的测试?容相似的测试? 3 3)如何判断所有的情况都测试到了?)如何

2、判断所有的情况都测试到了? 实现测试的高效性、经济性、完备性!实现测试的高效性、经济性、完备性! 定义 1)等价类划分是一种典型的黑盒测试方法。 2)所谓等价分类,就是把输入数据的可能值划分为若干等价类,使每类中的任何一个测试用例都能代表同一等价类中的其他测试用例。 3)如果从某一等价类中任意选出一个测试用例未能发现程序的错误,就可以合理地认为在该类中其他测试用例也不会发现程序的错误!反之亦然。 实质:对揭露程序中的错误来说,实质:对揭露程序中的错误来说,集合中的每个输入条件是等效的!集合中的每个输入条件是等效的!类别:类别: 1)有效等价类: 有效等价类,指对程序有意义的、合理的输入数据所构

3、成的集合。在具体问题中,有效等价类可以是一个,也可以是多个。 2)无效等价类: 无效等价类,指对程序无意义的、不合理的输入数据所构成的集合。对于具体的问题,无效等价类至少应有一个,也可能有多个。 在考虑在考虑划分划分等价类时,等价类时,必须必须注意区别注意区别这这两种不同的情况两种不同的情况! 问题:如何确定等价类?问题:如何确定等价类? 划分原则 1)输入条件代表一个范围或是需要特定的值(例如:某输入项值必须要求是100):确定一个有效等价类和两个无效等价类。 2)输入条件代表集合的某个元素或是布尔式:确定一个有效等价类和一个无效等价类。 3)如果我们确知,已划分的等价类中各元素各元素在程序

4、中的处理方式是不同的:则应将此等价类进一步划分成更小等价类。 确定用例方法 首先为每个等价类编号,然后按以下方法确定用例: 1)设计一个测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类。重复这一步,使所有有效等价类均被测试用例覆盖; 2)为每一个无效等价类至少设计一个测试用例,该用例只覆盖一个无效等价类。重复这一步,使所有无效等价类均被覆盖。 问题:有何特点?问题:有何特点?Why? 特点 1)允许多个有效等价类合用一个测试用例减少减少测试次数,提高测试效率;测试次数,提高测试效率; 2)每一个无效等价类至少要用一个测试用例测测试完备性,防止漏掉某一类错误;试完备性,防止漏掉某一类错误; 3)

5、每次只覆盖一个无效等价类如果使用一如果使用一个测试用例可发现多个缺陷,则可能个测试用例可发现多个缺陷,则可能在测试中只发现其中的一个,另一些在测试中只发现其中的一个,另一些被忽视、掩盖。被忽视、掩盖。 小节 1)优点:等价类划分法能够全面、系统地考虑黑盒测试的测试用例设计问题; 2)缺点:没有注意选用一些“高效的”、“有针对性的”测试用例。 问题:如何解决?问题:如何解决? 解决之道: 引入“边界值分析法” 定义 1)边界值分析是一种补充等价划分的测试用例设计技术。 2)所谓边值分析法,是指列出单元功能、输入、状态及控制的合法边界值和非法边界值,设计测试用例,包含全部边界值的方法。 3)典型地

6、包括IFIF语句中的判别值语句中的判别值,定义域、值定义域、值域边界域边界,空或畸形输入空或畸形输入,末受控状态末受控状态等。 实质:实质:边值分析法边值分析法就是设计使得就是设计使得被测程序能在边界值及其附近运行的被测程序能在边界值及其附近运行的测试用例!测试用例! 特点 1)边值分析法不是“相同相同类找一个例子类找一个例子”的方法,而是以边界情况的处理作为主要目标专门设计测试用例的方法。 2)边值分析不仅考查输入的边值,也要考虑输输出的边值出的边值(How do?How do?)。 Why do Boundary Value Analysis? 实践表明,许多软件在数组长度数组长度、循环循

7、环次数、次数、数据结构数据结构以及输入输出数据输入输出数据的边界边界值附近值附近程序出错的概率往往较大。 运行这个区域的测试用例,发现错误的运行这个区域的测试用例,发现错误的概率很高!概率很高! 设计用例的原则 1)如果输入条件是取值范围,则应以该范围的边界内及刚刚超出范围的边界外的值,包括边界,作为测试用例; 2)如果输入条件规定了值的个数(特定值),则分别对最大、最小及稍小于最小、稍大于最大个数作为测试用例(例如:规定例如:规定一个表中只能插入一个表中只能插入5 5条记录条记录); 3)如果输入条件代表一组值(一个集合),测试用例应当执行其中的最大值和最小值,还应当测试略大于最小值和略小于

8、最大值的值; 4)如果程序中代表的输入或输出域是个有有序的集合序的集合(例如:顺序文件、表格等)就应注意选取有序集的第一个和最后一个元素作为测试用例; 5)如果程序数据结构(例如:数组)有预定义的边界,则 要测试其边界的数据项;其边界的数据项; 例如,对于数组例如,对于数组int a10,测试的下标分为2组: a. (1、0、1) b. (8、9、10) 关注越界,否则关注越界,否则程序就可能向程序就可能向申请申请的空间以的空间以外读写数据外读写数据! 6)如果对程序数据结构(变量)有预定义的大小要求,则要测试数据结构(变量)大小的边界。 例如,一个把某字串前X个字符改为相同字符* 的代码段如

9、下: int a; a= /给a赋值,例如: scanf(%d, &a); char buffer = “I love footballn; memset(buffer, *,a); /可能发生越界如果如果a(sizeof(buffer)1),则将发生则将发生“写越界写越界”! 等价划分与边界值分析的关系 1)等价类划分的测试数据是在各个等价类)等价类划分的测试数据是在各个等价类允许的值域内任意选取允许的值域内任意选取 2)边界值分析的测试数据必须在边界值附)边界值分析的测试数据必须在边界值附近选取近选取 关系实质:边界值的测试重点即在各个等价关系实质:边界值的测试重点即在各个等价类的边界上!

10、类的边界上! 边界测试实践 1)一般而言,用边界值分析法设计的测试用例比等价分类法的代表性更广,发现错误的能力也更强;但是对边界的分析和确定比较复杂! 2)边界值分析法,在有些情况下,除了测试输入值边界外,还需要测试输出值测试输出值和其他可能存在的边界。 例如: 被测程序是计算x( 10,10 )的正弦值的函数sin(x),其输出具有3个边界值1、0、1。则x还需要选取- /2、0、 /2作为测试数据。 3)常见边界及错误常见边界及错误:数组越界,数据结构(变量)大小越界,循环变量错导致死循环 ,IF语句中的判别值,定义域、值域边界,空或畸形输入,末受控状态等 。 我们的方向 1)目前我们,输出边界的测试做得还不够!)目前我们,输出边界的测试做得还不够!应该多向此方面思考!应该多向此方面思考! 2)杜绝边界测试的随意性,以规范、科学的)杜绝边界测试的随意性,以规范、科学的方法进行边界测试,以达到测试的高效性、经方法进行边界测试,以达到测试的高效性、

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论