版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026全球电池包维修断电连接器市场
- 2026年秋季高考复读生心理辅导 重新出发的勇气
- 2026年秋季幼升小衔接课 生活自理能力提升
- 2026事业单位工勤技能-甘肃-甘肃不动产测绘员五级(初级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南机械冷加工四级(中级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖南-湖南保育员四级(中级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-湖北-湖北水工闸门运行工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-浙江-浙江计量检定工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-浙江-浙江护理员二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-天津-天津中式烹调师五级(初级工)历年参考题库含答案详解3套试卷
- 2026年河南省重点学校高一入学语文分班考试试题及答案
- AIAG CQI-35 中文版(线束质量指南 第一版 汽车线束全流程质量管控)
- 中国公证协会招聘考试真题2025
- GA/T 1723.2-2025国家网络身份认证公共服务认证服务第2部分:真实身份认证服务接口要求
- 靶向CD47与PD L1双特异性抗体:构建策略、作用机制与临床前景探究
- 2026年四川省初级注册安全工程师考试真题及答案
- 山东省德州市乐陵市2024-2025学年七年级上学期语文期末试卷(含答案)
- 视频监控系统工程监理实施细则
- 机场灯光站柴油发电机组拆除及安装安装方案计划
- 高校学生事务管理课件
- 《水产养殖专业英语》课程教学大纲
评论
0/150
提交评论