测试设计与测试用例
测试设计:将概括的测试指标转化为具体的测试条件和测试用例的一系列流动
测试剖析和设计的次要工作
- 评审测试根据(需要、零碎架构、设计和接口阐明)
- 评估测试根据和测试对象的可靠性
- 通过对测试项、规格阐明、测试对象行为和构造的剖析,辨认测试条件并确定优先级
- 设计测试用例,并确定优先级
- 确定测试条件和测试用例所需的必要测试数据
确定测试条件
- 根据在测试策动或者测试计划中确定的测试技术
- 通过对策是根据与测试指标的剖析,能够确定须要测试的内容,取得测试条件
测试用例:
通过应用在测试计划中确定的测试技术与测试方法,对于已确定的测试条件进行逐渐斟酌,精炼而设计进去的,重点阐明如何具体操作,产生何种后果的文档
- 特点:可重复性,可验证性,需要可追踪性
设计的关键点:
- 前提条件:如我的项目或部分测试环境的需要,及其交付打算
- 测试步骤:可还原,可检测,不可有歧义
- 测试数据
- 预期后果
设计办法:
- 等价类划分法
- 边界值法
- 因果图设计法
- 断定表设计法
- 正交实验法
- 场景法
等价类划分法
定义:把程序的输出域划分成若干局部,再从每个局部中选取多数代表性数据当做测试用例,每一类的代表性数据在测试中的作用等价于这一类中的其余值
划分准则:
- 如果输出条件规定了取值的范畴或者值的个数,则可确定一个无效等价类和两个有效等价类
- 对抗关系:如果一个输出条件阐明了一个“必须成立”的状况,则可划分一个无效等价类和一个有效等价类
- 如果输出条件规定了输出数据的一组可能的值,而且程序是用不同的形式解决每一种值,则可为每一种值划分一个无效等价类,并划分一个有效等价类
- 如果已明确,已划分的某等价类中的各元素在程序中的解决形式是不同的,则应据此等价类进一步划分成更小的等价类
设计步骤
- 明确测试对象,非测试对象保障正确
- 为每一个等价类规定一个惟一的编号
基于等价类划分的用例设计
- 设计一个新的测试用例,使其尽可能多地笼罩尚未笼罩的无效等价类,反复这一步,最初使得所有无效等价类均被测试用例所笼罩
- 设计一个新的测试用例,使其只笼罩一个有效等价类。反复这一步,使所有有效等价类均被笼罩
等价类的特点
- 测试雷同的内容
- 如果等价类中的一个测试可能捕捉一个缺点,那么抉择该等价类中的其余测试也能捕捉该缺点
- 如果等价类中的一个测试不能捕捉缺点,那么抉择该等价类中的其余测试也不会捕捉缺点
- 如果正确的划分等价类,能够大大降低测试用例的数量,测试会精确无效
- 如果谬误地将两个不同的等价类当做一个等价类,那就会脱漏一种测试状况
- 相同,把同一个等价类看作两个不同的等价类,那么测试就会是冗余的
注意事项:
- 岂但要思考无效等价类,也要思考有效等价类
- 认真划分,审查划分
- 过于粗略可能会遗漏掉软件缺陷
- 组织评审
边界值法
定义:是一种补充等价划分的测试用例设计技术,它不是抉择等价类的任意元素,而是抉择等价类边界的测试用例
边界值设计的准则
- 如果输出条件规定了取值范畴,应以该范畴的边界内及刚刚超范围的边界外的值作为测试用例
因果图法与断定表
因果图法
用来解决等价类划分和边界值思考不到的状况,因为这两种办法都是着重思考输出条件,而不思考输出条件的各种组合,输出条件之间的互相制约关系
因果图法,适宜用于形容多种条件的组合,产生多个相应动作的测试方法;从程序规格说明书的形容中找出因果关系
断定表
定义:是剖析和表白多逻辑条件下执行不同操作的工具
组成部分:
- 条件桩:列出了问题的所有条件,通常认为列出的条件秩序无关紧要
- 动作桩:列出了问题规定可能采取的操作,这些操作的排序程序没有束缚
- 条件项
- 动作项
设计步骤:
- 剖析软件规格阐明中的因果,并给每个起因和后果赋予一个标识符
- 剖析软件规格阐明中语义的内容,找出起因与后果之间、起因与起因之间对应的关系,依据这些关系画出因果图
- 因为语法或环境的限度,有些起因与起因之间、起因与后果之间的组合状况不可能呈现。为表明这些特定状况,在因果图上应用一些记号表明束缚或限度条件
- 把因果图转换为断定表
- 依据断定表的每一列设计测试用例
正交实验法
定义:是从大量的试验点中挑选出适量的、有代表性的点,利用根据伽罗卡瓦实践导出的正交表,正当地安顿试验的一种迷信的试验设计办法
相干参数:指标、因子、因子的状态
设计步骤:
- 提取性能阐明,结构因子状态表
- 加权筛选,生成因素剖析表
- 利用正交表结构测试数据集
- 利用正交表每行数据结构测试用例
测试场景设计
场景法设计步骤:
- 依据阐明,形容出程序的根本流及各项备选流
- 依据根本流和各项备选流生成不同的场景
- 对每一个场景生成相应的测试用例
- 对生成的所有测试用例从新审核,去掉多余的测试用例,测试用例确定后,对每一个测试用例确定测试数据值
测试用例综合设计
测试用例项划分
- 测试用例划分的经典办法是瀑布模型,从上到下,逐步细分;大模块包含小模块,小模块包含更小的模块
- 要从更多的角度切入零碎,把零碎切分成一块一块地来进行测试,从而确保测试大项的完整性
切面测试
- 性能点切面:最常见的切面,通常认为页面上的一个按钮就是一个性能点。依据性能的复杂程度,按每一个性能进行用例的撰写
- 隐含切面:残缺业务流程的测试。从需要,业务角度进行编写
性能点用例设计
- 任何状况下都必须应用边界值分析法,教训表明,用这种办法设计出测试用例发现程序谬误的能力最强
- 必要时用等价类划分的办法补充一些测试用例
- 如果程序的性能阐明中含有输出条件的组合状况,则一开始就可选用因果图法
- 如果程序业务复杂度比拟高,则适当应用场景法补充一部分测试用例