1、代码:using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace Tester class Program static void Main(string args) int a, b, c; Console.WriteLine(请输入三角形的三条边,都是整数:); bool succ = int.TryParse(Console.ReadLine(), out a); succ = int.TryParse(Console.ReadLine(), out b); suc
2、c = int.TryParse(Console.ReadLine(), out c); Triangle triagle = new Triangle(); int type=triagle.triangleType(a, b, c); switch (type) case 1:1不能组成三角形 break; case 2:2是等边三角形 case 3:3是等腰三角形 case 4:4是直角三角形 case 5:5是一般三角形 case 6:6某些边不满足限制 /TriangleFunction(a,b,c); Console.ReadLine(); public static void T
3、riangleFunction(int a,int b, int c) if (0 a & a 200 & 0 b & b c & c a + c c + b a) if (a = b & b = c & a = c) /这里可以省掉一个判断 else if (a = b | b = c | a = c) if (a * a + b * b = c * c | a * a + c * c = b * b | b * b + c * c = a * a) / / 三角形类型判断类/summary class Triangle / 判断一个整数是否在(min, max)区间内param name=
4、i三角形的一条边returns返回值:true-否; false-是 public bool isOutOfRange(int i,int min,int max) if (min i & i max) return false; return true; / 判断三条边是否合法(即:判断三条边都在合法的范围内)abctrue-是; false-否 public bool isLegal(int a, int b, int c) if (isOutOfRange(a,0,200) | isOutOfRange(b,0,200) | isOutOfRange(c,0,200) / 判断两条边之和
5、是否大于第三边 public bool isSumBiger(int a, int b, int c) c) / 判断三条边是否能够组成三角形 public bool isTriangle(int a, int b, int c) if (isSumBiger(a, b, c) & isSumBiger(a, c, b) & isSumBiger(b, c, a) / 判断两条边是否相等 public bool isEquals(int a, int b) if (a = b) / 求三角形有几条边相等相等边的数量,1:没有边相等 2:只有两条边相等 3:三条边相等 3) /如果三条边都相等,
6、则count多加了一次 count = 3; return count; / 判断是否满足两边平方之和是否等于第三边的平方 public bool isPowerSumEquals(int a, int b, int c) if (a * a + b * b = c * c) / 判断第一个数是否比第二个数大 public bool isGreaterThan(int a, int b) if (a b) / 判断是否是直角三角形 public bool isRightRriangle(int a, int b, int c) int max = 0; if (isGreaterThan(a,
7、 b) max = a; a = b; b = max; if (isGreaterThan(b, c) max = b; b = c; c = max; return isPowerSumEquals(a, b, c); / 判断三角形的类型1、不能组成三角形; 2、等边三角形 ;3、等腰三角形 ;4、直角三角形 ;5、一般三角形; 6、某些边不满足限制=200,0 or b=2000 or cA=.F.P1(1-2-12)a=10,b=20,c=251、不能组成三角形a+b=c or b+c=aor a+c=bA=.T.B=.F.P2(1-3-4-12)a=50,b=50,c=502、等边
8、三角形a=b and a=cB=.T.C=.T.P3(1-3-5-6-12)a=50,b=50,c=803、等腰三角形a=b or b=c or a=cC=.F.D=.T.P4(1-3-5-7-8-12)a=3,b=4,c=54、直角三角形a*a+b*b=c*cD=.F.E=.T.P5(1-3-5-7-9-10-12)a=12,b=13,c=205、一般三角形其他情形E=.F.P6(1-3-5-7-9-11-12)a=10,b=10,c=250bcA=.F.P2(1-2-4-12)(2) 判定覆盖方法设计isOutOfRange方法(3)条件覆盖方法设计isLegal方法 A 1 4 F 2
9、T B F8 3 T F 5 6 7 .条件0a:取真时为T5,取假时为F5;.条件a+cb:取真时为T6,取假时为F6;取值条件T1、T2、T3、T4 、T5、 T6a+bc, a+cb, b+caP1(1-2-3-5-6)T1、T2、T3、F4 、F5 、F6c, a+cP1(1-2-8-7)F1、F2、F3、T4 、T5 、T6P2(1-4-7)(4)判定-条件覆盖方法设计isTriangle方法 1 P 2 F 3 T M 4 F 7 5 T 68本测试用例覆盖了两个判定:P(0 六个条件:A=0 a 200;B=0 200C=0 c;E= a + c b;F= c + b aa=13
10、,b=24,c=35a + b ca + c bc + b F=.T.P=.T.M=.T.P1(1-3-5)a + b a + c c + b F=.F.P=.F.M=.F.P2(1-2-7-8)(5)条件组合覆盖方法设计isTriangle方法 b a=1;b=3 c=6F=.FP(1-3-4-6-8)(6)路径覆盖方法设计triangleType方法覆盖条件覆盖路径三,根据第一题,使用黑盒测试方法设计测试案例 (40分)根据实验一的内容使用等价类划分法设计isOutOfRange方法的测试用例;使用边界值分析法设计isOutOfRange方法的测试用例;使用判定表方法设计isTriangle方法的测试用例;使用因果图法设计howManyEquals方法的测试用例。(1)等价类划分法设计isOutOfRange方法的测试用例输入/出条件有效等价类无效等价类a