代碼質量完美主義者 Andrew Glover在“追逐代碼質量,決心採用Fit”一文中這樣
寫到:
在軟件開發的生命週期中,每個人都對質量負有責任。理想情況下,開發人員在開發
週期中,用像 Junit 和 TestNG 這樣的測試工具保證早期質量,而質量保證團隊用功能
性系統測試在週期末端跟進,使用像 Selenium 這樣的工具。但是即使擁有優秀的質量保
證,有些應用程序在交付的時候仍然被認爲是質量低下的。爲什麼呢?因爲它們並沒有做
它們應當做的事。
使用Fit,讓客戶儘早地參與到測試中來,使用Fit,讓業務人員和開發人員更流暢地溝
通。 使用Fit,讓需求一遍一遍地滾出來。
Fit是什麼,能做什麼呢?下面通過一個超簡單的例子,闡述Fit,例子中的實例以java
爲平臺,使用到Word。
(1) 先用word寫出下面樣子的一個文件,存成d:/java/fit/input.html。
input.html文件
First Fit Test For Yfhuang
yfhuang.fit.Division
|
||
numerator
|
denominator
|
quotient()
|
1000
|
10
|
100
|
100
|
2
|
50
|
3000
|
2
|
1000
|
yfhuang.fit.Division是處理該文件的java類。
(2) Division.java (放在d:/java/fit/yfhuang/fit/Division.java
package yfhuang.fit;
import fit.ColumnFixture;
public class Division extends ColumnFixture {
public float numerator;
public float denominator;
public float quotient() {
return numerator / denominator;
}
}
import fit.ColumnFixture;
public class Division extends ColumnFixture {
public float numerator;
public float denominator;
public float quotient() {
return numerator / denominator;
}
}
(3) 去http://fit.c2.com/wiki.cgi?DownloadNow下載fit for java的版本,然後解壓到
d:/java/fit。
(4) 使用javac編譯這個java文件生成Division.class文件,注意把d:/java/fit/fit.jar放到classpath中去。
(5)進入命令行模式,然後執行命令
cmd d:/java/fit
javac -classpath fit.jar fit.fileRunner input.html output.html
(6) 查看一下d:/java/fit/output.html文件,發現會是這樣的一個樣子:
First Fit Test For Yfhuang
yfhuang.fit.Division
|
||
numerator
|
denominator
|
quotient()
|
1000
|
10
|
100
|
100
|
2
|
50
|
3000
|
2
|
1000 expected 1500.0 actual |
OK,例子到此爲止,下面解釋一下。
input.html文件一般是業務人員寫的,表達需求,在這個例子中,業務人員希望寫一個除
的功能。所以他用這個html文件表示出來,當然行頭yfhuang.fit.Division是在開發人員
的幫助下加上去的。
在執行第5步的時候,其實也就是fit去處理業務人員寫的input.html,通過反射,找到
開發人員寫的Division這樣的一個處理器(fit中稱爲fixture)來處理input.html。得到
out.html文件,文件表明業務人員表達的需求有些問題。(如果是除,第三行結果應該
是1500)
通過這種方式,開發人員可以讓業務人員把需求更清晰的表達出來,當然如果通過溝通,
業務人員表達的需求是正確的,那麼就是開發人員的實現有問題了。:)
fit是ward cunningham寫的,可以與其他測試工具,諸如junit等一起使用,如果你想了
瞭解得更多一點,可以參考下列網站。
追逐代碼質量,決心採用Fit: http://www.ibm.com/developerworks/cn/java/j-cq02286/