登陆 注册

NO.3 软件测试:测试用例设计

陈双义 2018-05-20 332人围观 ,发现0个评论 测试用例软件测试 百度已收录

测试用例设计.jpg

一、测试用例格式

1、用例编号
规则:是由字符和数字组成的字符串,具有唯一性、易识别性。
  不同阶段测试用例的用例编号:(产品或项目名称-用例属性-测试项名-测试子项名-具体用例编号)
  • 系统测试用例:产品编号_ST_系统测试项名_系统测试子项名_XXX(具体用例序号)

  • 集成测试用例:产品编号_IT_集成测试项名_集成测试子项名_XXX(具体用例序号)

  • 单元测试用例:产品编号_UT_单元测试项名_单元测试子项名_XXX(具体用例序号)

2、测试项目
规则:对应测试用例编号中的测试子项名
不同阶段测试用例项目的具体规则
  • 系统测试用例:对应一个功能点(功能测试)、性能指标(性能测试)界面中控件(GUI测试)等,即软件需求项

  • 集成测试用例:集成后的模块功能名或者内部的接口名

  • 单元测试用例:被测试的函数名

3、测试标题
规则:体现测试的出发点、关注点以及测试用例期望的测试结果;
  将测试项目和测试标题串在一起表示的是在“测试标题”情况下测试“测试项目”。
4、用例属性
描述测试用例的用途目的
  • 功能测试

  • 性能测试

  • 兼容性测试

  • 安全性测试

......
5、重要级别
  1. 高(Highs):最常执行以保证功能性是稳定的,目标的行为和能力可以正常的工作,和重要的错误和边界被测试的测试用例的集合。(实现主体功能的用例)

  2. 中(Mediums):这是使给出的功能区域或功能变得更详细,检查功能的多数方面包括边界,错误和配置测试的测试用例。(主项流程经过备选流处理或经过异常处理能够正确实现的用例)

  3. 低(Lows):这是通常最少被执行的测试用例。但这并不意味着这些测试都不重要,只是说他们在项目的生命期间里不是常常被运行,例如GUI,错误信息,可用性,压力和性能测试。(GUI、易用性表述、文字描述类)

6、预置条件
7、测试输入
提供测试执行中的各种输入条件。根据需求中的输入条件,确定测试用例的输入。测试用例的输入对软件需求当中的输入有很大的依赖性,如果软件需求中没有很好的定义需求的输入,那么测试用例设计中会遇到很大的障碍。
8、操作步骤
提供测试执行过程的步骤。对于复杂的测试用例,测试用例的输入需要分为几个步骤完成,这部分内容在操作步骤中详细列出。
9、预期结果
提供测试执行的预期结果,预期结果应该根据软件需求中的输出得出。如果在实际测试过程中,得到的实际测试结果与预期结果不符,那么测试不通过,反之则测试通过。
  • 预期界面表现

  • 预期功能表现

10、实际结果

二、用例设计方法-等价类

1、等价
具有相同属性或方法的事物集合,这个集合中某个个体所表现的特征与其他个性完全一致。
对于某个被测对象的测试输入而言,某个个体能够被接受或被拒绝,则该个体所在集合中的任意个体都应该被接受或拒绝。
2、等价类划分
  • 有效等价类

针对被测对象而言,合理的,有意义的,系统接受的输入。例如:用户名长度在6-18位。
  • 无效等价类

针对被测对象而言,不合理,无意义的,系统不能接受的输入,例如:用户名长度大于18位,或者小于6位。
3、等价类划分规则
1、如果需求规定了输入域的取值个数或确定了某个范围时,则可确定一个有效等价类及两个无效等价类。
  • 有效等价类

用户名长度在6-18之间
  • 无效等价类

用户名长度大于18位
用户名长度小于6位
2、如果需求规定了某个输入域的集合,或者必须如何的情况下,可确定一个有效等价类及一个无效等价类。
  • 有效等价类

以字母开头
  • 无效等价类

非字母开头
3、如果需求规定了某个输入域是真假值时,可确定一个有效等价类和一个无效等价类。
4、如果用户需求规定了输入域是一组值,则可确定若干个有效等价类及一个无效等价类。
京东商城
  • 钻石会员

  • 金牌会员

  • 铜牌会员

  • 普通注册用户

5、用户需求规定必须遵守某种规则时,可确定一个有效等价类及若干个从不同角度违反规则的无效等价类。
以字母开头
  • 有效等价类

    • 以字母开头

  • 无效等价类

    • 以数字开头

    • 以特殊符号开头

    • 以汉字开头

4、进行用例设计
  • 根据需求,划分有效及无效等价类,有效等价类统一编号,无效等价类统一编号。

  • 设计一个新的测试用例,使其尽可能覆盖所有尚未覆盖有效等价类,直到所有有效等价类都被覆盖。

  • 设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类都被覆盖。

5、等价类四则运算法
不考虑需求其他子项,细致分解当期测试点及详细需求,做累加。
根据业务规则减少,排除相关不可能出现的规则,减少不可能出现的组合。
如果有效等价类中具有互斥条件的需求时,可进行相乘得到用例个数。
排除所有具有重复特性的等价类,尽可能做到有效等价类之间交集为空,无效等价类之间交集也为空,有效及无效等价类的并集为整个输入域。

三、用例设计方法-边界值

1、边界值三点
  • 上点:边界上的点。

  • 离点:离上点最近的点,根据上点的精度确定。

  • 内点:边界有效范围内的任一点

如何确定离点?
  • 如果边界是闭区间,则离点在外

    • 用户名长度在[6,18]之间

      • 上点:6、18

      • 离点:5、19

      • 内点:10

  • 如果边界是开区间,则离点在内

    • 用户名长度在(6,18)之间

      • 上点:6、18

      • 离点:7、17

      • 内点:10

2、边界值应用场景
  • 如果需求规定了取值范围或规定了取值个数时,可利用该范围的边界内及边界附近的数据进行测试。

    • [6,18]

      • 上点:6、18

      • 离点:5、19

      • 内点:10

  • 如果需求规定了取值的个数,则少于个数一个,或多于个数一个的值进行测试。

    • 购买5件商品则打8折

      • 4件商品

      • 5件商品

      • 6件商品

  • 如果需求规定了一个有序集合的时候,可使用该集合的第一个和最后一个值进行测试。

    • 下拉列表中有4个城市名,现在可供选择。

      • 第一个城市

      • 最后一个城市

  • 如果程序中使用一个内部数据结构的话,则应该从该数据结构的边界进行考虑。

    • int

3、边界值方法应用步骤
  1. 根据等价类方法划分有效及无效等价类,确定上点、离点及内点,每个点统一编号。

  2. 设计一个新的测试用例,使其尽可能覆盖所有尚未覆盖的有效等价类,直到所有有效等价类完全覆盖。

  3. 设计一个新的测试用例,使其仅覆盖一个无效等价类,直到所有无效等价类完全覆盖。

四、用例设计方法-判定表

1、判定表定义
  • 分析和表述若干输入条件下,被测对象针对这些输入做出的相应一种工具。

  • 在遇到复杂业务逻辑时可以利用该表理清业务逻辑关系。

2、重要概念
  1. 条件

    1. 条件桩:需求规格说明书定义的被测对象的所有输入。

    2. 条件项:针对条件桩所有可能的输入数据的真假值。

  2. 动作

    1. 动作桩:针对条件被测对象可能采取的所有操作。

    2. 动作项:针对动作桩,被测对象响应的可能取值。

  3. 规则

动作项和条件项组合在一起,形成的业务逻辑处理规则。
3、判定表应用步骤
  1. 理解需求,确定条件桩、动作桩;

  2. 设计及优化判定表;

  3. 填写动作项;

  4. 根据判定表中输出结果的表现,进行判定表的合并(非必须);

简化判定表:如果输出相同,在其对应输入中,有且只有一个条件的取值对动作不产生任何影响则可合并。
  1. 抽取测试用例。

五、用例设计方法-因果图

1、简介
因果图,又叫鱼骨图、石川图,指的是一种发现问题“根本原因”的分析方法。因果图法着重分析输入条件的各种组合,每种组合条件就是“因”,它必然有一个输出的结果,这就是“果”。
2、输入与输入关系
  • 异:所有输入条件中最多有一个产生,也可以一个没有。

  • 或:所有输入条件中,最少有一个产生,或者多个,或所有。

  • 唯一:所有输入条件中,有且只有一个条件产生。

  • 要求:所有输入条件,只要有一个产生,其他跟着也会出现。

3、输入与输出关系
  • 恒等

    • 当输入条件发生时,结果一定会出现。

    • 当输入条件不发生时,结果一定不会出现。

    • 当输入条件发生时,结果一定不会出现。

    • 当输入条件不发生时,结果一定会出现。

当多个输入条件中,只有所有输入条件都发生,结果才会出现。

当多个输入条件中,只要有一个发生,结果就会出现。

六、用例设计方法-正交试验

1、因子
所有参与试验的影响试验结果的条件称为因子。
2、水平
影响试验因子的取值或输入称为水平。
3、整齐可比
在同一张正交表中,每个因子的每个水平出现的次数完全相同,试验中,每个因子的每个水平与其他因子的水平参与试验的机率完全相同。
4、均匀分散
同一张正交表中,任意两列的水平搭配是完全相同的。
5、设计流程
  1. 分析需求获取因子及水平;

  2. 根据因子水平选择合适的正交表;

  3. 替换因子水平,获取试验次数;

  4. 根据经验或其他因素补充试验次数;

  5. 细化输出获取测试用例。

6、注意点
  • 选择正交表时,因子与水平恰好与正交表相同。

  • 被测对象因子与正交表中的因子数不同,选择正交表中因子稍大于被测对象因子数,且试验次数最少的,多余的因子弃用。

  • 被测对象水平与正交表中的水平不同,可根据实际情况进行合并,然后拆分。

  • 因子水平都不相同,则可选择因子,水平稍大于被测对象的,且实验次数最少的。

七、用例设计方法-状态迁移

1、基本概念
关注被测对象的状态变化,在需求规格说明书中是否有不可达到的状态和非法的状态,是否产生非法的状态迁移。
2、状态定义
被测对象在特定输入条件下所保持的响应形式。
3、方法流程
  • 根据需求明确状态节点

  • 绘制状态迁移图

  • 绘制状态迁移树

  • 抽取测试用例

八、用例设计方法-流程分析

1、场景设计法
三个流程:
  • 基本流:通过业务流程输入都为正确的,能够最后达到目标的流程。

ATM取款:插入银行卡,输入密码,输入取款金额,取走,取卡。
  • 备选流:通过实现业务流程时,因错误操作或异常输入,导致流程存在反复,但最终能够完成期望业务的流程。

ATM取款,插入银行卡,输入密码(第一次输入错误,重新输入后完成剩余操作。
  • 异常流:通过实现业务流程时,因错误操作或异常输入,导致业务没有正确完成。

ATM取款,插入银行卡,输入密码,错误3次,吞卡。
2、使用方法
  1. 理解需求,确定业务流程。

  • 基本流

  • 备选流

  • 异常流

  1. 绘制流程图。

再次明确流程路径
  1. 根据业务流程图,抽取测试路径。

每次路径需包含一个从未走过的路径
  1. 化路径设计测试用例

注意点:需使用等价类、边界值、正交试验、判定表、因果图等方法保证单个功能的正确性。
本文标题:NO.3 软件测试:测试用例设计
本文链接:http://www.chenshuangyi.com/post/132.html
作者授权:除特别说明外,本文由 陈双义 原创编译并授权 陈双义博客 刊载发布。
版权声明:本文使用「署名-非商业使用-禁止演绎」创作共享协议,转载或使用请遵守署名协议。协议见页脚-知识共享许可协议。
谢谢打赏
支付宝 支付宝
微信 微信
请发表您的评论
站点信息
  • 文章总数:313
  • 页面总数:7
  • 分类总数:10
  • 标签总数:448
  • 评论总数:133
  • 浏览总数:153671
扫描关注官方微信公众号
官方微信公众号
不容错过