4.软件测试用例设计

1.黑盒测试用例设计方法

  • 等价类划分法
  1. 等价类划分法是一种典型的黑盒测试方法,使用这一方法时,彻底不考虑程序的内部结构,只依据程序的说明来设计测试用例;
  2. 等价类划分法把全部可能的输入数据,即程序的输入域划分红若干部分,而后从每一部分中选取少数有表明性的数据做为测试用例;
  3. 使用这一方法设计测试用例要经历划分等价类(列出等价类表)和选取测试用例两步;
    • 划分等价类:等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,测试某等价类的表明值就等价于这一类其余值的测试;
    • 等价类的两种状况:有效等价类和无效等价类。
  4. 划分等价类原则以下:
    • 按区间划分;
    • 按数值划分;
    • 按数值集合划分;
    • 按限制条件或规则划分。
  5. 举例说明
  6. 从划分出的等价类中按如下原则选择测试用例
    • 为每个等价类规定一个唯一的编号;
    • 设计一个新的测试用例,使其尽量多地覆盖还没有覆盖的有效等价类,重复这一步骤,直到全部的有效等价类都被覆盖为止;
    • 设计一个新的测试用例,使其仅覆盖一个无效等价类,重复这一步骤,直到全部的无效等价类都被覆盖为止。
  • 边界值分析法
  1. 边界值分析法也是一种黑盒测试方法,是对等价类划分法的补充;
  2. 人们从长期的测试工做经验得知,大量的错误是发生在输入或输出范围的边界上,而不是输出范围的内部。所以针对各类边界状况设计测试用例,能够查出更多的错误;
  3. 举例说明
  4. 这里的边界是指,至关于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定状况;
  5. 使用边界值分析法设计测试用例,首先肯定边界状况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。
  • 场景法
  1. 如今的软件几乎都是用事件触发来控制流程的,事件触发时的情景便造成了场景,而同一事件不一样的触发顺序和处理结果就造成了事件流。这种在软件涉及方面的思想也能够引入到软件测试中,能够比较生动地描绘出事件触发时的场景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行;
  2. 场景说明
  3. 用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上全部基本流和备选流;
  4. 如图所示,图中通过用例的每条路径都用基本流和备选流来表示,直黑线表示基本流,是通过用例的最简单的路径。备选流用不一样的色彩表示,一个备选流可能从基本流开始,在某个特定条件下执行,而后从新加入基本流中(如备选流1和3),也可能起源于基本流或备选流,而后结束用例(如备选流4和2)
  • 测试要素分析法
  • 错误推测法
  1. 也能够靠经验和直觉推测程序中可能存在的错误,从而有针对性地编写检查这些错误的例子,这就是错误推测法;
  2. 错误推测法的基本思想是:列举出程序中全部可能的错误和容易发生错误的特殊状况,根据它们选择测试用例。
  • 因果图法
  1. 等价类划分法和边界值分析法,都是着重考虑输入条件,但未考虑输入条件之间的联系。若是在测试时必须考虑输入条件的各类组合,可能的组合数将是天文数字。所以必须考虑使用一种适合于描述对于多种条件的组合,相应产生多个动做的形式来考虑设计测试用例,这就须要利用因果图;
  2. 因果图法是一个很是有效的黑盒测试方法,它可以生成没有重复性的且发现错误能力强的测试用例,并且对输入、输出同时进行了校验;
  3. 举例说明:有一个表格的输入,在第一列必须是A或B,第二列必须是数字,在此状况下进行文件的修改,若是第一列字符不正确,则给出信息L,若是第二列不是数字,则给出信息M。
  • 正交矩阵法
  1. 优势:正交试验设计(Orthogonal experimental design)是研究多因素多水平的一种设计方法,它是根据正交性从全面试验中挑选出部分有表明性的点进行试验,这些有表明性的点具有了“均匀分散,齐整可比”的特色,正交试验设计是一种基于正交表的、高效率、快速、经济的试验;
  2. 缺点:部分点可能在实际生产环境中极少用到,但测试过程当中却花费了大量人力及时间去设计测试,而实际状况下,咱们应该将更多的时间花费在用户可能大量使用的测试点中;
  3. 参考路径:https://www.cnblogs.com/Goongo/articles/9077477.html
  • 综合策略
  1. 首先进行等价类划分,包括输入条件和输出条件的等价类划分,将无线测试变为有限测试,这是减小工做量和提升测试效率最有效的方法;
  2. 在任何状况下都必须使用边界值分析方法。经验代表,用这种方法设计出来的测试用例发现程序错误的能力最强;
  3. 能够用错误推测法追加一些测试用例,这须要依靠测试工程师的智慧和经验;
  4. 对照程序逻辑,检查已设计出的测试用例的逻辑覆盖程度,若是没有达到要求的覆盖标准,应当再补充足够的测试用例;
  5. 若是程序的功能说明中含有输入条件的组合状况,则一开始就可选用因果图法;
  6. 对于参数配置类的软件,要用正交试验法选择较少的组合方式达到最佳效果;
  7. 对于业务流清晰的系统,能够利用场景法贯穿这个测试案例过程,在案例中综合使用各类测试方法