软件测试理论基础Part2

测试用例设计

等价类划分法

  • 有效等价类
    • 满足需求的
  • 无效等价类
    • 不满足需求的

等价类划分方法操作步骤

  • 明确需求
  • 确定有效和无效等价类
  • 编写测试用例

边界值划分法

边界范围

  • 上点
    • 处在边界上的点(正好等于)
  • 离点
    • 离上点最近的点
  • 内点
    • 范围内的点

开区间,闭区间

  • [开始值,结束值] - 闭区间,包含开始值,包含结束值
  • (开始值,结束值) - 开区间,不包含开始值,不包含结束值
[20,30] 大于等于20,小于等于30 闭区间 20,和30是上点 25内点 19,31是离点 离点是无效数据
(20,30)大于20,小于30 开区间 20,30是上点,25是内点,21,29是离点,这里的离点是有效数据
(20,30] 大于20,小于等于30 左开右闭区间
[20,30)大于等于20,小于30 左闭右开区间
  • 对于闭区间,上点是有效数据,离点是无效数据
    对于开区间,上点是无效数据,离点是有效数据
    不管开和闭区间,内点都是有效数据

使用边界值法步骤

  • 明确需求
  • 明确有效和无效等价类
  • 确定边界值
  • 编写测试用例

判定表法

引入

  • 案例:若用户欠费或者关机,则不允许主被叫
等价类划分法和边界值分析法都是着重考虑单个输入的输入条件,但是
没有考虑输入条件的各种组合、输入条件与输出条件之间的相互制约关系.
所以要使用判定表法才能解决上述案例编写测试用例的过程
  • 判定表法表示的是有多个输入,和多个输出,而且输入和输入之间有相互的组合关系、输入和输出之间有相互的依赖关系

判定表的四个组成部分

  • 判定表通常由四个部分组成
    1. 条件桩:列出了系统的所有输入,列出的输入次序无关紧要
    2. 动作桩:列出了系统可能采取的操作,这些操作的排序顺序没有约束
    3. 条件项:列出针对它左列输入的取值,在所有可能情况下的真假值
    4. 动作项:列出在输入项的各种取值情况下应该采取的动作

注:判定表中贯穿条件项和动作项的一列就是一条规则

使用判定表步骤

  • 先明确需求
  • 画判定表
    • 先画条件桩
    • 然后动作桩
    • 罗列条件桩的不同组合
    • 根据条件项完成动作项
  • 编写测试用例
    • 判定表中的一条规则对应一条测试用例

不能直接用判定表去执行测试

通过判定表编写测试用例,用测试用例去执行测试操作

测试用例有很重要的两个原则

  • 能看懂
  • 能执行

因果图法

待完善

正交法

适用范围

  • 当可能得输入数据或者输入数据的组合量很大是,由于不可能位每个输入组合都创建测试用例,可以采用这种方法.

特点

均匀分散,齐整可比

正交表的概念

  • 一种特制的表,一般的正交表标记为:$L_n(m^k)$
  • n表示行数
  • k表示列数
  • m是列的取值个数

如:$L_9(3^4)$

有四个列
每个列3个取值
9位列的组合个数
叫4因素3水平

使用正交表步骤

  • 明确需求

  • 绘制正交表

    • 先确定列数
    • 确定正交表每列的取值个数
    • 根据因素和水平可以确定行数
  • 根据正交表编写测试用例

    • 正交表的一行代表一条测试用例

场景法

定义

  • 场景法是用流程图描述用户的使用场景,然后通过覆盖流程路径来设计测试用例

场景法的意义

  • 用户角度:用户平时使用的不是单个功能,而是多个功能组合起来进行使用
  • 测试人员角度:平时测试的都是单个功能点进行测试,容易忽略多个功能的组合测试

场景法设计测试用例步骤

  1. 明确需求
  2. 画出流程图
  3. 编写测试用例
  • 用流程图描述用户的使用场景

  • 用覆盖流程路径来设计测试用例

    • 从流程图开始到结束,有几条路就是几个路径
    • 一个路径对应一条测试用例

案例——使用ATM机取款

ATM机取款流程图

错误推测法

错误推测法是指利用直觉和经验猜测出出错的可能类型,有针对性列举出程序中所有可能的错误和容易发生错误的情况,它是测试经验丰富的测试人员喜欢使用的一种测试用例设计方法。

  • 基本思想:

    • 基本思想是列举出可能犯的错误或错误容易发生的清单,然后根据清单编写测试用例;
    • 这种方法很大程度上是凭经验进行的,即凭人们对过去所作测试结果的分析,对所揭示缺陷的规律性作直觉的推测来发现缺陷。
  • 使用场景

    • 项目紧任务急、时间不够、这时就不要按部就班的测试了,根据之前项目的经验,找到之前出错过的类似模块进行重点测试
    • 所有正常测试结束后,通过错误推断法再测试一些之前出过问题的模块
posted @ 2024-06-18 23:19  NovLeo  阅读(38)  评论(0)    收藏  举报