《(最新)软件测试论文-黑盒测试用例设计方法》由会员分享,可在线阅读,更多相关《(最新)软件测试论文-黑盒测试用例设计方法(30页珍藏版)》请在金锄头文库上搜索。
1、黑盒测试用例设计方法黑盒测试用例设计方法 简介 简介 黑盒测试也称功能测试 它是通过测试来检测每个功能是否都能正常使用 在测试中把程序看 作一个不能打开的黑盒子 在完全不考虑程序内部结构和内部特性的情况下 在程序接口进行测试 它只检查程序功能是否按照需求规格说明书的规定正常使用 程序是否能适当地接收输入数据而产 生正确的输出信息 黑盒测试着眼于程序外部结构 不考虑内部逻辑结构 主要针对软件界面和软 件功能进行测试 黑盒测试是以用户的角度 从输入数据与输出数据的对应关系出发进行测试的 很明显 如果外部特性本身有问题或规格说明的规定有误 用墨盒测试方法是发现不了的 黑盒测 试法注重于测试软件的功能
2、需求 主要试图发现下列几类错误 1 功能不正确或遗漏界面错误 2 数据库访问错误 3 性能错误 4 初始化和终止错误等 从理论上讲 黑盒测试只有采用穷举输入测试 把所有可能的输入都作为测试情况考虑 才能查出 程序中所有的错误 实际上测试情况有无穷多个 人们不仅要测试所有佥的输入 而且还要对那些 不合法但可能的输入进行测试 这样看来 完全测试是不可能的 所以我们要进行有针对性的测试 通过制定测试案例指导测试的实施 保证软件测试有组织 按步骤 以及有计划地进行 黑盒测试 行为必须能够加以量化 才能真正保证软件质量 而测试用例就是将测试行为具体量化的方法之一 具体的黑盒测试用例设计方法包括 等价类划
3、分法 边界值分析法 错误推测法 因果图法 判定 表驱动法 正交试验设计法 功能图法等 a 等价类划分的办法是把程序的输入域划分成若干部分 然后从每个部分中选取少数代表性数据作 为测试用例 每一类的代表性数据在测试中的作用等价于这一类中的其他值 b 边界值分析是通过选择等价类边界的测试用例 边界值分析法不仅重视输入条件边界 而且也必 须考虑输出域边界 c 错误推测设计方法就是基于经验和直觉推测程序中所有可能存在的各种错误 从而有针对性地设 计测试用例的方法 d 因果图方法是从用自然语言书写的程序规格说明的描述中找出因 输入条件 和果 输出或程序 状态的改变 可以通过因果图转换为判定表 e 正交试
4、验设计法 就是使用已经造好了的正交表格来安排试验并进行数据分析的一种方法 目的 是用最少的测试用例达到最高的测试覆盖率 f 功能图法是由状态迁移图和布尔函数组成 状态迁移图用状态和迁移来表示 一个状态指出数据 输入的位置 或时间 一个迁移指明状态的改变 同时要依靠判定表或因果图表示的逻辑功能 I I 等价类方法等价类方法 方法简介 1 定义 是把所有可能的输入数据 即程序的输入域划分成若干部分 子集 然后从每一个子集中选取少数 具有代表性的数据作为测试用例 该方法是一种重要的 常用的黑盒测试用例设计方法 2 划分等价类 等价类是指某个输入域的子集合 在该子集合中 各个输入数据对于揭露程序中的错
5、误都是等效的 并合理地假定 测试某等价类的代表值就等于对这一类其它值的测试 因此 可以把全部输入数据合 理划分为若干等价类 在每一个等价类中取一个数据作为测试的输入条件就可以用少量代表性的测 试数据取得较好的测试结果 等价类划分可有两种不同的情况 有效等价类和无效等价类 1 有效等价类 是指对于程序的规格说明来说是合理的 有意义的输入数据构成的集合 利用有效等价类可检验 程序是否实现了规格说明中所规定的功能和性能 2 无效等价类 与有效等价类的定义恰巧相反 无效等价类指对程序的规格说明是不合理的或无意义的输入数据 所构成的集合 对于具体的问题 无效等价类至少应有一个 也可能有多个 设计测试用例
6、时 要同时考虑这两种等价类 因为软件不仅要能接收合理的数据 也要能经受意外的 考验 这样的测试才能确保软件具有更高的可靠性 3 划分等价类的标准 1 完备测试 避免冗余 2 划分等价类重要的是 集合的划分 划分为互不相交的一组子集 而子集的并是整个集合 3 并是整个集合 完备性 4 子集互不相交 保证一种形式的无冗余性 5 同一类中标识 选择 一个测试用例 同一等价类中 往往处理相同 相同处理映射到 相同的 执行路径 4 划分等价类的方法 1 在输入条件规定了取值范围或值的个数的情况下 则可以确立一个有效等价类和两个无效等价 类 如 输入值是学生成绩 范围是 0 100 2 在输入条件规定了输
7、入值的集合或者规定了 必须如何 的条件的情况下 可确立一个有效等价类 和一个无效等价类 3 在输入条件是一个布尔量的情况下 可确定一个有效等价类和一个无效等价类 4 在规定了输入数据的一组值 假定 n 个 并且程序要对每一个输入值分别处理的情况下 可确立 n 个有效等价类和一个无效等价类 例 输入条件说明学历可为 专科 本科 硕士 博士四种之一 则分别取这四种这四个值作为 四个有效等价类 另外把四种学历之外的任何学历作为无效等价类 5 在规定了输入数据必须遵守的规则的情况下 可确立一个有效等价类 符合规则 和若干个无效 等价类 从不同角度违反规则 6 在确知已划分的等价类中各元素在程序处理中的
8、方式不同的情况下 则应再将该等价类进一步的 划分为更小的等价类 5 设计测试用例 在确立了等价类后 可建立等价类表 列出所有划分出的等价类输入条件 有效等价类 无效等价类 然后从划分出的等价类中按以下三个原则设计测试用例 1 为每一个等价类规定一个唯一的编号 2 设计一个新的测试用例 使其尽可能多地覆盖尚未被覆盖地有效等价类 重复这一步 直到所有的 有效等价类都被覆盖为止 3 设计一个新的测试用例 使其仅覆盖一个尚未被覆盖的无效等价类 重复这一步 直到所有的无效 等价类都被覆盖为止 二二 实战演习实战演习 1 某程序规定 输入三个整数 a b c 分别作为三边的边长构成三角形 通过程序判定所构
9、 成的三角形的类型 当此三角形为一般三角形 等腰三角形及等边三角形时 分别作计算 用 等价类划分方法为该程序进行测试用例设计 三角形问题的复杂之处在于输入与输出之间的关系 比较复杂 分析题目中给出和隐含的对输入条件的要求 1 整数 2 三个数 3 非零数 4 正数 5 两边之和大于第三边 6 等腰 7 等边 如果 a b c 满足条件 1 4 则输出下列四种情况之一 1 如果不满足条件 5 则程序输出为 非三角形 2 如果三条边相等即满足条件 7 则程序输出为 等边三角形 3 如果只有两条边相等 即满足条件 6 则程序输出为 等腰三角形 4 如果三条边都不相等 则程序输出为 一般三角形 列出等
10、价类表并编号 覆盖有效等价类的测试用例 abc覆盖等价类号码 345 1 7 445 1 7 8 455 1 7 9 545 1 7 10 444 1 7 11 覆盖无效等价类的测试用例 2 设有一个档案管理系统 要求用户输入以年月表示的日期 假设日期限定在1990 年 1 月 2049 年 12 月 并规定日期由 6 位数字字符组成 前 4 位表示年 后 2 位表示月 现用等价类划分法设 计测试用例 来测试程序的 日期检查功能 1 划分等价类并编号 下表等价类划分的结果 输入等价类输入等价类 日期的类型及长度 有效等价类有效等价类 6 位数字字符 无效等价类无效等价类 有非数字字符 少于 6
11、 位数字字符 多于 6 位数字字符 小于 1990 大于 2049 等于 00 大于 12 年份范围 月份范围 在 1990 2049 之间 在 01 12 之间 2 设计测试用例 以便覆盖所有的有效等价类在表中列出了 3 个有效等价类 编号分别为 设计的测试用例如下 测试数据期望结果覆盖的有效等价类 200211输入有效 3 为每一个无效等价类设计一个测试用例 设计结果如下 测试数据期望结果覆盖的无效等价类 95June无效输入 20036无效输入 2001006无效输入 198912无效输入 200401无效输入 200100无效输入 200113无效输入 3 NextDate 函数包含三
12、个变量 month day 和 year 函数的输出为输入日期后一天的日 期 例如 输入为 2006年3月 7日 则函数的输出为 2006年3月8日 要求输入变量 month day 和 year 均为整数值 并且满足下列条件 1 month 12 1 day 31 1920 year 2050 1 有效等价类为 M1 月份 1 月份 12 D1 日期 1 日期 31 Y1 年 1812 年 2012 2 若条件 中任何一个条件失效 则 NextDate 函数都会产生一个输出 指明相应的变 量超出取值范围 比如 month 的值不在 1 12 范围当中 显然还存在着大量的 year month
13、 day 的无效组合 NextDate 函数将这些组合作统一的输出 无效输入日期 其无效等价类为 M2 月份 月份12 D2 日期 日期31 Y2 年 年2012 弱一般等价类测试用例 月份日期年预期输出 6 1519121912 年 6 月 16 日 强一般等价类测试用例同弱一般等价类测试用例 注 弱 有单缺陷假设 健壮 考虑了无效值 一 弱健壮等价类测试 用例 ID月份日期年预期输出 WR161519121912 年 6 月 16 日 WR2 1151912月份不在 1 12 中 WR313151912月份不在 1 12 中 WR46 11912日期不在 1 31 中 WR56321912
14、日期不在 1 31 中 WR66151811年份不在 1812 2012 中 WR76152013年份不在 1812 2012 中 二 强健壮等价类测试 用例 ID月份日期年预期输出 SR1 1 151912月份不在 1 12 中 SR26 11912日期不在 1 31 中 SR36151811年份不在 1812 2012 中 SR4 1 1 1912两个无效一个有效 SR56 11811两个无效一个有效 SR6 1151811两个无效一个有效 SR7 1 1 1811三个无效 4 佣金问题等价类测试用例 它是根据佣金函数的输出值域定义等价类 来改进测试用例集合 输出销售额 1000 元佣金
15、10 10001800佣金 220 销售额 1800 20 测试用例枪机 45 枪托 30 枪管 25 销售额佣金 1555500 50 21515151500175 325 25252500360 根据输出域选择输入值 使落在输出域等价类内 可以结合弱健壮测试用例结合 II II 边界值边界值 方法简介方法简介 1 定义 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法 通常边界值分析 法是作为对等价类划分法的补充 这种情况下 其测试用例来自等价类的边界 2 与等价划分的区别 1 边界值分析不是从某等价类中随便挑一个作为代表 而是使这个等价类的每个边界都要作为测 试条件 2 边
16、界值分析不仅考虑输入条件 还要考虑输出空间产生的测试情况 3 边界值分析方法的考虑 长期的测试工作经验告诉我们 大量的错误是发生在输入或输出范围的边界上 而不是发生在输 入输出范围的内部 因此针对各种边界情况设计测试用例 可以查出更多的错误 使用边界值分析方法设计测试用例 首先应确定边界情况 通常输入和输出等价类的边界 就是 应着重测试的边界情况 应当选取正好等于 刚刚大于或刚刚小于边界的值作为测试数据 而不是 选取等价类中的典型值或任意值作为测试数据 4 常见的边界值 1 对 16 bit 的整数而言 32767 和 32768 是边界 2 屏幕上光标在最左上 最右下位置 3 报表的第一行和最后一行 4 数组元素的第一个和最后一个 5 循环的第 0 次 第 1 次和倒数第 2 次 最后一次 5 边界值分析 1 边界值分析使用与等价类划分法相同的划分 只是边界值分析假定错误更多地存在于划分的边 界上 因此在等价类的边界上以及两侧的情况设计测试用例 例 测试计算平方根的函数 输入 实数 输出 实数 规格说明 当输入一个 0 或比 0 大的数的时候 返回其正平方根 当输入一个小于 0 的数