黑盒测试用例设计练习题
  q2rViTiemRgY 2023年11月02日 60 0


1、准考证号码

对招干考试系统“输入学生成绩”子模块设计测试用例。招干考试分三个专业,准考证号第一位为专业代号,如:

    1-行政专业,

    2-法律专业,

    3-财经专业。

    行政专业准考证号码为:110001~111215

    法律专业准考证号码为:210001~212006

    财经专业准考证号码为:310001~314015

请划分准考证号码的等价类。

输入条件

有效等价类

编号

  无效等价类

编号

行政专业准考证号码

110001~111215数字串

(1

负无穷~110000

(4

法律专业准考证号码

210001~212006数字串

(2

111216~310000

(5

财经专业准考证号码

310001~314015数字串

(3

314016~正无穷

(6

序号

输入参数

覆盖等价类

输出参数

1

110002

(1)

输入正确

2

210012

(2)

输入正确

3

310022

(3)

输入正确

4

10000

(4)

输入错误

5

200000

(5)

输入错误

6

340000

(6)

输入错误

2、电话号码

2、电话号码

城市的电话号码由两部分组成。这两部分的名称和内容分别是:

1)地区码:以0开头的三位或者四位数字(包括0);

2)电话号码:以非0、非1开头的七位或者八位数字。

假定被调试的程序能接受一切符合上述规定的电话号码,拒绝所有不符合规定的号码,请使用等价分类法来设计它的测试用例。

输入条件

有效等价类

编号

无效等价类

编号


地区码

0开头

(1)

非0开头

(7)

三位数字串

(2)

<三位数字串

(8)

四位数字串

(3)

>四位数字串

(9)


电话号码

非0 and 非1开头

(4)

以0开头

(10)

以1开头

(11)

七位数字串

(5)

<七位数字串

(12)

八位数字串

(6)

>八位数字串

(13)

序号

输入参数

覆盖等价类

输出参数

1

012-8725656

(1)(2)(4)(5)

输入正确

2

0123-8546523

(1)(3)(4)(5)

输入正确

3

012-84864878

(1)(2)(4)(6)

输入正确

4

110-6845316

(7)

输入错误

5

01-5645642

(8)

输入错误

6

01111-4552135

(9)

输入错误

7

012-0464534

(1)(2)(10)

输入错误

8

012-1455544

(1)(2)(11)

输入错误

9

012-15454

(1)(2)(12)

输入错误

10

0123-454514542

(1)(3)(13)

输入错误

3、保险公司计算保费费率的程序

某保险公司的人寿保险的保费计算方式为:投保额×保险费率

其中,保险费率依点数不同而有别,10点及10点以上保险费率为0.6%,10点以下保险费率为0.1%;而点数又是由投保人的年龄、性别、婚姻状况和抚养人数来决定,具体规则如表1所示。

表1 保险公司计算保费费率的规则

年龄

性别

婚姻

抚养人数

20~39

40~59

其它

M

F

已婚

未婚

1人扣0.5点

最多扣3点

(四舍五入取整)

6点

4点

2点

5点

3点

3点

5点

分析程序规格说明中给出和隐含的对输入条件的要求,列出等价类表(包括有效等价类和无效等价类)。

  1. 年龄:一位或两位非零整数,值的有效范围为1~99。
  2. 性别:一位英文字符,只能取值‘M’或‘F’。
  3. 婚姻:字符,只能取值‘已婚’或‘未婚’。
  4. 抚养人数:空白或一位非零整数(1~9)
  5. 点数:一位或两位非零整数,值的范围为1~99

根据表1中的等价类表,设计能覆盖所有等价类的测试用例。

输入条件

有效等价类

编号

无效等价类

编号

年龄

1~99整数

(1)

非1~99整数

(9)

性别

‘M’

(2)

非‘M’and非‘F’

(10)


‘F’

(3)

婚姻

‘已婚’

(4)

非‘已婚’and

非‘未婚’

(11)


‘未婚’

(5)

抚养人数

null

(6)

非 null and

非1~9整数

(12)


1~9整数

(7)

点数

1~99整数

(8)

非1~99整数

(13)

序号

输入参数

覆盖等价类

输出参数

1

(50,‘M’,‘已婚’,null)

(1)(2)(4)(6)(8)

保险率为0.6%

2

(18,‘F’,‘未婚’,null)

(1)(3)(5)(6)(8)

保险率为0.6%

3

(45,‘F’,‘已婚’,8)

(1)(3)(4)(7)(8)

保险率为0.1%

4

(101,‘M’,‘已婚’,null)

(9)

输入错误

5

(65,‘H’,‘未婚’,5)

(1)(10)

输入错误

6

(78,‘F’,‘假婚’,null)

(1)(3)(11)

输入错误

7

(88,‘M’,‘已婚’,11)

(1)(2)(4)(12)

输入错误

4、输入:用户密码

要求:

1)用户密码为6到8位。

   2)必须含有字母和数的组合。

输出: 如正确,输出正确的信息。否则,输出相应的错误信息。

请结合等价类划分法和边界值分析法设计出相应的测试用例。

输入条件

有效等价类

编号

无效等价类

编号

用户密码

6<=位数<=8

(1)

位数<6

(3)

位数>8

(4)

包含字母和数字

(2)

不包含数字

(5)

不包含字母

(6)

序号

输入参数

覆盖等价类

输出信息

1

1234abcd

(1)(2)

输入正确

2

1234a

(3)

输入错误

3

123456789df

(4)

输入错误

4

abcdedf

(1)(5)

输入错误

5

1234567

(1)(6)

输入错误

5、给出某一天(年,月, 日),计算出它的下一天,取值范围为:

    年:1000<= year  <=3000   月:1<=month <=12     日:1<= day <=31 

如 1999年3月4日的下一天是:1999年3月5日

要求:

输入:三个参数(年,月, 日)

输出:如能正确计算,计算出它的下一天,

      否则,输出相应的错误信息。

1)使用C语言编写程序实现

2)请结合等价类划分法和边界值分析法设计出相应的测试用例,并依照测试用例对所编写的程序进行测试。

(1)代码如下:

#include<stdio.h>

void main()

{

       int year;

       int month,maxmonth=12;

       int day,maxday;

       printf("请输入年份:(1000~3000)");

       scanf("%d",&year);

       if(year<1000 || year>3000)

       {

              printf("输入错误!请从新输入!\n");

              printf("请输入年份:(1000~3000)");

           scanf("%d",&year);

             

       }

      

       printf("请输入月份:(1~12)");

       scanf("%d",&month);

       if(month<1 || month>12)

       {

              printf("输入错误!请从新输入!\n");

              printf("请输入月份:(1~12)");

           scanf("%d",&month);

       }

      

    if(month==4||month==6||month==9||month==11)

              maxday=30;

       else if(month==2)

       {

              if(year%400==0 || year%4==0)

                     maxday=28;

              else

                     maxday=29;

       }

       else

              maxday=31;

      

       printf("请输入日份:(1~31)");

       scanf("%d",&day);

       if(day<1 || day>maxday)

       {

              printf("输入错误!请从新输入!\n");

              printf("请输入日份:(1~31)");

           scanf("%d",&day);

       }

       if(month==maxmonth && day==maxday)

       {

              year=year+1;

              month=1;

              day=1;

       }

       else if(day==maxday)

       {

              month=month+1;

              day=1;

       }

       else

              day=day+1;

       printf("下一天是%d年%d月%d日",year,month,day);

}

(2)

输入条件

有效等价类

编号

无效等价类

编号

1000<=year<=3000

(1)

<1000

(4)

>3000

(5)

1<=month<=12

(2)

<1

(6)

>12

(7)

1<=day<=31

(3)

<1

(8)

>31

(9)

边界测试用例

序号

输入参数

输出结果

1

20000228

2000年3月1日

2

9990105

输入错误!请从新输入!

3

30010312

输入错误!请从新输入!

4

20120012

输入错误!请从新输入!

5

20111323

输入错误!请从新输入!

6

20180300

输入错误!请从新输入!

7

20560432

输入错误!请从新输入!

等价类测试用例

序号

输入参数

覆盖等价类

输出结果

1

20020105

(1)(2)(3)

2002年1月6日

2

9910502

(4)

输入错误!请从新输入!

3

30120515

(5)

输入错误!请从新输入!

4

20120015

(1)(6)

输入错误!请从新输入!

5

20141325

(1)(7)

输入错误!请从新输入!

6

20070400

(1)(2)(8)

输入错误!请从新输入!

7

20010632

(1)(2)(9)

输入错误!请从新输入!

6、假设中国某航空公司规定:

中国去欧美的航线所有座位都有食物供应。每个座位都可以播放电影。

中国去非欧美的国外航线都有食物供应,只有商务仓可以播放电影。

中国国内的航班的商务仓有食物供应,但是不可以播放电影 。

中国国内的航班的经济仓除非飞行时间大于2小时就有食物供应,但是不可以播放电影。 

使用决策表法设计测试用例。



1

2

3

4

5

6




线

中国去欧美?

Y

N

N

N

N

N

中国去非欧美的国外?

N

Y

Y

N

N

N

中国国内的航班

N

N

N

Y

Y

Y

商务仓

--

Y

N

Y

--

N

飞行时间>2小时

--

--

--

--

Y

--

食物供应

--

播放电影

--

--

--

--

测试用例


美国

亚洲,商务仓

亚洲

中国,商

中国,飞

>2

中国

7、有一个处理单价为5角钱的饮料的自动售货机软件测试用例的设计。其规格说明如下:若投入5角钱或1元钱的硬币,押下〖橙汁〗或〖啤酒〗的按钮,则相应的饮料就送出来。若售货机没有零钱找,则一个显示〖零钱找完〗的红灯亮,这时在投入1元硬币并押下按钮后,饮料不送出来而且1元硬币也退出来;若有零钱找,则显示〖零钱找完〗的红灯灭,在送出饮料的同时退还5角硬币。

要求:1)列出原因和结果,画出因果图

         2)根据因果图,建立判定表

      3)根据判定表设计测试用例数据

(1)

原因:

1----投5角硬币

2----投1元硬币

3----按【啤酒】按钮

4----按【橙汁】按钮

5----售货机有零钱(灯亮)

6----售货机没有零钱(灯暗)

结果

21----出饮料

22----出饮料,找零钱

23----不出饮料,退钱

因果图如下:

11,12为中间节点

黑盒测试用例设计练习题_测试用例

(2)(3)



1

2

3

4

5

6





1

Y

Y

N

N

N

N

2

N

N

Y

Y

Y

Y

3

Y

N

Y

Y

N

N

4

N

Y

N

N

Y

Y

5

--

--

Y

N

Y

N

6

--

--

N

Y

N

Y

11

Y

Y

Y

Y

Y

Y


12

Y

Y

Y

Y

Y

Y

21

--

--

22

--

--

--

--

23

--

--

--

--

测试用例


投5角硬币按啤酒按钮

投5角硬币按橙汁按钮

投1元硬币选择啤酒按钮售货机有零钱

投1元硬币选择啤酒按钮售货机没有零钱

投1元硬币选择橙汁按钮售货机有零钱

投1元硬币选择橙汁按钮售货机没有零钱

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年11月08日 0

暂无评论

推荐阅读
q2rViTiemRgY