测试用例设计

  • 今日目标
  • 软件测试设计方法
  • 1.等价类划分法(五星)——复习知识
  • 2.边界值(五星)
    • 案例1:QQ账号(6——10位自然数)
    • 案例2:添加标题(标题长度>0且标题长度<=30)
    • 案例3:两位数加法器
    • 案例4:sina邮箱
  • 3.判定表(五星)
    • 案例1:用户呼叫(若用户欠费或关机,则打不通(不允许主被叫))
    • 案例2:订单状态
    • 案例3:文件修改
  • 4.因果图(扩展)
    • 案例1:文件修改
  • 5.正交法(扩展)
    • 核心思想
    • 正交表
    • 基于正交表设计测试用例
      • 案例1:字符属性设置程序
    • 基于allpairs设计测试用例
      • 案例2:用户筛选按钮
  • 6.场景法(流程图法)
  • 7.错误推测法
  • 8.测试用例设计方法总结
  • 今日总结

今日目标

  • 使用边界值法设计出测试用例
  • 使用判定表法设计出测试用例

软件测试设计方法

  • 等价类(五星)
  • 边界值(五星)
  • 判定表(五星)
  • 场景法(流程图)(五星)
  • 错误推测法(二星)

1.等价类划分法(五星)——复习知识

  • 作用:从穷举测试中解放出来,找到具有共同特性的测试输入子集。

  • 概念:代表性的测试输入集

  • 分类

    • 有效等价类(满足需求)
    • 无效等价类(不满足需求)
  • 设计测试用例的步骤

    • 需求分析
    • 划分等价类
    • 设计测试用例
  • 典型应用场景

    • 具有典型输入框的场景

2.边界值(五星)

  • 作用:对等价类划分法的补充。测试经验表明错误往往会发生在输入和输出范围的边界。

  • 概念:基于输入输出的边界值(有效等价类和无效等价类的分界点)进行测试的一种黑盒测试方法。

  • 边界值的确定

    • 上点:边界点(边界上得点。开区间的话,上点就是在域外;闭区间得话,上点就是在域内)

    • 内点:范围内的点

    • 离点:离边界最近的两点(刚好大于、刚好小于)

  • 设计测试用例步骤

    • 需求分析 明确需求

    • 划分等价类 有效和无效等价类

    • 确定边界范围值 :上点、内点和离点

    • 提取数据设计测试用例

  • 典型应用场景

    • 在等价类的基础上针对有边界范围的测试数据输入的地方
    • 常见词语描述:大小、尺寸、重量、最大、最小、至多、至少等修饰词语
    • 典型代表:有边界范围的输入框类测试

案例1:QQ账号(6——10位自然数)

需求 数学表示 上点 内点 离点 精简5点
6——10位自然数 [6,10] 6 10 8 5 7 9 10

只考虑有效等价类:【包含了边界点为6(上点)、5(离点)、11(离点)的测试用例】

有效等价类加上边界值法后设计的测试用例:【添加了 边界点为10(上点)、7(离点)、9(离点)和8(内点) 的测试用例】

注:正确的测试用例比错误的测试用例优先级高

案例2:添加标题(标题长度>0且标题长度<=30)

需求 数学表示 上点 内点 离点 精简5点
标题长度>0且标题长度<=30 (0,30] 0 30 15 -1 1 29 31 0 1 15 30 31

案例3:两位数加法器

需求(两位数加法器取值范围) 数学表示 上点 内点 离点 精简5点
大于等于-99,小于等于99 [-99,99] -99和99 20 -100,100
大于-99,小于等于99 (-99,99] -99,99 20 -98,100
大于等于-99,小于99 [-99,99) -99 99 0 -100 98
大于-99,小于99 (-99,99) -99 99 0 -98 98

注:
如果是闭区间,离点是区域范围外离上点最近的点
如果是开区间,离点是区域范围内离上点最近的点
助记:
上点是有效数据时,离点是无效数据
上点是无效数据时,离点是有效数据

案例4:sina邮箱

新浪邮箱登录,要求输入(邮箱名)@sina.cn和(密码)
邮箱名为:4-16位字符,支持英文、数字、下划线(不能全是数字或者下划线)
密码:6-18位字符

扩展知识:

  • 边界值优化【7点变5点】

  • 结论:

    • 上点:必选(不考虑区间开闭)

    • 内点:必选(建议选择中间范围)

    • 离点:开内闭外(考虑开闭区间,开区间选择内部离点即有效点,闭区间选择外部离点即无效点。)

  • 例子:大于-99,小于等于99经过边界值优化后取的五点(绿色):

3.判定表(五星)

  • 概念:存在多个输入条件、多个输出结果,输入和输入之间有组合关系,输入和输出之间有依赖或制约关系。

  • 作用:等价类边界值分析法主要关注单个输入类条件的测试,并未考虑输入条件之间的各种组合、输入条件与输出结果之间有相互制约关系的测试。

  • 判定表组成:

    1. 条件桩:所有输入条件,如欠费状态、关机状态

    2. 动作桩:所有的可能的输出结果,如允许主被叫、不允许主被叫。

    3. 条件项:单个条件的取值范围,一般都是有效等价类和无效等价类。
      表示方式:
      ① 字符: 真/有效等价类:Y ; 假/无效等价类:N
      ② 数字: 真/有效等价类:1 ; 假/无效等价类:0

    4. 动作项:基于每一种条件的组合,得到确认的结果,如打不通等。

  • 设计测试用例的步骤

    1. 明确条件桩(找到所有的输入条件)
    2. 明确动作桩(找到所有的输出结果)
    3. 对条件桩进行全组合。
    4. 明确每个组合对应的动作桩(基于每一种条件的组合情况,确定本组合下的输出结果。)
    5. 设计测试用例,每行数据对应一条测试用例。
  • 真假表示说明:

    表示形式
    数字 1 0
    符号 Y N
  • 使用场景:多条件组合情况

案例1:用户呼叫(若用户欠费或关机,则打不通(不允许主被叫))

 不欠费表示条件成立,欠费表示条件不成立;不关机表示条件成立,关机表示条件不成立。

案例2:订单状态

 订单检查:如果金额大于500元,又未过期,则发出批准单和提货单;如果金额大于500元,但过期了,则不发批准单与提货单;如果金额小于500元,则不论是否过期都发出批准单和提货单;在过期的情况下,不论金额大小还需要发出通知单。

案例3:文件修改

 如果想对文件进行修改,输入的第一列字符必须是A/B,第二列字符必须是一个数字,如果第一列字符不正确,则给出信息L;如果第二列字符不正确,则给出信息M。

4.因果图(扩展)

  • 概念:用图解的方法表示输入的各组合关系,写出判定表,进而设计测试用例的一种【黑盒测试】方法。

  • 适用范围:适用于分析程序输入条件的各种组合情况,以及输入和输出之间的依赖关系。

  • 核心

    • 因:条件
    • 果:结果
  • 基本符号(掌握)

    • 恒等(-):条件成立,结果成立。
    • 非(~)NOT:条件成立,结果不成立;条件不成立,结果成立。
    • 或(V)OR:只要有一个条件成立,结果就成立;所有条件都不成立时,结果才不成立。
    • 与/且(^)AND:多个条件必须同时成立,结果成立;只要有一个不成立,结果就不成立。
  • 设计测试用例的步骤

    • 需求分析

    • 画出因果图

    • 将因果图转换为判定表

    • 生成测试用例

案例1:文件修改

如果想对文件进行修改,输入的第一列字符必须是A/B,第二列字符必须是一个数字,如果第一列字符不正确,则给出信息L;如果第二列字符不正确,则给出信息M。

结果

  • 小结

    • 输入条件比较少(2,3,4),推荐直接使用判定表。
    • 输入条件比较多(>4),推荐使用因果图。

5.正交法(扩展)

核心思想

  • 用最小的测试用例获得最大的测试覆盖率。

正交表


说明

  • k代表因素(输入参数)
  • m叫水平(输入参数的取值)
  • n代表测试用例数
  • 读法:k因素m水平
  • 知道km找到对应标准的正交表(直接百度k因素m水平正交表)之后,只要会ctrl+c和ctrl+v就行了

基于正交表设计测试用例

  • 步骤

    • 需求分析
    • 确定因素与水平(因素:控件名称;水平:每个控件对应的取值)
    • 确定要采用的正交表
    • 将正交表中的字母用文字代替
    • 设计测试用例(一行就是一条测试用例)

案例1:字符属性设置程序

 窗体中有多个控件(字体、字符样式、颜色、字号),每个控件有多个取值字体:仿宋、楷体、华文彩云字符样式:粗体、斜体、下划线颜色:红色、绿色、蓝色字号:20号、30号、40号

分析
因素:字体、字符样式、颜色和字号 4
水平:每个条件都能取3个值 3
所以找四因素三水平的表格,如下图:

正常要有81个测试用例,利用正交表只要9条测试用例即可。
依次复制粘贴可得9条测试用例:

case 字体 字符样式 颜色 字号
1 仿宋 粗体 红色 20号
2 仿宋 斜体 绿色 30号
3 仿宋 下划线 蓝色 40号
4 楷体 粗体 绿色 40号
5 楷体 斜体 蓝色 20号
6 楷体 下划线 红色 30号
7 华文彩云 粗体 蓝色 30号
8 华文彩云 斜体 红色 40号
9 华文彩云 下划线 绿色 20号

基于allpairs设计测试用例

  • 目的
    不用自己一个一个去复制粘贴了 将确定的因素和水平放至txt文件中 运行allpairs自动找到正交表设计出测试用例。
  • 步骤
    • 需求分析

    • 在excel表格中确定因素与水平(因素:控件名称;水平:每个控件对应的取值)

    • 将确定的因素与水平ctrl+c ctrl+v复制到txt文件中保存文件后关闭txt文件,注意不要修改任何信息。

    • 文本文档放到allpairs文件夹下,这个文件名不要带中文不要纯数字最好就用原始的 test.txt 命名。此时txt文件的路径为
      D:\workspace\网页\allpairs\test.txt

    • 打开DOS窗口,进入allpairs目录

      • 可以直接在txt所在页面直接点击路径,输入cmd+回车,进入控制台就已经在allpairs文件夹处。
      • win+r进入控制台,输入D:\workspace\网页\allpairs 进入 allpairs文件夹。
    • 运行命令:allpairs.exe test.txt > result.txt 没有消息就是好消息

    • 根据生成的新文件编写测试用例(一行就是一条测试用例)

案例2:用户筛选按钮

假设有一个用户筛选功能,有3个输入分别是体型、年龄段、性别,体型有3个取值:胖、适中、瘦;年龄段有3个取值:老人、青年、儿童;性别有2个取值:男,女;
请设计测试用例。


复制到txt文件,打开cmd运行命令,打开result.txt选取对应结果(即测试用例)粘贴到xlsx文件中。

只要关注testcase处的内容 下面的不用管他 pairings那列也不用管。~男是因为性别只有两个可选:男 女。表里两个~男可以用两个男或两个女替换,但不能用一男一女替换。

6.场景法(流程图法)

  • 概念:场景法就是模拟用户操作软件时的场景,主要用于测试多个功能之间的组合使用情况。

  • 使用测试阶段

    • 集成测试
    • 系统测试
    • 验收测试
  • 设计测试用例的步骤

    • 需求分析

    • 绘制流程图

    • 设计测试用例(一条流程路径就是一条测试用例)

  • 流程图常用符号

    • 开始或结束:椭圆

    • 方向或路径:箭头

    • 处理或操作:长方形

    • 判断:菱形

    • 输入或输出:平行四边形

  • 绘制流程图

    • 第1步:确认场景中关键业务步骤

    • 第2步:确定业务之间的先后顺序

    • 第3步:用箭头连接即可


7.错误推测法

  • 概念:利用经验智慧发现程序中可能犯错的地方。

  • 使用场景

    • 重要功能

    • 使用同类型产品

    • 任务急、时间紧、资源少


8.测试用例设计方法总结

  • 具有输入功能,但输入之间没有组合关系==》【等价类】
  • 输入有边界 如长度、类型==》【边界值】
  • 多输入、多输出、输入与输入之间存在组合关系、输入与输出之间存在依赖或制约关系==》【判定表、因果图】
  • 用最少的测试用例获得最大测试覆盖率时 ==》【正交法】(输入和输入之间可能互斥或依赖)
  • 多个功能的组合测试 ==> 【场景法、流程图】
  • 最后推荐使用【错误推测法】来进一步补充测试用例

今日总结

  • 能够结合案例找出边界值的上点、离点和内点
  • 能够使用边界值方法设计(新浪邮箱登录案例)测试用例
  • 能够说出边界值方法的适用场景
  • 能够使用判定表方法设计(文件修改案例)测试用例
  • 能够说出判定表方法的使用场景
  • 能够说出场景法的应用场景
  • 能够说出错误推断法的应用场景

软件测试 - 功能测试Ⅱ相关推荐

  1. 软件测试——功能测试:边界值测试

    软件测试--功能测试:边界值测试 边界值分析 边界的定义 边界点的定义 边界值分析 测试边界线 边界值分析的局限性 健壮性测试 最坏情况测试 健壮最坏情况测试用例 最坏情况测试的局限性 特殊值测试 随 ...

  2. 自学软件测试 - 功能测试篇

    引言 软件学习之路:功能测试,自动化测试,性能测试. 近些年来,随着互联网的高速发展,互联网上的教程多到你看都看不完的,自学成了一个人最根本的能力.如何自学软件测试,个人经验认为可以通过以下途径学习. ...

  3. 软件测试 - 功能测试Ⅰ

    文章目录 测试概念及模型 目标 1. 软件测试分类(复习) 1.1 按阶段划分 ⭐⭐ 1.2 按是否覆盖源代码划分 ⭐⭐ 1.3 按是否运行划分 1.4 按是否自动化划分 1.5 更多 2. 软件开发 ...

  4. 软件测试———功能测试1

    功能测试 1.软件测试的定义: 1.1认识软件及测试 1.2测试主流技能 1.3就业方向如何选择 1.4常见的测试分类(7种测试用例) 1.5测试模型(质量模型的重点五项) 1.6软件测试流程(6个步 ...

  5. 软件测试功能测试都有哪一些,【软件测试基础】功能测试常用方法都有哪些

    一. 输入框测试 1. 字符型输入框: (1)字符型输入框:英文全半角.数字.空或者空格.特殊字符"~!@#¥%--&*?[]{}"特别要注意单引号和&符号.禁止直 ...

  6. 软件测试——功能测试(缺陷)2

    功能测试--缺陷 缺陷 1.定义: 2.缺陷知识点 3.缺陷编写 3.1 缺陷报告示例 3.2 缺陷的跟踪流程 3.3 提交缺陷注意事项 3.4编写规范 3.5 缺陷类型 3.6 工作流程 4.缺陷管 ...

  7. 软件测试-功能测试-知识点

    文章目录 1.软件测试基础 1.软件测试的分类(重点) 2. 软件开发模型(了解) 3.软件测试模型(了解) 4.软件质量模型(了解) 2.测试用例及其设计方法(重点) 2.1等价类用例设计方法(重点 ...

  8. 间歇性踌躇满志,持续性混吃等死,做了一年软件测试功能测试,觉的在浪费时间怎么办?

    前言 随着互联网时代的发展和进行,大量的人群涌入到互联网行业,尤其进入软件测试行业的人比较多,不管是有经验还是没有经验,在没有任何了解的情况下花钱去培训,以为自己就能拿到所谓的"高薪&quo ...

  9. 软件测试 - 功能测试(缺陷管理+禅道使用)

    一.缺陷管理 1.缺陷概述 1.1 缺陷的定义 * 产品实现不满足用户需求 测试执行时,实际结果和预期结果不一致 什么是Bug ? 狭义概念:是指软件程序的漏洞或缺陷 广义概念:除此之外还包括测试工程 ...

最新文章

  1. 【Qt】Qt再学习(八):Media Player(Qt实现多媒体播放器)
  2. SES机箱管理知识回顾(二) 之SAF-TE简介
  3. C语言小案例_10天从小白到入门C语言编程的学习秘籍
  4. Effective C++ 读后感
  5. OpenShift 4 - 使用 emptyDir/hostPath/local 类型 PV
  6. 机器学习入门——numpy与matplotlib的使用简介
  7. Django 配置访问静态文件
  8. Opengl es2.0 学习笔记(十)VBO、IBO和FBO
  9. linux备份数据库
  10. 华为、中兴嵌入式(C)笔试题
  11. 最常用英语单词2000个
  12. 用友u8 php,php读取用友u8采购入库单列表及详细
  13. Python初学者(零基础学习Python、Python入门)常见问题:书籍推荐、资料、社区
  14. 电感的能量储存在哪里-深度解析(4)
  15. u-boot下载地址
  16. 关于daemonize()
  17. 《他乡的童年》观后感——英国教育
  18. 联想笔记本如何安装内存条——附安装结果检查方法及问题解决方法
  19. java中的“我”不是“我”,NaN特殊标识以及正无穷+负无穷应该等于多少?
  20. 东南亚电商发展迅猛,中国卖家“钱”途光明

热门文章

  1. 阿里云国际版服务器如何搭建区块链应用程序
  2. 关于qq邮箱 该文件已达到200次的下载限制,您已不能下载该文件 的问题处理
  3. JavaSE基础笔记(全)
  4. 红米k40关闭广告方法分享(图文)
  5. linux、centOS虚拟机出现entering emergency mode解决方案
  6. 一个在线测试正则表达式的网站推荐
  7. ADC中PPM rms dBFS
  8. 使用stm32配置自定义的HID设备
  9. 使用STM32CubeMX 快速生成 USB HID 工程 - STM32F107VCT6
  10. 程序员代码面试指南刷题--第五章.字符串的调整II