软件测试实验一 黑盒测试

简介: 软件测试实验一 黑盒测试

一、实验目的

1.掌握等价类划分法;

2.掌握边界值分析法;

3.掌握因果图与决策表法;

4.掌握正交实验设计法。

二、实验内容

1.判断三角形的形状。输入三条边,如果可以构成三角形,进一步判断是否是等腰三角形或等边三角形。请用边界值分析法设计测试用例。

2.输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?要求输入三个整数a、b、c,必须满足以下条件:1≤a≤100;1≤b≤100;1≤c≤100。请用边界值分析法设计测试用例。

3.现有一份自动饮料售货机软件的规格说明如下:

有一个处理单价为1元5角的盒装饮料的自动售货机软件。若投入1元5角硬币,按下“可乐”、“雪碧”、“红茶”按钮,相应的饮料就送出来。若投入的是2元硬币,在送出饮料的同时退还5角硬币。请画出该说明的因果图,然后采用决策表法为该功能设计测试用例。

4. 在信息系统中,设有3个独立的查询条件:员工号(ID)、员工姓名(Name)、员工邮件地址(Mail Address),以获得特定员工的个人信息。用正交实验设计法设计测试用例。

三、实验步骤

1.等价类法

1)确定等价类的原则:

① 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。

② 在输入条件规定了输入值的集合或者规定“必须如何”的条件下,可以确立一个有效等价类和一个无效等价类。

③ 在输入条件是一个布尔量的情况下,可以确定一个有效等价类和一个无效等价类。

④ 在规定了输入数据的一组值(假定 n 个),并且程序要对每一个值分别处理的情况下,可确立 n 个有效等价类和一个无效等价类。

⑤ 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(不同角度违反规则)。

⑥ 在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步地划分为更小的等价类

2)等价类法设计测试用例步骤

①划分等价类后,建立等价类表,并为每一个等价类规定一个唯一的编号;

②设计一个测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步骤,直到所有的有效等价类都被覆盖为止;

③设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步骤,直到所有的无效等价类都被覆盖为止。(因为用单个测试用例覆盖无效等价类,是因为某些特定的输入错误会屏蔽或取代其他输入错误检查)

2.边界值法设计测试用例的原则:

① 如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。

② 如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少 1 、比最大个数多 1 的数作为测试数据。

③ 根据规则说明的每个输出条件,使用前面的原则 ①。

④ 根据规则说明的每个输出条件,应用前面的原则 ②。

⑤ 如果程序的规格说明给出的输入域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。

⑥ 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构边界上的值作为测试用例。

⑦ 分析规格说明,找出其他可能的边界条件。

3)决策表(判定表)设计测试用例的步骤:

1确定规则数,条件数为n,规则个数=2n

2列出所有条件桩和动作桩

3填入条件项

4填入动作项

5简化判定表,合并相似规则

4)因果图法设计测试用例的步骤:

1分析程序规格说明书的描述中,哪些是原因,哪些是结果,原因常常是输入条件或输入条件的等价类,而结果常常是输出条件。

2分析程序规格说明书中描述的的语义内容,并将其表示成连接各个原因与各个结果的因果图。

3由于语法或环境的限制,有些原因和结果的组合情况是不可能出现的,为表现这些特定的情况,在因果图上使用若干特殊的符号表明约束条件。

4把因果图转化为决策表(判断表)。

5为决策表中每一列表示的情况设计测试用例。

5)正交实验设计法

四、实验结果

1.等价类法

要求

有效等价类

编号

无效等价类

编号

输入3个数

输入3个数

1

不输入任何数

2

只输入1个数

3

只输入2个数

4

多于3个数

5

输入3个数是否为正

3个数都为正

6

有1个数小于0

7

有2个数小于0

8

有3个数小于0

9

3个数能否构成三角形

任意两数之和大于第三数

10

任意两数之和小于第三数

11

3个数能否构成等腰三角形

任意两数相等:a=b|a=c|b=c

12

3个数能否构成等边三角形

构成等边三角形:a=b=c

13

2.边界值法

测试用例

输入数据

预期输出

备注

a

b

c

1

1

100

100

等腰三角形

对A的边界值分析

2

2

100

100

等腰三角形

3

99

100

100

等腰三角形

4

100

100

100

等边三角形

5

100

1

100

等腰三角形

对B的边界值分析

6

100

2

100

等腰三角形

7

100

99

100

等腰三角形

8

100

100

100

等边三角形

9

100

100

1

等腰三角形

对C的边界值分析

10

100

100

2

等腰三角形

11

100

100

99

等腰三角形

12

100

100

100

等边三角形

3.

(1)因果图

原因

结果

C1:投入1元5角硬币

E1:送出可乐

C2:投入2元硬币

E2:送出雪碧

C3:按下“可乐”

E3:送出红茶

C4:按下“雪碧”

E4:退还5角硬币

C5:按下“红茶”

E5:提示投入硬币

(2)决策法

选项/

规则

1

2

3

4

5

6

7

条件

C1

1

1

1

0

0

0

0

C2

0

0

0

1

1

1

0

C3

1

0

0

1

0

0

-

C4

0

1

0

0

1

0

-

C5

0

0

1

0

0

1

-

10

1

1

1

1

1

1

0

动作

E1

E2

E3

E4

E5

测试用例

投1元5角硬币按下可乐

投1元5角硬币按下雪碧

投1元5角硬币按下红茶

投2元硬币按下可乐

投2元硬币按下雪碧

投2元硬币按下红茶

不投硬币按下可乐

测试用例:

测试用例编号

输入

预期输出

1

投1元5角硬币按下可乐

送出可乐

2

投1元5角硬币按下雪碧

送出雪碧

3

投1元5角硬币按下红茶

送出红茶

4

投2元硬币按下可乐

送出可乐退还5角

5

投2元硬币按下雪碧

送出雪碧退还5角

6

投2元硬币按下红茶

送出红茶退还5角

7

不投硬币按下可乐

提示投入硬币

4.正交实验设计

员工号(ID)

员工姓名(Name)

员工邮件地址(Mail Address)

因子数

水平数

1

2

3

1

1

1

1

2

1

0

0

3

0

1

0

4

0

0

1

查询条件

测试用例

员工号

姓名

邮件地址

1

True

True

True

2

True

False

False

3

False

True

False

4

False

False

True

五、实验总结

在实验过程中遇到了各种各样的问题,有些是对概念理解不清楚,但是通过与同学们相互讨论,所有问题都迎刃而解,并且成功完成了实验。

目录
相关文章
|
13天前
|
机器学习/深度学习 人工智能 算法
深入探索软件测试中的黑盒测试技术
本文旨在通过一个创新视角,探讨软件测试领域中的黑盒测试技术。我们将从一个全新的维度——测试用例的生成策略出发,分析如何提高黑盒测试的效率和效果。文章不仅会介绍传统的测试用例设计方法,如等价类划分、边界值分析等,还会结合最新的技术发展,讨论人工智能在黑盒测试中的应用前景。通过案例分析和实践应用,我们期望为读者提供一套系统的黑盒测试解决方案,以应对日益复杂的软件测试需求。
|
17天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第12天】探索性测试,一种灵活的测试实践,旨在通过自由形式的探索发现软件的潜在缺陷。它不依赖于事先编写的测试用例,而是鼓励测试人员利用直觉、经验和创造力来指导测试过程。本文将深入探讨探索性测试的核心概念、实施策略以及它如何增强传统测试方法的有效性。
|
4天前
|
XML 测试技术 数据格式
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(下)
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(下)
10 3
|
4天前
|
测试技术 Android开发 流计算
软件测试之 单元测试
软件测试之 单元测试
8 2
|
4天前
|
测试技术 Windows
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(下)
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(下)
6 2
|
4天前
|
存储 JSON 测试技术
软件测试之 接口测试 Postman使用(下)
软件测试之 接口测试 Postman使用(下)
14 2
|
4天前
|
测试技术 程序员
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(上)
软件测试之 性能测试 性能测试基础指标 Loadrunner、Jmeter等工具(上)
10 1
|
4天前
|
测试技术 数据格式
软件测试之 接口测试 Postman使用(上)
软件测试之 接口测试 Postman使用(上)
13 1
|
4天前
|
Java 测试技术 程序员
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(上)
软件测试之 自动化测试 基于Python语言使用Selenium、ddt、unitTest 实现自动化测试(上)
14 1
|
11天前
|
敏捷开发 测试技术
软件测试中的探索性测试方法
【6月更文挑战第18天】本文将深入探讨探索性测试(Exploratory Testing)在软件测试领域的重要性与实施策略。不同于传统的脚本化测试,探索性测试强调测试人员的主观能动性和创造性,以真实用户的角度出发,发现那些可能在规范性测试中被忽视的问题。文章首先介绍探索性测试的定义和优势,然后通过案例分析,展示如何有效执行探索性测试,最后讨论其在敏捷开发环境中的适应性以及如何与传统测试方法相结合以提升测试覆盖率和效率。

热门文章

最新文章