標籤:
(一)單元測試
(1) 三種代碼
虛擬碼
產品代碼
測試代碼
一般測試:
邊界測試:
測試出錯情況
改正代碼:
(2) TDD(Test Driven Devlopment, 測試驅動開發)
TDD的一般步驟如下:
明確當前要完成的功能,記錄成一個測試清單
快速完成編寫針對此功能的測試案例
測試代碼編譯不通過(沒產品代碼呢)
編寫產品代碼
測試通過
對代碼進行重構,並保證測試通過(重構下次實驗練習)
迴圈完成所有功能的開發
TDD的編碼節奏是:
增加測試代碼,JUnit出現紅條
修改產品代碼,JUnit出現綠條,任務完成
自行測試:
(二)物件導向三要素
(1)抽象
(2)封裝、繼承與多態
繼承與多態的實現:
(四)練習
1使用TDD的方式設計關實現複數類Complex。
虛擬碼
產品代碼
class complex
{
double re,im;
complex()
{
this.re=0;
this.im=0;
}
complex(double re)
{
this.re=re;
this.im=0;
}
complex(double re,double im)
{
this.re=re;
this.im=im;
}
complex add(complex p1,complex p2)
{
complex p=new complex(p1.re+p2.re,p1.im+p2.im);
return p;
}
complex minus(complex p1,complex p2)
{
complex p=new complex(p1.re-p2.re,p1.im-p2.im);
return p;
}
void print()
{
System.out.println("複數的值為:");
if(this.im!=0)
System.out.println(this.re+"+"+this.im+"i");
else
System.out.println(this.re);
}
}
public class Song
{
public static void main(String[] args)
{
complex c=new complex();
complex c1=new complex(2,7);
complex c2=new complex(5,2);
c1.print();
c2.print();
System.out.println("這兩個複數的和為:");
System.out.println((c.add(c1,c2).re+"+"+
c.add(c1, c2).im+"i").toString());
System.out.println("這兩個複數的差為:");
System.out.println((c.minus(c1,c2).re+"+"+
c.minus(c1, c2).im+"i").toString());
}
}
測試結果
3.統計PSP(Personal Software Process)時間
| 步驟 |
耗時 |
| 需求分析 |
5% |
| 設計 |
20% |
| 代碼實現 |
40% |
| 測試 |
30% |
| 分析總結 |
5% |
四:總結
1.實驗總結:這次實驗主要內容是代碼物件導向三要素的應用,以及代碼的設計思想以及測試方法,通過這周和上周的PSP時間比例可以看出,設計和測試的比重增加,而代碼實現的時間比重下降,這更接近於日常生活中的軟體開發的基本程式,而不是書本上給定題目進行的練習。通過之前基本的練習已經初步掌握了Java程式設計的基本語句,今後將更加註重程式 設計思維的練習
2.單元測試的好處:
1.協助開發人員編寫代碼,提升品質、減少bug。
2.提升反饋速度,減少重複工作,提高開發效率。
3.保證最後的代碼修改不會破壞之前代碼的功能。
4.使代碼更容易維護。
實驗二 Java物件導向程式設計