白盒测试实验报告_第1页
白盒测试实验报告_第2页
白盒测试实验报告_第3页
白盒测试实验报告_第4页
白盒测试实验报告_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实 验 报 告课 程软件测试实验项目白盒测试用例设计与执行专业年级计科07级姓 名李专学 号0705010136指导教师实验时间2010-6-4实验成绩一、实验目的1熟练掌握如何运用基路径测试方法进行测试用例设计。2初步熟悉如何利用程序插装技术进行逻辑覆盖率分析。 二、实验内容1、题目前一日函数PreDate是NextDate的逆函数(代码实现见下),实现功能为:输入1800 年到2050 年之间的某个日期,函数返回这一天的前一天的日期。(此处不考虑无效输入)请采用基路径方法对前一日函数进行测试用例设计,并利用程序插装技术对测试用例的判定覆盖率进行检查分析。代码:(被测函数为PreDate)#

2、includestdio.htypedef 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

3、.day; 4.yesterday.year = date.year; 5.int days_month13=0,31,0,31,30,31,30,31,31,30,31,30,31;/初始化每月天数,其中2月不确定,初始化为06.if(date.day1)7.yesterday.day=date.day-1;else8.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)1

4、4.yesterday.month=2;15.yesterday.day=29;else16.yesterday.month=2;17.yesterday.day=28; else18.yesterday.month=date.month-1;19.yesterday.day=days_monthdate.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

5、)25.printf(%d-%d-%dn,date.year,date.month,date.day);2、测试用例设计1)控制流图2)环路复杂度计算由图可知,图中的环路有五条,故环路复杂度为五。3)基本路径集设计基本路径集为:A1、2、3、4、5、6、8、12、13、14、15、20、25B1、2、3、4、5、6、8、12、16、17、20、25C1、2、3、4、5、6、8、12、18、19、20、25D1、2、3、4、5、6、8、9、10、11、20、25E1、2、3、4、5、6、7、20、254)测试用例集设计测试用例集为:2000-1-2 2000-1-1 2000-3-1 1999-

6、3-1 1980-5-13、插装后源程序清单与判定覆盖率分析结果(要求截取插装后程序运行界面)#includestdio.htypedef struct MyDate int month; int day; int year; MyDate; int a6;MyDate PreDate(MyDate date);int Leapyear(int year);void Print(MyDate date);int count();MyDate PreDate(MyDate date)/输入日期有效性检查中其他模块实现,此处假设输入日期都是合法数据 MyDate yesterday; yester

7、day.month = date.month; / initialization yesterday.day = date.day; yesterday.year = date.year; int days_month13=0,31,0,31,30,31,30,31,31,30,31,30,31;/初始化每月天数,其中2月不确定,初始化为0if(date.day1) a0=count();yesterday.day=date.day-1;else a1= count();if(date.month=1) a2= count(); yesterday.year=date.year-1;yeste

8、rday.month=12;yesterday.day=31;else if(date.month=3) a3=count();if(Leapyear(date.year)a4=count();yesterday.month=2;yesterday.day=29;elsea5=count();yesterday.month=2;yesterday.day=28; else a6=count();yesterday.month=date.month-1;yesterday.day=days_monthdate.month-1;return yesterday;int Leapyear(int y

9、ear)if(year%4=0&year%100!=0) | (year%400=0)return 1;else return 0;void Print(MyDate date)printf(%d-%d-%dn,date.year,date.month,date.day);int count()return 1;void DriverofPreDate() int tcPassNum = 0; int tcFailNum = 0; / 存储通过和失败的测试用例总数 FILE *pFpFrom=NULL; FILE *pFpTo=NULL; /- 打开数据文件,准备读取测试用例的数据- char

10、 *DataFileName=test.txt; pFpFrom=fopen(DataFileName,r); if(!pFpFrom) printf(读取数据失败,返回n); return; /- 打开数据文件,准备记录测试用例执行结果- char *DataFileTestResultName=DivedeTestResult.txt; pFpTo=fopen(DataFileTestResultName,w); if(!pFpTo) printf(打开文件失败,返回n); return; fprintf(pFpTo,-对函数PreDate的单元测试结果-n);/- 执行测试用例,记录测试

11、结果- int TCID = 0; int sum=0; MyDate date ; / 测试用例的输入 MyDate expectedOut,actualOut; / 测试用例的预期、实际输出 printf(对函数PreDate展开单元测试n); while(!feof(pFpFrom) / 不断读取每个测试用例的数据 fscanf(pFpFrom, %d , &TCID); / 读入测试用例的ID fscanf(pFpFrom, %d %d %d, &date.month,&date.day,&date.year); /读测试用例输入 fscanf(pFpFrom,%d %d %d, &e

12、xpectedOut.year,&expectedOut.month,&expectedOut.day); / 读入测试用例的预期输出 actualOut = PreDate(date); / 执行测试用例 printf( 测试用例%d: 输入%d,%d,%d, 预期输出%d,%d,%d,,实际输出%d,%d,%d, , TCID, date.month,date.day,date.year,expectedOut.year, expectedOut.month,expectedOut.day,actualOut.year,actualOut.month,actualOut.day); / 输

13、出测试用例的信息 if( actualOut.day=expectedOut.day&actualOut.month=expectedOut.month&actualOut.year=expectedOut.year)/ 若测试用例通过,则记录通过用例总数 tcPassNum +; printf( 通过n ); fprintf(pFpTo,测试用例%d:Pass,TCID); /将测试结果存入结果文件 else tcFailNum +; printf( 失败n ); fprintf(pFpTo,测试用例%d:Fail,TCID); /将测试结果存入结果文件 /- 统计测试结果- for(int i=0;i=6;i+) sum=sum+ai; printf(覆盖率=%d, sum*100/7); printf(%n); printf( 共执行%d 个测试用例,其中%d 个通过,%d 个失败n, tcPassNum+tcFailNum, tcPassNum, tcFailNum ); fprintf(pFpTo,共执行%d 个测试用例,其中%d 个通过,%d 个失败n, tcPassNum+tcFailNum, tcPassNum, tcFailNum ); fclose(pFpFrom); fclos

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论