定义:测试用例(Test Case)是为特定的目的而设计的一组测试输入、执行条件和预期的结果,以便测试是否满足某个特定需求。通过大量的测试用例来检验软件的运行效果,它是指导测试工作进行的依据。

1、等价类划分法

1.1、概念

把无法穷举的数据分类书写。
等价类划分是一种重要的、常用的黑盒测试方法,不需要考虑程序的内部结构,只需要考虑程序的输入规格即可。它将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。

1.2、分类

有效等价类:指符合《需求规格说明书》,输入合理的数据集合
无效等价类:指不符合《需求规格说明书》,输入不合理的数据集合

1.3、步骤

  • 先确定有效和无效等价类
  • 有效等价类就是题目条件(两端的极值(边界值)要判断、中间随意一个值也要判断)
  • 无效等价类先划分与条件相反的情况,再找到特殊情况(中文、英文、符号、空格、空)

    1.4、练习

    练习一:计算 1—-100的整数之和(包括1和100)
    图片.png

练习二:测试QQ账号,账号的要求是 6—-10位正整数。
图片.png图片.png

练习三:某城市电话号码由三部分组成,分别是:地区码:空白或是3位数字;前缀:非‘0’且非‘1’开头的三 位数字;后缀:4位数字
图片.png

练习四:
-用户名(昵称)长度为 3-19:以字母开头
-登录名称:非空
-密码: 非空
-确认密码: 值和密码相同
图片.png

1.5、总结

通过上面的案例,我们可以总结一下,当我们在测试文本框的程序可以考虑如下的情况:

  • 文本框要求输入的长度
  • 输入的类型
  • 组成规则
  • 是否为空
  • 是否重复—-区分大小写,
  • 是否去除空格

    2、边界值

    2.1、概念

    什么是边界?
    边界是指对于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。
    边界值分析法也是一种常用的黑盒测试方法。
    大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。

    2.2、练习

    练习一:使用边界值的方法设计添加标题的测试用例: 标题长度>0 标题长度<=30
    图片.png

练习二:输入一个学生成绩n,判断是否及格(0到100整数);
图片.png

练习三:修改手机银行登录密码:密码必须由字母与数字组合,密码长度在8~24之间(包含8和24)
图片.png

2.3、小结

  • 等价类边界值
    • 通过等价类思想可以找到有效和无效的内容,再通过边界值思想把测试用例具体化;边界值是配合等价 类思想使用的;
    • 边界值:比边界大一点、和小一点的值都要测试到位;
  • 常见边界值:

    • 文本框接收字符个数,比如用户名长度,密码长度等;
    • 报表的第1行和最后1行;
    • 数值元素的第1个和最后1个;
    • 循环的第1次、2次和倒数第1次、2次。

      3、因果图

      3.1、概念

  • 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法,它适合于检查程序输入条件的各种组合情况。

  • 因果图产生背景
    • 等价类划分法和边界值分析方法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。
    • 如果在测试时必须考虑输入条件的各种组合,则可能的组合数目将是天文数字,因此必须考虑采用一种适合于描述多种条件的组合、相应产生多个动作的形式来进行测试用例的设计,这就需要利用因果图(逻辑模型)。
  • 特点:
    • 考虑输入条件的相互制约及组合关系
    • 考虑输出条件对输入条件的依赖关系
  • 常用逻辑

    • 恒等 有原因就有结果 没有原因就没有结果
    • 非 有原因没结果 没原因就有结果
    • 或 条件只要有一个是真的,结果就是真的,都是假的,结果才是假
    • 与(且) 条件必须都是真,结果才是真,只要有一个是假,结果就是假

      3.2、步骤

      ① 找出所有的原因,原因即输入条件或输入条件的等价类。
      ② 找出所有的结果,结果即输出条件。
      ③ 明确所有输入条件之间的制约关系以及组合关系。
      哪些条件不能组合到一起,哪些条件可以组合到一起
      ④ 明确所有输出条件之间的制约关系以及组合关系。
      哪些输出结果不能同时输出,哪些输出结果可以同时输出
      ⑤ 找出什么样的输入条件组合会产生哪种输出结果
      ⑥ 把因果图转换成判定表/决策表。
      ⑦ 为判定表/决策表中的每一列表示的情况设计测试用例。

      3.3、练习

      练习一:交通一卡通自动充值软件系统
      图片.png
      图片.png

      4、判定表

      4.1概念

  • 因果图只是一种辅助工具,通过分析最终得到判定表,再通过判定表编写测试用例。但有时画因果图非常麻烦,影响测试效率,可以直接写判定表,进而编写测试用例。

  • 判定表的组成
    • 条件桩:问题的所有条件
    • 动作桩:问题的所有输出
    • 条件项:针对条件桩的取值
    • 动作项:条件项的各种取值情况下的输出结果
  • 合并使用“-”代表无关条件,选什么都不影响结果。

    4.2练习

    练习一:怎样称为一个好学生?遵纪守法的前提下,学习成绩好是一个好学生、品德高尚也是一个好学生;(只要违法乱纪就绝对不是一个好学生;成绩和品德有一项,再加遵纪守法也是好学生)
    图片.png

    5、场景法

    5.1、概念

  • 场景法就是模拟用户操作软件时的场景,主要用于测试系统的业务流程。

  • 在冒烟测试时也主要采用场景法进行测试

    1. 当拿到一个测试任务时,我们并不是先关注某个控件的边界值、等价类是否满足要求,而是先要关注它的主要功能和业务流
    2. 程是否正确实现,这就需要使用场景法来完成测试。
    3. 当业务流程测试没有问题,也就是该软件的主要功能没有问题时,我们再重点从边界值、等价类等方面对控件进行测试
  • 场景法中两个重要的概念

    • 基本流:按照正确的业务流程来实现的一条操作路径(模拟正确的操作流程)
    • 备选流:导致程序出现错误的操作流程(模拟错误的操作流程)

      6、其它方法

      6.1、流程法

      测试用例必须包含所有的分支条件,每一个分支条件就是一条测试用例!

      6.2、错误推断法

      当时间紧任务急的时候,测试时间较少,可以考虑使用错误推断法来设计测试用例
      根据测试人员以往项目的经验来设计;
      已经经过了几轮测试后,这时候也可以使用推断法进行测试用例的补充

      7、正交排列法

      7.1、概念

  • 正交排列法能够使用最小的测试过程集合获得最大的测试覆盖率。当可能的输入数据或者输入数据的组合数量很大时,由于不可能为每个输入组合都创建测试用例,可以采用这种方法。

  • 特点:均匀分散、齐整可比(所有情况都应该均匀的被测试过一次)
  • 一般的正交表记为:L(m)
    • n是表的行数,也就是需要测试组合的次数
    • K是表的列数,表示控件的个数(因素的个数,或因子个数)
    • m是每个控件包含的取值个数(各因素的水平数,即各因素的状态数)
  • 如: L(3)
    • 有4个控件:字体、字符样式、字体颜色、字号
    • 每个控件有3个取值
    • 9为需要测试的组合个数
    • 叫4因素3水平

图片.png

7.2、步骤

因素:控件的个数
水平:控件里面的可选项个数
1、 先确定几因素,几水平
2、 在“常用正交表”中找到合适的表格 (参考03-3-常用正交表)
3、 复制找到的表格到我们自己的表格中
4、 自己再写一个对照表(所有的控件和对应的选项列出来)
5、 把复制过来的表格和对照表实现映射关系,就可以得到最终的正交表(测试用例)
注意:如果没有找到合适的正交表,要在表格中找到多一些的正交表选用即可,只需要把多余的内容删除。