IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发测试 -> 黑盒测试部分方法 -> 正文阅读

[开发测试]黑盒测试部分方法

一、等价类划分

一个程序可以有多个输入,等价类划分就是将这些输入数据按照输入要求进行分类,将它们划分为若干个子集,这些子集即为等价类,在每个等价类中选择有代表性的数据设计测试用例

1、有效等价类:有效等价类就是有效值的集合,它们是符合程序要求、合理且有意义的输入数据

2、无效等价类:无效等价类就是无效值的集合,他们是不符合程序要求、不合理或无意义的输入数据

3、等价类划分原则

  • 如果程序要求输入值是一个有限区间的值,则可以将输入数据划分为一个有效等价类和两个无效等价类,有效等价类为指定的取值区间,两个无效等价类分别为有限区间两边的值

  • 如果程序要求输入的值是一个“必须成立”的情况,则可以将输入数据划为一个有效等价类和一个无效等价类

  • 如果程序要求输入数据是一组可能的值,或者要求输入值必须符合某个条件则可以将输入数据划分一个有效等价类和一个无效等价类

  • 如果在某一个等价类中,每个输入数据在程序中的处理方式都不相同,则应将该等价类划分成更小的等价类,并建立等价表

4、设计测试用例

  • 确定测试对象,保证非测试对象的正确性

  • 为每个等价类规定一个唯一编号

  • 设计有效等价类的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类,直到测试用例覆盖了所有的有效等价类

  • 设计无效等价类的测试用例,使其覆盖所有的无效等价类

二、边界值分析法概述

1、边界值分析法是对软件的输入或输出边界进行测试的一种方法,它通常作为等价类划分法的一种补充测试

2、边界值选取

  • 选取5个值:最小值、略大于最小值、正常值、略小于最大值、最大值

  • 选取7个数:略小于最小值、最小值、略大于最小值、正常值、略小于最大值、最大值、略大于最大值

三、因果图设计法

1、因果图需要处理输入之间的作用关系,还要考虑输出情况,因此它包含了复杂的逻辑关系,这些复杂的逻辑关系通常用图示来展现,这些图是就是因果图

2、因果图使用一些简单的逻辑符号和直线将程序的因(输入)与果(输出)连接起来,一般原因用ci表示,结果用ei表示,ci与ei可以取值“0”或“1”,其中“0”表示状态不出现,“1”表示状态出现

3、ci与ei之间有恒等、非(~)、或(V)、与(^)4种关系

image.png

  • 恒等:在恒等关系中,要求程序有一个输入和一个输出,输出与输入保持一致。若c1为1,则e1也为1,若c1为0,则e1也为0

  • 非:非使用符号“~”表示,在这种关系中,要求程序有一个输入和一个输出,输出是输入的取反。若c1为1,则e1为0,若c1为0,则e1为1

    image.png

  • 或:或使用符号“V”表示,或关系可以有任意个输入,只要这些输入中有一个为1,则输出为1,否则输出为0

  • 与:与使用符号“^”表示,与关系也可以有任意个输入,但只有这些输入全部为1,输出才能为1,否则输出为0

    image.png

4、一些依赖关系在软件测试中称为“约束”,约束的类别可分为四种:E(Exclusive,异)、l(at least one,或)、O(one and only one,唯一)、R(Requires,要求),在因果图中,用特定的符号表明这些约束关系

  • E(异):a和b中最多只能有一个为1,即a和b不能同时为1

  • l(或):a、b和c中至少有一个必须是1,即a、b、c不能同时为0

  • O(唯一):a和b有且仅有一人为1

  • R(要求):a和b必须保持一致,即a为1时,b也必须为1,a为0时,b也必须为0

5、除了输入条件,输出条件也会相互约束,输出条件的约束只有一种M(Mask,强制),强制约束关系

6、使用因果图色设计测试用例的步骤

  • 分析程序规格说明书描述内容,确定程序的输入与输出,即确定“原因”和“结果”

  • 分析得出输入和输入之间、输入与输出之间的对应关系,将这些输入与输出之间的关系使用因果图表示出来

  • 由于语法与环境的限制,有些输入与输入之间、输入与输出之间的组合情况是不可能出现的,对于这种情况,使用符号标记它们之间的限制或约束关系

  • 将因果图转换为决策表。

四、决策表

1、决策表也称为判定表,其实质就是一种逻辑表

2、决策表通常由4个部分组成

  • 条件桩:列出问题所有的条件,除了某些问题对条件的先后次序有要求之外,通常决策表中所列条件的先后次序都无关紧要

  • 条件项:条件项就是条件桩的所有可能取值

  • 动作桩:动作桩就是问题可能采取的操作,这些操作一般没有先后次序之分

  • 动作项:指出在条件项的各组取值情况下应采取的动作

    image.png

3、一些不影响结果取值的问题为无关条件项,用“-”表示。忽略无关条件项,可以将两条规则合并

五、正交实验设计法概述

1、正交试验设计法是指从大量的实验点中选出适量的、有代表性的点,依据Glois理论导出“正交表”,从而合理的安排实验的一种实验设计方法

2、正交实验法包含三个关键因素

  • 指标:判断实验结果优劣的标准

  • 因子:因子也称为因素,是指所有影响实验指标的条件

  • 因子的状态:因子的状态也叫因子的水平,它指的是因子变量的取值

3、利用正交实验法设计测试用例的步骤

  • 提取因子,构造因子状态表

  • 加权筛选,简化因子状态表

  • 构建正交表,设计测试用例

4、正交表最大的特点时取点均匀分散、齐整可比,每一列中每种数字出现的次数都相等,即每种状态的取值次数相等

5、注意:正交实验法虽然好用,但在选择正交表时要注意先要确定实验因子、状态及他们之间的交互作用,选择合适的正交表,同时还要考虑实验点精度要求、费用、时长等因素

正交实验法例子:??某所大学通信系共2个班级,刚考完某一门课程,想通过“性别”、“班级”和“成绩”这三个查询条件对通信系这门课程的成绩分布,男女比例或班级比例进行人员查询:
????????????根据“性别”=“男,女”进行查询
????????????根据“班级”=“1班,2班”查询
????????????根据“成绩”=“及格,不及格”查询
????????????按照传统设计——全部测试

????????????

1、分析上述测试需求,有3个被测元素,被测元素我们称为因素,每个因素有两个取值,我们称之为水平值。因此,规格描述中有3个独立变量且每个变量2个取值:性别(男, 女),班级(1班, 2班),成绩(及格, 不及格)。

2、如果按照传统设计方法全部测试,针对所有因素的全部水平值进行全排列。测试用例个数是2*2*2=8,用例如下:

TestCase1:选择性别="女"、班级="1班"、成绩="及格",查询

TestCase2:选择性别="女"、班级="1班"、成绩="不及格",查询

TestCase3:选择性别="女"、班级="2班"、成绩="及格",查询

TestCase4:选择性别="女"、班级="2班"、成绩="不及格",查询

TestCase5:选择性别="男"、班级="1班"、成绩="及格",查询

TestCase6:选择性别="男"、班级="1班"、成绩="不及格",查询

TestCase7:选择性别="男"、班级="2班"、成绩="及格",查询

TestCase8:选择性别="男"、班级="2班"、成绩="不及格",查询

3、根据因素数和水平数确定n值。水平数m=2,因素数k=3。n=k*(m-1)+1=3*(2-1)+1=4,L4(23)。

4、选择L4(23)正交表为。正交表获取路径:http://www.york.ac.uk/depts/maths/tables/orthogonal.htm。并把变量的值映射到表中。

image.png

5、把每一行转换成一个测试用例,得到4个测试用例如下:

TestCase1:选择性别="男"、班级="1班"、成绩="及格",查询

TestCase2:选择性别="男"、班级="2班"、成绩="不及格",查询

TestCase3:选择性别="女"、班级="1班"、成绩="不及格",查询

TestCase4:选择性别="女"、班级="2班"、成绩="及格",查询

6、根据实际情况可以在用正交试验法设计用例的基础上补充一些测试用例(非常重要),比如选择性别="男"、班级="1班"、成绩="不及格"是实际最常用的查询场景,则需要添加补充查询。用例如下:

TestCase5:选择性别="男"、班级="1班"、成绩="不及格",查询

  开发测试 最新文章
pytest系列——allure之生成测试报告(Wind
某大厂软件测试岗一面笔试题+二面问答题面试
iperf 学习笔记
关于Python中使用selenium八大定位方法
【软件测试】为什么提升不了?8年测试总结再
软件测试复习
PHP笔记-Smarty模板引擎的使用
C++Test使用入门
【Java】单元测试
Net core 3.x 获取客户端地址
上一篇文章      下一篇文章      查看所有文章
加:2021-07-05 20:28:17  更:2021-07-05 20:29:04 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/17 18:52:54-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码