软件测试期末实验报告-_第1页
软件测试期末实验报告-_第2页
软件测试期末实验报告-_第3页
软件测试期末实验报告-_第4页
软件测试期末实验报告-_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

课程考查(论文)封面作业(论文)题目:成绩百分制转等级制所修课程名称:软件测试质量与保证修课程时间:2020年2月至2020年5月完成作业(论文)日期:2020年5月评阅成绩:程序:黑盒测试用例设计:白盒测试用例设计:单元测试:测试结果:文档格式:评阅教师签名:年月日所选题目12.

成绩百分制转等级制

编写程序,给定一个学生成绩(0-100分),给出相应等级:90~100

优秀,80~89

良好,70-79

中等,60~69

及格,0~59

不及格。主要代码(10分)#include<>voidmain(){ intx; printf("请输入0-100的成绩:"); scanf("%d",&x); if(x>100||x<0){ printf("成绩错误\n"); }elseif(x>=90){ printf("优秀\n"); }elseif(80<=x&&x<=89){ printf("良好\n"); }elseif(70<=x&&x<=79){ printf("中等\n"); }elseif(60<=x&&x<=69){ printf("及格\n"); }else{ printf("不及格\n"); }}黑盒测试技术测试用例设计(25分)边界值测试(7分)边界值分析由于学生有五个等级,学生成绩的取值范围是:0-100,学生成绩的边界值有:0,59,60,69,70,79,80,89,90,100.边界值测试用例表输入条件边界值测试数据x0,59,60,69,70,79,80,89,90,100-1,0,1,58,59,60,61,68,69,70,71,78,79,80,8188,89,90,91,99,100,101.设计测试用例(给出所有测试用例)成绩等级问题的测试用例测试用例编号输入数据预期输出测试结果x1-1成绩错误成绩错误20不及格不及格31不及格不及格458不及格不及格559不及格不及格660及格及格761及格及格868及格及格969及格及格1070中等中等1171中等中等1278中等中等1379中等中等1480良好良好1581良好良好1688良好良好1789良好良好1890优秀优秀1991优秀优秀2099优秀优秀21100优秀优秀22101成绩错误成绩错误等价类测试(8分)等价类划分分析首先分析题目中给出的条件,输入条件如下:有效等价类:成绩0<=x<=100;无效等价类:成绩x<0||x>100。根据输入条件的要求划分等价类,列出等价类表并编号编号输入条件等价类10<x无效等价类290<=x<=100有效等价类380<=x<=89有效等价类470<=x<=79有效等价类560<=x<=69有效等价类60<=x<=59有效等价类7X>100无效等价类等价类测试用例表成绩等级问题的测试用例表测试用例编号输入数据预期输出覆盖等价类测试结果x190优秀2优秀292优秀2优秀394优秀2优秀4-20成绩错误1成绩错误510不及格6不及格680良好3良好782良好3良好884良好3良好9-50成绩错误1成绩错误1020不及格6不及格1170中等4中等1272中等4中等1374中等4中等14110成绩错误7成绩错误1530不及格6不及格1660及格5及格1762及格5及格1864及格5及格19120成绩错误7成绩错误2040不及格6不及格基于决策表的测试(10分)决策表测试分析测试用例123456输入条件0<=x<=100TTTTTF90<=x<=100TFFFFF80<=x<=89FTFFFF70<=x<=79FFTFFF60<=x<=69FFFTFF0<=x<=59FFFFTF预期输出优秀√良好√中等√及格√不及格√成绩错误√基于决策表的测试用例表成绩等级问题的测试用例表测试用例编号输入数据预期输出覆盖等价类测试结果x195优秀2优秀285良好3良好375中等4中等465及格5及格530不及格6不及格6120成绩错误7成绩错误白盒测试技术测试用例设计(25分)静态白盒测试(4分)代码走读:从出口来看,只有一个出口语句,if...else语句中,所有的判断节点取值情况都以覆盖。每个出口都有符合格式要求的返回值。从程序结构来看,整个函数体就只有一个判定结构,且整个判定结构为结构化设计。#include<>voidmain(){ x; ("请输入0-100的成绩:"); ("%d",&x); (x>100||x<0){ ("成绩错误\n"); 6.}elseif(x>=90){ ("优秀\n"); 8.}elseif(80<=x&&x<=89){ ("良好\n"); 10.}elseif(70<=x&&x<=79){ ("中等\n"); 12.}elseif(60<=x&&x<=69){ ("及格\n"); 14.}else{ ("不及格\n"); 16.}}序号1,2,3获取到学生成绩赋值给x,序号4,5判断学生成绩是否有效,序号6-14判断学生成绩的等级。静态结构分析(函数控制流图法)出口:该函数只有一个出口孤立节点:无孤立节点环复杂度:6结构化设计。对判断的测试(10分)在六种选取1种判定测试覆盖指标进行分析函数流程图开始开始输入成绩输入成绩N(P1)0<=x<=100N(P1)0<=x<=100数据错误数据错误Y(P2)Y(P2)Y(P3)90<=x<=100Y(P3)90<=x<=100优秀优秀N(P4)N(P4)Y(P5)Y(P5)良好80良好80<=x<=89N(P6)N(P6)Y(P7)70Y(P7)70<=x<=79中等中等N(P8)N(P8)Y(P9)60Y(P9)60<=x<=69及格及格N(P10)N(P10)不及格不及格结束结束选择判定覆盖:程序中每个判定节点取得各种可能的结果至少有一次,选择测试用例时加强了判定节点的作用。而去判定覆盖可以满足语句覆盖执行路径有:L1:P1L2:P2,P3L3:P2,P4,P5L4:P2,P4,P6,P7L5:P2,P4,P6,P8,P9L6:P2,P4,P6,P8,P10测试用例表测试用例输入数据预期输出覆盖的判定条件或判定节点测试结果x1120数据错误L1数据错误295优秀L2优秀385良好L3良好475中等L4中等565及格L5及格630不及格L6不及格对路径的测试(11分)程序图环复杂度由判定节点法可知环复杂度为:5+1=6.独立路径的抽取P1:1,4,5,16P2:1,4,6,7,16P3:1,4,6,8,9,16P4:1,4,6,8,10,11,16P5:1,4,6,8,10,12,15,16P6:1,4,6,8,10,12,13,16不可行路径的处理由程序图可知,其中路径都是可以达到的,没有不可行路径。测试用例表测试用例编号输入数据预期输出路径测试结果x1120数据错误P1数据错误295优秀P2优秀385良好P3良好475中等P4中等565及格P5及格630不及格P6不及格驱动程序开发代码(20分)驱动模块与桩模块的开发读入一批测试用例,对每个测试用例能够读入基本信息并显示出来成绩等级测试用例表测试用例编号输入数据预期输出测试结果x1-1成绩错误成绩错误20不及格不及格31不及格不及格458不及格不及格559不及格不及格660及格及格761及格及格868及格及格969及格及格1070中等中等1171中等中等1278中等中等1379中等中等1480良好良好1581良好良好1688良好良好1789良好良好1890优秀优秀1991优秀优秀2099优秀优秀21100优秀优秀22101成绩错误成绩错误利用测试用例来驱动(调用)被测试函数源代码:#include<>#include<>intScore(intx){if(x>100||x<0){ return0; }elseif(x>=90){ return1; }elseif(80<=x&&x<=89){ return2; }elseif(70<=x&&x<=79){ return3; }elseif(60<=x&&x<=69){ return4; }else{ return5; }}voidScoreTest(){printf("这是对成绩等级的测试\n"); intPassNum=0;//测试通过的数量 intFailNum=0;//测试没有通过的数量 FILE*pFpFrom=NULL;//数据文件的指针,储存测试用例的基本信息 FILE*pFpTo=NULL;//记录测试用例执行结果的文件的指针 char*DataFileName="";//打开测试文件,准备读取测试用例 pFpFrom=fopen(DataFileName,"r"); if(!pFpFrom){ printf("读取数据失败,返回\n"); return; } char*DataFileTestResultName="";//打开数据文件 pFpTo=fopen(DataFileTestResultName,"w+t"); if(!pFpTo){ printf("打开文件失败,返回\n"); return; } fprintf(pFpTo,"-------对函数Score的单元测试结果------\n"); intid=0; intx; intScoreAnswer; intNewScoreAnswer;//执行测试用例的返回值 char*infurAnwser; char*realiAnwser; printf("对函数展开单元测试\n"); while(!feof(pFpFrom)){//不断读取测试用例Id fscanf(pFpFrom,"%d",&id);//读入测试用例的ID fscanf(pFpFrom,"%d",&x);//读入测试用例的x fscanf(pFpFrom,"%d",&ScoreAnswer);//读入测试用例的预期输出 NewScoreAnswer=Score(x);//执行测试用例 if(ScoreAnswer==0){ infurAnwser="成绩错误"; }elseif(ScoreAnswer==1) { infurAnwser="优秀"; } elseif(ScoreAnswer==2) { infurAnwser="良好"; }elseif(ScoreAnswer==3) { infurAnwser="中等"; }elseif(ScoreAnswer==4) { infurAnwser="及格"; }elseif(ScoreAnswer==5) { infurAnwser="不及格"; } if(NewScoreAnswer==0){ realiAnwser="成绩错误"; }elseif(NewScoreAnswer==1) { realiAnwser="优秀"; } elseif(NewScoreAnswer==2) { realiAnwser="良好"; }elseif(NewScoreAnswer==3) { realiAnwser="中等"; }elseif(NewScoreAnswer==4) { realiAnwser="及格"; }elseif(NewScoreAnswer==5) { realiAnwser="不及格"; } printf("测试用例%d:成绩X:%d;预期输出:%s,实际输出:%s",id,x,infurAnwser,realiAnwser); if(ScoreAnswer==NewScoreAnswer) { PassNum++; printf("通过\n"); fprintf(pFpTo,"测试用例%d:Pass\n",id); }else { FailNum++; printf("失败\n"); fprintf(pFpTo,"测试用例%d:Fail\n",id); } } fclose(pFpFrom);//关闭测试用例数据文件 printf("共执行%d个测试用例,其中%d个通过,%d个失败\n",PassNum+FailNum,PassNum,FailNum); fprintf(pFpTo,"共执行%d个测试用例,其中%d个通过,%d个失败\n",PassNum+FailNum,PassNum,FailNum); fclose(pFpTo);}voidmain(){ ScoreTest();}显示测试用例的实际输出并能与预期输出进行比较,给出判定结果由下图的的单元测试结果图来

温馨提示

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

评论

0/150

提交评论