- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
日期问题白盒测试用例的设计(实验时间2012.3.21)
一、实验目的
1.熟练掌握如何运用基路径测试方法进行测试用例设计。
二、实验内容
1、题目
前一日函数PreDate是NextDate的逆函数(代码实现见下),实现功能为:输入1800年到2050年之间的某个日期,函数返回这一天的前一天的日期。(此处不考虑无效输入)
请采用基路径方法对前一日函数进行测试用例设计。
代码:(被测函数为PreDate)
#includestdio.h
typedefstructMyDate{
intmonth;
intday;
intyear;
}MyDate;
MyDatePreDate(MyDatedate);
intLeapyear(intyear);
voidPrint(MyDatedate);
MyDatePreDate(MyDatedate)
//输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据
{
1.MyDateyesterday;
2.yesterday.month=date.month;//initialization
3.yesterday.day=date.day;
4.yesterday.year=date.year;
5.intdays_month[13]={0,31,0,31,30,31,30,31,31,30,31,30,31};
//初始化每月天数,其中2月不确定,初始化为0
6.if(date.day1)
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.elseif(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.returnyesterday;
}
21.intLeapyear(intyear)
{
22.if((year%4==0year%100!=0)||(year%400==0))
23.return1;
24.elsereturn0;
}
voidPrint(MyDatedate)
{
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-22000-1-12000-3-1
1999-3-11980-5-1
三、总结与体会
白盒测试是一种被广泛使用的逻辑测试方法,是由程序内部逻辑驱动的一种单元测试方法。只有对程序内部十分了解才能进行适度有效的白盒测试。实验中对于路径测试有了更深的理解,可以更好、更迅速的去划分路径,设计测试用例.
文档评论(0)