软件测试计划测试目的1.练习和掌握软件测试管理的一般过程与步骤;2.掌握测试管理的人工过程和能够通过相关管理软件实现以下工作:a)配置软件资产信息、软件需求、软件模型和缺陷数据库;b)创建和管理多个测试组和用户;c)配置测试环境、编写详细测试计划、安排测试进度;d)设计测试脚本、测试用例;e)实施测试、执行测试和评估测试。测试选题对PriorDate程序(计算当前输入日期的前一天)的测试。测试人员何@@:软件测试计划及相关资料的编写与收集。侯@@:对特定问题编写程序代码,并对其进行黑盒测试。金@@:对特定问题编写程序代码,并对其进行白盒测试。测试方法使用白盒测试技术,测试内容包括语句覆盖测试、分支覆盖测试、条件覆盖测试、分支/条件覆盖测试、条件组合覆盖测试及基本路径测试。测试资料白盒测试测试规划基于产品的内部结构进行测试,检查内部操作是否按规定执行,软件各个部分功能是否得到充分使用,则这种测试方法称为白盒测试(White-boxTesting)方法。白盒测试又称为结构测试、逻辑驱动测试或基于程序的测试,一般用来分析程序的内部结构。白盒测试将被测程序看作一个打开的盒子,测试者能够看到被测源程序,可以分析被测程序的内部结构,此时测试的焦点集中在根据其内部结构设计测试用例。�白盒测试要求是对某些程序的结构特性做到一定程度的覆盖,或者说这种测试是“基于覆盖率的测试”。�通常的程序结构覆盖有:语句覆盖判定覆盖条件覆盖判定/条件覆盖路径覆盖软件测试过程单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标。集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。数据整理测试所得到的用例测试报告、BUG报告,需要进行反馈和最后的归档,归档的工作按照项目计划中所规定的内容进行,反馈的工作在测试项结束后,整理成测试总结报告后进行,具体的日期,在项目计划中有规定。不同阶段的测试,都需要重复以上的步骤。其他必要的数据整理的工作,由项目经理在进行过程中进行安排。PriorDate程序测试报告(白盒)问题描述:定义一个PriorDate函数,PriorDate函数为了获得当前输入日期的前一个日期,执行如下操作:如果输入日期day变量值大于1,则把day变量的值减1;如果输入日期是2~12月份中某月的第一天,则把day变量的值置为前一个月的最后一天,month变量的值减1;如果输入日期是1月的第一天,则day变量的值置为31,month变量的值置为12,year变量的值减1。关于最后一天的判断:�如果是有31天的月份(1,3,5,7,8,10,12),day变量值为31;�如果是有30天的月份(4,6,9,11),day变量值为30;�如果是有29天的月份(闰年的2月),day变量值为29;�如果是有28天的月份(非闰年的2月),day变量值为28。程序代码(开发环境:Windows7、VC++):#includeiostreamusingnamespacestd;intmain(){intlastday,lastmonth,lastyear;intday,month,year;boolc1=1,c2=1,c3=1;while(c1&&c2&&c3){coutEntertoday'sdateinformYYYYMMDDendl;cout例如2012年6月7号,输入形式为:201267endl;cinyearmonthday;c1=(day=1)&&(day=31);c2=(month=1)&&(month=12);c3=(year=1900)&&(year=2050);if(!c1)coutValueofdaynotintherange1~31\n;if(!c2)coutValueofmonthnotintherange1~12\n;if(!c3)coutValueofyearnotintherange1900~2050\n;switch(month){case5:case7:case10:case12:if(day1){lastday=day-1;lastmonth=month;lastyear=year;}else{lastday=30;lastmonth=month-1;lastyear=year;}break;case2:case4:case6:case8:case9:case11:if(day1){lastday=day-1;lastmonth=month;lastyear=year;}else{lastday=31;lastmonth=month-1;lastyear=year;}break;case3:if(day1){lastday=day-1;lastmonth=month;lastyear=year;}else{if(year%4==0&&year%100!=0||year%400==0){lastday=29;lastmonth=2;lastyear=year;}else{lastday=28;lastmonth=2;lastyear=year;}}break;case1:if(day1){lastday=day-1;lastmonth=month;lastyear=year;}else{lastday=31;lastmonth=12;if(year!=1900)lastyear=year-1;elsecoutlastyearisnotinrangeendl;}break;default:couterror!endl;}if(c1&&c2&&c3)coutthelastdayis:lastyearlastmonthlastday\nendl;}return0;}测试方法:白盒测试(语句覆盖、分支覆盖、条件覆盖、分支/条件覆盖、条件组合覆盖及基本路径测试方法)测试用例设计:程序的流程图如下图:YUXWVTJPHGFECBAOYesYesNoYesYesYesYesYesNoNoNoNoNoNoNodefaultSQLNMK开始天数1到31月份1到12打印输入天数出错打印输入月份出错年份1812到2012Month匹配打印输入年份出错day1day1day1day1语句语句5,7,10,122,4,6,8,9,11语句语句语句润年语句语句语句year!=1812语句语句语句c1&&c2&&c3打印结束31DIRYZ1.语句覆盖语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。测试用例的设计格式如下:【输入的(a,b,x),输出的(a,b,x)】测试数据执行路径预期结果实际结果month=13,day=32,year=2013OACEGZValueofdaynotintherange1...31Valueofmonthnotintherange1...12Valueofyearnotintherange1812...2012error!Valueofdaynotintherange1...31Valueofmonthnotintherange1...12Valueofyearnotintherange1812...2012error!month=12,day=12,year=2010OBDFHLYthelastdayis12112010thelastdayis12112010month=12,day=1,year=2010OBDFHMYthelastdayis11302010thelastdayis11302010month=11,day=12,year=2010OBDFINYthelastdayis11112010thelastdayis11112010month=11,day=1,year=2010OBDFIPYthelastdayis10312010thelastdayis10312010month=3,day=12,year=2000OBDFJQYthelastdayis3112000thelastdayis3112000month=3,day=1,year=2010OBDFJRYthelastdayis2282010thelastdayis2282010month=1,day=12,year=2010OBDFKSYthelastdayis1112010thelastdayis1112010month=1,day=1,year=2010OBDFKTWYthelastdayis12312009thelastdayis12312009month=1,day=1,year=1812OBDFKTXYlastyearisnotinrangethelastdayis1231lastyearisnotinrangethelastdayis1231-8589934602.分支覆盖执行足够的测试用例,使得程序中的每一个分支至少都通过一次测试数据执行路径预期结果实际结果month=13,day=32,year=2013OACEGZValueofdaynotintherange1...31ValueofmonthnotinValueofdaynotintherange1...31Valueofmonthnotintherange1...12Valueofyearnotintherange1812...2012error!therange1...12Valueofyearnotintherange1812...2012error!month=12,day=12,year=2010OBDFHLYthelastdayis12112010thelastdayis12112010month=12,day=1,year=2010OBDFHMYthelastdayis11302010thelastdayis11302010month=11,day=12,year=2010OBDFINYthelastdayis11112010thelastdayis11112010month=11,day=1,year=2010OBDFIPYthelastdayis10312010thelastdayis10312010month=3,day=12,year=2000OBDFJQYthelastdayis3112000thelastdayis3112000month=3,day=1,year=2000OBDFJRYthelastdayis2292000thelastdayis2292000month=3,day=1,year=2010OBDFJRYthelastdayis2282010thelastdayis2282010month=1,day=12,year=2010OBDFKSYthelastdayis1112010thelastdayis1112010month=1,day=1,year=2010OBDFKTWYthelastdayis12312009thelastdayis12312009month=1,day=1,year=1812OBDFKTXYlastyearisnotinrangethelastdayis1231lastyearisnotinrangethelastdayis1231-8589934603.条件覆盖执行足够的测试用例,使得判定中的每个条件获得各种可能的结果。测试数据执行路径预期结果实际结果month=13,day=32,year=2013OACEGZValueofday