標籤:style blog http io 使用 ar java for sp
13.5.2有錯不改
此題很明顯是一個邊界的取值問題,這確實是一個bug,是微軟的演算法設計失誤。閏年的計算:
a.被 400 整除的年份
b.被 100 整除, 但是不被400 整除的年份
c.被 100 整除, 同時被400 整除的年份
d.被 4 整除, 但是不被100 整除的年份
e.被 4 整除, 同時被100 整除的年份
f.偶數, 不被4 整除的年份
g.奇數年份
h.其它非法輸入的年份
此外還有重要的一點,就是邊界。設計允許的最小的年份和設計允許的最大的年份.所以根據邊界分析,測試者一定要發現閏年的第一天;閏年的最後一天;平年的第一天;平年的最後一天。
13.5.9 練習——學習和使用多個平台上的測試載入器
我做項目一般都是用JAVA作為開發語言,ECLIPSE作為IDE工具,其中,測試載入器我用的最多的就是JUnit了。尤其是我做eb開發使用Hibernate作為架構的時候,幾乎每一個模組都會使用Junit。
JUnit是由 Erich Gamma 和 Kent Beck 編寫的一個迴歸測試架構(regression testing framework)。Junit測試是程式員測試,即所謂白盒測試,因為程式員知道被測試的軟體如何完成功能和完成什麼樣的功能。Junit是一套架構,繼承TestCase類,就可以用Junit進行自動化的測試了。
步驟(引用,出處為http://hefeng1987-net-163-com.iteye.com/blog/1571040,另外還有一個比較好的配圖說明,網址為
http://wenku.baidu.com/link?url=sxTuc9Xv3-p4-Nk5-yk02tjeLVPdQEI9otnmmKjz1hStDfxJpw5D8a8K3OzLZVh054_cdak4pTOd4MNU8Obt4gapiK17zBvYv-Dk8LCb7Ii):
1.為項目匯入Junit的jar包(Build path -> Add Library ->Junit)。
2.建立一個名為Test的Source Folder,用於存放測試類別原始碼。
3.目標類與測試類別應該位於同一個報下面,這樣測試類別中就不必匯入原始碼所在的包,因為他們位於用一個包下面。
4.Junit4並不需要測試類別繼承TestCase父類。
5.在一個測試類別中,所有被@Test註解所修飾的public void方法都是testCase(測試案例),可以被Junit所執行。
6.規範:雖然Junit4並不要求測試方法名以test開頭,但最好還是按照Junit3的要求那樣,以test作為測試方法名的開頭。
7.在Junit4中,通過@Before註解實現與Junit3中的setUp方法同樣的功能。
8.在Junit4中,可以使用@BeforeClass與@AfterClass註解修飾一個public static void no—arg的方法,這樣被@beforeClass註解所修飾的方法會在所有測試方法執行前執行。
9.註解@lgnore可用於修飾測試類別與測試方法,當修飾測試類別時,表示忽略掉類中的所有測試方法;當修飾測試方法時,表示忽略掉該測試方法。
10.參數化測試(Parameters):當一個測試類別使用參數化運行器運行時需要在類的聲明處加上 @RunWith(Parameterized.class)註解,表示該類將不使用JUnit內建的運行器運行, 而使用參數化運行器運行;在參數化運行類中提供參數的方法上要使用 @Parameters註解來修飾, 同時在測試類別的構造方法中為各個參數賦值(構造方法是由JUnit 調用的),最後編寫測試類別,它會根據參數的組數來運行測試多次。
11.在JUnit4中,如果想要同時運行多個測試,需要使用兩個註解@RunWith(Suite.class)以及 @Suite.SuiteClasses()
13.5.10 曆史上的20 大bug(網頁暫時無法開啟,能開啟後再更新答案)
現代軟體工程 練習與討論 第十三章 軟體測試