软件测试实验一 黑盒测试

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

一、实验目的

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

五、实验总结

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

目录
相关文章
|
7天前
|
测试技术
探索软件测试的奥秘:如何构建有效的测试策略
在软件开发的海洋中,测试是确保航船不沉没的灯塔。本文将带你领略测试的魅力,从基础概念到高级策略,我们将一起航行在软件测试的广阔海域,探寻那些隐藏在代码深处的秘密。准备好了吗?让我们启航吧!
20 1
|
13天前
|
敏捷开发 测试技术 持续交付
软件测试中的探索性测试方法及其重要性
【8月更文挑战第6天】在软件开发周期中,测试环节是不可或缺的。它确保了产品的质量、性能与可靠性。然而,传统的测试方法往往侧重于预设的测试用例和场景,可能忽略了用户实际使用过程中的非预期行为。探索性测试(ET)应运而生,它强调测试人员的自主性和创造性,通过不断学习和适应来发现软件的潜在缺陷。本文将探讨探索性测试的概念、实施策略及其在现代软件开发中的重要性。
|
14天前
|
测试技术
软件测试中的心理学:如何优化测试流程
【8月更文挑战第6天】本文深入探讨了软件测试过程中的心理学因素,揭示了测试人员的心理动态对测试效率和质量的影响。通过分析测试人员的压力源、动机以及团队间的沟通问题,提出了一系列改善策略,如建立积极的反馈机制、提供持续的职业培训和优化工作环境等,旨在提升软件测试的整体效能。文章最后提出一个开放性问题,邀请读者思考如何在不断变化的技术环境中维持测试团队的心理健康和动力。
|
20天前
|
测试技术
软件测试中的探索性测试方法
在软件开发周期中,测试环节扮演着至关重要的角色。本文将深入探讨一种灵活而高效的测试方法——探索性测试。我们将通过具体实例分析其实施过程,并讨论如何通过这种方法提高软件质量和测试效率。最后,我们提出一个开放性问题,邀请读者思考探索性测试在他们工作中的实际应用和潜在价值。 【7月更文挑战第31天】
|
17天前
|
机器学习/深度学习 人工智能 数据挖掘
重塑软件测试未来:自动化与人工智能的交响乐章,引领高效精准测试新时代
【8月更文挑战第3天】软件测试是确保软件质量的关键环节。随着自动化与AI技术的发展,测试正经历从手动到自动、再到智能的深刻变革。自动化显著提升了测试效率,减少人为错误;AI则通过数据分析和学习能力,实现了测试用例的自动生成与优化,提高了测试的智能水平。两者的融合不仅增强了测试的全面性和准确性,还预示着一个更加高效智能的测试新时代的到来。
19 1
|
19天前
|
机器学习/深度学习 人工智能 测试技术
探索式测试:软件测试的未来趋势
在数字化时代,软件测试是确保产品质量和用户体验的关键环节。传统的测试方法虽然有效,但往往耗时耗力,难以适应快速迭代的开发模式。本文将介绍一种新兴的测试方法——探索式测试,它强调测试人员的主观能动性,通过不断地学习和探索来发现软件中的问题。我们将分析其原理、优势及实施过程,并探讨它如何成为未来软件测试的趋势。
|
21天前
|
敏捷开发 测试技术
软件测试中的探索性测试:一种灵活的质量保证方法
在软件开发周期中,测试是确保产品质量的关键步骤。传统的测试方法往往依赖于事先定义好的测试用例,但这种方法可能无法覆盖所有潜在的缺陷和场景。探索性测试(ET)作为一种更为灵活的测试方式,允许测试人员在执行测试的同时设计和适应测试用例,从而提高了测试覆盖率并发现更多隐藏的缺陷。本文将探讨探索性测试的核心概念、实施策略以及与传统测试方法的比较,旨在为软件测试专业人员提供一种更高效、适应性强的测试手段。
|
30天前
|
测试技术
单元测试问题之过去的软件测试如何解决
单元测试问题之过去的软件测试如何解决
|
14天前
|
敏捷开发 搜索推荐 测试技术
探索式测试:软件测试的灵活之道
在软件发展的快速迭代中,传统的测试方法往往显得笨重且效率低下。探索式测试(Exploratory Testing)作为一种敏捷的测试实践,强调测试人员的个人技能与经验,提倡在测试过程中即兴发挥,以更加高效地发现软件缺陷。本文将深入探讨探索式测试的核心理念、实施步骤及其在实际项目中的有效应用,为读者提供一种全新的视角来审视和改进软件测试流程。
|
1月前
|
机器学习/深度学习 人工智能 自然语言处理
探索自动化测试的前沿:AI与软件测试的融合
在数字化浪潮中,软件测试作为确保产品质量的关键步骤,正迎来一场革命。本文将深入探讨人工智能(AI)如何革新传统软件测试流程,通过具体案例分析,揭示AI技术在提高测试效率、减少人为错误以及预测潜在缺陷方面的潜力。我们将一窥AI在自动化测试中的应用现状,并展望其对未来软件质量保障的影响。

热门文章

最新文章