软件测试期末实验报告
FILE* pFpTo=NULL;//记录测试用例执行结果的文件的指针
char* DataFileName="DataTest.txt";//打开测试文件,准备读取测试用例
pFpFrom=fopen(DataFileName,"r");
if(!pFpFrom){
printf("读取数据失败,返回\n");
printf("及格\n");
}else{
printf("不及格\n");
}
}
三、黑盒测试技术测试用例设计(25分)
1.边界值测试(7分)
(1)边界值分析
由于学生有五个等级,学生成绩的取值范围是:0-100,学生成绩的边界值有:0,59,60,69,70,79,80,89,90,100.
(2)边界值测试用例表
1
0<x
无效等价类
2
90<=x<=100
有效等价类
3
80<=x<=89
有效等价类
4
70<=x<=79
有效等价类
5
60<=x<=69
有效等价类
6
0<=x<=59
有效等价类
7
X>100
无效等价类
(2)等价类测试用例表
成绩等级问题的测试用例表
测试用例编号
输入数据
预期输出
覆盖等价类
测试结果
x
1
90
优秀
2
优秀
}
printf("测试用例%d:成绩X:%d;预期输出:%s,实际输出:%s",id,x,infurAnwser,realiAnwser);
2
92
优秀
2
优秀
3
94
优秀
2
优秀
4
-20
成绩错误
1
成绩错误
5
10
不及格
6
不及格
6
80
良好
3
良好
7
82
良好
3
良好
8
84
良好
3
良好
9
-50
成绩错误
1
成绩错误
10
20
不及格
6
不及格
11
70
中等
4
中等
12
72
中等
4
中等
13
74
中等
4
中等
14
110
成绩错误
7
成绩错误
15
30
不及格
6
不及格
16
60
及格
5
及格
17
}else if(60<=x && x<=69){
return 4;
}else{
return 5;
}
}
void ScoreTest()
{
printf("这是对成绩等级的测试\n");
int PassNum=0;//测试通过的数量
int FailNum=0;//测试没有通过的数量
FILE* pFpFrom=NULL;//数据文件的指针,储存测试用例的基本信息
62
及格
5
及格
18
64
及格
5
及格
19
120
成绩错误
7
成绩错误
20
40
不及格
6
不及格
3.基于决策表的测试(10分)
(1)决策表测试分析
测试用例
1
2
3
4
5
6
输入条件
0<=x<=100
T
T
T
T
T
F
90<=x<=100
T
F
F
F
F
F
80<=x<=89
F
T
F
F
F
F
70<=x<=79
F
F
T
F
F
F
60<=x<=69
五、驱动程序开发代码(20分)
1.驱动模块与桩模块的开发
(1)读入一批测试用例,对每个测试用例能够读入基本信息并显示出来
成绩等级测试用例表
测试用例编号
输入数据
预期输出
测试结果
x
1
-1
成绩错误
成绩错误
2
0
不及格
不及格
3
1
不及格
不及格
4
58
不及格
不及格
5
59
不及格
不及格
6
60
及格
及格
7
61
及格
及格
8
68
{
realiAnwser="良好";
}else if(NewScoreAnswer==3)
{
realiAnwser="中等";
}else if(NewScoreAnswer==4)
{
realiAnwser="及格";
}else if(NewScoreAnswer==5)
{
realiAnwser="不及格";
{
infurAnwser="及格";
}else if(ScoreAnswer==5)
{
infurAnwser="不及格";
}
if(NewScoreAnswer==0){
realiAnwser="成绩错误";
}else if(NewScoreAnswer==1)
{
realiAnwser="优秀";
}
else if(NewScoreAnswer==2)
#include <string.h>
int Score(int x)
{
if(x>100||x<0){
return 0;
}else if(x>=90){
return 1;
}else if(80<=x && x<=89){
return 2;
}else if(70<=x && x<=79){
return 3;
9.printf("良好\n");
10.}else if(70<=x && x<=79){
11.printf("中等\n");
12.}else if(60<=x && x<=69){
13.printf("及格\n");
14.}else{
15.printf("不及格\n");
16.}
}
序号1,2,3获取到学生成绩赋值给x,序号4,5判断学生成绩是否有效,序号6-14判断学生成绩的等级。
输入条件
边界值
测试数据
x
0,59,60,69,70,79,80,89,90,100
-1,0,1,58,59,60,61,
68,69,70,71,78,79,80,81
88,89,90,91,99,100,101.
设计测试用例(给出所有测试用例)
成绩等级问题的测试用例
测试用例编号
输入数据
预期输出
测试结果
编写程序,给定一个学生成绩(0-100分),给出相应等级:90~100 优秀,80~89 良好,70-79 中等,60~69 及格,0~59 不及格。
二、主要代码(10分)
#include <stdio.h>
void main(){
int x;
printf("请输入0-100的成绩:");
scanf("%d",&x);
优秀
优秀
20
99
优秀
优秀
21
100
优秀
优秀
22
101
成绩错误
成绩错误
2.等价类测试(8分)
(1)等价类划分分析
1.首先分析题目中给出的条件,输入条件如下:
有效等价类:成绩0<=x<=100;无效等价类:成绩x<0 || x>100。
2.根据输入条件的要求划分等价类,列出等价类表并编号
编号
输入条件
等价类
中等
L4
中等
5
65
及格
L5
及格
6
30
不及格
L6
不及格
3.对路径的测试(11分)
(1)程序图
(2)环复杂度
由判定节点法可知环复杂度为:5+1=6.
(3)独立路径的抽取
P1:1,4,5,16
P2:1,4,6,7,16
P3:1,4,6,8,9,16
P4:1,4,6,8,10,11,16
P5:1,4,6,8,10,12,15,16
fscanf(pFpFrom,"%d",&id);//读入测试用例的ID
fscanf(pFpFrom,"%d",&x);//读入测试用例的x
fscanf(pFpFrom,"%d",&ScoreAnswer);//读入测试用例的预期输出
NewScoreAnswer=Score(x);//执行测试用例