黑盒测试的测试用例方法_黑盒测试是基于什么的测试

黑盒测试的测试用例方法_黑盒测试是基于什么的测试测试用例

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

每天进步一点点,关注我们哦,每天分享测试技术文章

01 黑盒测试方法

1.1、等价类划分法:

根据软件测试原则可以知道,要做到穷举是不可能的,事实上也是不必要的。为了减少工作量,需要对测试用例进行适当选取。等价类划分法便提供了一种选取测试用例的方法。

等价类划分法把程序的输入域划分为若干部分,然后从每个部分中选取少量具有代表性数据当作测试用例。每一类的代表性数据在测试中的作用等价于这一类中的其他值。也就是说,如果某一类的一个用例发现了错误,这一类中的其他用例也可能发现同样的错误;反之,若某一类中第一个用例没有发现错误,则这一类中的其他用例也不会查出错误。

使用这一方法设计测试用例,首先必须在分析需求规格说明书的基础上划分等价类,列出等价类表。等价类划分有两种不同的情况:有效等价类和无效等价类。

在划分等价类时,有一些规则应该遵循。

1.如果输入条件规定了取值范围或个数,则可确定一个有效等价类和两个无效等价类。例如,输入值时选课人数,在0~100之间,那么有效等价类是:0<=学生人数<=100;无效等价类是:学生人数<0;学生人数>100。

2.如果输入条件规定了输入值的集合或是规定了“必须如何”的条件,则可确定一个有效等价类和一个无效等价类。例如,输入日期类型的数据。那么有效等价类是日期类型的数据;无效等价类是非日期类型的数据。

3.如果输入的是布尔表达式,可以分为一个有效等价类和一个无效等价类,比如要求密码非空,则有效等价类为非空密码,无效等价类为空密码。

4.如果输入条件是一组值,且程序对不同的值有不同的处理方式,则每个允许的输入值对应一个有效等价类,所有不允许的输入值的集合为一个无效等价类。例如,输入条件“职称”的值是初级、中级、高级,那么有效等价类应该有3个:初级、中级、高级。无效等价类有一个:其他任何职称。

5.如果规定了输入数据必须遵循的规则,可以划分出一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。

划分好等价类后,就可以设计测试用例了。设计测试用例的步骤可以归结为3步:

1.对每个输入和外部条件进行等价类划分,画出等价类表,并为每个等价类进行编号。

2.设计一个测试用例,使其尽可能多地覆盖有效等价类,重复这一步,直到所有的等价类被覆盖。

3.为每一个无效等价类设计一个测试用例。

1.2、边界值法:

人们长期的测试工作经验中得知,大量的错误往往发生在输入和输出范围的边界上,而不是范围的内部。因此,针对边界情况设计测试用例,能够更有效地发现错误。

通常情况下,软件测试所包含的边界条件有以下几种类型:数字、字符、位置、质量、大小、速度、方位、尺寸、空间等;对应的边界值应该在最大/最小、首位/末位、上/下、最快/最慢、最高/最低、最短/最长、空/满等情况。

用边界值分析法设计测试用例时应当遵循几条原则:

1.如果输入条件规定了取值范围,应以该范围的边界内及刚刚超范围的边界外的值作为测试用例。如以a和b作为输入条件,测试用例应当包括a和b及略大于a和略小于b的值。

2.若规定了值的个数,应分别以最大、最小个数和稍小于最小和大于最大个数作为测试用例。

3.针对每个输出条件,也使用上面的两条原则。

4.如果需求规格说明书中提到的输入或输出范围是有序的集合,如顺序文件、表格等,应注意选取有序集的第一个和最后一个元素作为测试用例。

5.分析需求规格说明书,找出其他可能的边界条件。

1.3、判定表(决策表):

多个条件、每个条件都有多个取值、组合

在一些数据处理问题中,某些操作是否实施依赖于多个逻辑条件的取值。在这些逻辑条件取值的组合所构成的多种情况下,分别执行不同的操作。处理这类问题的一个非常有力的工具就是决策表。

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

1.条件桩。列出问题的所有条件。

2.条件项。列出所列条件下的取值,在所有可能的情况下的真假值。

3.动作桩。列出问题规定可能采取的动作。

4.动作项。列出在条件项的各种取值情况下应采取的动作。

示例:(自动饮料售货机)
在这里插入图片描述
免费领取 码同学软件测试 课程笔记+超多学习资料+完整视频+最新面试题,可以转发文章 + 私信「码同学666」获取资料哦

1.4、正交表(正交实验法):

参考资料:

https://blog.csdn.net/ygyoe/article/details/80183547

在将因果图转换为决策表来生成测试用例时,若要进行全面测试,其得到的测试用例数目多的惊人。正交实验法是从大量的实验数据中挑选适量的、具有代表性的点,合理安排测试的设计方法。

日本著名的统计学家田口玄一将正交实验选择的水平组合列成表格,称为正交表。

正交表的形式为:L行数:

其中行数表示正交表中行的个数,即实验次数,也是通过正交实验法设计的测试用例个数。

因素数是正交表中列的个数,即要测试的功能点。

水平数是任何单个因素能够取得的值的最大个数。

正交表具有以下两项性质:

1.每一列中,不同的数字出现的次数相等。

2.任意两列中数字的排列方式齐全相等。

每个因素的每个水平于另一个因素的每个水平各碰一次,这就是正交性。

1.5、场景法:

现在软件很多都是用事件触发来控制流程,事件触发时的情形变形成场景,而同一事件不同的触发顺序和处理结果就形成了事件流。

用例场景是通过描述流经用例的路径来确定的过程,这个流经过程要从用例开始到结束遍历其中所有的基本流和备选流。

1.基本流。采用黑直线表示,是经过用例的最简单路径,表示无任何差错,程序从开始执行到结束。

2.备选流。采用不同颜色表示,一个备选流可以从基本流开始,在某个特定的条件下执行,然后重新加入基本流中,也可以起源于另一个备选流,或终止用例,不再加入到基本流中。

示例:(ATM机)

1.6、错误推断法:

根据经验或直觉推测程序中可能存在的各种错误。

02 黑盒测试方法选择

黑盒测试的每种测试方法都有各自的优点、缺点,需要测试人员根据实际项目特点和需要选择合适的方法设计测试用例。以下是选择方法的4条经验:

1.在任何情况下都必须选择边界值分析方法。经验表明,用这种方法设计出的测试用例发现程序错误的能力最强。

2.必要时用等价类划分法补充一些测试用例。

3.根据经验或直觉推测程序种可能存在的各种错误,用错误推测法再追加一些测试用例。

4.如果程序的功能说明中含有输入条件的组合情况,则可选用因果图法和决策表法。

选择合适的测试方法能够极大地提高黑盒测试的效率。除了上述的4条经验外,还需要测试人员积累实际的测试经验,做出合适的选择。

03 黑盒测试方法与白盒测试方法的比较

白盒测试和黑盒测试是两类软件测试方法,传统的软件测试活动基本上都可以划分到这两类测试方法中。看图

在这里插入图片描述

白盒测试和黑盒测试各有侧重点,不能相互取代,在实际测试活动中,这两种测试方法不是截然分开的。

作者:码同学软件测试
本文著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/186463.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 后端框架有哪些?8个流行的后端框架推荐

    后端框架有哪些?8个流行的后端框架推荐后端框架有哪些?8个流行的后端框架推荐后端框架在选择要使用的后端框架时,有许多选项可用。虽然每个后端框架都有自己的优点和缺点,但在做出最终决定之前,还有一些其他因素需要考虑。在本指南中,我们将仔细研究经过尝试的框架,以确定哪个是最适合您的后端框架。后端vs前端如果您是Web开发世界的新手,后端和前端开发之间的区别可能不那么明显,但是,了解两者之间的区别很重要。以下是前端开发人员与后端开发人员的一些区别。前端开发:前端开发人员在很大程度上负责用户所看到的内容(即网站页面),前端开发人员主要使用HTM

    2022年6月10日
  • 记录一次mysql 主从不同步的问题操作(hashlinux)

    记录一次mysql 主从不同步的问题操作(hashlinux)

    2021年9月16日
  • mysql截取前几个字符串_MySQL 截取字符串函数的sql语句

    mysql截取前几个字符串_MySQL 截取字符串函数的sql语句1、left(name,4)截取左边的4个字符列:SELECTLEFT(201809,4)年结果:20182、right(name,2)截取右边的2个字符SELECTRIGHT(201809,2)月份结果:093、SUBSTRING(name,5,3)截取name这个字段从第五个字符开始只截取之后的3个字符SELECTSUBSTRING(‘成都融资事业部’,5,3)结果:事业部4、…

    2022年6月1日
  • MQTT协议,终于有人讲清楚了[通俗易懂]

    MQTT协议,终于有人讲清楚了[通俗易懂]大家好,我是小麦,最近做了一个物联网的项目,顺便总结一下MQTT协议。大家都知道,MQTT协议在物联网中很常用,如果你对此还不是很了解,相信这篇文章可以带你入门。mqtt协议1MQTT协…

    2022年6月25日
  • Nhibernate_juan benet

    Nhibernate_juan benet什么是NHibernate?NHibernate是一个基于.Net,用于关系数据库的对象持久化类库.它是著名的Hibernate的.Net版本.NHibernate用于把你的.Net对象持久化到底层的关系数据库中.你完全不用自己编写Sql语句去操作这些对象,NH会代替你做.你的代码里面只需要关心这些对象,NH生成sql语句并能为你取到正确的东西.开发过程HNibernate将会有一些工具帮助你,如

    2022年10月29日
  • ios开发真机调试_ios真机调试

    ios开发真机调试_ios真机调试本教程是写给对iOS已经有基本了解且熟悉Xcode的程序猿/媛们-首先Xcode要求7以上,并且运行Xcode,点击左上角菜单Xcode->Preferences。设置好版本点击Accounts,然后点下面的+号,在弹出菜单中点击AddAppleID。如果账号密码正确的话,会显示如下图。Free表示未付费但可免费调试,双击打开笔者的AppID是用iclound邮箱注册

    2022年9月4日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号