软件测试核心之用例设计

测试设计与测试用例

测试设计:将概括的测试目标转化为具体的测试条件和测试用例的一系列活动

测试分析和设计的主要任务

  • 评审测试依据(需求、系统架构、设计和接口说明)
  • 评估测试依据和测试对象的可靠性
  • 通过对测试项、规格说明、测试对象行为和结构的分析,识别测试条件并确定优先级
  • 设计测试用例,并确定优先级
  • 确定测试条件和测试用例所需的必要测试数据

确定测试条件

  • 依据在测试策划或者测试计划中确定的测试技术
  • 通过对策是依据与测试目标的分析,可以确定需要测试的内容,获得测试条件

测试用例:

通过使用在测试计划中确定的测试技术与测试方法,对于已确定的测试条件进行逐步推敲,精炼而设计出来的,重点说明如何具体操作,产生何种结果的文档

  • 特点:可重复性,可验证性,需求可追踪性
  • 设计的关键点:

    • 前提条件:如项目或局部测试环境的需求,及其交付计划
    • 测试步骤:可还原,可检测,不可有歧义
    • 测试数据
    • 预期结果
  • 设计方法:

    • 等价类划分法
    • 边界值法
    • 因果图设计法
    • 判定表设计法
    • 正交实验法
    • 场景法

等价类划分法

定义:把程序的输入域划分成若干部分,再从每个部分中选取少数代表性数据当做测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其他值

划分原则:

  • 如果输入条件规定了取值的范围或者值的个数,则可确定一个有效等价类和两个无效等价类
  • 对立关系:如果一个输入条件说明了一个 “必须成立”的情况,则可划分一个有效等价类和一个无效等价类
  • 如果输入条件规定了输入数据的一组可能的值,而且程序是用不同的方式处理每一种值,则可为每一种值划分一个有效等价类,并划分一个无效等价类
  • 如果已明确,已划分的某等价类中的各元素在程序中的处理方式是不同的,则应据此等价类进一步划分成更小的等价类

设计步骤

  1. 明确测试对象,非测试对象保证正确
  2. 为每一个等价类规定一个唯一的编号

基于等价类划分的用例设计

  1. 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类,重复这一步,最后使得所有有效等价类均被测试用例所覆盖
  2. 设计一个新的测试用例,使其只覆盖一个无效等价类。重复这一步,使所有无效等价类均被覆盖

等价类的特点

  • 测试相同的内容
  • 如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷
  • 如果等价类中的一个测试不能捕获缺陷,那么选择该等价类中的其他测试也不会捕获缺陷
  • 如果正确的划分等价类,可以大大降低测试用例的数量,测试会准确有效
  • 如果错误地将两个不同的等价类当做一个等价类,那就会遗漏一种测试情况
  • 相反,把同一个等价类看作两个不同的等价类,那么测试就会是冗余的

注意事项:

  • 不但要考虑有效等价类,也要考虑无效等价类
  • 仔细划分,审查划分
  • 过于粗略可能会遗漏掉软件缺陷
  • 组织评审

边界值法

定义:是一种补充等价划分的测试用例设计技术,它不是选择等价类的任意元素,而是选择等价类边界的测试用例

边界值设计的原则

  • 如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例

因果图法与判定表

因果图法

用来处理等价类划分和边界值考虑不到的情况,因为这两种方法都是着重考虑输入条件,而不考虑输入条件的各种组合,输入条件之间的相互制约关系

因果图法,适合用于描述多种条件的组合,产生多个相应动作的测试方法;从程序规格说明书的描述中找出因果关系

判定表

定义:是分析和表达多逻辑条件下执行不同操作的工具

组成部分:

  1. 条件桩:列出了问题的所有条件,通常认为列出的条件次序无关紧要
  2. 动作桩:列出了问题规定可能采取的操作,这些操作的排序顺序没有约束
  3. 条件项
  4. 动作项

设计步骤:

  1. 分析软件规格说明中的因果,并给每个原因和结果赋予一个标识符
  2. 分析软件规格说明中语义的内容,找出原因与结果之间、原因与原因之间对应的关系,根据这些关系画出因果图
  3. 由于语法或环境的限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。为表明这些特定情况,在因果图上使用一些记号表明约束或限制条件
  4. 把因果图转换为判定表
  5. 根据判定表的每一列设计测试用例

正交实验法

定义:是从大量的实验点中挑选出适量的、有代表性的点,应用依据伽罗卡瓦理论导出的正交表,合理地安排实验的一种科学的试验设计方法

相关参数:指标、因子、因子的状态

设计步骤:

  1. 提取功能说明,构造因子状态表
  2. 加权筛选,生成因素分析表
  3. 利用正交表构造测试数据集
  4. 利用正交表每行数据构造测试用例

测试场景设计

场景法设计步骤:

  1. 根据说明,描述出程序的基本流及各项备选流
  2. 根据基本流和各项备选流生成不同的场景
  3. 对每一个场景生成相应的测试用例
  4. 对生成的所有测试用例重新审核,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值

测试用例综合设计

  1. 测试用例项划分

    1. 测试用例划分的经典方法是瀑布模型,从上到下,逐渐细分;大模块包括小模块,小模块包括更小的模块
    2. 要从更多的角度切入系统,把系统切分成一块一块地来进行测试,从而确保测试大项的完整性
  2. 切面测试

    1. 功能点切面:最常见的切面,通常认为页面上的一个按钮就是一个功能点。根据功能的复杂程度,按每一个功能进行用例的撰写
    2. 隐含切面:完整业务流程的测试。从需求,业务角度进行编写
  3. 功能点用例设计

    1. 任何情况下都必须使用边界值分析法,经验表明,用这种方法设计出测试用例发现程序错误的能力最强
    2. 必要时用等价类划分的方法补充一些测试用例
    3. 如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法
    4. 如果程序业务复杂度比较高,则适当使用场景法补充一部分测试用例

你可能感兴趣的:(测试,转行)