代码质量完美主义者 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/