1.三角形問題說明:
輸入三個正整數a、b、c,分別作為三角形的.三條邊,現通過程式判斷由三條邊構成的三角形的型別是否為等邊三角形、等腰三角形、直角三角形、普通三角形以及非三角形。根據問題的規格說明,可以從輸出域劃分5種等價類:
輸出等價類
ID | 條件 | 等價類 |
1 | a=b∧b=c∧a=c∧(a+b>c∧b+c>a∧a+c>b) | 等邊三角形 |
2 | a=b∨b=c∨a=c∧(a+b>c∧b+c>a∧a+c>b) | 等腰三角形 |
3 | a2+b2=c2∨b2+c2=a2∨a2+c2=b2∧(a+b>c∧b+c>a∧a+c>b) | 直角三角形 |
4 | a≠b∧b≠c∧a≠c∧(a+b>c∧b+c>a∧a+c>b) | 普通三角形 |
5 | (a+b≤c∨b+c≤a∨a+c≤b)∨a≤0∨b≤0∨c≤0 | 非三角形 |
程式設計實現:
(1)對每一個輸出等價類,至少設計一個測試用例。
輸入格式:輸入(a,b,c):
輸出格式:輸出(ID型別):
例如:輸入(a,b,c):5,5,5↙(回車)
輸出(ID型別):1(等邊三角形),2(等腰三角形)
(2)假設10≤a,b,c≤100,根據劃分的等價類,設計邊界值測試用例。
例如:輸入(a,b,c):60,60,10↙(回車)
輸出(ID型別):2(等腰三角形)
2、閱讀下面的一段程式,
voidTest2(intX,intA,intB)
1{
2intk=0,j=0;
3if((A>1)&&(B=0))
4{
5X=X/A;
6k=A*B-1;
7}
8if((A==2)||(X>1))
9X=X+1;
10j=X+3;
11}//Test2
根據所給定的程式,確定該程式的獨立路徑如下:
路徑1:3→8→10→11
路徑2:3→5→6→8→10→11
路徑3:3→8→9→10→11
路徑4:3→5→6→8→9→10→11
程式設計實現:
對每一個獨立路徑,設計一個測試用例,並插入一條顯示輸出語句(printf/cout),顯示測試路徑標號。
輸入格式:輸入(X,A,B):
輸出格式:輸出(k,j):k=j=
路徑ID:
例如:輸入(X,A,B):1,2,1↙(回車)
輸出(k,j):k=0j=5
路徑ID:測試路徑4