实验三日期题白盒测试用例设计

日期问题白盒测试用例的设计(实验时间2012.3.21)

一、实验目的

1.熟练掌握如何运用基路径测试方法进行测试用例设计。

二、实验内容

1、题目

前一日函数PreDate是NextDate的逆函数(代码实现见下),实现功能为:输入1800 年到2050
年之间的某个日期,函数返回这一天的前一天的日期。(此处不考虑无效输入)

请采用基路径方法对前一日函数进行测试用例设计。

代码:(被测函数为PreDate)

#include"stdio.h"

typedef struct MyDate{

int month;

int day;

int year;

}MyDate;

MyDate PreDate(MyDate date);

int Leapyear(int year);

void Print(MyDate date);

MyDate PreDate(MyDate date)

//输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据

{

1.MyDate yesterday;

2.yesterday.month = date.month; // initialization

3.yesterday.day = date.day;

4.yesterday.year = date.year;

5.int days_month[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};

//初始化每月天数,其中2月不确定,初始化为0

6.if(date.day>1)

7.yesterday.day=date.day-1;

else

{

8.if(date.month==1)

{

9.yesterday.year=date.year-1;

10.yesterday.month=12;

11.yesterday.day=31;

}

12.else if(date.month==3)

{

13.if(Leapyear(date.year))

{

14.yesterday.month=2;

15.yesterday.day=29;

}

else

{

16.yesterday.month=2;

17.yesterday.day=28;

}

}

else

{

18.yesterday.month=date.month-1;

19.yesterday.day=days_month[date.month-1];

}

}

20.return yesterday;

}

21.int Leapyear(int year)

{

22.if((year%4==0&&year%100!=0) || (year%400==0))

23.return 1;

24.else return 0;

}

void Print(MyDate date)

{

25.printf("%d--%d--%d\n",date.year,date.month,date.day);

}

2、测试用例设计

1)控制流图

2)环路复杂度计算

圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界。独立路径必须包含一条在定义之前不曾用到的边。

对应上面图中的圈复杂度,计算如下:

流图中有五个区域;

V(G)=4个判定结点+1=5。

3)基本路径集设计

基本路径集为:

A.1、2、3、4、5、6、8、12、13、14、15、20、25

B.1、2、3、4、5、6、8、12、16、17、20、25

C.1、2、3、4、5、6、8、12、18、19、20、25

D.1、2、3、4、5、6、8、9、10、11、20、25

E.1、2、3、4、5、6、7、20、25

根据上面的独立路径,去设计输入数据,使程序分别执行到上面五条路径。

4)测试用例集设计

为了确保基本路径集中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到,满足上面例子基本路径集的测试用例是:

2000-1-2 2000-1-1 2000-3-1

1999-3-1 1980-5-1

三、总结与体会

白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进 行

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信