版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 585-2026船用法兰铸钢截止止回阀
- T/ZMDS 30004-2023口腔正畸活动矫治器
- T/JQR 13-2023高等教育 互动智慧教室 使用管理规范
- T/CNCA 156-2025煤矿用掘锚一体机再制造技术规范
- T/CAWAORG 058-2026基于长寿医学的老年健康服务规范
- T/CSPIA 002-2020手机音视频紧急求助与报警系统技术要求
- GB/T 223.3-2026钢铁及合金磷含量的测定分光光度法、滴定法和重量法
- 2025~2026学年广东省深圳市龙岗区北师大版六年级上册12月阶段性试卷【附答案】
- AI赋能电子元器件生产全流程质量管控
- 钻杆热处理调质操作工规程
- 河南华师联盟2027届高三上学期10月质量检测语文+答案
- 2026年高级会计师考试题+参考答案
- 湖南省自然科学基金学科分类目录及代码(新申报版)
- 2026年人教版新教材数学五年级上册第二单元《小数乘法》检测题(含答案)
- 2026年秋季四年级数学人教版第二单元单元检测卷(含答案)
- 《对比之魅》教学课件-2026-2027学年人美版(新教材)小学美术四年级上册
- 我国食品安全存在的问题及对策
- 2026语文新教材 六年级上册第3课 古诗词三首 教学课件
- 2026年上海农林职业技术学院高职单招笔试职业适应性测验试题库含答案解析3套试卷
- 2026年动物防疫专员试题(附答案)
- 河南农商行审计考试试题及答案
评论
0/150
提交评论