1.测试帖链接:http://www.cnblogs.com/leezoey/p/6579928.html
2.测试人员提出的问题、发现的缺陷:
对于边值得界定,应该单独优化出一个函数,防止后面又对边值得界定做出改变。
3.修正后的代码清单:因为测试人员提出不足的地方并且在之后贴上了修改后的代码,所以我就在此基础上运行发现他添加的bool函数true与false值写反了并根据评论,在if语句加了大括号。
1 package triangle; 2 3 import java.util.Scanner; 4 5 public class main2 { 6 public static void main(String[] args) { 7 // TODO Auto-generated method stub 8 int a=0,b=0,c=0; 9 //设计可判断十组边 10 for(int i=0;i<10;i++) 11 { 12 System.out.println("请输入三角形的三条边(用逗号隔开):"); 13 //输入三角形三条边 14 Scanner sr = new Scanner(System.in); 15 String sc = sr.next(); 16 //以逗号隔开三条边 17 String[] sourceStrArray = sc.split(","); 18 if(sourceStrArray.length==3){ 19 //输入是否为纯整数判断 20 try{ 21 a = Integer.parseInt(sourceStrArray[0]); 22 b = Integer.parseInt(sourceStrArray[1]); 23 c = Integer.parseInt(sourceStrArray[2]); 24 }catch(Exception e){ 25 System.out.println("输入错误!"); 26 continue; 27 } } 28 else{ 29 System.out.println("输入错误"); 30 continue;} 31 //调用方法 32 String result = triangle(a, b, c); 33 System.out.println(result); 34 35 } 36 } 37 38 //判断三角形 39 public static String triangle(int a, int b,int c) 40 { 41 //值的范围 42 if(charge(a,b,c)){ 43 return "边的值不在范围内";} 44 //能否构成三角形 45 else if(a>=b+c||b>=a+c||c>=a+b){ 46 return "不构成三角形";} 47 else{ 48 //等边三角形 49 if(a==b&&b==c){ 50 return "等边三角形";} 51 //等腰三角形 52 else if(a==b||b==c||a==c){ 53 return "等腰三角形";} 54 //直角三角形 55 else if(a*a==b*b+c*c||b*b==a*a+c*c||c*c==b*b+a*a){ 56 return "直接三角形";} 57 //一般三角形 58 else{ 59 return"一般三角形";} 60 } 61 } 62 public static boolean charge(int a, int b,int c){ 63 if(a<1||a>100||b<1||b>100||c<1||c>100) 64 return true; 65 else 66 return false; 67 } 68 }
4.修正后心得体会:
- 介绍自己代码做了怎样的变更:增加了三角形三条边的边界值限定的bool型函数
- 分析出现缺陷的原因:通过,并没有找出缺陷,只有不足的地方
- 对这部分教材内容的学习心得:对判定覆盖的定义和条件覆盖有点混乱,对画流程图深恶痛绝!if条件太多了,画的很乱。