第二次作业+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)、心得与体会

   看了测试人员的测试结果和建议后,我觉得有一定的道理:先对三角形的三条边进行排序,这样,在进行是否构成三角形、等腰三角形、等边三角形、直角三角形的时候可以简化判断语句。其实,之前在编写代码的时候,我也有对三角形三条边进行排序,后来发现题目要求:条件1a100,条件2   1b100;条件3   1c100 ,所以我就觉得排序删了会比较好。

   我觉得,一个比较好的程序,离不开开发人员与测试人员的共同努力,所以,开发者与测试者要经常交流沟通,这样可以优化程序。

   在这次实验中,我既是开发人员,也对别的同学写的代码进行了语句覆盖、判定覆盖的测试,用到了课堂上学的软测的知识,学以致用。

 

posted @ 2017-03-27 15:48  高小娟  阅读(210)  评论(0编辑  收藏  举报