第二次作业+105032014124
1、测试帖连接:http://www.cnblogs.com/Tichocan/p/6576087.html
源码连接:http://www.cnblogs.com/xiaojuangao/p/6531078.html
2、测试人员提出的问题、发现的缺陷
原代码中无用的判断语句过多,可以优化逻辑,简化一个判断。
3、修正后的代码清单
1 package 软件测试实验1; 2 import java.util.Arrays; 3 import java.util.Scanner; 4 5 public class test01 { 6 public static void main(String[] args){ 7 int[] length=new int[3]; 8 String result=null; 9 boolean flag=true; 10 Scanner sc = new Scanner(System.in); 11 while(flag){ 12 System.out.print("***********************\n"); 13 System.out.print("请输入三角形的三条边\n"); 14 System.out.print("第一条边:"); 15 length[0]=sc.nextInt(); 16 System.out.print("第二条边:"); 17 length[1]=sc.nextInt(); 18 System.out.print("第三条边:"); 19 length[2]=sc.nextInt(); 20 Arrays.sort(length);//对三条边进行排序 21 if(length[0]<1||length[2]>100){ 22 System.out.print("Attention!边的值不在范围内!!"); 23 } 24 else 25 { 26 result=triangle(length[0],length[1],length[2]); 27 System.out.print(length[0]+","+length[1]+","+length[2]+"可构成"+result); 28 System.out.print("\n***********************\n"); 29 30 } 31 System.out.print("是否要继续输入数据?1:Yes 2:No"); 32 String temp=sc.next(); 33 switch(temp) 34 { 35 case"1": 36 flag=true; 37 break; 38 case"2": 39 flag=false; 40 System.out.print("您已退出程序"); 41 break; 42 } 43 } 44 } 45 46 public static String triangle(int a,int b,int c){ 47 String sort=null; 48 /* 49 * //修改处:因为对三条边进行排序,所以判断语句会比较简单。 50 */ 51 if((a+b>c)&&((c-b)<a)){ 52 if((a==b)||(b==c)){ 53 sort="等腰三角形"; 54 } 55 else if(a==c){ 56 sort="等边三角形"; 57 } 58 else if(a*a+b*b==c*c) 59 sort="直角三角形"; 60 else 61 sort="一般三角形"; 62 } 63 else{ 64 sort="不能构成三角形"; 65 } 66 return sort; 67 } 68 }
4、修正后的心得体会
1)、代码变更:
对三角形的三条边进行排序,简化判断三角形形状的语句
(在代码中加入while语句,可以方便测试与使用,所以这部分代码仍保留)
2)、心得与体会
看了测试人员的测试结果和建议后,我觉得有一定的道理:先对三角形的三条边进行排序,这样,在进行是否构成三角形、等腰三角形、等边三角形、直角三角形的时候可以简化判断语句。其实,之前在编写代码的时候,我也有对三角形三条边进行排序,后来发现题目要求:条件1≤a≤100,条件2 1≤b≤100;条件3 1≤c≤100 ,所以我就觉得排序删了会比较好。
我觉得,一个比较好的程序,离不开开发人员与测试人员的共同努力,所以,开发者与测试者要经常交流沟通,这样可以优化程序。
在这次实验中,我既是开发人员,也对别的同学写的代码进行了语句覆盖、判定覆盖的测试,用到了课堂上学的软测的知识,学以致用。