实验二白盒测试一、实验目的通过对于实例程序的测试,熟悉结构性测试的基本方法。二、实验要求(1)综合运用结构性测试方法(如逻辑覆盖、基本路径测试等方法)对被测程序进行测试,找出whiteBox.exe程序中存在的缺陷。三、测试用例的设计1.对于TriangleProgram的测试PrivateSubtriangle(aAsLong,bAsLong,cAsLong,progOutputAsString)DimIsATriangleAsBoolean'Area,b,andcsidesofaTriangle?Node(0)If(ab+c)And(ba+c)ThenNode(1)IsATriangle=TrueElseNode(2)IsATriangle=FalseprogOutput=NotaTriangleEndIf'DetermineTriangleTypeNode(3)IfIsATriangleThenNode(4)If(a=b)And(b=c)ThenNode(5)progOutput=EquilateralElseNode(6)If(a=b)Or(a=c)ThenNode(7)progOutput=IsoscelesElseNode(8)If(a*a=b*b+c*c)Or(b*b=a*a+c*c)Or(c*c=a*a+b*b)ThenNode(9)progOutput=RightTriangleElseNode(10)progOutput=ScaleneEndIfNode(11)EndIfNode(12)EndIfNode(13)EndIfNode(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找不到实际例子无测试用例24,2,1NotaTriangle测试用例33,3,3Equilateral测试用例44,4,5Isosceles测试用例53,4,5Rightatriangle测试用例64,5,6scalence2.对于NextDateProgram的测试PrivateSubNextDatePJ(InMonthAsString,InDayAsInteger,InYearAsInteger,newDateAsString)DimOutDayAsInteger,OutYearAsInteger,OutMonthAsStringOutYear=InYearNode(0)SelectCaseInMonthCaseJanuary,March,May,July,August,October,DecemberNode(1)IfInDay31ThenNode(2)OutDay=InDay+1OutMonth=InMonthElseNode(3)OutDay=1OutMonth=NextMonth(InMonth)EndIfNode(4)CaseApril,June,September,November:Node(5)IfInDay30ThenNode(6)OutDay=InDay+1OutMonth=InMonthElseNode(7)OutDay=1OutMonth=NextMonth(InMonth)EndIfNode(8)CaseFebruaryNode(0)IfInDay28ThenNode(9)OutDay=InDay+1OutMonth=InMonthElseIfInDay=28ThenNode(10)Node(11)If((InYearMod4)=0)And((InYearMod400)0)ThenNode(12)OutDay=29'leapyearOutMonth=InMonthElse'notaleapyearNode(13)OutDay=1OutMonth=NextMonth(InMonth)EndIfNode(14)ElseNode(15)OutDay=1OutMonth=NextMonth(InMonth)EndIfNode(16)EndSelectNode(17)newDate=OutMonth-Str(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)设计的测试用例如下:输入数据预期输出测试用例1May,29,1990May,30,1990测试用例2May,32,1990June,2,1990测试用例3June,29,1990June,30,1990测试用例4June,30,1990July,1,1990测试用例5February,5,1990February,6,1990测试用例6February,28,1996February,29,1996测试用例7February,28,2000February,29,2000测试用例8February,29,1990March,1,1990四、测试结果分析此部分从测试结果分析推断出程序中存在的缺陷有哪些。1.对于TriangleProgram的测试分析:1、软件中的名称没有匹配好,比如第一个测试数据:把righttriangle=scalene使得结果与预期本质上是一致,却fail2、软件没有制定三角形两边之和大于第三边两边之差小于第三边的约束。3、软件没有制定三角形的变数应该在1~200之间,从而使边长大于200的也是2.对于NextDateProgram的测试1、此软件测试的年份介于1812—2012年之间,在输入1811年时,测试结果与预期结果不一致,显示的等于输入日期的下一天。2、在输入,平年的二月份的29号时,测试结果与预期结果不一致,平年的二月份只有28天,而软件测试结果却显示了三月一号。3、在输入某年的12月31号时,测试结果显示的时,测试结果与预期结果不一致,输入的年份的第一天,显示错误。4、此软件测试的年份介于1812—2012年之间,在输入2013年的某一天时,测试结果与预期结果不一致,系统显示的是这一天的下一天,这与软件的界定范围矛盾,显示错误。5、当输入的是某个月的32号时,显示的却是下个月的1号。这与实际不符。要求做完后以00UUU.doc上传(其中:00是学号末两位,UUU是姓名)