假設輸入三個整數a、b、c分別作為三邊的邊長構成三角形。通過程序判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時!要求畫出程序的流程圖和時序圖,并且用自己熟悉的一種語言實現這個功能!我在網上搜索了一下發現已經有好多文章,不過發現很少有寫出程序的,其實用java語言也可以實現,流程圖和程序圖參考的網上的。
三角形設計測試用例的問題在面試的時候經常遇到。
假設輸入三個整數a、b、c分別作為三邊的邊長構成三角形。通過程序判定所構成的三角形的類型,當此三角形為一般三角形、等腰三角形及等邊三角形時!要求畫出程序的流程圖和時序圖,并且用自己熟悉的一種語言實現這個功能!我在網上搜索了一下發現已經有好多文章,不過發現很少有寫出程序的,其實用java語言也可以實現,流程圖和程序圖參考的網上的。
程序如下:
package sanj;
/**
*
* @author ltesting.net
*/
import java.io.*;
class sanj{
public static int a,b,c;
public static void main(String arg[]) throws IOException{
try{
BufferedReader stdin=new BufferedReader(new InputStreamReader(System.in)); //接收鍵值
System.out.println("輸入三邊值,每個值輸入后回車");
System.out.println("請輸入:");
a=Integer.valueOf(stdin.readLine());
b=Integer.valueOf(stdin.readLine());
c=Integer.valueOf(stdin.readLine());
}catch(IOException e){
System.out.println("出現異常!");
System.exit(0);
}
if(a+b<c || a+c<b || b+c<a){
System.out.println("你輸入的不能構成三角形");
}
if(a==b || a==c || b==c)
{
if(a==b && b==c) System.out.println("等邊三角形");
else System.out.println("等腰三角形");
}
else System.out.println("一般三角形");
}
}
【解】
第一步:確定測試策略。在本例中,對被測程序的功能有明確的要求,即:
。1)判斷能否組成三角形;
。2)識別等邊三角形;
。3)識別等腰三角形;
。4)識別任意三角形。因此可首先用黑盒法設計測試用例,然后用白盒法驗證其完整性,必要時再進行補充。
第二步:根據本例的實際情況,在黑盒法中首先可用等價分類法劃分輸入的等價類,然后用邊界值分析法和猜錯法作補充。
等價分類法:
有效等價類
輸入3個正整數:
。1)3數相等
。2)3數中有2個數相等,比如AB相等
。3)3數中有2個數相等,比如BC相等
。4)3數中有2個數相等,比如AC相等
。5)3數均不相等
。6)2數之和不大于第3數,比如最大數是A
。7)2數之和不大于第3數,比如最大數是B
。8)2數之和不大于第3數,比如最大數是C
無效等價類:
。9)含有零數據
。10)含有負整數
。11)少于3個整數
。12)含有非整數
。13)含有非數字符
邊界值法:
。14)2數之和等于第3數
猜錯法:
。15)輸入3個零
。16)輸入3個負數
第三步:提出一組初步的測試用例,如下表所示:
第四步:用白盒法驗證第三步產生的測試用例的充分性。結果表明,上表中的前8個測試用例,已能滿足對被測程序圖的完全覆蓋,不需要再補充其他的測試用例。
文章來源于領測軟件測試網 http://www.kjueaiud.com/