测试用例常见的设计方法有:等价类划分法边界值分析法错误推测法判定表法正交实验法

一、等价类划分法

顾名思义,顾名思义,等价类划分,就是将测试的范围划分成几个互不相交的子集,他们的并集是全集,从每个子集选出若干个有代表性的值作为测试用例。
  例如,我们要测试一个用户名是否合法,用户名的定义为:8位数字组成的字符。
  我们可以先划分子集:空用户名,1-7位数字,8位数字,9位或以上数字,非数字。
  然后从每个子集选出若干个有代表性的值:
  空用户名:“” (无效等价类实例,指对于软件规格说明而言,没有意义的、不合理的输入)
  1-7位数字:”234” (无效等价类实例)
  8位数字:”00000000” (有效等价类实例,能检验程序是否实现了规格说明中所规定的功能和性能)
  9位或以上数字:”1234567890” (无效等价类实例)
  非数字:”abc&!!!” (无效等价类实例)
  他们5个,就是用等价类划分选出的测试用例。实际上,对于1-7位数字的子集来说,选“234”和“11111”没有本质的区别。
  等价类的划分,最关键的是子集的划分。实际上,非数字还可以继续划分子集:字母,特殊字符。

二、边界值分析法

  长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。选出的测试用例,应选取正好等于、刚刚大于、刚刚小于边界的值,例如,对于在区间min,max的值,测试用例可以记为min,min+,max,max-。
  例如,假定 X 为整数,10≤X≤100,那么 X 在测试中应该取的边界值为:10,11,99,100。
  注:上面只是说边界值,如果是完整的测试,除了边界值外,还需要一个正常值,即12-98之间的任意值。
三.错误推测法
  错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
  这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

三、错误推测

  错误推测法是指:在测试程序时,人们可以根据经验或直觉推测程序中可能存在的各种错误,从而有针对性地编写检查这些错误的测试用例的方法。
  这种方法没有固定的形式,依靠的是经验和直觉,很多时候,我们都会不知不觉的使用到。

四、判定表法

  又称为策略表,基于策略表的测试,是功能测试中最严密的测试方法。该方法适合于逻辑判断复杂的场景,通过穷举条件获得结果,对结果再进行优化合并,会得到一个判断清晰的策略表。
  例如,某公司对客户分类标准如下:
  顾客每次订货额在1000元以上(含1000元),信誉好的,订单设“优先”标志;
  信誉不好,但是老客户的,订单设“优先”标志;
  信誉不好,但是新客户的,订单设“正常”标志;
  每次订货额在 1000元以下,订单设“正常”标志。
  绘制的决策表如下:
  
  此表分两大行,两大列,分别用不同的颜色区别。
  浅蓝:列出所有条件(或称为输入)
  浅灰:列出所有结果(或称为输出,行动或决策)
  浅黄:穷举所有条件的组合
  浅绿:根据每一列的条件,判断出结果
  因为穷举了所有条件,所以可以说这个判断是100%正确的。下一步是对这个表进行合并优化。
   例如,从编号为1,2的列可以看出,顾客订单>=1000,信誉好,不管是新顾客还是老顾客,都设为优先,于是上面的表合并整理后,得到下表

这样,我们就可以得到更清晰的逻辑判断,也可以更好的协助我们编写测试用例。而决策表,对于开发人员来说一样有用。
  从上面的表格,我们就可以写出更简洁的判断语句。

五.正交实验法

  用语言描述正交实验法会很抽象难懂,简单说,就是在各因素互相独立的情况下,设计出一种特殊的表格,找出能以少数替代全面的测试用例。
  其中,上面所说的特殊表格就是正交表,是按照一定规则生成的表。
  虽然说是特殊的表格,实际表现形式跟一般的表格没有什么区别,正交表的主要特征是,“均匀分布,整齐划一”,正是因为“均匀”的,所以才能以少数代替全部。
  例如:
  某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询。
  按照传统的方式,我们将会穷举所有的组合,来编写测试用例,组合个数是2*2*2=8。
  排列组合参见下表
  
  【这里还没看完,不好意思,回头再来。】

参考自:测试用例的几种常见设计方法

测试用例的几种常见设计方法相关推荐

  1. PHP几种常见魔术方法与魔术变量解析

    PHP几种常见魔术方法与魔术变量解析 先不多说,直接上代码,如下: 1 class Demo 2 { 3 private $str = 'str'; 4 5 //实例化时自动加载function 6 ...

  2. 【转载】面向对象建模与数据库建模两种分析设计方法的比较

    [转载]面向对象建模与数据库建模两种分析设计方法的比较 板桥里人 http://www.jdon.com 2007/9/23(转载请保留) 我们知道:一个软件从无到有需要经过如下几个阶段:分析.设计. ...

  3. 寻找网站后台的几种常见的方法

    (注:本教程仅供学习交流使用,不可用于一切未授权的网络攻击和违法行为!) 当我们进入一个网站时,如何对其后台进行查找.从而进一步渗透?今天给大家介绍几种常见的方法: 查看网站图片中的属性 我们可以随机 ...

  4. excel 几种常见使用方法

    excel 几种常见使用方法 问题1:将 excel 某一列删除一个相同的单位,比如 kw 解决方案: 选中整列数据,按 ctrl + H 快捷键,将 kw 替换为 空,点击全部替换即可. 问题2:针 ...

  5. 简要描述内部连接和外部连接之间的区别_sqlserver的几种常见连接方法

    感谢本文几种描述方法,让我解决了最近的一段时间的疑问,转载下来,以供后面查血使用. 本文链接:https://blog.csdn.net/huanghanqian/article/details/52 ...

  6. Java实现几种常见排序方法

    为什么80%的码农都做不了架构师?>>>    日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序 ...

  7. java 鸡尾酒排序_Java实现几种常见排序方法

    日常操作中常见的排序方法有:冒泡排序.快速排序.选择排序.插入排序.希尔排序,甚至还有基数排序.鸡尾酒排序.桶排序.鸽巢排序.归并排序等. 冒泡排序是一种简单的排序算法.它重复地走访过要排序的数列,一 ...

  8. 场景UI交互动效设计法则与12种常见设计

    场景UI 交互动效的首要目标应是支持和增强用户在状态间的转化,在进行场景UI 交互动效设计时,通常遵循着6个目的.4项作用以及5大应用法则: 动效存在的6个目的: 1.吸引用户注意力在指定区域 2.表 ...

  9. 八种常见排序方法总结 C/C++代码实现

    目前评价排序算法的好坏标准主要有两点: 1.执行时间:高效的排序算法的比较次数和移动次数都应该尽可能的少. 2.辅助空间:算法执行期间所需要的辅助空间与待排序数据量无关. 文章目录 1.冒泡排序 2. ...

  10. python字符串27种常见的方法

    如有字符串 mystr = 'hello world itcast and itcastcpp' ,以下是常见的操作: <1>find 检测 str 是否包含在 mystr中,如果是返回开 ...

最新文章

  1. 基本函数依赖和候选键_5G 通信候选波形的设计和评测解决方案
  2. hdu 3697 贪心
  3. *62.分页和分段的区别
  4. centos配置yum本地源
  5. HttpWatch是强大的网页数据分析工具
  6. c++常见的排序表与复杂度
  7. notepad++修改背景色
  8. 机器学习笔记(6) 线性回归
  9. [Dart] Flutter开发中的几个常用函数
  10. Cocos2d-3.x目录介绍分析
  11. python几种括号表示的类型
  12. 数字和数字根的总和_使用8086微处理器查找8位数字的数字总和
  13. task判断任务是否存在
  14. 美国转基因食品的生产现状
  15. 获取文件夹下所有视频
  16. 以太网帧分析与IP报文结构分析(二)
  17. 2022年陕西省职业院校技能大赛中职组网络安全赛项规程
  18. Windows没有应用商店情况安装英特尔集成显卡控制面板
  19. Ubuntu20.04安装中国版firefox
  20. 爬虫学习(14):selenium自动化测试(三):鼠标和键盘操作

热门文章

  1. Java 前后端分离部署方式
  2. Linux Shell 脚本教程
  3. 一文详解对称密钥加密
  4. CAN总线负载率原理及计算
  5. 有道翻译js逆向解析
  6. IDEA插件-Translation提示更新TKK失败,配置有道翻译解决
  7. Translate插件的有道翻译
  8. matlab传递函数带符号变量,符号传递函数matlab
  9. 远程控制——一句话木马
  10. #define c# 报错_天轰穿C#教程之#define和#undef【原创】