测试用例设计

  1. 用于冒烟测试的用例为最高优先级
  2. 把基本路径以及各模块主功能的测试标注为高优先级别
  3. 把你所有错误和边界值或确认测试标注为中优先级别

随机测试存在的问题

不知道是否较全面的测试了所有功能
测试的覆盖率无法衡量
对新版本的重复测试很难实施
无法对测试质量进行有效评估
无法形成有效的知识积累

测试用例的概念

• 测试用例是指为实施测试而向被测试系统提供的输入数据,操作或者各种环境设置以及期望结果的一个特定集合。(简单来说,测试用例就是解决要测什么,怎么测和如何衡量的问题)

测试用例的属性

1.用例ID
2.用例名称
3.测试目的
4.测试级别 -----冒烟测试
5.参考信息
6.前提条件 ----预置条件
7.测试步骤
8.预期结果

测试用例的特征

最有可能抓住错误的
不是重复的、多余的
既不是太简单
也不是太复杂

用例设计原则

• 1.测试用例对需求覆盖的完整性 -----------需求覆盖100%,是对测试质量的保证
• 2.测试用例的有效性 ----新的版本(功能调整升级)要针对需求重新编写用例
• 3.测试用例的可理解性
• 4.测试用例的清晰性
• 5.测试用例的可维护性

测试用例优先级的划分能提高测试效率,降低风险

  1. 用于冒烟测试的用例为最高优先级 -------发现百分之八十的问题
  2. 把基本路径以及各模块主功能的测试标注为高优先级别
  3. 把你所有错误和边界值或确认测试标注为中优先级别
  4. 把可用性测试,兼容性测试等标注为低优先级别
  5. 将功能测试用例分为严重和不严重两类,对于不严重的功能测试用例降级
    为低优先级用例

测试用例设计方法

等价类----黑盒测试用例设计方法

定义

把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例就可以用少量代表性的测试数据取得较好的结果。设计时一定要考虑两种等价类,不仅能接受合理的数据,也能经受意外

有效等价

对于程序的规格来说是合理的,有意义的输入数据构成的集合,利用有效等价可检验程序是否实现了规格说明中所规定的功能和性能

无效等价

对于程序的规格来说是不合理的,无意义的输入数据构成的集合。对于具体的问题,无效等价至少有一个,也可能有多个

划分等价类的标准

完备测试,避免冗余

集合的划分,划分为互不相交的子集
并不是整个集合;完备性
子集互不相交,保证一种形式的无冗余性
同一类标识一个测试用例,同一等价类中,往往处理相同,相同处理映射到“相同的执行路径”

划分等价类的方法

1)在输入条件规定了取值范围或值的个数的情况下,可以确立一个等价有效类;两个等价无效类
如:输入值是学生成绩,范围是0~100

2)在输入条件规定输入值的集合,或规定了必须如何的条件下,可确立一个有效等价类和一个无效等价类(输入的为布尔量)
3)在规定输入数据的一组值(假定n个)并且程序对这四组四个值作为有效等价类和一个等效无价类(在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将等价类划分为更小的等价)
4)在规定了输入数据必须遵守规则的情况下,可确定一个有效,n个无效(从不同角度违背规则)

设计测试用例

在确立等价类后,可建立等价类表,列出所有划分的等价类输入条件:有效等价类,无效等价类,然后从划分出的等价类中按三个原则计算
为每一个等价类规定唯一的编号
设计一个测试用例,尽可能多的覆盖等价有效类重复这一步,直至覆盖完全
设计一个测试用例,覆盖一个等价无效类重复这一步,直至都被覆盖为止
案例
设有一个档案管理系统,要求用户输入以年月表示的日期。假设日期限定在1990年1月~2049年
12月,并规定日期由6位数字字符组成,前4位表示年,后2位表示月。现用等价类划分法设计测试
用例,来测试程序的"日期检查功能"。
–用边界值设置无效类

边界值测试----黑盒测试

定义:是对输入或输出的边界值进行测试的一种黑盒测试方法
长期的测试工作经验说明“错误隐藏在角落,问题聚焦在边界上”

原则:

  1. 如果输入/输出条件规定了值得范围,则应去刚刚到达这个范围的边界值(有效边界值),以及刚刚超过这个范围的值作为输入数据(无效边界值)。
  2. 如果输入/输出条件规定了值的个数,则用最大个数,最小个数(有效边界值),比最小个数少1,比最大个数多1(无效边界值)的数作为测试数据。
  3. 如果程序的规格说明书给出了输入域或输出域是有序集合,则应选取集合的第一个元素和集合的最后一个元素作为测试用例。
  4. 如果程序中使用了一个内部数据结构,则应该选择这个内部数据结构的值作为测试用例

判定表驱动分析方法

定义:

判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。

判定表的优点

能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。
在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题。
由四个部分组成
条件桩–输入 列出了问题得所有条件。通常认为列出的条件的次序无关紧要
动作桩–输出 列出了问题规定可能采取的操作。这些操作的排列顺序没有约束
条件项(Condition Entry):列出针对它左列条件的取值。在所有可能情况下的真假值。
动作项(Action Entry):列出在条件项的各种取值情况下应该采取的动作。----输入和输出之间的关系

二分法

规则
任何一个条件组合的特定取值及其相应要执行的操作称为规则。在判定表中贯穿条件项和动作项的一列就是一条规则
化简
就是规则合并有两条或多条规则具有相同的动作,并且其条件项之间存在着极为相似的关系。
例子

判定表的建立步骤:(根据软件规格说明)

1)确定规则的个数.假如有n个条件。每个条件有两个取值(0,1),故有2n种规则。
2)列出所有的条件桩和动作桩。
3)填入条件项。(排列组合)
4)填入动作项。等到初始判定表
5)简化.合并相似规则(相同动作)

正交表

用正交表设计测试用例的步骤
(1) 有哪些因素(输入/条件,因子)
(2) 每个因素有哪几个水平(变量的取值,状态)
(3) 选择一个合适的正交表
(4) 把变量的值映射到表中
(5) 把每一行的各因素水平的组合做为一个测试用例
(6) 加上你认为可疑且没有在表中出现的组合

如何选择正交表

  1. 考虑因素(变量)的个数
  2. 考虑因素水平(变量的取值)的个数
  3. 考虑正交表的行数
  4. 取行数最少的一个

    测试用例设计——软件测试基础相关推荐

    1. 软件测试基础:测试用例设计

      测试需求收集完毕后,开始测试设计.测试用例是什么?测试用例就是一个文档,描述输入.动作.或者时间和一个期望的结果,其目的是确定应用程序的某个特性是否正常的工作.设计测试用例需要考虑以下问题: 了解更多 ...

    2. 软件测试 | 期末复习——测试基础【黑盒测试用例设计】

      [测试用例设计概述] 1 测试用例的定义 (1)测试用例是为特定的目的而设计的一组测试输入.执行条件和预期的结果. (2)测试用例是执行的最小实体. 2 好测试用例的特点 (1)完整性 对测试用例最基 ...

    3. 软件测试 接口测试 接口测试的必备条件 接口测试用例设计 HTTP协议基础 Postman

      文章目录 1 接口测试概述 1.1 接口测试的定义 1.2 接口测试的范围和适用场合 2 接口测试的必备条件 2.1 接口测试的要求 2.2 标准和规范的接口文档 2.3 如何获取接口信息 3 接口测 ...

    4. 软件测试基础-黑盒测试、白盒测试、测试用例设计

      软件测试的心理学和经济学 软件测试的心理学 测试是为发现错误而执行程序的过程 测试的"成功"与"不成功" 成功:在测试某段程序时发生了错误,这些错误可以修复/本 ...

    5. 软件测试基础-(如何设计一个好的测试用例)

      目录 一.什么才算是"好的"测试用例 二."好的"测试用例必须具备哪些特征 1.等价类划分 2.边界值分析方法 3.错误推测方法 三.如何才能设计出" ...

    6. 软件测试—软件测试基础知识—测试用例设计的方法之等价类和边界值

      (一)等价类划分 定义:依据需求将输入划分为若干等价类,从等价类中选定一个测试用例,如果该测试用例通过,则表明整个等价类通过测试. 使用场景:对于等价类这个方法,一般适用于有无限多种输入 ,我们不可能 ...

    7. 软件测试基础-测试用例设计方法(等价类+边界值)

      常见的用例设计方法 等价类划分法(适用于输入项少,输入项的属性或者特性相同) 边界值分析法(适用于有范围约束的情况) 判定表法(适用于有明显的条件及其对应的动作的情况) 因果图法 状态迁移图法(适用于 ...

    8. 软件测试入门自学笔记(1)测试用例设计

      工作了一些时日,准备致力于下一阶段的提升了,于是趁现在把最开始自学时所接触到的内容再串起来回顾一遍. 一.测试用例设计 1.开发模型 (1)瀑布模型 优点:开发各个阶段清晰:强调早期计划及需求调查:适 ...

    9. 测试基础:测试用例设计方法

      测试用例 用例属性: 功能测试.性能测试.兼容测试.安全性测试 编写测试用例包括的内容: (禅道.excel) 编号.标题.前置条件.操作步骤.预期结果.优先级.一级二级分类.测试人员.测试结果.备注 ...

    10. 软件测试菜鸟还是大神,一道测试用例设计笔试题就能测出!

      软件测试菜鸟还是大神,一道测试用例设计笔试题就能测出!为什么这么说呢?是因为你们的思路有着天壤之别,来看吧: 相信不少朋友在笔试的时候都遇到过测试用例设计的笔试题.通常是一个登陆页面,上面有用户名,密 ...

    最新文章

    1. elasticsearch原理_ElasticSearch读写底层原理及性能调优
    2. python pip
    3. Java中PreparedStatement和Statement的用法区别
    4. 搜推广遇上用户画像:Lookalike相似人群拓展算法
    5. 1.1-1.5-vim编辑器
    6. mysql 数据库设计规范_MYSQL数据库设计规范与原则
    7. linux用echo显示欢迎信息,我使用过的Linux命令之echo - 显示文本、打印信息
    8. 1634C. OKEA
    9. JavaScript、Ajax、jQuery全部知识点,5分钟速懂!
    10. 树莓派该文件名_树莓派的20个常用命令
    11. 数学图形(1.49)Nephroid曲线
    12. 迷你MVVM框架 avalonjs 学习教程6、插入移除处理
    13. 图片的 orientation 属性
    14. 保存下载图片(taro h5)
    15. sklearn机器学习:泰坦尼克号幸存者的预测
    16. 博弈论在自动驾驶方向的应用(Ⅰ):变道决策的综述
    17. Soapui报错There are currently 1 running SoapUI MockServices解决办法
    18. 以AI为支点NEC欲撬动未来物联网世界
    19. matlab hold on解释,Matlab中的hold on 怎么不起作用了啊?程序如下:
    20. java编译类代码_Java的源代码中定义几个类,编译结果就生成几个以“.class”后缀的字节码。...

    热门文章

    1. MTV和MVC的区别
    2. 返回结果乱码_峰哥说技术系列-7 Spring Boot返回JSON
    3. prepared statement mysql_MySQL之 Statement实现及PreparedStatement实现
    4. mac键盘符合对应含义(⌘ ⇧)
    5. git push 到github配置(问题Pushing to Git returning Error Code 403 fatal: HTTP request failed)
    6. svg.draw.js draw rectangle 画矩形
    7. 从Gradient Descent 到 Stochastic Gradient Descent(SGD)
    8. Qt 点击任意子控件,背景选中 选中背景
    9. 安卓手机管理_安卓手机用户大福利,谷歌将改善手机内存管理,运行更流畅
    10. 模拟生成随机四位GB2312的汉字验证码(python3.X)