白盒测试实训报告三角形18篇白盒测试实训报告三角形 实验1-白盒测试实验报告 第一章白盒测试 实验1语句覆盖【实验目的】 1、掌握测试用例的设计要素和关键组成部分。 2、掌握语下面是小编为大家整理的白盒测试实训报告三角形18篇,供大家参考。
篇一:白盒测试实训报告三角形
实验1-白盒测试实验报告
第一章白盒测试
实验1语句覆盖【实验目的】
1、掌握测试用例的设计要素和关键组成部分。
2、掌握语句覆盖标准,应用语句覆盖设计测试用例。
3、掌握语句覆盖测试的优点和缺点。
【实验原理】
设计足够多的测试用例,使得程序中的每个语句至少执行一次。
【实验内容】
根据下面提供的程序,设计满足语句覆盖的测试用例。
1、程序1源代码如下所示:#include<iostream.h>voidmain()
{intb;intc;inta;if(a*b*c!=0&&(a+b>c&&b+c>a&&a+c>b)){if(a==b&&b==c){cout<<"您输入的是等边三角形!";}else
if((a+b>c&&a==b)||(b+c>a&&b==c)||(a+c>b&&a==c))
{cout<<"您输入的是等腰三角形!";
}elseif((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b)){
cout<<您输入的是直角三角形";}
else{
cout<<”普通三角形”;}}else{cout<<"您输入的不能构成一个三角形!";}}
输入数据A=6,b=7,c=8A=3,b=4,c=5A=4,b=2,c=4A=1,b=1,c=1A=20,b=10,c=1
预期输出普通三角形直角三角形等腰三角形等边三角形非三角形
2、程序2源代码如下所示:
voidDoWork(intx,inty,intz){
intk=0,j=0;
if((x>3)&&(z<10))
{
k=x*y-1;//语句块1
j=sqrt(k);
}
if((x==4)||(y>5))
{
j=x*y+10;//语句块2
}
j=j%3;
//语句块3
}
输入数据x=6z=3x=4y=6x=6z=3x=3y=5x=6z=11x=4y=8x=6z=3x=2y=4
预期输出k=35j=34k=29j=25k=0j=42k=23j=0
3、程序3源代码如下所示:
intlogicExample(intx,inty){
intmagic=0;if(x>0&&y>0){
magic=x+y+10;//语句块1}else{
magic=x+y-10;//语句块2}
if(magic<0)
{
magic=0;
//语句块3
}
returnmagic;
//语句块4
}
输入数据
预期输出
x
y
magic
4
4
18
4
0
0
0
4
0
100
-5
85
-1
-1
0
4、程序4源代码如下所示:
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
struct
Borrower{
int
id,books;}borrowers[100];
voidmain()
{
intborrowerid,a=0,bookid;
boolflag=true;
borrowers[1].id
=
1101;
borrowers[2].id=1102;
borrowers[3].id
=
1103;
borrowers[4].id=1104;
borrowers[1].books
=
2;
borrowers[2].books=4;
borrowers[3].books
=
1;
borrowers[4].books=3;
printf("***********借阅图书
**********\n\n");
while(flag)
{
printf("请输入借书证号:");
scanf("%d",&borrowerid);
for(inti=0;i<10;i++)
{
if(borrowers[i].id==borrowerid){a=i;flag=false;break;}}if(a==0)printf("\n您的借书证号出
错.\n");
if(borrowers[a].books==4){
printf("\n您已达最大借书
量.\n");flag=true;
}
}
printf("请输入图书编号:");
scanf("%d",&bookid);
printf("借书成功!!\n");
printf("借书证号
图书编号
剩余借书量\n");
printf("%d
%d
%d\n",borrowers
[a].id,bookid,borrowers[a].books-1);
}
缺陷:1.当输入借书证号为非数值型时程序会陷入死循环2.当输入图书编号为非数值型时程序会异常退出
5、程序5源代码如下所示:
#include<stdio.h>intSearch(intsomearray[],intsize,intvalue){
for(inti=1;i<=size;i++){
if(sonearray[i]==value)returni;
}return-1;}voidmain(){intsize=6;intvalue;intarray[size]={5,8,-56,235,-65,449};do{
printf(“请输入一个整数:”);scanf(“%d”,&value);}while(int(value)!=value);if(int(value)==value)
Search(array,size+1,value);
}
程序存在错误:
修改错误后程序依然无法输出,定义value直接退出程序【实验要求】
1、实验前认真听讲,服从安排,独立思考并与小组成员合作完成实验。
2、撰写实验报告。3、提交文件统一压缩(命名:姓名+实验项目
名称,如张三_语句覆盖.zip)。
实验心得
通过本次实验掌握测试用例的设计要素和关键组成部分,也掌握语句覆盖标准,应用语句覆盖设计测试用例和语句覆盖测试的优点和缺点,了解了白盒测试的基本过程,并能独立查找解决程序中的错误,本次实验受益良
多。
篇二:白盒测试实训报告三角形
三角形程序白盒测试
三角形判断问题白盒测试
一、问题描绘
针对三角形的形状判断程序设计测试用例,进行白盒测试。假设这里组成三角形的边取值只好为整数。程序判断的种类有:
二、实验目的
(1)掌握白盒测试的原理;(2)掌握使用逻辑覆盖和基路径测试等设计测试用例的方法;(3)掌握单元测试的方法步骤;(4)掌握控制流图的画法和经过控制流图找出基路径的方法。
三、实验环境
平台:win1064位环境:Eclipse(neon版本)
四、实验过程
(一)编写判断三角形类其他程序:中心代码:
public
staticintDefiniteShape(
inta,intb,intc){
if((a+b>c)&&(b+c>a)&&(a+c>b)){//判断能够组成三角形
if((b==c)&&(a==b)){return1;//等边三角形
}
if((a==b)||(returnb==c)||(c==a)){2;//等腰三角形
}return3;//一般三角形
}return0;//非三角形
}主函数调用代码:
shape=DefiniteShape(a,b,c);
if(shape==0){System.out.println(
"输入数据不可以组成三角形!");
}
elseif(shape==1){
1/7
三角形程序白盒测试
System.out.println(}elseif(shape==2){
System.out.println(}elseif(shape==3){
System.out.println(}(二)画出程序流程图:
"等边三角形!");"等腰三角形!");"一般三角形!");
开始
输入a,b,c
判断a,b,c能否都为数字
是
判断能否都为整数
是
否否
a+b>c&&b+c>a
否
&&a+c>b
是
是
a==b&&b==c
否
是
a==b||b==c||a=
=c
否
提示等边三角形
提示等腰三角形
提示一般三角形
提示请输入能构成三角形的整数
(三)画出控制流图:
结束
2/7
三角形程序白盒测试
910
1
2
3
4
5
6
7
8
11
(四)逻辑覆盖测试:条件有:1)a为数字2)b为数字3)c为数字
12
3/7
三角形程序白盒测试
4)a为整数5)b为整数6)c为整数7)a+b>c8)b+c>a9)a+c>b10)a==b11)b==c12)a==c
全部测试用例(覆盖率达到100%)
1
Case1Case2Case3Case4
2
Case5Case6Case7Case8Case9Case10
3
Case11Case12Case13Case14Case15
语句覆盖
输入
希望输出
覆盖对象
请输入能组成三角a=’三’b=,’角’c=,’形’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角a=’5’,b=’2’,c=’2’形的整数。
履行路径:1-2-3-4-5-6-9-10-12
a=’2’,b=’2’,c=’2’等边三角形!
履行路径:1-2-3-4-5-6-8-12
a=’3’,b=’4’,c=’5’一般三角形!
履行路径:1-2-3-4-5-6-9-11-12
判断覆盖
输入
希望输出
覆盖对象
请输入能组成三角a=’字’b=,’0’,c=’0’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角a=’3’,b=’2.3’,c=’3.3’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角a=’6’,b=’3’,c=’2’形的整数。
履行路径:1-2-3-4-5-7-12
a=’12’,b=’12’,c=’12’等边三角形!a=’24’,b=’13’,c=’13’等腰三角形!
履行路径:1-2-3-4-5-6-8-12履行路径:1-2-3-4-5-6-9-10-12
a=’15’,b=’20’,c=’25’一般三角形!
履行路径:1-2-3-4-5-6-9-11-12
输入
希望输出
条件覆盖覆盖对象
请输入能组成三角a=’汉’b=,’2’,c=’3’形的整数。
知足:T1,F2,F3
请输入能组成三角a=’6’,b=’d’,c=’字’形的整数。
知足:F1,T2,T3
请输入能组成三角a=’5.3’,b=’3.0’,c=’2.3’形的整数。
知足:F4,T5,F6
请输入能组成三角a=’6’,b=’2.3’,c=’3形的整数。
知足:T4,F5,T6
请输入能组成三角a=’2’,b=’3’,c=’5’形的整数。
知足:F7,T8.T9
测试结果请输入能组成三角形的整数。请输入能组成三角形的整数。
等边三角形!
一般三角形!
测试结果请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。
等边三角形!
等腰三角形!
一般三角形!
测试结果请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。
4/7
三角形程序白盒测试
Case16Case17
请输入能组成三角a=’10’,b=’-3’,c=’6’形的整数。
请输入能组成三角a=’3’,b=’8’,c=’4’形的整数。
Case18a=’3’,b=’3’,c=’3’等边三角形!
知足:T7,F8,T9知足:T7,T8,F9知足:T10,T11,T12
Case19a=’25’,b=’26’,c=’27’一般三角形!
知足:F10,F11,F12
4
判断-条件覆盖
输入
希望输出
覆盖对象
请输入能组成三角Case20a=’a’,b=’b’,c=’c’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case21a=’1’,b=’2’,c=’3’形的整数。
请输入能组成三角Case22a=’15’,b=’2’,c=’5’形的整数。
请输入能组成三角Case23a=’21’,b=’100’,c=’22’
形的整数。请输入能组成三角Case24a=’3.2’,b=’2.3’,c=’2.3’形的整数。
履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12
履行路径:1-2-3-4-7-12
Case25Case26Case27Case28Case29
4
a=’12’,b=’12’,c=’12’等边三角形!a=’25’,b=’51’,c=’50’一般三角形!a=’12’,b=’21’,c=’21’等腰三角形!a=’25’,b=’25’,c=’22’等腰三角形!a=’3’,b=’23’,c=’23’等腰三角形!
输入
希望输出
履行路径:
1-2-3-4-5-6-8-12履行路径:
1-2-3-4-5-6-9-11-12履行路径:
1-2-3-4-5-6-9-10-12履行路径:
1-2-3-4-5-6-9-10-12履行路径:
1-2-3-4-5-6-9-10-12条件组合覆盖
覆盖对象
请输入能组成三角Case30a=’1’,b=’2’,c=’3’形的整数。
履行路径:1-2-3-4-5-7-12
请输入能组成三角Case31a=’2’,b=’3’,c=’a’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case32a=’3’,b=’x’,c=’3’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case33a=’5’,b=’s’,c=’d’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case34a=’f’,b=’3’,c=’3’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case35a=’g’,b=’6’,c=’h’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case36a=’h’,b=’发’c=,’52’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角Case37a=’都’b=,’是’c=,’字’形的整数。
履行路径:1-2-3-7-12
请输入能组成三角形的整数。请输入能组成三角形的整数。
等边三角形!
一般三角形!
测试结果请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。
等边三角形!
一般三角形!
等腰三角形!
等腰三角形!
等腰三角形!
测试结果请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。
5/7
三角形程序白盒测试
Case38Case39
请输入能组成三角a=’3’,b=’3’,c=’223’形的整数。
请输入能组成三角a=’3’,b=’9’,c=’52.3’形的整数。
履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-7-12
请输入能组成三角Case40a=’6’,b=’2.3’,c=’23’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角Case41a=’12’,b=’3.5’,c=’3.6’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角Case42a=’6.3’,b=’31’,c=’3.3’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角Case43a=’6.3’,b=’336’,c=’6’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角Case44a=’2.3’,b=’1.3’,c=’2.3’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角Case45a=’3.6’,b=’3.2’,c=’6’形的整数。
履行路径:1-2-3-4-7-12
Case46a=’12’,b=’16’,c=’20’一般三角形!
Case47Case48
请输入能组成三角a=’2’,b=’100’,c=’2’
形的整数。请输入能组成三角a=’150’,b=’20’,c=’30’形的整数。
履行路径:1-2-3-4-5-6-9-11-12履行路径:
1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12
Case49Case50Case51Case52Case53
请输入能组成三角a=’2’,b=’2’,c=’-2’
形的整数。请输入能组成三角a=’3’,b=’4’,c=’20’形的整数。请输入能组成三角a=’-3’,b=’3’,c=’3’形的整数。请输入能组成三角a=’5’,b=’-9’,c=’6’形的整数。请输入能组成三角a=’-1’,b=’-1’,c=’-1’形的整数。
履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12履行路径:1-2-3-4-5-7-12
Case54a=’22’,b=’22’,c=’22’等边三角形!
履行路径:1-2-3-4-5-6-8-12
Case55a=’25’,b=’23’,c=’24’一般三角形!Case56a=’12’,b=’12’,c=’13’等腰三角形!Case57a=’6’,b=’12’,c=’12’等腰三角形!Case58a=’2’,b=’1’,c=’2’等腰三角形!
履行路径:
1-2-3-4-5-6-9-11-12履行路径:
1-2-3-4-5-6-9-10-12履行路径:1-2-3-4-5-6-9-10-12履行路径:1-2-3-4-5-6-9-10-12
5输入
希望输出
路径覆盖覆盖对象
请输入能组成三角Case59a=’个’b=,’十’c=,’百’形的整数。
请输入能组成三角
履行路径:1-2-3-7-12
Case60a=’3.0’,b=’2.3’,c=’10’形的整数。
履行路径:1-2-3-4-7-12
请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。
一般三角形!
请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。请输入能组成三角形的整数。
等边三角形!
一般三角形!
等腰三角形!
等腰三角形!
等腰三角形!
测试结果请输入能组成三角形的整数。请输入能组成三角
形的整数。
6/7
三角形程序白盒测试
请输入能组成三角Case61a=’23’,b=’25’,c=’254’
形的整数。Case62a=’32’,b=’32’,c=’23’等腰三角形!
Case63a=’25’,b=’25’,c=’13’等腰三角形!
Case64a=’26’,b=’23’,c=’25’一般三角形!
履行路径:
1-2-3-4-5-7-12履行路径:1-2-3-4-5-6-8-12履行路径:1-2-3-4-5-6-9-10-12履行路径:1-2-3-4-5-6-9-11-12
五、编写测试代码基本思路:将测试用例存入txt文件→读文件→判断→输出
请输入能组成三角形的整数。等腰三角形!
等腰三角形!
一般三角形!
7/7
篇三:白盒测试实训报告三角形
(word版)软件测试案例(三角形白盒测试)
一、核心程序代码/**判断三角形的类*/publicclassTriangleTestMethod{
/**判断三角形的种类。参数a,b,c返回的参数值为0,表示非三角形;为1,表示普通三角形;为2,表示等腰三角形;为3,表示等边三角形。*/publicstaticintcomfirm(inta,
分别为三角形的三边,intb,intc){
if((a+b>c)&&(b+c>a)&&(a+c>b)){//判断为三角形
if((a==b)&&(b==c))//判断为等边三角形return3;if((a==b)||(b==c)||(a==c))//判断为等腰三角形return2;else//判断为普通三角形return1;
}else{//为非三角形return0;}
}
}
1
1/51
(word版)软件测试案例(三角形白盒测试)
二、程序流程图
Y
①N
a+b>c&&b+c>a&&a+c>b
②
Y
a==b&&b==c
N④
a==b||a==c
NY⑥⑦
b==c||
⑤
Return1Return2Return0
③
Exit
Return3
三、测试用例
1.语句覆盖测试用例:输入
Case1Case2Case3Case4
a=1,b=2,c=3a=3,b=4,c=5a=3,b=3,c=4a=3,b=4,c=5
2.判定覆盖测试用例输入
Case11Case12
a=1,b=2,c=3a=3,b=4,c=5
Case13Case14
a=3,b=3,c=4a=3,b=4,c=5
期望输出0123
期望输出0123
覆盖对象①,⑤①,②,④,⑥①,②,④,⑦①,②,③
测试结果0123
覆盖对象①,⑤①,②,④,⑥①,②,④,⑦①,②,③
测试结果0123
2
2/52
(word版)软件测试案例(三角形白盒测试)
3.条件覆盖测试用例输入
Case5Case6Case7Case8
a=1,b=6,c=7a=7,b=1,c=6a=1,b=7,c=6a=3,b=3,c=4
Case9
a=3,b=4,c=3
Case10
a=4,b=3,c=3
期望输出0002
2
2
4.条件-判定覆盖测试用例输入
Case15
a=1,b=6,c=7
Case16
a=7,b=1,c=6
Case17
a=1,b=7,c=6
Case18
a=3,b=3,c=4
期望输出0002
Case19
a=3,b=4,c=3
2
Case20
a=4,b=3,c=3
2
Case21Case22
a=3,b=3,c=3
3
a=3,b=4,c=5
1
5.条件组合覆盖测试用例输入
Case23
a=1,b=6,c=7
Case24Case25
a=7,b=6,c=1a=1,b=7,c=6
Case26
a=3,b=3,c=3
Case27
a=3,b=3,c=4
期望输出0003
2
覆盖对象
测试结果
F1,T2,T3
0
T1,F2,T3
0
T1,T2,F3
0
T1,T2,T3,T4,2
F5,T6,F7,F8
T1,T2,T3,F4,2
F5,F6,F7,T8
T1,T2,T3,F4,2
T5,F6,T7,F8
覆盖对象
测试结果
F1,T2,T3
0
(①,②)
T1,F2,T3
0
(①,②))
T1,T2,F3
0
(①,②)
T1,T2,T3,T4,2
F5,T6,F7,F8(①,②,③,⑦)
FT1,T2,T3,4,
2
F5,F6,F7,T8(①,②,③,⑦)
T1,T2,T3,F4,2
T5,F6,T7,F8(①,②,③,⑦)
F1,T2,T3
3
(①,②,③)
T1,F2,T3
1
(①,②,④,⑥)
覆盖对象F1,T2,T3T1,F2,T3T1,T2,F2T1,T2,T3,T4,T5T1,T2,T3,T4,F5,
测试结果0003
2
3
3/53
(word版)软件测试案例(三角形白盒测试)
Case28
a=4,b=3,c=3
2
Case29
a=3,b=4,c=5
1
Case30
a=3,b=4,c=3
2
备注其他条件组合,无法到达结束
F6,F7,T8
T1,T2,T3,
2
F4,T5,
F6,T7,F8
T1,T2,T3,
1
F4,F5,
F6,F7,F8
T1,T2,T3,
2
F4,F5,
F6,F7,T8
四、程序控制流图
a+b>cA
b+c>aBDReturn0a+c>bCa==bE
Gb==cFb==c
HReturn3
IReturn2
Return2H
J
a==c
Return1K
根本路径覆盖测试用例
输入
Case31
a=1,b=6,c=7
Case32
a=7,b=6,c=1
Case33
a=1,b=7,c=6
期望输出000
覆盖对象
测试结果
A->D
0
A->B->D
0
A->B->C->D
0
4
4/54
(word版)软件测试案例(三角形白盒测试)
Case34Case35Case36Case37Case38
a=3,b=3,c=3
3
a=3,b=3,c=4
2
a=4,b=3,c=3
2
a=3,b=4,c=3
2
a=3,b=4,c=5
1
A->B->C->E->G->3HA->B->C->E->G->2IA->B->C->E->F->2HA->B->C->E->F->J2->HA->B->C->E->F->J1->K
5
5/55
篇四:白盒测试实训报告三角形
三角形白盒测试
-C/iL-FENGHAL-(YICAI)-CompanyOnel
编号
1234
编号
11121314
二、测试用例
1•语句覆盖测试用例:
输入
期望输出
覆盖对象
a=bb2,c=3
0
①,⑤
a=3,b4,c=5
1
①,②,
a=3,b3,c=4
2
①,②,
a=3,b4,c=5
3
①•②,③
2•判定覆盖测试用例
输入
期望输出
覆盖对象
a=l,b2,c=3
0
①,⑤
a=3,b4,c=5
1
①,②,
a=3,b3,c=4
2
①,②,
a=3,b4,c=5
3
①,②,③
测试结果
0123
测试结果
0123
编号
输入
3.条件覆盖测试用例
期望输出
覆盖对象
3
测试结果
5678910
编号
15
1617
18
19
20
21
22
编号
23
2425
2627
a=bb=6,c=7
0
FbT2,T3
0
a=7,b=l,c=6
0
ThF2,T3
0
a=l,b=7,c=6
0
ThT2,F3
0
a=3,b=3,c—4
2
Tl,T2,
2
T?.T4FB.
a=3,b=4,c=3
2
Tl,T2,
2
T?R4
a=4,b=3,c=3
2
Tl,T2,
2
T?.F”.
4.条件-判定覆盖测试用例
输入
期望输出
覆盖对象
a=l,b=6,c=7
0
F1,T2,T3(®,
肉
a=7,b=l,c=6a=l,b=7,c=6a=3,b=3,c=4
0
T1,F2,T
3(①,②))
0T1,T2,F3(®,②)
2
T1,T2,T3,T4,
F5,T6,F7,F8
(①②③⑦)
a=3,
c=3
2
F,T1,T2,
a=4,b=3jc=3
T3,4,F5,
F6,
2
T1T2T,?*T73,TFC4,T
5,F6,T7,
F8
a=3,b=3,c=3
3
(①Fb,②T2③,,T@3)
(①②③)
测试结果
0002
22
3
a=3,
输入
c=5
1
H,F2,T3
(①②④⑥)
5•条件组合覆盖测试用例
期望输出
覆盖对象
a=l,b=6,c=7a=7,b=6,c=la=l,b=7,c=6a=3,b=3,c=3
a=3,b=3,c=4
0
Fl,T2,T3
0
Tl,F2,T3
0
ThT2,F2
3
ThT2,
T?T4
2
Tl,T2,
T3.F4,
1
测试结果
0003
2
4
28
29
30
备注编号
313233
a=4,b=3,c=3a=3,b=4,c=5
2
T1,T2,
T3,F4,
TU
1
T1,T2,
T3,F4,
a=3,b=4,c=3
2
T1,T2,
T3,F4,
T?U
其他条件组合,无法到达结束
基本路径覆盖测试用例
输入
期望输出
覆盖对象
a=l,b=6,c=7
0
A->D
a=7,b=6,c=l
0
A->B->D
a=l,b=7,c=6
0
A->B->C->D
2
1
2
测试结果
000
5
篇五:白盒测试实训报告三角形
....
第一章白盒测试
实验1语句覆盖
[实验目的]
1、掌握测试用例的设计要素和关键组成部分。2、掌握语句覆盖标准,应用语句覆盖设计测试用例。3、掌握语句覆盖测试的优点和缺点。
[实验原理]
设计足够多的测试用例,使得程序中的每个语句至少执行一次。
[实验容]
根据下面提供的程序,设计满足语句覆盖的测试用例。1、程序1源代码如下所示:#include<iostream.h>voidmain(){
intb;intc;inta;if(a*b*c!=0&&(a+b>c&&b+c>a&&a+c>b)){
if(a==b&&b==c){
cout<<"您输入的是等边三角形!";}elseif((a+b>c&&a==b)||(b+c>a&&b==c)||(a+c>b&&a==c)){
cout<<"您输入的是等腰三角形!";}elseif((a*a+b*b==c*c)||(b*b+c*c==a*a)||(a*a+c*c==b*b)){
cout<<您输入的是直角三角形";}else{
cout<<”普通三角形”;
1/6
....
}}else{
cout<<"您输入的不能构成一个三角形!";}}
输入数据A=6,b=7,c=8A=3,b=4,c=5A=4,b=2,c=4A=1,b=1,c=1A=20,b=10,c=1
预期输出普通三角形直角三角形等腰三角形等边三角形非三角形
2、程序2源代码如下所示:
voidDoWork(intx,inty,intz)
{
intk=0,j=0;
if((x>3)&&(z<10))
{
k=x*y-1;//语句块1
j=sqrt(k);
}
if((x==4)||(y>5))
{
j=x*y+10;//语句块2
}
j=j%3;
//语句块3
}
输入数据x=6z=3x=4y=6x=6z=3x=3y=5x=6z=11x=4y=8x=6z=3x=2y=4
3、程序3源代码如下所示:
预期输出k=35j=34k=29j=25k=0j=42k=23j=0
2/6
....
intlogicExample(intx,inty){
intmagic=0;if(x>0&&y>0){
magic=x+y+10;//语句块1}else{
magic=x+y-10;//语句块2}
if(magic<0)
{
magic=0;
//语句块3
}
returnmagic;
//语句块4
}
输入数据
预期输出
x
y
magic
4
4
18
4
0
0
0
4
0
100
-5
85
-1
-1
0
4、程序4源代码如下所示:
#include<stdio.h>#include<stdlib.h>#include<conio.h>structBorrower{intid,books;}borrowers[100];voidmain(){
intborrowerid,a=0,bookid;boolflag=true;borrowers[1].id=1101;borrowers[2].id=1102;borrowers[3].id=1103;borrowers[4].id=1104;borrowers[1].books=2;borrowers[2].books=4;borrowers[3].books=1;borrowers[4].books=3;printf("***********借阅图书**********\n\n");
3/6
....
while(flag){
printf("请输入借书证号:");scanf("%d",&borrowerid);for(inti=0;i<10;i++){
if(borrowers[i].id==borrowerid){a=i;flag=false;break;}}if(a==0)printf("\n您的借书证号出错.\n");if(borrowers[a].books==4){printf("\n您已达最大借书量.\n");flag=true;}}printf("请输入图书编号:");scanf("%d",&bookid);printf("借书成功!!\n");printf("借书证号图书编号剩余借书量\n");
printf("%d%d;
}
%d\n",borrowers[a].id,bookid,borrowers[a].books-1)
4/6
....
缺陷:1.当输入借书证号为非数值型时程序会陷入死循环2.当输入图书编号为非数值型时程序会异常退出
5、程序5源代码如下所示:
#include<stdio.h>intSearch(intsomearray[],intsize,intvalue){
for(inti=1;i<=size;i++){
if(sonearray[i]==value)returni;
}return-1;}voidmain(){intsize=6;intvalue;intarray[size]={5,8,-56,235,-65,449};do{
printf(“请输入一个整数:”);scanf(“%d”,&value);}while(int(value)!=value);if(int(value)==value)
Search(array,size+1,value);}
5/6
程序存在错误:
....
修改错误后程序依然无法输出,定义value直接退出程序
[实验要求]
1、实验前认真听讲,服从安排,独立思考并与小组成员合作完成实验。2、撰写实验报告。3、提交文件统一压缩(命名:+实验项目名称,如三_语句覆盖.zip)。
实验心得
通过本次实验掌握测试用例的设计要素和关键组成部分,也掌握语句覆盖标准,应用语句覆盖设计测试用例和语句覆盖测试的优点和缺点,了解了白盒测试的基本过程,并能独立查找解决程序中的错误,本次实验受益良多。
6/6
篇六:白盒测试实训报告三角形
判定三角形的程序及黑盒白盒测试
黑盒白盒测试实验报告
学院:计算机科学与工程
专业:软件工程
姓名:***
学号:************
软件测试计划
测试目的
1.练习并掌握软件测试管理的一般过程与步骤
2.掌握测试管理的人工过程和能通过相关管理软件实现以
下操作:
1)创建和管理多个测试组和用户
2)配置测试环境,编写详细测试计划,安排测试进度
3)实施测试,执行测试
4)对测试进行评估
测试题目
关于三角形问题的测试
测试方法
1.对于主题进行黑盒测试,测试内容包括等价类划分测试,
边界值分析测试,决策表方法使用。
2.对于主题进行白盒测试,测试内容包括语句覆盖测试,分
支覆盖测试,条件覆盖测试,分支/条件覆盖测试,条件组合覆盖测试以及基本路径测试。
测试资料
1.黑盒测试:
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。
黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。
2.白盒测试:
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,而达到发现程序错误的过程。在动态分析技术中,最重要的技术是路径和分支测试。
3.黑盒与白盒测试的比较:
项目黑盒测试法白盒测试法
规划功能的测试结构的测试
优点能确保从用户的角度出
发进行测试能从程序内部的特定部位进行覆盖测试
缺点无法测定程序内部特定
部位;当规格说明有误
则不能发现问题。无法检查程序的外部特性;无法对未实现规格说明的程序内部欠缺部分进行测试
应用技术边界分析法;
等价类划分法;
决策表测试。语句覆盖,判定覆盖
条件覆盖,判定/条件覆盖路径覆盖,循环覆盖
模块接口测试
数据整理
测试的所得到的用例实验报告,BUG报告,需要进行反馈和最后的归档,归档的工作按项目计划中所规定的进行。反馈的工作在测试项结束后,整理成测试总结报告后进行,具体的日期在项目计划中有规定。
不同阶段的测试都要重复以上步骤。
三角形问题黑盒测试报告
1.问题描述:
完成一段程序,要求实现这样的功能。输入三个整数,构成三角形的三条边,输入范围是1-100,判断结果是等腰三角形,等边三角形,不构成三角形或是一般三角形,直角三角形,判断结果均打印输出。
2.程序代码(c++):
#include<iostream>
usingnamespacestd;
voidmain()
{
inta,b,c;
cout<<”请输入三条边的长度(1-100)”<<endl;
cin>>a>>b>>c;
if(a>=1&&b>=1&&c>=1&&a<=100&&b<=100&&c<=100)
{
if(a+b>c&&a+c>b&&b+c>a)
{
cout<<”能够构成三角形”;
if(a==b&&b==c)
cout<<”为等边三角形”;
elseif
((a==b&&a!=c)||(b==c&&c!=a)||(a==c&&a!b))
cout<<”为等腰三角形”;
else
cout<<”为一般三角形”;
}
else
cout<<”不能构成三角形”;
}
else
cout<<”输入的值超出给定范围”;
}
3.测试方法:
黑盒测试(等价类划分+边界值分析+决策表方法)
1)等价类划分
本程序共计有四种可能的输出:一般三角形,等腰三角形,等边三角形,不构成三角形。
输入有效等价类编号无效等价类编号
a,b,c边为a,b,c的一般
三角形1a输入的值超出范
围
5
a,b,c边为a,b,c的等边
三角形2b输入的值超出范
围
6
a,b,c边为a,b,c的等腰
三角形3c输入的值超出范
围
7
a,b,c边为a,b,c不能组
成三角形
4
2)边界值分析方法
数值a0,101根据题目要求,输入值中1为最小值,100
为最大值.于是取刚好小于1的0和刚好大
于100的101进行边界值分析。
数值b0,101根据题目要求,输入值中1为最小值,100
为最大值.于是取刚好小于1的0和刚好大
于100的101进行边界值分析。
数值c1,101根据题目要求,输入值中1为最小值,100
为最大值.于是取刚好小于1的0和刚好大
于100的101进行边界值分析。
3)决策表方法
i.确定规则个数,本题的决策表共计四个条件。
C1:a,b,c构成三角形?
C2:a=b?
C3:a=c?
C4:b=c?
每个条件可以取两个值,共计有16种规则。
ii.列出所有的条件桩和动作桩
iii.输入输入项。
iv.输入动作项,得到初始决策表。
v.化简,合并相似规则,最后得到三角形问题的最终决策表。
vi.
规则
选项规则
1-8
规则
9
规则
10
规则
11
规则
12
规则
13
规则
14
规则
15
规则
16
条件:
C1:a,b,c构成三角
形?
C2:a=b?C3:a=c?C4:b=c?N
-
-
-
Y
Y
Y
Y
Y
Y
Y
N
Y
Y
N
Y
Y
Y
N
N
Y
N
Y
Y
Y
N
Y
N
Y
N
N
Y
Y
N
N
N
动作:
A1:非三角形A2:一般三角形
A3:
等腰三角形
A4:等边三角形A5:不可能
白盒测试(语句覆盖,判定覆盖及基本路径测试方法)程序的流程图如下
1)语句覆盖
测试数据执行路径预期结果实际结果
篇七:白盒测试实训报告三角形
...
白盒测试实验报告——三角形
一、实验目的
(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;(2)学习测试用例的书写。
二、实验内容
判断三角形类型
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。(1)画出程序的流图;(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径
要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。(4)通过你的测试,请总结你所使用测试方法发现的Bug。
三、实验要求
(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+_白盒实验
四、实验报告
(1)程序代码:
z
...
1.
importjava.io.*;
publicclasssanjiaoxing
{
privatestaticintx;
privatestaticinty;
privatestaticintz;
2.
publicstaticvoidmain(Stringarg[])
{
intv=0;System.out.println("请输入三角形第一条边的长!");x=getside(v);System.out.println("请输入三角形第二条边的长!");y=getside(v);System.out.println("请输入三角形第三条边的长!");z=getside(v);
ifzhijiaotriangle();
}
3.
publicstaticintgetside(intv)
{
BufferedReaderinput=newBufferedReader(new
InputStreamReader(System.in));
try{
v=Integer.parseInt(input.readLine());
}
catch(IOExceptione){}
returnv;
}
4
publicstaticvoidifzhijiaotriangle()
{
if((x>0&&x<200)&&(y>0&&y<200)&&(z>0&&z<200))
{
5
if(x+y<=z||x+z<=y||z+y<=x)
{6.System.out.println("您输入的三边不能构成三角形");
}
7.else{
System.out.println("一般三角形");}
z
...8.elseif(x==y||x==z||y==z)
{9
if(x==y&&y==z)10.System.out.println("您输入的三角形是等边三角形");12.elseSystem.out.println("您输入的三角形是等腰三角形");}}11.else{System.out.println("超出");}}}(2)程序的流图:
z
...
1,2,3
a
b
4
c
5
11
e
g
6
7
h8
j
9
d
k
m
10
12
finl13
(3)语句覆盖;
编号测试用例执行路径覆盖语句
预输出结果
1(0,10,20)
a,c,d1,2,3,4,11,13
超出
2(10,20,35)
a,b,e,f1,2,3,4,5,6,13
不能构成三角形
3(3,3,5)
a,b,g,j,k,l1,2,3,4,5,7,9,10,13等腰三角形
4(3,3,3)
a,b,g,j,m,n1,2,3,4,5,7,9,12,13等边三角形
5(10,20,25)(4)判定覆盖;
a,b,g,h,i1,2,3,4,5,7,8,13
一般三角形
编号测试用例
执行路径覆盖判定
预输出结果
1(0,10,20)
a,c,dF1
超出
2(10,20,35)a,b,e,f
T1,F2
不能构成三角形
3(10,20,25)a,b,g,h,iT1,T2,F3
一般三角形
z
...
4(3,3,5)
5(3,3,3)(5)条件覆盖:
条件a>=1&&a<=200b>=1&&b<=200c>=1&&c<=200
a+b>ca+c>bb+c>aa==bb==ca==c
a,b,g,j,k,lT1,T2,T3,F4
a,b,g,j,m,nT1,T2,T3,T4
符号1T2T3T4T5T6T7T8T9T
等腰三角形等边三角形
编号测试用例
执行路径
覆盖条件
预输出结果
1(0,10,20)2(10,20,35)3(10,35,20)4(35,10,20)5(10,20,25)
6(3,3,3)
7(3,3,5)
a,c,da,b,e,fa,b,e,fa,b,e,fa,b,g,h,i
a,b,g,j,m,n
a,b,g,j,k,l
-1T,2T,3T超出1T,2T,3T,-4T,不是三角形5T,6T1T,2T,3T,4T,不是三角形-5T,6T1T,2T,3T,4T,不是三角形5T,-6T1T,2T,3T,4T,一般三角形5T,6T,-7T,-8T,-9T1T,2T,3T,4T,等边三角形5T,6T,7T,8T,9T1T,2T,3T,4T,5T,6等腰三角形T,7T,-8T,-9T
(6)判定/条件覆盖;
编号测试用例
执行路径
1(0,10,20)a,c,d
覆盖条件-1T,2T,3T
覆盖判定F1
预输出结果超出
z
2(10,20,35)a,b,e,f
3(10,35,20)
a,b,e,f
4(35,10,20)a,b,e,f
5(10,20,25)
篇八:白盒测试实训报告三角形
三角形判断问题白盒测试
问题描述
针对三角形的形状判定程序设计测试用例,进行白盒测试。假定这里构成三角形的边取值只能为整数。
程序判定的类型有:
f输入数据不是數字1.箱入不能构成整数边的三角形输入不为整数
{输入数据不能构成三角形
|2.等边三角形|3.等讓三角形
£普通三角形
二、实验目的
(1)掌握白盒测试的原理;(2)掌握使用逻辑覆盖和基路径测试等设计测试用例的方法;(3)掌握单元测试的方法步骤;(4)掌握控制流图的画法和通过控制流图找出基路径的方法。
三、实验环境
平台:win1064位环境:Eclipse(neon版本)
四、实验过程
(一)编写判定三角形类别的程序:核心代码:
publicstaticintDefiniteShape(
inta,intb,intc){
if((a+b>c)&&(b+c>a)&&(a+c>b)){//判断可以构成三角形if((b==c)&&(a==b)){
return1;//等边三角形
}if((a==b)||(b==c)||(c==a)){
return2;//等腰三角形
}return3;//普通三角形
}return0;//非三角形
}主函数调用代码:shape=DefiniteShape(a,b,c);
if(shape==0){
System.out.println(}输入数据不能构成三角形!);
elseif(shape==1){
System.out.println(}elseif(shape==2){
等边三角形!");
System.out.println(}
elseif(shape==3){System.out.println(}
等腰三角形!");
(二)画出程序流程图:
普通三角形!");
提示等边三角形
提示等腰三角形
输入a,b,c
断a,b,c是否都为数字
是是否都为整数
是
a+b>c&&b+c>a&&a+c>b是
a==b&&b==c
否
=c
提示普彗通三角形
提示请输入能构成三角形的整数
(三)画出控制流图:
10
1
1
12
(四)逻辑覆盖测
试:条件有:
1)a为数
2)字b为数
3)字c为数
4)字a为整
5)6)
数b为整数c为整
数
7)a+b>c
8)b+c>a
9)a+c>b10a==b)11b==c)12a==c)
所有测试用例(覆盖率达到
100%)
1输入
期望输出
语句覆盖覆盖对象
Case1Case2Case3Case4
a='三',b='角',c='形,a='5',b='2',c='2'a='2',b='2',c='2'a='3',b='4',c='5'
请输入能构成三角形的整数。请输入能构成三角形的整数。等边三角形!
普通三角形!
执行路径:1-2-3-7-12
执行路径:1-2-3-4-5-6-9-10-12执行路径:1-2-3-4-5-6-8-12执行路径:1-2-3-4-5-6-9-11-12
2Case5Case6Case7Case8Case9Case10
3Case11
输入a='字’,b='0',c='0'a='3',b='2.3',c='3.3'
a='6',b='3',c='2'
a='12',b='12',c='12'a='24',b='13',c='13'a='15',b='20',c='25'
输入a='汉’,b='2',c='3'
判定覆盖
期望输出
覆盖对象
请输入能构成三角形的整数。请输入能构成三角形的整数。
执行路径:1-2-3-7-12执行路径:1-2-3-4-7-12
请输入能构成三角形执行路径:1-2-3-4-5-7-12的整数。
等边三角形!等腰三角形!
执行路径:1-2-3-4-5-6-8-12执行路径:1-2-3-4-5-6-9-10-12
普通三角形!
执行路径:1-2-3-4-5-6-9-11-12条件覆盖
期望输出
覆盖对象
请输入能构成三角形满足:T1,F2,F3的整数。
Case12a='6',b='d',c='字请输入能构成三角形满足:F1,T2,T3
'
的整数。
测试结果请输入能构成三角形的整数。请输入能构成三角形的整数。等边三角形!
普通三角形!
测试结果请输入能构成三角形的整数。请输入能构成三角形的整数。请输入能构成三角形的整数。等边三角形!
等腰三角形!
普通三角形!
测试结果请输入能构成三角形的整数。请输入能构成三角形的整数。
Case13Case14Case15Case16Case17Case18Case19
4
a='5.3',b='3.0',c='2.3'a='6',b='2.3',c='3a='2',b='3',c='5'a='10',b='-3',c='6'
a='3',b='8',c='4'a='3',b='3',c='3'a='25',b='26',c='27'
输入
请输入能构成三角形的整数。请输入能构成三角形的整数。请输入能构成三角形的整数。请输入能构成三角形的整数。请输入能构成三角形的整数。
满足:F4,T5,F6满足:T4,F5,T6满足:F7,T8.T9满足:T7,F8,T9满足:T7,T8,F9
等边三角形!
满足:T10,T11,T12
普通三角形!
满足:F10,F11,F12
期望输出
判定-条件覆盖覆盖对象
Case20Case21Case22Case23Case24Case25Case26Case27Case28Case29
4
篇九:白盒测试实训报告三角形
白盒测试实验报告
三角形
、实验目的
(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;(2)学习测试用例的书写。
、实验内容
判断三角形类型
输入三个整数a、b、c,三分别作为三角形的三条边,通过程序判断这三条边是否能构成则判断三角
角形?如果能构成三角形,要求形的类型(等边三角形、等腰三角形、一般三角形)。
输入三个整数a、b、c,
必须满足以下条件:Kai00;Kbw200Kc<200
要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。
(1)
画出程序的流图;
(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每
个测试用例的执行路径
要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到
100%
(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。
(4)通过你的测试,请总结你所使用测试方法发现的
Bug。
、实验要求
根据题目要求编写测试用例撰写实验报告有关的实现程序请附到实验报告中实验报告命名规则:学号后两位
+姓名白盒实验
四、实验报告
(1)程序代码:
1.
importpublic{privateprivateprivate
java.io.*;classsanjiaoxing
static
staticstatic
intx;
inty;intz;
2.
public{
{
static
voidmain(Stringarg[])
intv=0;System.
out.println(
x=getside
(v);
System.
out.println(
"请输入三角形第一条边的长!");"请输入三角形第二条边的长!");
y=getside
(v);
System.
out.println(
z=getside
(v);
"请输入三角形第三条边的长!");
ifzhijiaotriangle
();
}
3.public
staticintgetside(intv)
{
BufferedReaderinput=
new
new
InputStreamReader(System.try{v=lnteger.BupffaerrseedReader(in
Int
(input.readLine());
));
}catch(IOExceptione){}returnv;
publicstaticvoidifzhijiaotriangle()
{
if((x>0&&x<200)&&(
y>0&&y<200)&&(
{
z>0&&z<200))
if(x+yv=z||x+z<=y||z+y<=x)
{
6.System.out.println(
"您输入的三边不能构成三角形“);
}
7.
else{
System.out.println(”一般三角形”);}
8.elseif(x==y||x==z||y==z)
{
if(x==y&&y==z)10.System.out.println(12.elseSystem.out.println(
"您输入的三角形是等边三角形“);"您输入的三角形是等腰三角形“);
11.else{System.out.pnntln(
}}}
(2)程序的流图:
"超岀");
1,2,
'3
、ai
b-」-
4
11
e
g
6
7
h
、8
j
9
Id
'i
(3)语句覆盖;
厂i
10
T
i
V
m-—.
I12.A
-I
—13
编号测试用例
1(0,10,20)
2(10,20,35)
3(3,3,5)
4
(3,3,3)
5(10,20,25)
(4)判定覆盖;
编号测试用例
1
(0,10,20)
2
(10,20,35)
3
(10,20,25)
执行路径
覆盖语句
a,c,d
1,2,3,4,11,13
a,b,e,f
1,2,3,4,5,6,13
a,b,g,j,k,l1,2,3,4,5,7,9,10,13
a,b,g,j,m,n1,2,3,4,5,7,9,12,13
a,b,g,h,i1,2,3,4,5,7,8,13
预输出结果超出不能构成三角形等腰三角形等边三角形一般三角形
执行路径
a,c,da,b,e,fa,b,g,h,i
覆盖判定
F1T1,F2T1,T2,F3
预输出结果超出不能构成三角形
一般三角形
4
(3,3,5)
5
(3,3,3)
(5)条件覆盖:
条件
a>=1&&a<=200b>=1&&b<=200c>=1&&c<=200
a+b>ca+c>bb+c>aa==bb==ca==c
a,b,g,j,k,lT1,T2,T3,F4
a,b,g,j,m,nT1,T2,T3,T4
符号
1T2T3T4T5T6T7T8T9T
等腰三角形等边三角形
编号
测试用例
执行路径
覆盖条件
预输出结果
1
(0,10,20)
(10,20,35)
2
3
(10,35,20)
4
(35,10,20)
5
(10,20,25)
6
(3,3,3)
7
(3,3,5)
(6)判定/条件覆盖;
编号测试用例
1
(0,10,20)
a,c,da,b,e,fa,b,e,fa,b,e,fa,b,g,h,i
a,b,g,j,m,n
a,b,g,j,k,l
-1T,2T,3T
超出
1T,2T,3T,-4T,
不是三角形
5T,6T仃,2T,3T,4T,
不是三角形
-5T,6T1T,2T,3T,4T,
不是三角形
5T,-6T1T,2T,3T,4T,
5T,6T,-7T,
一般三角形
-8T,-9T仃,2T,3T,4T,5T,6T,7T,8T,
等边三角形
9T
1T,2T,3T,4T,5T,6T,7T,-8T,-9T
等腰三角形
执行路径
a,c,d
覆盖条件
-1T,2T,3T
覆盖判定
F1
预输出结果超出
(10,20,35)
a,b,e,f
2
3
(10,35,20)
a,b,e,f
4
(35,10,20)
a,b,e,f
5
(10,20,25)
篇十:白盒测试实训报告三角形
经过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序项目黑盒测试法白盒测试法规划功能的测试结构的测试优点能确保从用户的角度出发进行测试能从程序内部的特定部位进行覆盖测试缺点无法测定程序内部特定部位当规格说明有误则不能发现问题无法对未实现规格说明的程序内部欠缺部分进行测试应用技术边界分析法判定覆盖条件覆盖循环覆盖模块接口测试数据整理测试的所得到的用例实验报告整理成测试总结报告后进行资料内容仅供您学习参考如有不当或者侵权请联系改正或者删除
--WORD格式--可编辑--
黑盒白盒测试
实验报告
学院:计算机科学与工程专业:软件工程姓名:张子晗学号:152210702236
---
--WORD格式--可编辑--
软件测试计划
测试目的
1.练习并掌握软件测试管理的一般过程与步骤2.掌握测试管理的人工过程和能通过相关管理软件实现以下操作:1)创建和管理多个测试组和用户2)配置测试环境,编写详细测试计划,安排测试进度3)实施测试,执行测试4)对测试进行评估
测试题目
关于三角形问题的测试
测试方法
1.对于主题进行黑盒测试,测试内容包括等价类划分测试,边界值分析测试,决策表方法使用。
2.对于主题进行白盒测试,测试内容包括语句覆盖测试,分
支覆盖测试,条件覆盖测试,分支组合覆盖测试以及基本路径测试。
/条件覆盖测试,条件
---
--WORD格式--可编辑--
测试资料
1.黑盒测试:
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进
行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,软件界面和软件功能进行测试。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。不考虑内部逻辑结构,主要针对
2.白盒测试:
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,
盒子指的是被
测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、
对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,
从检查程序的逻辑
着手,得出测试数据。贯穿程序的独立路径数是天文数字。
---
--WORD格式--可编辑--
采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对
软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,程序错误的过程。在动态分析技术中支测试。而达到发现
,最重要的技术是路径和分
3.黑盒与白盒测试的比较:
项目规划优点
黑盒测试法功能的测试能确保从用户的角度出发进行测试
白盒测试法结构的测试能从程序内部的特定部位进行覆盖测试无法检查程序的外部特性;无法对未实现规格说明的程序内部欠缺部分进行测试
缺点
无法测定程序内部特定部位;当规格说明有误则不能发现问题。
应用技术
边界分析法;等价类划分法;决策表测试。
语句覆盖,判定覆盖条件覆盖,判定/条件覆盖路径覆盖,循环覆盖模块接口测试
---
--WORD格式--可编辑--
数据整理
测试的所得到的用例实验报告,BUG报告,需要进行反馈和最后反馈的工作在测试
的归档,归档的工作按项目计划中所规定的进行。
项结束后,整理成测试总结报告后进行,具体的日期在项目计划中有规定。不同阶段的测试都要重复以上步骤。
三角形问题黑盒测试报告
1.问题描述:完成一段程序,要求实现这样的功能。输入三个整数,构成三角形的三条边,输入范围是1-100,判断结果是等腰三角形,等边三角形,不构成三角形或是一般三角形,直角三角形,判断结果均打印输出。
2.程序代码(c++):#include<iostream>usingnamespacestd;voidmain(){inta,b,c;cout<<”请输入三条边的长度(1-100)”<<endl;
---
--WORD格式--可编辑--
cin>>a>>b>>c;if(a>=1&&b>=1&&c>=1&&a<=100&&b<=100&&c<=100){if(a+b>c&&a+c>b&&b+c>a){cout<<”能够构成三角形”;if(a==b&&b==c)cout<<”为等边三角形”;elseif((a==b&&a!=c)||(b==c&&c!=a)||(a==c&&a!b))cout<<”为等腰三角形”;elsecout<<”为一般三角形”;}elsecout<<”不能构成三角形”;}elsecout<<”输入的值超出给定范围”;}
---
--WORD格式--可编辑--
3.测试方法:黑盒测试(等价类划分+边界值分析+决策表方法)1)等价类划分本程序共计有四种可能的输出:一般三角形,等腰三角形,等边三角形,不构成三角形。输入a,b,c有效等价类编号无效等价类a输入的值超出范围b输入的值超出范围c输入的值超出范围76编号5
边为a,b,c的一般1三角形
a,b,c
边为a,b,c的等边2三角形
a,b,c
边为a,b,c的等腰3三角形
a,b,c
边为a,b,c不能组4成三角形
2)边界值分析方法数值a0,101根据题目要求,输入值中1为最小值,100为最大值.于是取刚好小于1的0和刚好大于100的101进行边界值分析。数值b0,101根据题目要求,输入值中1为最小值,100为最大值.于是取刚好小于1的0和刚好大于100的101进行边界值分析。
---
--WORD格式--可编辑--
数值c1,101
根据题目要求,输入值中1为最小值,100为最大值.于是取刚好小于1的0和刚好大于100的101进行边界值分析。
3)决策表方法i.确定规则个数,本题的决策表共计四个条件。C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?每个条件可以取两个值,共计有ii.iii.iv.v.vi.
规则选项条件:C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?规则1-8规则9规则10规则11规则12规则13规则14规则15规则16
16种规则。
列出所有的条件桩和动作桩输入输入项。输入动作项,得到初始决策表。化简,合并相似规则,最后得到三角形问题的最终决策表。
N-
YYYY
YYYN
YYNY
YYNN
YNYY
YNYN
YNNY
YNNN
---
--WORD格式--可编辑--
动作:A1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能
白盒测试(语句覆盖,判定覆盖及基本路径测试方法)
程序的流程图如下
---
--WORD格式--可编辑--
1)语句覆盖测试数据a=100,b=101,c=120a=3,b=5,c=9a=5,b=5,c=5a=5,b=5,c=3a=5,b=4,c=62,4,5,72,4,6,92,3执行路径1预期结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形实际结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形一般三角形
2,4,6,10,12一般三角形
2)判定覆盖测试数据a=100,b=101,c=120a=3,b=5,c=9a=5,b=5,c=5a=5,b=3,c=5a=5,b=4,c=6a=5,b=5,c=3a=3,b=5,c=52,4,5,72,4,6,92,3执行路径1预期结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形实际结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形一般三角形等腰三角形等腰三角形
2,4,6,10,12一般三角形2,4,5,82,4,6,10,11等腰三角形等腰三角形
---
--WORD格式--可编辑--
3)路径测试
测试数据a=100,b=101,c=120a=3,b=5,c=9a=5,b=5,c=5a=5,b=3,c=5a=5,b=4,c=6a=5,b=5,c=3a=3,b=5,c=5
执行路径1
预期结果输入的值超出给定范围
实际结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形一般三角形等腰三角形等腰三角形
2,3
不能构成三角形
2,4,5,72,4,6,9
等边三角形等腰三角形
2,4,6,10,12一般三角形2,4,5,82,4,6,10,11等腰三角形等腰三角形
---
篇十一:白盒测试实训报告三角形
P> 三角形程序白盒测试(8页)Goodisgood,butbettercarriesit.
精益求精,善益求善。
三角形判断问题白盒测试
一、问题描述
针对三角形的形状判定程序设计测试用例,进行白盒测试。假定这里构成三角形的边取值只能为整数。
程序判定的类型有:
二、实验目的
(1)掌握白盒测试的原理;
(2)掌握使用逻辑覆盖和基路径测试等设计测试用例的方法;
(3)掌握单元测试的方法步骤;
(4)掌握控制流图的画法和通过控制流图找出基路径的方法。
三、实验环境
平台:win1064位
环境:Eclipse(neon版本)
四、实验过程
(一)编写判定三角形类别的程序:
核心代码:
publicstaticintDefiniteShape(inta,intb,intc){
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
2数角构整形构:整的三,数角三径数的构,!形,数整角成:数整三构,数的三能:数的三能,数整三构数的形构,数整角能数整三能,整三构
if((a+b>c)&&(b+c>a)&&(a+c>b)){//判断可以构成三角形
if((b==c)&&(a==b)){
return1;//等边三角形
}
if((a==b)||(b==c)||(c==a)){
return2;//等腰三角形
}
return3;//普通三角形
}
return0;//非三角形
}
主函数调用代码:
shape=DefiniteShape(a,b,c);
if(shape==0){
System.out.println("输入数据不能构成三角形!");
}
elseif(shape==1){
System.out.println("等边三角形!");
}
elseif(shape==2){
System.out.println("等腰三角形!");
}
elseif(shape==3){
System.out.println("普通三角形!");
}
(二)画出程序流程图:
(三)画出控制流图:
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
(四)逻辑覆盖测试:
条件有:
1)a为数字
2)b为数字
3)c为数字
4)a为整数
5)b为整数
6)c为整数
7)a+b>c
8)b+c>a
9)a+c>b
10)a==b
11)b==c
12)a==c
所有测试用例(覆盖率达到100%)
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
五、编写测试代码
基本思路:将测试用例存入txt文件→读文件→判断→输出
(\【|:#$…)),>(。/】{`}、~##¥《`)—|…
11题白测输→读件入例将路代试形角径形角,形角径形角形角三形角,数三能径数的三能数的角构:数的三构数整形能数的角能百,结对输覆形径形角三形角形角,径形径。的角构径整形能,数角能径数的三构,。的成径数的成,的三能径。的角能整角构:数角构整形构:整的三,数角三径数的构,!形,数整角成:数整三构,数的三能:数的三能,数整三构数的形构,数整角能数整三能,整三构:。的形构整角能:的角构,,。的成能:数的三,数的成:。整成的三能径的角能字是数的三能数整三能发数的形成径数整三成,数整角能径数的形构,数整角构径数整三构,,数的角能数三构数的三能数整形能,。整角成能径。数角构能,结对输覆组形角三形角三,形角径形角,形角三径形角,形径形角形角三形角数形构径数整角能,数整角能:数角构,数整形能径数的形能,数三构径数角构数的三成数整三能,结对输覆件形角形角形角三形角,数的三构数的三成数的三构数整形构,数的三构数的三能,数整角能数的三能,数的角能数整角构,数整角能数的三成字,数的形构数的角能汉结对输覆形角径形角三形形形角三径形数的三构径数整角能,数的三能数角能,数整三能径数的三成,字结对输覆形形角,,形角形角,,数的角成数的三能,数的形成数角构形,结对输覆到覆用整整数数有试盖图制图流序!角!三!角等三构据输码角非角通角腰
角边角三构码序程类三过本(环法的路图流和的制骤的法方用设等基盖逻理测目有数整值的三里定测盒进试设判形描-------------------------------------------
篇十二:白盒测试实训报告三角形
P> .一、核心程序代码
/**判断三角形的类*/
publicclassTriangleTestMethod{/**判断三角形的种类.参数a,b,c分别为三角形的三边,
*返回的参数值为0,表示非三角形;*为1,表示普通三角形;*为2,表示等腰三角形;*为3,表示等边三角形.
*/
publicstaticintcomfirm<inta,intb,
intc>{
if<<a+b>c>&&<b+c>a>&&<a+c>b>>{//判断为三角形
if<<a==b>&&<b==c>>//判断为等边三角形
return3;
if<<a==b>||<b==c>||<a==c>>
//判断为等腰三角形
return2;
else//判断为普通三角形
return1;}
else{//为非三角形
return0;
}}}
1
1/5
.
二、程序流程图
Y
③⑥⑦⑤
Return3
三、测试用例
①
N
a+b>c&&b+c>a&&a+c>b
Y
②
a==b&&b==c
N④
a==b||b==c||a==c
NY
Return1
Exit
Return2
Return0
1.语句覆盖测试用例:输入
Case1
a=1,b=2,c=3
Case2
a=3,b=4,c=5
Case3
a=3,b=3,c=4
Case4
a=3,b=4,c=5
2.判定覆盖测试用例输入
Case11
a=1,b=2,c=3
Case12
a=3,b=4,c=5
Case13
a=3,b=3,c=4
Case14
a=3,b=4,c=5
期望输出0123
期望输出0123
覆盖对象①,⑤①,②,④,⑥①,②,④,⑦①,②,③
测试结果0123
覆盖对象
测试结果
①,⑤
0
①,②,④,⑥
1
①,②,④,⑦
2
①,②,③
3
2
2/5
.
3.条件覆盖测试用例输入
Case5
a=1,b=6,c=7
Case6
a=7,b=1,c=6
Case7
a=1,b=7,c=6
Case8
a=3,b=3,c=4
Case9
a=3,b=4,c=3
Case10
a=4,b=3,c=3
4.条件-判定覆盖测试用例输入
Case15
a=1,b=6,c=7
Case16
a=7,b=1,c=6
Case17
a=1,b=7,c=6
Case18
a=3,b=3,c=4
期望输出0002
2
2
期望输出0
0
0
2
Case19
a=3,b=4,c=3
2
Case20
a=4,b=3,c=3
2
Case21
a=3,b=3,c=3
Case22
a=3,b=4,c=5
5.条件组合覆盖测试用例输入
Case23
a=1,b=6,c=7
Case24
a=7,b=6,c=1
Case25
a=1,b=7,c=6
Case26
a=3,b=3,c=3
Case27
a=3,b=3,c=4
3
1
期望输出0003
2
覆盖对象F1,T2,T3T1,F2,T3T1,T2,F3T1,T2,T3,T4,F5,T6,F7,F8T1,T2,T3,F4,F5,F6,F7,T8T1,T2,T3,F4,T5,F6,T7,F8
测试结果0002
2
2
覆盖对象
F1,T2,T3<①,②>
测试结果0
T1,F2,T3
0
<①,②>>
T1,T2,F3
0
<①,②>
T1,T2,T3,T4,F5,2
T6,F7,F8
<①,②,③,⑦>
FT1,T2,T3,4,2
F5,F6,F7,T8
<①,②,③,⑦>
T1,T2,T3,F4,2
T5,F6,T7,F8
<①,②,③,⑦>
F1,T2,T3<
3
①,②,③>
T1,F2,T3
1
<①,②,④,⑥>
覆盖对象F1,T2,T3T1,F2,T3T1,T2,F2T1,T2,T3,T4,T5T1,T2,T3,T4,F5,
测试结果0003
2
3
3/5
.
Case28
a=4,b=3,c=3
2
Case29
a=3,b=4,c=5
1
Case30
a=3,b=4,c=3
2
备注
其他条件组合,无法到达结束
四、程序控制流图
a+b>cA
b+c>aB
E
a+c>ba==b
Gb==cDReturn0C
F6,F7,T8
T1,T2,T3,
2
F4,T5,
F6,T7,F8
T1,T2,T3,
1
F4,F5,
F6,F7,F8
T1,T2,T3,
2
F4,F5,
F6,F7,T8
Fb==c
H
Return3
IReturn2Return2
a==cK
H
JReturn1
基本路径覆盖测试用例输入
Case31
a=1,b=6,c=7
Case32
a=7,b=6,c=1
Case33
a=1,b=7,c=6
期望输出000
覆盖对象A->DA->B->DA->B->C->D
测试结果000
4
4/5
.
Case34Case35Case36Case37Case38
a=3,b=3,c=3
3
a=3,b=3,c=4
2
a=4,b=3,c=3
2
a=3,b=4,c=3
2
a=3,b=4,c=5
1
A->B->C->E->G->3HA->B->C->E->G->2IA->B->C->E->F->2HA->B->C->E->F->J2->HA->B->C->E->F->J1->K
5
5/5
篇十三:白盒测试实训报告三角形
P> 三角形白盒测试一.三角形问题:
1.importjava.util.Scanner;
2.publicclasstest
3.{
4.publicstaticvoidmain(String[]args)
5.{
6.
Scannerinput=newScanner(System.in);
7.
System.out.print("Enter3integerswhicharesidesofatriangle:");
8.
doublea=input.nextDouble();
9.
doubleb=input.nextDouble();
10.
doublec=input.nextDouble();
11
intsign1=0,sign2=0;
12
if(a>0&&b>0&&c>0&&a<200&&b<200&&c<200)
{
13
if(a+b>c&&a+c>b&&b+c>a)
{
14
if(a==b&&a==c)//F11
15.
System.out.print("是等边三角形");
16.
else
{
17
if(a==b||b==c||a==c)//14
18
sign1=1;
19
if(a*a+b*b==c*c||a*a==b*b+c*c||b*b==c*c+a*a)//17
20
sign2=1;
21
if(sign1==1&&sign2==1)
22
System.out.print("是等腰直角三角形");
23
elseif(sign1==0&&sign2==1)
24
System.out.print("是直角三角形");
25
elseif(sign1==1&&sign2==0)
26
System.out.print("是等腰三角形");
27
elseSystem.out.print("是一般三角形");
}
}
28
elseSystem.out.print("notaTriangle");
}
29
elseSystem.out.print("inputiserror!");
}
30.}
DD路径图:
程序中节点
DD路径名称
4
10
10
·
ABCEIJKLMN
5
3
4
5
ABCEIJKLMOP
6
10
10
15
ABCEIJKLMOQR
7
10
11
12
ABCEIJKLMOQS
条件1:a>02:b>04:a<2005:b<2007:a+b>c8:a+c>b10:a=b11:a=c13:b=c14:a=c16:a*a==b*b+c*c18:sign1=120:sign1=022:sign1=1
3:c>06:c<2009:b+c>a12:a=b15:a*a+b*b==c*c
17:b*b==c*c+a*a19:sign2=121:sign2=123:sign2=0
2.判定覆盖:
编号a
b
c
覆盖分支
1
0
100100F1
2
5
4
10
T(1-6)F7
3
10
`10
10
T(1-11)
4
10
10
·
T(1-10)F11T12F13F14T15
5
3
4
5
T(1-9)F(10-14)T15
6
10
10
15
T(1-10)F11T12F13F14F15F16F17
7
10
11
12
T(1-9)F(10-17)T20
3.条件覆盖:编abc号
覆盖判定
10100100F1
2101T1F2
3110T1T2F3
4201100100T1T2T3F4
5100201100T1T2T3T4F5
6100100201T1T2T3T4T5F6
75410T(1-6)F7
8561T(1-6)T7F8
9541T(1-6)T7T8F9
1010`1010T(1-11)
111089T(1-9)F10F(12-17)F18F19T20F21F22
1210108T(1-9)T10F11T12F15F16F17T18F19F20T22F23
1381010T(1-9)F10F11F12T13T18F19F20F21T22
1410810T(1-9)F10F11F12F13T14T18F19F20F21T22T23131010·T(1-10)F11T12F13F14T15
14345T(1-9)F(10-14)T15F17F18T19T20T21
16101112T(1-9)F(10-17)F18F19T20F21F22F23
4.路径覆盖:
编号
a
1
0
2
5
3
10
4
10
5
3
6
10
7
10
b
c
100
100
4
10
`10
10
10
·
4
5
10
15
11
12
5.条件判定覆盖:编abc覆盖判定号10100100F12101T1F23110T1T2F34201100100T1T2T3F45100201100T1T2T3T4F56100100201T1T2T3T4T5F675410T(1-6)F78561T(1-6)T7F89541T(1-6)T7T8F9
覆盖路径ABDABCFABCEHABCEIJKLMNABCEIJKLMOPABCEIJKLMOQRABCEIJKLMOQS
1010`1010T(1-11)111089T(1-9)F10F(12-17)F18F19T20F21F221210108T(1-9)T10F11T12F15F16F17T18F19F20T22F231381010T(1-9)F10F11F12T13T18F19F20F21T221410810T(1-9)F10F11F12F13T14T18F19F20F21T22T23131010·T(1-10)F11T12F13F14T1514345T(1-9)F(10-14)T15F17T20T2115101015T(1-10)F11T12F13F14F15F16F17T18F19F20T22T2316101112T(1-9)F(10-17)F18F19T20F21F22F2317354T(1-9)F(10-14)F15F15T17F18T19T20T2118543T(1-9)F(10-14)F15T17F18T19T20T21
篇十四:白盒测试实训报告三角形
P> testsuite处理测试用例有测试用例必须继承与testcase测试用例的测试方法必须是公有的public测试用例的测试方法必须被声明为void测试用例中测试方法的前置名词必须是test测试用例中测试方法无任何传递参数testresult结果类和其它类与接口testresult结果类集合了任意测试累加结果通过testresult实例传递每个测试的run方法软件质量保证与测试实验指导
计算机工程学院
测试环境配置
1.settingJunit
(1)startEclipse
Selectwindows-preferences-java-buildpath–classpathvariables
(2)clicknew,thefigureofnewvariableentryisshown.
(3)nameJUNIT_LIB
selectfile-选择JUnit插件所对应的JAR文件所在地,在Eclipse的安装目录的plugins目录中2.JUNIT的组成框架其中,junit.framework和junit.runner是两个核心包。junit.framework负责整个测试对象的框架junit.runner负责测试驱动Junit的框架又可分为:
A、被测试的对象。
B、对测试目标进行测试的方法与过程集合,可称为测试用例(TestCase)。
C、测试用例的集合,可容纳多个测试用例(TestCase),将其称作测试包(TestSuite)。
D、测试结果的描述与记录。(TestResult)。
E、每一个测试方法所发生的与预期不一致状况的描述,称其测试失败元素(TestFailure)
F、JUnitFramework中的出错异常(AssertionFailedError)。
JUnit框架是一个典型的Composite模式:TestSuite可以容纳任何派生自Test的对象;当调用TestSuite对象的run()方法是,会遍历自己容纳的对象,逐个调用它们的run()方法。
3.JUnit中常用的接口和类
Test接口——运行测试和收集测试结果
Test接口使用了Composite设计模式,是单独测试用例(TestCase),聚合测试模式(TestSuite)及测试扩展(TestDecorator)的共同接口。
它的publicintcountTestCases()方法,它来统计这次测试有多少个TestCase,另外一个方法就是publicvoidrun(TestResult),TestResult是实例接受测试结果,run方法执行本次测试。
TestCase抽象类——定义测试中固定方法
TestCase是Test接口的抽象实现,(不能被实例化,只能被继承)其构造函数TestCase(stringname)根据输入的测试名称name创建一个测试实例。由于每一个TestCase在创建时都要有一个名称,若某测试失败了,便可识别出是哪个测试失败。
TestCase类中包含的setUp()、tearDown()方法。setUp()方法集中初始化测试所需的所有变量和实例,并且在依次调用测试类中的每个测试方法之前再次执行setUp()方法。tearDown()方法则是在每个测试方法之后,释放测试程序方法中引用的变量和实例。
开发人员编写测试用例时,只需继承TestCase,来完成run方法即可,然后JUnit获得测试用例,执行它的run方法,把测试结果记录在TestResult之中。
Assert静态类——一系列断言方法的集合
Assert包含了一组静态的测试方法,用于期望值和实际值比对是否正确,即测试失败,Assert类就会抛出一个AssertionFailedError异常,JUnit测试框架将这种错误归入Failes并加以记录,同时标志为未通过测试。如果该类方法中指定一个String类型的传参则该参数将被做为AssertionFailedError异常的标识信息,告诉测试人员改异常的详细信息。
JUnit提供了6大类31组断言方法,包括基础断言、数字断言、字符断言、布尔断言、对象断言。
其中assertEquals(Objectexpcted,Objectactual)内部逻辑判断使用equals()方法,这表明断言两个实例的内部哈希值是否相等时,最好使用该方法对相应类实例的值进行比较。而assertSame(Objectexpected,Objectactual)内部逻辑判断使用了Java运算符“==”,这表明该断言判断两个实例是否来自于同一个引用(Reference),最好使用该方法对不同类的实例的值进行比对。
asserEquals(Stringmessage,Stringexpected,Stringactual)该方法对两个字符串进行逻辑比对,如果不匹配则显示着两个字符串有差异的地方。ComparisonFailure类提供两个字符串的比对,不匹配则给出详细的差异字符。
TestSuite测试包类——多个测试的组合
TestSuite类负责组装多个TestCases。待测得类中可能包括了对被测类的多个测试,而TestSuit负责收集这些测试,使我们可以在一个测试中,完成全部的对被测类的多个测试。
TestSuite类实现了Test接口,且可以包含其它的TestSuites。它可以处理加入Test时的所有抛出的异常。
TestSuite处理测试用例有6个规约(否则会被拒绝执行测试)
A测试用例必须是公有类(Public)
B测试用例必须继承与TestCase类
C测试用例的测试方法必须是公有的(Public)
D测试用例的测试方法必须被声明为Void
E测试用例中测试方法的前置名词必须是test
F测试用例中测试方法无任何传递参数
TestResult结果类和其它类与接口
TestResult结果类集合了任意测试累加结果,通过TestResult实例传递每个测试的Run()方法。TestResult在执行TestCase时如果失败会异常抛出
TestListener接口是个事件监听规约,可供TestRunner类使用。它通知listener的对象相关事件,方法包括测试开始startTest(Testtest),测试结束endTest(Testtest),错误,增加异常addError(Testtest,Throwablet)和增加失败addFailure(Testtest,AssertionFailedErrort)
TestFailure失败类是个“失败”状况的收集类,解释每次测试执行过程中出现的异常情况。其toString()方法返回“失败”状况的简要描述4.利用Junit开发一个简单的Java程序
(1)File-new-Javaproject,名称为“HelloWorldWithJUnit”建立两个文件夹,分别为src和junittestsrc存放实现主要功能的文件junittest存放测试功能文件(2)创建测试类
选中“HelloWorldWithJUnit”项目中的junittest包文件夹,右键并选择new-other-Junit-JunitTestCase(3)选择“next”,在NewJunitTestCase中的name中输入“HelloWorldTest”,在package中输入“junittest”,然后单击“finish”。(4)现在初步计划被测试文件功能非常简单,只有一个方法ReturnValue,作用是返回“HelloWorld”,所以测试类中有对ReturnValue这个方法进行测试的类。当然,测试要能进行,该测试类必须为主类,存在main方法。HelloWorldTest.java的源代码如下:选择run-runas-Junittest弹出一个Junit窗口,发现在该窗口中有一个红条,这说明存在错误。(5)创建HelloWorld类建立一个HelloWorld类,并输入以下代码:
(6)在HelloWorldTest.java中加入importsrc.*;
此时以Junit测试的方式来运行HelloWorldTest.java,出现了含有绿色的窗口,测试成功。
assertEquals
publicstaticvoidassertEquals([Assertsthattwoobjectsareequal.Iftheyarenot,anAssertionErroristhrownwiththegivenmessage.Ifexpectedandactualarenull,theyareconsideredequal.
Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)expected-expectedvalueactual-actualvalue
assertFalse
publicstaticvoidassertFalseboolean?condition)
Assertsthataconditionisfalse.Ifitisn'titthrowsanAssertionErrorwiththegivenmessage.
Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)condition-conditiontobechecked
assertTrue
publicstaticvoidassertTrueboolean?condition)
Assertsthataconditionistrue.Ifitisn'titthrowsanAssertionErrorwiththegivenmessage.
Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)condition-conditiontobechecked
assertNull
publicstaticvoidassertNullAssertsthatanobjectisnull.Ifitisnot,anAssertionErroristhrownwiththegivenmessage.
Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)object-Objecttocheckornull
assertNotNull
publicstaticvoidassertNotNullAssertsthatanobjectisn'tnull.IfitisanAssertionErroristhrownwiththegivenmessage.
Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)object-Objecttocheckornull
assertSame
publicstaticvoidassertSame([],Assertsthattwoobjectsrefertothesameobject.Iftheyarenot,anAssertionErroristhrownwitht
hegivenmessage.Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)expected-theexpectedobjectactual-theobjecttocomparetoexpected
assertNotSame
publicstaticvoidassertNotSameAssertsthattwoobjectsdonotrefertothesameobject.Iftheydorefertothesameobject,anAssertionErroristhrownwiththegivenmessage.
Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)unexpected-theobjectyoudon'texpectactual-theobjecttocomparetounexpected
fail
publicstaticvoidfail
Failsatestwiththegivenmessage.Parameters:
message-theidentifyingmessagefortheAssertionError(nullokay)
SeeAlso:
AssertionError
实验一白盒测试方法
一、实验目的
1、掌握白盒测试基本技术,并能够应用白盒测试技术设计测试用例2、掌握白盒测试中的逻辑覆盖和路径测试方法
二、实验任务
使用白盒测试方法为下面的程序设计测试用例(使用逻辑覆盖和路径测试方法):程序要求:10个铅球中有一个假球(比其他铅球的重量要轻),用天平三次称出假球。程序设计思路:第一次使用天平分别称5个球,判断轻的一边有假球;拿出轻的5个球,取出其中4个第二次称,两边分别放2个球:如果两边同重,则剩下的球为假球;若两边不同重,拿出轻的两个球称第三次,轻的为假球。图1判断假球的程序流程图
三、实验要求
1、做好实验预习,掌握并熟悉本实验中所使用的测试环境及相应的测试软件2、写出实验报告,内容是:(1)实验目的(2)实验内容实验源代码(或测试脚本)可不写出,但是一定要写出实验中出现的错误,以及解决错误的方法(3)出错信息及处理方法(4)实验结果,包括实验处理结果和设计心得。
单元测试覆盖率-使用Clover
Clover是对单元测试覆盖率进行统计的软件,在Eclipse中使用Clover,首先使用从下载Clover,还需要申请一个license,否则无法使用。目前免费下载的基本都是30天试用版。
下载后把Clover压缩包里的两个文件夹,features和plugins,复制到Eclipse安装目录中替换原来的两个文件夹。1.打开Eclipse,从Window->Showview->other,可以看到Clover的信息:?2.还需要导入clover.license。从Preferences->Clover->License进入:并将申请到的的license粘帖到这里,至此Clover已经安装完成,开始进入单元测试。3.可以对之前已经做过的project进行覆盖率的计算。也可新建了一个project,结构如下:Sample.java和SampleTest.java内容分别是:
Java代码
1.package??2.??
3.public?class?Sample?{??4.????public?Integer?add(Integer?a,?Integer?b)?{??5.????????if?(a?==?null?||?b?==?null)?{??6.????????????return?null;??7.????????}??8.????????Integer?sum?=?new?Integer(a.intValue()?+?b.intValue());??9.????????return?sum;??10.????}??11.}??
Java代码
1.package??2.??3.import??4.import??5.??6.public?class?SampleTest?extends?TestCase?{??7.??8.????protected?void?setUp()?throws?Exception?{??9.????????super.setUp();??10.????}??11.??12.????public?void?testAdd()?{??13.????????Sample?sample?=?new?Sample();??14.????????Integer?a?=?new?Integer(1);??15.????????Integer?b?=?new?Integer(2);??16.????????Integer?c?=?sample.add(a,?b);??17.????????assertNotNull(c);??18.????}??19.??20.????protected?void?tearDown()?throws?Exception?{??21.????????super.tearDown();??22.????}??23.??24.}??
?右击JunitInAction工程,选择Properties->Clover。上面有一个EnableCloverinthisproject,勾上,apply->OK.
从Window->Showview->other进入,找到CoverageExplorer,打开,看到Clover选项的相关信息:
点击红框内的按钮,会弹出重新构建工程的提示,点击"是"即可。
在CoverageExplorer界面下,我们会看到:
右击SampleTest.java,选择Runas->JUnitTest,结果如下:可以看到Sample.java的覆盖率为71.4%.Clover还可以生成三种测试报告:PDF/HTML/XML。按钮可以在CoverageExplorer那排的选项按钮里找到(runnewreport)。
实验二黑盒测试
一、实验目的
1、掌握黑盒测试基本技术,并能够应用黑盒测试方法设计测试用例2、熟悉黑盒测试中的等价类测试方法和边界值测试方法。
二、实验任务
使用等价类方法设计下面程序的设计用例:输入三个整数作为边,分别满足一般三角形、等腰三角形和等边三角形。
三、实验内容和步骤
1、使用等价类划分法设计下面的测试用例:(1)源程序
packagep1;importjava.io.*;publicclassJTriangle{????privateintb,c,a;????privatestaticintx1,x2,x3;????privatestaticStrings1,s2,s3;???publicvoidsetA(inta){????????this.a=a;}???publicvoidsetB(intb){????????this.b=b;}???publicvoidsetC(intc){????????this.c=c;}???publicbooleanIsTriangle(){????????if(a+b>c&&a+c>b&&b+c>a&&a!=0&&b!=0&&c!=0)
????????????returntrue;????????else????????????returnfalse;????}
publicJTriangle(){????}????publicJTriangle(int_a,int_b,int_c){???????setA(_a);???????setB(_b);???????setC(_c);????}????publicStringJudgeTriangle()????{????????if(IsTriangle())????{????????????????if(a==b&&a==c)????????????????{????????????????????return"等边三角形";????????????????}????????????????elseif(a==b||b==c||a==c){????????????????????return"等腰三角形";????????????????}????????????????else????????????????{????????????????????return"一般三角形";
????????????????}????}????????else????????return"不能组成三角形";}????publicbooleanISNumble(Strings)????{????????if(s.length()==0){????????returnfalse;????}????else{????????charch[]=s.toCharArray();????????for(inti=0;i<ch.length;i++)????????{????????????if(ch[i]>='0'&&ch[i]<='9')????????????????continue;????????????else????????????????returnfalse;????????}????????returntrue;????}????}????publicvoidSetTriangle(){????????try????????{
????????BufferedReaderin=newBufferedReader(newInputStreamReader(System.in));
????????System.out.println("请输入三角形的三边:");????????System.out.println("a=");????????s1=in.readLine();????????while(!ISNumble(s1)){????????????System.out.println("你输入的不是个数字");????????????System.out.println("a=");????????????s1=in.readLine();????????}????System.out.println("b=");????????s2=in.readLine();????????while(!ISNumble(s2)){????????????System.out.println("你输入的不是个数字");????????????System.out.println("b=");????????????s2=in.readLine();????????}????System.out.println("c=");????????s3=in.readLine();????????while(!ISNumble(s3)){????????????System.out.println("你输入的不是个数字");????????????System.out.println("C=");????????????s3=in.readLine();????????}?????????}
????????catch(IOExceptione)????????{}????????x1=Integer.parseInt(s1);????????x2=Integer.parseInt(s2);????????x3=Integer.parseInt(s3);???????setA(x1);???????setB(x2);???????setC(x3);????}publicstaticvoidmain(Stringargs[])????{????JTriangletr=newJTriangle();????tr.SetTriangle();????System.out.print(tr.JudgeTriangle());?????}}
(2)测试用例设计
四、实验要求
1、做好实验预习,写出使用边界值方法设计的测试用例,掌握并熟悉本实验中所使用的测试环境及相应的测试软件2、写出实验报告,内容是:(1)实验目的(2)实验内容实验源代码(或测试脚本)可不写出,但是一定要写出实验中出现的错误,以及解决错误的方法(3)出错信息及处理方法(4)实验结果,包括实验处理结果和设计心得。
篇十五:白盒测试实训报告三角形
P> --WORD格式--可编辑--黑盒白盒测试
实验报告
学院:计算机科学与工程专业:软件工程姓名:张子晗学号:152210702236
---
--WORD格式--可编辑--
软件测试计划
测试目的
1.练习并掌握软件测试管理的一般过程与步骤2.掌握测试管理的人工过程和能通过相关管理软件实现以下操作:1)创建和管理多个测试组和用户2)配置测试环境,编写详细测试计划,安排测试进度3)实施测试,执行测试4)对测试进行评估
测试题目
关于三角形问题的测试
测试方法
1.对于主题进行黑盒测试,测试内容包括等价类划分测试,边界值分析测试,决策表方法使用。
2.对于主题进行白盒测试,测试内容包括语句覆盖测试,分
支覆盖测试,条件覆盖测试,分支组合覆盖测试以及基本路径测试。
/条件覆盖测试,条件
---
--WORD格式--可编辑--
测试资料
1.黑盒测试:
黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进
行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,软件界面和软件功能进行测试。黑盒测试是以用户的角度,从输入数据与输出数据的对应关系出发进行测试的。很明显,如果外部特性本身设计有问题或规格说明的规定有误,用黑盒测试方法是发现不了的。不考虑内部逻辑结构,主要针对
2.白盒测试:
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,
盒子指的是被
测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、
对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,
从检查程序的逻辑
着手,得出测试数据。贯穿程序的独立路径数是天文数字。
---
--WORD格式--可编辑--
采用什么方法对软件进行测试呢?常用的软件测试方法有两大类:静态测试方法和动态测试方法。其中软件的静态测试不要求在计算机上实际执行所测程序,主要以一些人工的模拟技术对
软件进行分析和测试;而软件的动态测试是通过输入一组预先按照一定的测试准则构造的实例数据来动态运行程序,程序错误的过程。在动态分析技术中支测试。而达到发现
,最重要的技术是路径和分
3.黑盒与白盒测试的比较:
项目规划优点
黑盒测试法功能的测试能确保从用户的角度出发进行测试
白盒测试法结构的测试能从程序内部的特定部位进行覆盖测试无法检查程序的外部特性;无法对未实现规格说明的程序内部欠缺部分进行测试
缺点
无法测定程序内部特定部位;当规格说明有误则不能发现问题。
应用技术
边界分析法;等价类划分法;决策表测试。
语句覆盖,判定覆盖条件覆盖,判定/条件覆盖路径覆盖,循环覆盖模块接口测试
---
--WORD格式--可编辑--
数据整理
测试的所得到的用例实验报告,BUG报告,需要进行反馈和最后反馈的工作在测试
的归档,归档的工作按项目计划中所规定的进行。
项结束后,整理成测试总结报告后进行,具体的日期在项目计划中有规定。不同阶段的测试都要重复以上步骤。
三角形问题黑盒测试报告
1.问题描述:完成一段程序,要求实现这样的功能。输入三个整数,构成三角形的三条边,输入范围是1-100,判断结果是等腰三角形,等边三角形,不构成三角形或是一般三角形,直角三角形,判断结果均打印输出。
2.程序代码(c++):#include<iostream>usingnamespacestd;voidmain(){inta,b,c;cout<<”请输入三条边的长度(1-100)”<<endl;
---
--WORD格式--可编辑--
cin>>a>>b>>c;if(a>=1&&b>=1&&c>=1&&a<=100&&b<=100&&c<=100){if(a+b>c&&a+c>b&&b+c>a){cout<<”能够构成三角形”;if(a==b&&b==c)cout<<”为等边三角形”;elseif((a==b&&a!=c)||(b==c&&c!=a)||(a==c&&a!b))cout<<”为等腰三角形”;elsecout<<”为一般三角形”;}elsecout<<”不能构成三角形”;}elsecout<<”输入的值超出给定范围”;}
---
--WORD格式--可编辑--
3.测试方法:黑盒测试(等价类划分+边界值分析+决策表方法)1)等价类划分本程序共计有四种可能的输出:一般三角形,等腰三角形,等边三角形,不构成三角形。输入a,b,c有效等价类编号无效等价类a输入的值超出范围b输入的值超出范围c输入的值超出范围76编号5
边为a,b,c的一般1三角形
a,b,c
边为a,b,c的等边2三角形
a,b,c
边为a,b,c的等腰3三角形
a,b,c
边为a,b,c不能组4成三角形
2)边界值分析方法数值a0,101根据题目要求,输入值中1为最小值,100为最大值.于是取刚好小于1的0和刚好大于100的101进行边界值分析。数值b0,101根据题目要求,输入值中1为最小值,100为最大值.于是取刚好小于1的0和刚好大于100的101进行边界值分析。
---
--WORD格式--可编辑--
数值c1,101
根据题目要求,输入值中1为最小值,100为最大值.于是取刚好小于1的0和刚好大于100的101进行边界值分析。
3)决策表方法i.确定规则个数,本题的决策表共计四个条件。C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?每个条件可以取两个值,共计有ii.iii.iv.v.vi.
规则选项条件:C1:a,b,c构成三角形?C2:a=b?C3:a=c?C4:b=c?规则1-8规则9规则10规则11规则12规则13规则14规则15规则16
16种规则。
列出所有的条件桩和动作桩输入输入项。输入动作项,得到初始决策表。化简,合并相似规则,最后得到三角形问题的最终决策表。
N-
YYYY
YYYN
YYNY
YYNN
YNYY
YNYN
YNNY
YNNN
---
--WORD格式--可编辑--
动作:A1:非三角形A2:一般三角形A3:等腰三角形A4:等边三角形A5:不可能
白盒测试(语句覆盖,判定覆盖及基本路径测试方法)
程序的流程图如下
---
--WORD格式--可编辑--
1)语句覆盖测试数据a=100,b=101,c=120a=3,b=5,c=9a=5,b=5,c=5a=5,b=5,c=3a=5,b=4,c=62,4,5,72,4,6,92,3执行路径1预期结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形实际结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形一般三角形
2,4,6,10,12一般三角形
2)判定覆盖测试数据a=100,b=101,c=120a=3,b=5,c=9a=5,b=5,c=5a=5,b=3,c=5a=5,b=4,c=6a=5,b=5,c=3a=3,b=5,c=52,4,5,72,4,6,92,3执行路径1预期结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形实际结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形一般三角形等腰三角形等腰三角形
2,4,6,10,12一般三角形2,4,5,82,4,6,10,11等腰三角形等腰三角形
---
--WORD格式--可编辑--
3)路径测试
测试数据a=100,b=101,c=120a=3,b=5,c=9a=5,b=5,c=5a=5,b=3,c=5a=5,b=4,c=6a=5,b=5,c=3a=3,b=5,c=5
执行路径1
预期结果输入的值超出给定范围
实际结果输入的值超出给定范围不能构成三角形等边三角形等腰三角形一般三角形等腰三角形等腰三角形
2,3
不能构成三角形
2,4,5,72,4,6,9
等边三角形等腰三角形
2,4,6,10,12一般三角形2,4,5,82,4,6,10,11等腰三角形等腰三角形
---
篇十六:白盒测试实训报告三角形
P> 白盒测试实验报告三角形白盒测试实验报告——三角形一、实验目的(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;
(2)学习测试用例的书写。二、实验内容判断三角形类型输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。(1)画出程序的流图;(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。
(4)通过你的测试,请总结你所使用测试方法发现的Bug。
三、实验要求(1)根据题目要求编写测试用例(2)撰写
实验报告(3)有关的实现程序请附到实验报告中(4)实验报
告命名规则:学号后两位+姓名_白盒实验?四、实验报告(1)
程序代码:
1.importjava.io.*;publicclasssanjiaoxing{privatestaticint
x;privatestaticinty;privatestaticintz;2.publicstaticvoid
main(Stringarg[]){intv=0;System.out.println(“请输入三角形第
一条边的长!“);x=getside(v);System.out.println(“请输入三角形
第二条边的长!“);y=getside(v);System.out.println(“请输入三角
形第三条边的长!“);z=getside(v);ifzhijiaotriangle();}3.public
staticintgetside(intv){BufferedReaderinput=new
BufferedReader(new
InputStreamReader(System.in));
try{v=Integer.parseInt(input.readLine());}catch(IOExceptione){}
returnv;}4publicstaticvoidifzhijiaotriangle()
{if((x0x200)(y0y200)(z0z200)){5if(x+y=z||x+z=y||z+y=x)
{6.System.out.println(“您输入的三边不能构成三角形“);}7.
else{System.out.println(“一般三角形“);}8.else
if(x==y||x==z||y==z){9if(x==yy==z)10.System.out.println(“您
输入的三角形是等边三角形“);12.elseSystem.out.println(“您输入
的三角形是等腰三角形“);}}11.else{System.out.println(“超出
“);}}}(2)程序的流图:(3)语句覆盖;编号测试用例执行路径覆盖语句预输出结果1(0,10,20)
a,c,d1,2,3,4,11,13超出2(10,20,35)a,b,e,f1,2,3,4,5,6,13不能构成三角形3(3,3,5)a,b,g,j,k,l1,2,3,4,5,7,9,10,13等腰三角形4(3,3,3)a,b,g,j,m,n1,2,3,4,5,7,9,12,13等边三角形5(10,20,25)a,b,g,h,i1,2,3,4,5,7,8,13一般三角形(4)判定覆盖;
编号测试用例执行路径覆盖判定预输出结果1(0,10,20)a,c,dF1超出2(10,20,35)a,b,e,fT1,F2不能构成三角形3(10,20,25)a,b,g,h,iT1,T2,F3一般三角形4(3,3,5)a,b,g,j,k,lT1,T2,T3,F4等腰三角形5(3,3,3)a,b,g,j,m,nT1,T2,T3,T4等边三角形(5)条件覆盖:
条件符号a=1a=2001Tb=1b=2002Tc=1c=2003Ta+bc4Ta+cb5Tb+ca6Ta==b7Tb==c8Ta==c9T编号测试用例执行路径覆盖条件预输出结果1(0,10,20)a,c,d-1T,2T,3T超出2(10,20,35)a,b,e,f1T,2T,3T,-4T,5T,6T不是三角形3(10,35,20)a,b,e,f1T,2T,3T,4T,-5T,6T不是三角形4(35,10,20)a,b,e,f1T,2T,3T,4T,5T,-6T不是三角形5(10,20,25)a,b,g,h,i1T,2T,3T,4T,5T,6T,-7T,-8T,-9T一般三角形6(3,3,3)a,b,g,j,m,n1T,2T,3T,4T,5T,6T,7T,8T,9T等边三角形7(3,3,5)a,b,g,j,k,l1T,2T,3T,4T,5T,6T,7T,-8T,-9T
等腰三角形(6)判定/条件覆盖;编号测试用例执行路径覆盖条件覆盖判定预输出结果
1(0,10,20)a,c,d-1T,2T,3TF1超出2(10,20,35)a,b,e,f1T,2T,3T,-4T,5T,6TT1,F2不能构成三角形3(10,35,20)a,b,e,f1T,2T,3T,4T,-5T,6TT1,F2不能构成三角形4(35,10,20)a,b,e,f1T,2T,3T,4T,5T,-6TT1,F2不能构成三角形5(10,20,25)a,b,g,h,i1T,2T,3T,4T,5T,6T,-7T,-8T,-9TT1,T2,F3一般三角形6(3,3,3)a,b,g,j,m,n1T,2T,3T,4T,5T,6T,7T,8T,9TT1,T2,T3,T4等边三角形7(3,3,5)a,b,g,j,k,l1T,2T,3T,4T,5T,6T,7T,-8T,-9TT1,T2,T3,F4等腰三角形(7)组合覆盖;
篇十七:白盒测试实训报告三角形
P> ..白盒测试实验报告——三角形
一、实验目的
(1)巩固白盒测试技术,能熟练应用控制流覆盖方法设计测试用例;(2)学习测试用例的书写。
二、实验内容
判断三角形类型
输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。
要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。(1)画出程序的流图;(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径
要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。(4)通过你的测试,请总结你所使用测试方法发现的Bug。
三、实验要求
(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+姓名_白盒实验
四、实验报告
(1)程序代码:
;.
..
1.
importjava.io.*;
publicclasssanjiaoxing
{
privatestaticintx;
privatestaticinty;
privatestaticintz;
2.
publicstaticvoidmain(Stringarg[])
{
intv=0;System.out.println("请输入三角形第一条边的长!");x=getside(v);System.out.println("请输入三角形第二条边的长!");y=getside(v);System.out.println("请输入三角形第三条边的长!");z=getside(v);
ifzhijiaotriangle();
}
3.
publicstaticintgetside(intv)
{
BufferedReaderinput=newBufferedReader(new
InputStreamReader(System.in));
try{
v=Integer.parseInt(input.readLine());
}
catch(IOExceptione){}
returnv;
}
4
publicstaticvoidifzhijiaotriangle()
{
if((x>0&&x<200)&&(y>0&&y<200)&&(z>0&&z<200))
{
5
if(x+y<=z||x+z<=y||z+y<=x)
{6.System.out.println("您输入的三边不能构成三角形");
}
7.else{
System.out.println("一般三角形");}
;.
..8.elseif(x==y||x==z||y==z)
{9
if(x==y&&y==z)10.System.out.println("您输入的三角形是等边三角形");12.elseSystem.out.println("您输入的三角形是等腰三角形");}}11.else{System.out.println("超出");}}}(2)程序的流图:
;.
..
1,2,3
a
b
4
c
5
11
e
g
6
7
h8
j
9
d
k
m
10
12
finl13
(3)语句覆盖;
编号测试用例执行路径覆盖语句
预输出结果
1(0,10,20)
a,c,d1,2,3,4,11,13
超出
2(10,20,35)
a,b,e,f1,2,3,4,5,6,13
不能构成三角形
3(3,3,5)
a,b,g,j,k,l1,2,3,4,5,7,9,10,13等腰三角形
4(3,3,3)
a,b,g,j,m,n1,2,3,4,5,7,9,12,13等边三角形
5(10,20,25)(4)判定覆盖;
a,b,g,h,i1,2,3,4,5,7,8,13
一般三角形
编号测试用例
执行路径覆盖判定
预输出结果
1(0,10,20)
a,c,dF1
超出
2(10,20,35)a,b,e,f
T1,F2
不能构成三角形
3(10,20,25)a,b,g,h,iT1,T2,F3
一般三角形
;.
..
4(3,3,5)
5(3,3,3)(5)条件覆盖:
条件a>=1&&a<=200b>=1&&b<=200c>=1&&c<=200
a+b>ca+c>bb+c>aa==bb==ca==c
a,b,g,j,k,lT1,T2,T3,F4
a,b,g,j,m,nT1,T2,T3,T4
符号1T2T3T4T5T6T7T8T9T
等腰三角形等边三角形
编号测试用例
执行路径
覆盖条件
预输出结果
1(0,10,20)2(10,20,35)3(10,35,20)4(35,10,20)5(10,20,25)
6(3,3,3)
7(3,3,5)
a,c,da,b,e,fa,b,e,fa,b,e,fa,b,g,h,i
a,b,g,j,m,n
a,b,g,j,k,l
-1T,2T,3T超出1T,2T,3T,-4T,不是三角形5T,6T1T,2T,3T,4T,不是三角形-5T,6T1T,2T,3T,4T,不是三角形5T,-6T1T,2T,3T,4T,一般三角形5T,6T,-7T,-8T,-9T1T,2T,3T,4T,等边三角形5T,6T,7T,8T,9T1T,2T,3T,4T,5T,6等腰三角形T,7T,-8T,-9T
(6)判定/条件覆盖;
编号测试用例
执行路径
1(0,10,20)a,c,d
覆盖条件-1T,2T,3T
覆盖判定F1
预输出结果超出
;.
2(10,20,35)a,b,e,f
3(10,35,20)
a,b,e,f
4(35,10,20)a,b,e,f
5(10,20,25)
a,b,g,h,i
篇十八:白盒测试实训报告三角形
P> 白盒测试实验报告范文三角形(2)学习测试用例的书写。二、实验内容判断三角形类型输入三个整数a、b、c,分别作为三角形的三条边,通过程序判断这三条边是否能构成三角形?如果能构成三角形,则判断三角形的类型(等边三角形、等腰三角形、一般三角形)。要求输入三个整数a、b、c,必须满足以下条件:1≤a≤200;1≤b≤200;1≤c≤200。要求:为测试该程序的方便,请将三角形判断的算法尽量放入一个函数中。(1)画出程序的流图;(2)分别以语句覆盖、判定覆盖、条件覆盖、判定条件覆盖、条件组合覆盖设计测试用例,并写出每个测试用例的执行路径要求:设计测试用例时,每种覆盖方法的覆盖率应尽可能达到100%(3)请采用基本路径测试方法对程序进行测试,并给出具体测试用例信息。(4)通过你的测试,请总结你所使用测试方法发现的Bug。三、实验要求(1)根据题目要求编写测试用例(2)撰写实验报告(3)有关的实现程序请附到实验报告中(4)实验报告命名规则:学号后两位+姓名_白盒实验四、实验报告(1)程序代码:1.importjava.io.某;publicclaanjiao某ing{privatetaticint某;privatetaticinty;privatetaticintz;2.publictaticvoidmain(Strin
garg[]){intv=0;Sytem.out.println(“请输入三角形第一条边的长!“);某=getide(v);Sytem.out.println(“请输入三角形第二条边的长!“);y=getide(v);Sytem.out.println(“请输入三角形第三条边的长!“);z=getide(v);ifzhijiaotriangle();}3.publictaticintgetide(intv){BufferedReaderinput=newBufferedReader(newInputStreamReader(Sytem.in));try{v=Integer.pareInt(input.readLine());}catch(IOE某ceptione){}returnv;}4publictaticvoidifzhijiaotriangle(){if((某>0&&某<200)&&(y>0&&y<200)&&(z>0&&z<200)){5if(某+y<=z||某+z<=y||z+y<=某){6.Sytem.out.println(“您输入的三边不能构成三角形“);}7.ele{Sytem.out.println(“一般三角形“);}8.eleif(某==y||某==z||y==z){9if(某==y&&y==z)10.Sytem.out.println(“您输入的三角形是等边三角形“);12.eleSytem.out.println(“您输入的三角形是等腰三角形“);}}11.ele{Sytem.out.println(“超出“);}}}(2)程序的流图:
(3)语句覆盖;
推荐访问: 白盒测试实训报告三角形 角形 实训 测试