文档介绍:《软件测试技术》单元测试实践实验报告诚信声明本人郑重承诺:本实验报告是本人独立工作所获得的成果。尽我所知,实验报告中除特别标注的地方外,不包含其他人已经发表或撰写过的成果。实验报告中对报告工作的任何帮助者所做的贡献均做了明确的说明并表达了谢意。如有抄袭,本人愿意承担因此而造成的任何后果。特此声明。签名:Eastmount 日期:2013-6-9任务:第2题实验内容与完成情况:实验思想单元测试实践中我测试题目是第2题“输入年份year和月month,求该月有多少天”的任务。由于它是一个 C语言程序,而且没有子函数,能直接计算其结果,所以直接把该程序看做一个测试单元,并采用如下实验步骤进行测试:首先对源程序进行不执行的代码走读,静态分析源程序代码 (静态白盒测试方法),分析检查源程序的语法、结构、算法等的正确性,并对错误进行修正;然后采用动态黑盒测试的等价划分、边界值分析、错误猜解法等方法,并结合动态白盒测试的逻辑覆盖,对每条语句及分支条件都进行覆盖测试,同时测试过程中跟踪执行每一条语句,对程序进行比较完整动态测试;分析统计测试的结果,并完成实验报告。静态测试我采用的是VS2012进行单元测试,源程序如下所示:#include<>main(){intyear,month,days;printf("Enteryearandmonth:") ;scanf("%d%d",&year,&month);switch(month){case1:case3:case5:case7:case8:case10:case12:days=31;break;/*处理“大”月*/case4:case6:case9:case11:days=30;break;/*处理“小”月*/case2:if(year%4==0&&year%100!=0&&year%400==0)days=29;/*处理闰年平月*/elsedays=28;/*处理不是闰年平月*/break;default:printf("Inputerror!\n") ;/*月份错误*/days=0;}if(days!=0)printf("%d,%dis%ddays\n",year,month,days) ;}经过代码走读,静态分析源程序,我发现该程序具有以下错误:()缺少类型说明,应该添加int或void类型;.程序缺少返回值,如果定义的int型,添加“return0;”返回值,如果是void型,添加“return;”返回空值;.注意“;”的使用,它应该是英文的“;”,而代码中都是使用的中文的分号,这是一个编码方式错误的语法错误;算法错误判断闰年时的计算公式:“year%4==0&&year%100!=0&&year%400==0是错误的算法,它应该是该年“(year%4==0&&year%100!=0)||(year%400==0)”时为闰年,2月为29天(下面的测试用例及测试都是修改后的算法进行的);3•代码规范格式优化(1).按照正规的、更有效、美观的编码方式,定义变量时应该每个变量单独定义一行,这样更加方便阅读和使用,如下:intyear;intmonth;(3).在使用if语句时,最好都用括号包含相应语句代码;同时括号要单独占一行,这样更加的方便别人与自己的阅读与使用。动态测试在