编辑
2023-05-01
测试理论与分析
00
请注意,本文编写于 726 天前,最后修改于 723 天前,其中某些信息可能已经过时。

目录

引言
正文
黑盒测试
白盒测试

引言

根据测试人员,是否需要对系统内部结构和实现进行测试,分为黑盒测试、白盒测试、灰盒测试三种典型场景,这里主要展示黑盒、白盒测试设计常用方法

黑盒测试:等价类划分、边界值分析等;白盒测试:语句覆盖、路径覆盖等

正文

按黑盒与白盒测试分类,不同测试用例设计方法举例

黑盒测试

测试设计方法       特点        举例
等价类划分将输入和输出数据分成有效和无效类别输入年龄,分为大于18岁和小于等于18岁的两个等效类,分别输入并观察结果
边界值分析测试输入和输出的边界条件输入取值范围为1-100,测试1、100、101的边界条件
错误推测法基于经验或者分析进行设计测试用例,能够覆盖一些潜在的易出错的地方假设有一个登录功能,在用户名和密码都正确的情况下可以登录成功,而错误推测法就是基于先前的经验或者对系统的分析,会推测出一些容易出错的地方。例如:
1.在用户名输入框中输入一个超长的字符串
2.在密码输入框中输入一个特殊字符,例如 @ 或 #
3.输入正确的用户名,但密码错误
4.输入错误的用户名和密码
因果图法根据输入和输出之间的关系设计测试用例假设一个系统要求用户输入用户名和密码才能登录,登录后才能进行操作。如果用户名或密码输入错误,则会提示“用户名或密码错误”,并要求用户重新输入。如果用户连续三次输入错误,则会锁定账号,需要联系管理员解锁。根据因果图,我们可以设计如下测试用例:
1.输入正确的用户名和密码,能够成功登录。
2.输入错误的用户名或密码,登录失败,提示“用户名或密码错误”。
3.连续输入错误的用户名或密码三次,账号被锁定。
4.在账号被锁定的情况下,输入正确的用户名和密码,不能够登录。
5.在账号被锁定的情况下,联系管理员解锁后,能够正常登录。
随机测试用随机数据生成测试用例使用随机数生成测试数据,检查系统是否能正确处理这些数据
状态迁移测试基于状态转换设计测试用例假设我们要测试一个电梯系统,该系统具有四个状态:开启、关闭、上行、下行。我们希望测试该系统的状态迁移过程,确保系统在不同状态下的转移正常。
1.开启状态:电梯门已经打开,等待乘客进入并按下楼层按钮。
测试用例1:在开启状态下,按下关闭按钮,电梯门关闭,进入关闭状态。
测试用例2:在开启状态下,按下上行按钮,电梯进入上行状态。
测试用例3:在开启状态下,按下下行按钮,电梯进入下行状态

2.关闭状态:电梯门已经关闭,等待乘客按下楼层按钮。
测试用例4:在关闭状态下,按下开启按钮,电梯门打开,进入开启状态。
测试用例5:在关闭状态下,按下上行按钮,电梯进入上行状态。
测试用例6:在关闭状态下,按下下行按钮,电梯进入下行状态。
.......

白盒测试

测试设计方法特点举例
控制流测试 细粒度,覆盖全面,可检测程序的逻辑问题
条件语句覆盖:测试用例输入为满足条件判断为真和为假的两种情况,例如 if (x > 0) {...},则输入 x=1 和 x=-1
判定语句覆盖:测试用例输入为满足所有判断条件的情况,例如 if (x > 0 && y < 10) {...},则输入 x=1 和 y=9
路径语句覆盖:测试用例输入为满足所有路径的情况,例如 if (x > 0) {if (y < 10) {...}},则输入 x=1 和 y=9
条件-判定覆盖:测试用例输入为满足所有判断条件和判断结果的情况,例如 if (x > 0 && y < 10) {...} else {...},则输入 x=1 和 y=9,以及 x=-1
数据流测试 检测数据在程序中的流向和处理,发现数据处理问题
定义变量但未使用:测试用例输入为定义但未使用的变量,例如 int x;
使用变量但未定义:测试用例输入为使用但未定义的变量,例如 x++;
变量定义和使用的顺序错误:测试用例输入为变量的定义和使用顺序错误的情况,例如 x=y+1; int y;
代码检查 静态检查程序代码,发现潜在问题
变量未初始化:代码中存在未对变量进行初始化的情况,例如 int x;
冗余代码:代码中存在重复或无用的代码,例如重复的循环条件
可能的除零错误:代码中存在可能导致除以零的情况,例如 x/y,其中 y 的值可能为 0
潜在的数组越界:代码中存在可能导致数组越界的情况,例如访问数组时使用了错误的下标
如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:月下追韩信

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!