软件测试--黑盒测试重点例题以及详细概念

软件测试--黑盒测试重点例题以及详细概念

等价划分法

等价类划分标准

  • 弱覆盖 测试用例覆盖所有的等价类

  • 强覆盖 测试用例应覆盖所有等价类的组合

  • 一般 只覆盖有效等价类

  • 健壮 覆盖有效和无效等价类

等价类划分法例题

例题一:汽车销售系统

答案:

(以下为弱健壮覆盖标准)

弱健壮覆盖标准解法:

  • 每个变量均取有效值

  • 一个变量取无效值,其余均取有效值

  • 没有均取无效值的

这道题的解题步骤如下:

  1. 首先划分等价类

条件

有效等价类

编号

无效等价类

编号

A车销售量

10<=A车<=1000

1

A<10

4

A>1000

5

B车销售量

100<=B车<=5000

2

B<100

6

B>5000

7

C车销售量

20<=C车<=200

3

C<20

8

C>2000

9

题目要求汇总销售额,于是我们应当求出最小销售额,最大销售额,根据销售额划分销售额的等价类

条件

有效等价类

编号

销售额

455w(最小销售额)<=销售额<=1000w

1

1000w<销售额<=3000w

2

3000w<销售额<=18000w(最大销售额)

3

然后根据弱健壮划分标准:对于每个输入的变量我们可以得到:

  • ABC分别有一个有效等价和两个无效等价

划分测试用例时候根据输入直接划分覆盖等价类可以有

  • 1,2,3

  • 2,3,4

  • 2,3,5

  • 1,3,6

  • 1,3,7

  • 1,2,8

  • 1,2,9

数字为等价类的编号(1,2,3覆盖了所有有效,其余的分别是一个输入取无效,其余取有效,比如2,3,4为BC车取有效,A车取无效)

然后由此我们可以设计测试用例了

序号

A车

B车

C车

等价类

销售额

奖金

1

10

100

20

1,2,3

455

45.5

2

0

100

20

2,3,4

无效值

3

1001

100

20

2,3,5

无效值

4

10

0

20

1,3,6

无效值

5

10

5001

20

1,3,7

无效值

6

10

100

0

1,2,8

无效值

7

10

100

201

1,2,9

无效值

以上就是用弱覆盖标准法划分设计的测试用例

例题二:nextDate函数

NextDate函数是一个有三个变量month(月份)、day(日期)和year(年)的函数。输出为输入日期后一天的日期。要求输入变量month、day和year都是整数值,并且满足下条件:1≤month≤12、1≤day≤31、1912≤year≤2050。

针对上述需求分析,先编写一个包含NextDate函数以及对日期合法性检查的C程序,然后按照强一般等价类为该函数设计测试用例(提示:因为是强一般等价类,所以只考虑有效等价类的组合。划分等价类的时候,要考虑31天的月份、30天的月份、闰年的2月等多种情况)。

首先,可以直接划分强有效等价类:

  • 月份 1-12

  • 日期 1-31||1-30||1-29||1-28

  • 年份 1012——2050

因为是强一般等价类划分,所以

对于月份 我们划分为1 3 5 7 8 10 12(31天) 4 6 9 11(30天)2(平年28,闰年29)划分小月大月特殊月

对于日期 我们根据月份划分

(大月时候为1<=日期<=31)

(小月时候为1<=日期<=30)

(2月平年时候为1<=日期<=28)

(2月闰年时候为1<=日期<=29)

对于年份 1912<=年份<=2050

我们需要根据每个有效等价类组合都划分测试用例

序号

月份

输出

1

1

1

1912

1912.1.2

2

1

31

1912

1912.2.1

3

4

1

1912

1912.4.2

4

4

30

1912

1912.5.1

5

2

28

1913

1913.3.1

6

2

1

1913

1913.2.2

7

2

29

1912

1913.3.1

8

2

1

1912

1913.3.1

9

12

1

1912

1912.12.2

10

12

31

1912

1912.1.1

以上划分的测试用例 覆盖了所有有效等价类的组合,接下来只需要对所有无效等价类每一个单独设计一个测试用例即可

边界值分析法

边界点:可能导致被测系统处理机制发生变化的点

比如输入条件的范围为num>=a&&num<=b 且a<b,那么a和b就是输入条件的边界点

如果定义了数字区间(a,b) 那么边界点就是a,b

如果是值的个数。那么最小个数 最大个数就是边界

上面例题一的边界值划分法划分测试用例

一般:

健壮::

判定表法

判定表的四个组成部分

条件桩

条件条目

行动装

行动条目

根据条件取值的个数.判定表分为

有限判定表

扩展判定表

例题三:薪资管理制度

  某公司的薪资管理制度如下:员工工资分为年薪制与月薪制两种,员工的错误定位包括普通错误与严重错误两种,如果是年薪制的员工,犯普通错误扣款2%,犯严重错误扣款4%;如果是月薪制的员工,犯普通错误扣款4%,犯严重错误扣款8%。该公司编写了一款软件用于员工工资计算发放,现在要对该软件进行测试。请使用判定表法设计该软件的测试用例。

这道题 先判断整理出条件,动作

条件1:员工类型(年薪 月薪)

条件2:普通错误,严重错误

动作1:扣款2%(年薪制普通错误)

动作2:扣款4%(年薪制严重错误)

动作3:扣款4%(月薪制普通错误)

动作4:扣款8%(月薪制严重错误)

由此可列判定表

1

2

3

4

员工类型

年薪

月薪

错误类型

普通错误

严重错误

动作

1

2

3

4

覆盖了所有动作 根据该表 将测试用例一一列出即可

判定表规则条数计算

若每个条件只有两个值YF:规则条数为2的n次方(n为条件数)

若每个条件有多个值:规则条数为所有条件值的乘积

场景法

https://blog.csdn.net/weixin_42885805/article/details/86560451

这里不过多赘述 这篇讲的很详细了