软件测试与质量课程实验报告实验3:白盒测试姓名院系学号任课教师实验指导教师实验地点实验时间实验目的掌握静态白盒测试方法及一般要求掌握白盒测试用例的设计方法掌握白盒测试基本测试方法:逻辑覆盖、路径测试。实验内容1.输入三个数a、b、c分别作为三边的边长构成三角形。通过程序判定所构成的三角形是一般三角形、等腰三角形还是等边三角形。在三角形计算中,要求三角形的三个边长:ABC。(1)、当三边不可能构成三角形时提示错误,可构成三角形时计算三角形周长。(2)、若是等腰三角形打印“等腰三角形”,若两个等腰的平方和等于第三边平方和,则打印“等腰直角三角形”。(3)、若是等边三角形,则打印:“等边三角形”。2.请用逻辑覆盖测试方法对下面的java代码进行测试。代码的功能是:用折半查找法在元素呈升序排列的数组中查找值为key的元素。要求:(1)针对上面的描述,用自己熟悉的语言写出程序,并画出程序的控制流图(用语句编号表示)(2)根据项目功能要求,设计白盒测试的语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合覆盖和路径覆盖方法的测试用例,并写出每个测试用例的执行路径(用语句编号表示)。(3)编译运行程序,完成各项测试。实验结果1.程序#includestdio.h#includestdlib.hintmain(void){1inta,b,c;printf(\n请输入三边:);scanf(%d%d%d,&a,&b,&c);2if(a+b=c||a+c=b||b+c=a){3printf(\n不能构成三角形:);}4elseif(a==b&&b==c&&a==c){5printf(\n等边三角形:);}6elseif((a==b||b==c||a==c)){7printf(\n等腰三角形:);8elseprintf(\n一般三角形:);9system(pause);return0;}语句覆盖输入数据路径预期输出1A=2,B=5,C=3,1239不能构成三角形2A=15,B=15,C=1512459等边三角形3A=15,B=15,C=13124679等腰三角形4A=23,B=24,C=25124689一般三角形判定覆盖输入数据路径预期输出1A=2,B=3,C=5,1239不能构成三角形2A=15,B=15,C=1512459等边三角形3A=15B=15,C=13124679等腰三角形4A=23,B=24,C=25124689一般三角形判定覆盖输入数据路径预期输出1A=2,B=3,C=51239不能构成三角形2A=15,B=15,C=1512459等边三角形3A=15B=15,C=13124679等腰三角形4A=23,B=24,C=25124689一般三角形对于第一个判定(a+b=c||a+c=b||b+c=a):条件a+b=c取真值记为T1,取假值记为-T1条件a+c=b取真值记为T2,取假值记为-T2条件b+c=a取真值记为T3,取假值记为-T3对于第二个判定(a==b&&b==c&&a==c):条件a==b取真值记为T4,取假值记为-T3条件b==c取真值记为T5,取假值记为-T5条件a==c取真值记为T6,取假值记为-T6对于第三个判定(a==b||b==c||a==c):判定条件与第二个判定相同条件覆盖输入数据覆盖条件路径预期输出1A=5,B=5,C=11,T1、-T2、-T3T4、-T5、-T61239不能构成三角形2A=4,B=11,C=4-T1、T2、-T3-T4、-T5、T61239不能构成三角形3A=25,B=12,C=12-T1、-T2、T3-T4、T5、-T61239不能构成三角形判定条件覆盖输入数据覆盖条件路径预期输出1A=5,B=5,C=11,T1、-T2、-T3T4、-T5、-T61239不能构成三角形2A=4,B=11,C=4-T1、T2、-T3-T4、-T5、T61239不能构成三角形3A=25,B=12,C=12-T1、-T2、T3-T4、T5、-T61239不能构成三角形4A=4,B=4,C=4-T1、-T2、T3T4、T5、T612459等边三角形5A=3,B=4,C=4-T1、-T2、-T3-T4、T5、-T6124679等腰三角形6A=5,B=6,C=7-T1、-T2、-T3-T4、-T5、-T6124689一般三角形1、a+b=c,a+c=b,b+c=a记T1、T2,T3第一个判定的取真分支2、a+bc,a+c=b,b+c=a记-T1、T2,T3,第一个判定的取假分支3、a+b=c,a+cb,b+c=a记T1、-T2,T3,第一个判定的取假分支4、a+b=c,a+c=b,b+ca记T1、T2,-T3,第一个判定的取假分支5、a==b,b==c,a==c记T4、T5、T6,第二、三个判定的取真分支6、a==b,b!=c,a!=c记T4、-T5、-T6,第二个判定的取假分支,第三个判定的取真分支7、a!=b,b==c,a!=c记-T4、T5、-T6,第二个判定的取假分支,第三个判定的取真分支8、a!=b,b!=c,a==c记-T4、-T5、T6,第二个判定的取假分支,第三个判定的取真分支9、a!=b,b!=c,a!=c记-T4、-T5、-T6,第二、三个判定的取假分支组合覆盖输入数据覆盖条件路径预期输出1A=5,B=5,C=11,T1、T2、T3T4、T5、T61239不能构成三角形2A=4,B=11,C=4-T1、T2、T3T4、-T5、-T61239不能构成三角形3A=25,B=12,C=12T1、-T2、T3-T4、-T5、T61239不能构成三角形4A=4,B=4,C=4T1、T2、-T3-T4、T5、-T61239不能构成三角形5A=5,B=6,C=7T1、T2、T3-T4、-T5、-T6124689一般三角形路径覆盖输入数据路径预期输出1A=3,B=10,C=5,1239不能构成三角形2A=12,B=12,C=1212459等边三角形3A=12,B=12,C=15124679等腰三角形4A=13,B=14,C=15124689一般三角形2.publicclassrer{publicstaticvoidmain(String[]args){intarray[]={8,9,10,11};1.System.out.println(binSearch(array,10));}publicstaticintbinSearch(intarray[],intkey){intmid,low,high;low=0;high=array.length-1;2.while(low=high){3.mid=(low+high)/2;4.if(key==array[mid]){5.returnmid;6.}elseif(keyarray[mid]){7.high=mid-1;}else{8.low=mid+1;}}9.return-1;}}语句覆盖编号输入数据覆盖语句预期结果1array[8,9,10,11]key101,2,3,872array[8,9,10,11]key251,2,3,9-13array[8,9,10,11]key81,2,3,6,754array[8,9,10,11]key91,2,3,4,55判定覆盖编号输入数据路径预期结果1array[8,9,10,11]key101-2-3-4-5-6-8-10-11-4-5-6-772array[8,9,10,11]key251-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12-13array[8,9,10,11]key81-2-3-4-5-6-8-9-4-5-6-75条件覆盖编号输入数据路径预期结果1array[8,9,10,11]key101-2-3-4-5-6-8-10-11-4-5-6-772array[8,9,10,11]key251-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12-13array[8,9,10,11]key81-2-3-4-5-6-8-9-4-5-6-75判定条件覆盖编号输入数据路径预期结果1array[8,9,10,11]key101-2-3-4-5-6-8-10-11-4-5-6-772array[8,9,10,11]key251-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12-13array[8,9,10,11]key81-2-3-4-5-6-8-9-4-5-6-75组合覆盖编号输入数据路径预期结果1array[8,9,10,11]key101-2-3-4-5-6-8-10-11-4-5-6-772array[8,9,10,11]key251-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12-13array[8,9,10,11]key81-2-3-4-5-6-8-9-4-5-6-75路径覆盖编号输入数据路径预期结果1array[8,9,10,11]key101-2-3-4-5-6-8-10-11-4-5-6-772array[8,9,10,11]key251-2-3-4-5-6-8-10-11-4-5-6-8-10-11-4-12-13array[8,9,10,11]key81-2-3-4-5-6-8-9-4-5-6-75扣分原因(有扣分时填写)扣分0日期:缺席:扣10分实验报告雷同:扣10分实验结果填写不完整:扣1–10分其他情况:扣分=5分总扣分不能大于10分