关于测试用例之一的白盒测试
做过测试的朋友都知道,好的测试用例是测试成功的基石,那么该如何设计好的测试用例?
一、什么是测试用例?
测试用例是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。
其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为一个特定目标开发的一组测试输入、执行条件和预期结果,该目标例如执行一个特定的程序路径或者验证一个特定需求的符合性。
二、如何设计测试用例?
大体上测试方法分为白盒测试和黑盒测试,对于黑盒测试(功能测试),在设计用例时我们应该做到以下三点:
一、定义一个好的测试用例模板,以确保用一种公共的方式描述测试用例。
例如每个测试用例通常可以包括以下内容:1)测试用例标识;2)测试用例编写者;3)被测软件标识;4)测试目的;5)测试策略;6)测试输入;7)测试步骤;8)期望结果;9)测试输出;10)通过/失败准则等
二、定义一些具体设计方法,例如下面内容:
(一) 等价类:
1)根据需求将输入划分为若干个等价类,从该等价类中选一个测试用例,若该测试用例通过,则认为该等价类通过;
2)解决了输入无穷的情况,使用较少的测试用例来覆盖更多的功能;
3)划分为有效等价类和无效等价类
有效等价类:符合产品需求规格说明书,有意义的输入数据构成的集合,验证程序是否实现了产品需求规格说明书中所规定的功能和性能;
无效等价类:不符合产品需求规格说明书的集合。
(二)边界值:
1)边界值是作为等价类的补充;
2)对输入输出的边界值进行测试,要注意开区间、闭区间、半开半闭区间。
例:针对密码限制输入6-16位长度设计测试用例
有效等价类:6 < x < 16
无效等价类:x < 6 || x > 16
边界值:5,6,16,17
完整的测试用例:5(离点),6(上点),10(内点),16(上点),17(离点)
(三) 因果图
用于被测程序有多输入,且程序的输出依赖输入的情况,一般分析程序如下:
1)找出所有的输入条件;
2)明确所有的输出条件;
3)明确所有条件之间的制约关系以及组合关系,哪些条件不能组合在一起,哪些条件可以组合在一起;
4)明确所有输出之间的制约关系以及组合关系,哪些条件不能组合在一起,哪些条件可以组合在一起;
5)找出什么样的输入条件组合会产生哪种输出结果;
6)根据因果图,写出判定表;
7)根据判定表设计测试用例。
(四)正交排列
正交法的目的就是为了减少测试用例数目,用尽可能少的用例覆盖输入的亮两组合。
设计方法如下:
1)确定因素,对软件运行结果有影响的软件;
2)确定因素的取值范围;
3)确定每个因素的水平,采用等价类,边界值,在每个因素内跳出最具有代表性的测试值;
4)选择正交表设计测试用例。
(五)场景设计法
适合用于设计业务流程的功能,设计方法如下:
1)理解需求,确定业务基本流程、备选流程、异常流程;
2)绘制流程图,再次确认流程路径;
3)根据业务流程图,抽取测试路径;
4)细化路径,利用等价类边界值方法细化路径,抽取测试用例。
(六)错误推断法
基于经验和直觉,找出程序中你认为可能出现的错误,有针对性的设计测试用例。
三、理解需求是关键
好的用例设计是建立在对需求的正确理解上,基于对需求的理解然后采用相应的设计方法依照测试用例模板进行设计即可。
对于白盒测试
白盒测试也称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。
白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。“白盒”法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。
通常白盒用例的设计方法有两种,静态设计方法和动态设计方法。
A.静态设计方法
代码审查、代码走查、代码扫描工具等。
B.动态设计方法
语句覆盖、分支覆盖、条件覆盖、DMC/DC覆盖、路径覆盖(覆盖程序中所有可能的路径)等。
PS:有没有测试用例自动生成工具?
市面上针对功能测试的自动生成工具几乎没有,其最根本的原因是因为测试用例需要和需求对应关联,针对白盒测试,可以脱离需求只针对代码本身的逻辑结构进行测试,所以市面上有一些自动化测试工具。
国内
国外
对单元测试中想解放双手,节省时间,提高测试效率的小伙伴可以看:
http://www.ubisectech.com/product/?id=73
iUnit 自动化智能单元测试工具,采用动态符号执行与约束求解技术,自动分析代码可执行路径并生成覆盖所有路径的测试用例与测试驱动代码,批量执行测试用例并统计测试覆盖率,实现单元测试工作高度自动化。有较丰富的覆盖率支持,例如:语句覆盖率、分支覆盖率、条件覆盖率与修订的条件/判定覆盖率(MC/DC),而且自动生成测试用例覆盖率接近100%,并针对GJB 5000A要求提供一站式单元测试解决方案。
关于测试用例之一的白盒测试相关推荐
- 软件测试 黑盒白盒测试方法总结
白盒测试-语句覆盖 设计测试用例,让程序的每个可执行的语句都执行一次.在分支处通过不同的用例,让分支的有执行的方向都执行过都执行过.这里需要注意,是让语句去执行,下图中之所以说1-2-4是完全语句覆盖 ...
- 黑盒测试,白盒测试与灰盒测试的比较和区别
定义 黑盒测试 黑盒测试是一种软件测试技术,它可以检查软件的功能,而不会窥视其内部结构或编码.黑盒测试的主要来源是客户声明的要求规范. 在此方法中,测试人员选择一个函数并提供输入值以检查它的功能,并检 ...
- 白盒测试--数据流测试
文章目录 白盒测试--数据流测试 基础定义 最少测试用例数计算 白盒测试–数据流测试 基础定义 数据流测试主要用于优化代码,早期的数据流分析常常集中于定义/引用异常的缺陷. 变量被定义,但从来没有使用 ...
- 测试用例设计方法(2)
https://www.cnblogs.com/molrang/p/6420918.html 转载 本篇由本人整理黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界 ...
- 测试用例设计方法(转)
本篇由本人整理黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分 ...
- 自动化测试之-测试用例设计方法总结
黑盒.白盒.接口测试一系列用例设计方法. 黑盒测试用例设计方法包括等价类划分法.边界值分析法.错误推测法.因果图法.判定表驱动法.正交试验设计法.功能图法.场景图法等. (一)等价类划分法 定义:等价 ...
- 软件测试中的白盒测试分析
伴随着软件测试技术的迅速发展,白盒和黑盒测试在测试行业中运用的越来越多.白盒测试相对于黑盒测试在很多地方是不同的,白盒趋向于对软件结构和代码进行测试,可以设计出测试用例. 可靠的软件白盒测试工程师可以 ...
- 白盒测试重点复习内容
白盒测试 白盒测试之逻辑覆盖法 逻辑覆盖用例设计方法 1.语句覆盖 2.判定覆盖(分支覆盖) 3.条件覆盖 4.判定条件覆盖 5.条件组合覆盖 6.路径覆盖 白盒测试之基本路径测试法 基本路径测试方法 ...
- 逻辑覆盖测试用例设计
逻辑覆盖测试用例设计 实验目标 能够依据程序画出程序流程图 理解常用覆盖方法的内涵 理解常用覆盖方法的强弱关系 能够使用常用覆盖方法设计测试用例 背景知识 白盒测试通常采用静态测试方法和动态测试方法开 ...
最新文章
- Android 对象池案例
- java程序设计_80后程序员,带你深入理解Java基本的程序设计结构,不来你别后悔...
- 引用js或css后加?v= 版本号的用法
- Java中的记录类型
- 云计算学习(4-3)虚拟化技术-存储虚拟化
- linux下qt制作日历,课内资源
- 判断无序数组中是否存在两个数之和为m
- poj 3630 Phone List trie树—字典树 静态数组版!!!
- Java内部类定义与调用
- Vue中的filter过滤器是使用方法
- 手机上能不跳转就不跳转
- 特殊符号大全复制_王者荣耀名字特殊符号2019 稀有漂亮最新热门符号大全
- 基于区块链的融合通信初探(一)
- 内核的同步机制(原子锁)
- 我是一个将近30岁的女程序员
- 智慧农业系统开发功能有哪些?
- mysql 把表名改成大写_mysql将表名改成大写的实例
- 一行Python代码去除照片背景
- 提高组CSP-S初赛模拟试题整理
- html5中表单属性值_如何在HTML表单中使用Autocompletetype属性
热门文章
- ssh,ssm整合redis存储验证码
- 美国波士顿大学计算机课程,N同学_波士顿大学_计算机_录取成功案例分享
- Ubuntu搭建渗透测试环境
- one's complement two's complement【待考究】
- php+pg+query+更新,PHP连接及操作PostgreSQL数据库的方法详解
- 层级重音分析与预测方法研究
- 电动汽车企业Rivian年亏损67.5亿美元:股价重挫18% 市值降至145亿美元
- New bing 添加候选方法(附加绕过每回合条数限制,无限制的BingChat,找回Sydney,prompt 预设管理器)
- 3dmax:3dmax动画栏之关键帧动画经典案例(弹跳小球、实活力小球(上升慢下降快)、小球跳墙、跳动越来越低的小球实例、空间跳动的小球、球跳阶梯)之详细攻略
- HC_SR04超声波模块的应用