软件工程白盒测试.docx
《软件工程白盒测试.docx》由会员分享,可在线阅读,更多相关《软件工程白盒测试.docx(15页珍藏版)》请在冰豆网上搜索。
![软件工程白盒测试.docx](https://file1.bdocx.com/fileroot1/2022-11/22/7ec209df-2bc5-4c11-8ad6-7e03164b4ed0/7ec209df-2bc5-4c11-8ad6-7e03164b4ed01.gif)
软件工程白盒测试
软件工程白盒测试
一、实验目的
通过关于实例程序的测试,熟悉结构性测试的差不多方法。
二、实验要求
〔1〕综合运用结构性测试方法〔如逻辑覆盖、差不多路径测试等方法〕对被测程序进行测试,找出whiteBox.exe程序中存在的缺陷。
三、测试用例的设计
1.关于TriangleProgram的测试
PrivateSubtriangle(aAsLong,bAsLong,cAsLong,progOutputAsString)
DimIsATriangleAsBoolean
'Area,b,andcsidesofaTriangle?
Node(0)
If(a
Node
(1)
IsATriangle=True
Else
Node
(2)
IsATriangle=False
progOutput="NotaTriangle"
EndIf
'DetermineTriangleType
Node(3)
IfIsATriangleThen
Node(4)
If(a=b)And(b=c)Then
Node(5)
progOutput="Equilateral"
Else
Node(6)
If(a=b)Or(a=c)Then
Node(7)
progOutput="Isosceles"
Else
Node(8)
If(a*a=b*b+c*c)Or(b*b=a*a+c*c)Or(c*c=a*a+b*b)Then
Node(9)
progOutput="RightTriangle"
Else
Node(10)
progOutput="Scalene"
EndIf
Node(11)
EndIf
Node(12)
EndIf
Node(13)
EndIf
Node(14)
EndSub
〔1〕程序段的操纵流图如下:
〔2〕程序段的环形复杂度V〔G〕=19条边-15个结点+2=6
〔3〕程序段中的差不多路径集中有6条独立路径。
路径1:
0→1→3→14
在实际程序下,找不到此路径的例子。
路径2:
0→2→3→14
路径3:
0→1→3→4→5→13→14
路径4:
0→1→3→4→6→7→12→13→14
路径5:
0→1→3→4→6→8→9→11→12→13→14
路径6:
0→1→3→4→6→8→10→11→12→13→14
〔4〕设计的测试用例如下:
输入数据
预期输出
测试用例1
找不到实际例子
无
测试用例2
4,2,1
NotaTriangle
测试用例3
3,3,3
Equilateral
测试用例4
4,4,5
Isosceles
测试用例5
3,4,5
Rightatriangle
测试用例6
4,5,6
scalence
2.关于NextDateProgram的测试
PrivateSubNextDatePJ(InMonthAsString,InDayAsInteger,InYearAsInteger,newDateAsString)
DimOutDayAsInteger,OutYearAsInteger,OutMonthAsString
OutYear=InYear
Node(0)
SelectCaseInMonth
Case"January","March","May","July","August","October","December"
Node
(1)
IfInDay<31Then
Node
(2)
OutDay=InDay+1
OutMonth=InMonth
Else
Node(3)
OutDay=1
OutMonth=NextMonth(InMonth)
EndIf
Node(4)
Case"April","June","September","November":
Node(5)
IfInDay<30Then
Node(6)
OutDay=InDay+1
OutMonth=InMonth
Else
Node(7)
OutDay=1
OutMonth=NextMonth(InMonth)
EndIf
Node(8)
Case"February"
Node(0)
IfInDay<28Then
Node(9)
OutDay=InDay+1
OutMonth=InMonth
ElseIfInDay=28Then
Node(10)
Node(11)
If((InYearMod4)=0)And((InYearMod400)<>0)Then
Node(12)
OutDay=29'leapyear
OutMonth=InMonth
Else'notaleapyear
Node(13)
OutDay=1
OutMonth=NextMonth(InMonth)
EndIf
Node(14)
Else
Node(15)
OutDay=1
OutMonth=NextMonth(InMonth)
EndIf
Node(16)
EndSelect
Node(17)
newDate=OutMonthStr(OutDay)","&Str(OutYear)
EndSub
〔1〕程序段的操纵流图如下:
〔2〕程序段的环形复杂度V〔G〕=24条边-18个结点+2=8
〔3〕程序段中的差不多路径集中有8条独立路径。
路径1:
0→1→2→4→17
路径2:
0→1→3→4→17
路径3:
0→5→6→8→17
路径4:
0→5→7→8→17
路径5:
0→9→10→16→17
路径6:
0→9→11→12→14→16→17
路径7:
0→9→11→13→14→16→17
路径8:
0→9→15→16→17
〔4〕设计的测试用例如下:
输入数据
预期输出
测试用例1
"May",29,1990
"May",30,1990
测试用例2
"May",32,1990
"June",2,1990
测试用例3
"June",29,1990
"June",30,1990
测试用例4
"June",30,1990
"July",1,1990
测试用例5
"February",5,1990
"February",6,1990
测试用例6
"February",28,1996
"February",29,1996
测试用例7
"February",28,2000
"February",29,2000
测试用例8
"February",29,1990
"March",1,1990
四、测试结果分析
此部分从测试结果分析推断出程序中存在的缺陷有哪些。
1.关于TriangleProgram的测试
分析:
1、软件中的名称没有匹配好,比如第一个测试数据:
把righttriangle=scalene
使得结果与预期本质上是一致,却fail
2、软件没有制定三角形两边之和大于第三边两边之差小于第三边的约束。
3、软件没有制定三角形的变数应该在1~200之间,从而使边长大于200的也是
2.关于NextDateProgram的测试
1、此软件测试的年份介于1812—2021年之间,在输入1811年时,测试结果与预期结果不一致,显示的等于输入日期的下一天。
2、在输入,平年的二月份的29号时,测试结果与预期结果不一致,平年的二月份只有28天,而软件测试结果却显示了三月一号。
3、在输入某年的12月31号时,测试结果显示的时,测试结果与预期结果不一致,输入的年份的第一天,显示错误。
4、此软件测试的年份介于1812—2021年之间,在输入2021年的某一天时,测试结果与预期结果不一致,系统显示的是这一天的下一天,这与软件的界定范畴矛盾,显示错误。
5、当输入的是某个月的32号时,显示的却是下个月的1号。
这与实际不符。
要求做完后以00UUU.doc上传〔其中:
00是学号末两位,UUU是姓名〕