三角形单元测试实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单元测试实验报告

一、实验内容

1、系统地学习和理解单元测试的基本概念、原理,掌握单元测试的基本技术和方法;

2、对三角形问题采用开发测试驱动程序进行单元测试,并给出测试结果;

3、完成实验并认真填写实验报告。

二、问题描述

输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。请采用静态白盒测试方法和动态白盒测试方法设计测试用例。

请采用驱动程序开发进行单元测试。

三、被测程序原代码

#include

int main()

{

int a;

int b;

int c;

printf("请输三角形边长:");

scanf("%d", &a);

printf("\n");

printf("请输三角形边长:");

scanf("%d", &b);

printf("\n");

printf("请输三角形边长:");

scanf("%d", &c);

printf("\n");

if (a + b <= c || a + c <= b || b + c <= a)

printf("不是三角形!\n");

else

{

if (a == c || a == b || b == c) {

if (a == c && a == b)

{

printf("等边三角形!\n"); }

else

printf("等腰三角形!\n"); }

else

printf("三角形!\n");

}

return 0;

}

四、测试用例设计

黑盒测试的边界值加等价类

五、驱动程序源代码

#include

#include

int Triangle(int a,int b,int c)

{

if (a + b <= c || a + c <= b || b + c <= a)

return 0;

else

{

if (a == c || a == b || b == c)

{

if (a == c && a == b)

{

return 3;

}

else

return 2;

}

else

return 1;

}

}

void testTriangle()

{

printf("这是Triangle的测试\n");

int PassNum=0;//测试通过的数量

int FailNum=0;//测试没有通过的数量

FILE* pFpFrom=NULL;//数据文件的指针,储存测试用例的基本信息

FILE* pFpTo=NULL;//记录测试用例执行结果的文件的指针char* DataFileName="Data.txt";//打开测试文件,准备读取测试用例

pFpFrom=fopen(DataFileName,"r");

if(!pFpFrom){

printf("读取数据失败,返回\n");

return;

}

char* DataFileTestResultName="testTriangle.txt";//打开数据文件

pFpTo=fopen(DataFileTestResultName,"w+t");

if(!pFpTo){

printf("打开文件失败,返回\n");

return;

}

fprintf(pFpTo,"-------对函数Triangle的单元测试结果------\n");

int TCID=0;

int a,b,c;

int expectedOutcome;

int actualOutcome;//边的输入,预期输出,实际输出

char* ex;

char* ac;

printf("对函数展开单元测试\n");

while(!feof(pFpFrom)){//不断读取测试用例Id

fscanf(pFpFrom,"%d",&TCID);//读入测试用例的ID

fscanf(pFpFrom,"%d",&a);//读入测试用例的边a

fscanf(pFpFrom,"%d",&b);//读入测试用例的边b

fscanf(pFpFrom,"%d",&c);//读入测试用例的边c

fscanf(pFpFrom,"%d",&expectedOutcome);//读入测试用例的预期输出

actualOutcome=Triangle(a,b,c);//执行测试用例

if(expectedOutcome==3){

ex="等边三角形";

}else if(expectedOutcome==2)

{

ex="等腰三角形";

}

else if(expectedOutcome==1)

{

ex="一般三角形";

}else if(expectedOutcome==0)

{

ex="不是三角形";

}

if(actualOutcome==3){

ac="等边三角形";

}else if(actualOutcome==2)

{

ac="等腰三角形";

}

else if(actualOutcome==1)

{

ac="一般三角形";

}else if(actualOutcome==0)

{

ac="不是三角形";

}

printf("测试用例%d:边a:%d,边b:%d,边c:%d;预期输出%s,实际输出%s",TCID,a,b,c,ex,ac);

if(actualOutcome==expectedOutcome)

{

PassNum++;

printf("通过\n");

fprintf(pFpTo,"测试用例%d:Pass\n",TCID);

}else

{

FailNum++;

printf("失败\n");

fprintf(pFpTo,"测试用例%d:Fail\n",TCID);

}

}

fclose(pFpFrom);//关闭测试用例数据文件

相关文档
最新文档