2.2 如何使用FIT
FIT的文档通过整个软件产品组的协作产生,客户,测试员,程序员必须一起工作才能成功.最后的结果是一个“可执行的详细说明“,是一个可阅读的文档.这个文档不仅描述了软件,而且也描述了实际上软件是一个什么样子.
下面给出一张图(来源于http://fit.c2.com/)
在上面的图中,就是一个FIT文档的测试结果,绿色的表示通过,红色的表示未通过.
从概念到完成:制作一个特征的FIT
这个过程从一个客户(可以是领域专家,业务元,产品经理等)描述的新特征开始,并且客户提供了它应该怎样去做.
上图是一个白板对话
和测试员,程序员一起工作的客户,提取这些例子到一个表中(处理这个表可以用Excel,Word等),把它变成一个文档.测试员和程序员建议附加的域,确保这个表对FIT适合.
客户的初始例子
测试员和程序员的附加物
适合FIT的格式
这个文档以HTML的格式保存,开发者可以创建“fixture“:一点可以理解文档中例子的程序代码,并在正在开发的软件项目上试试这些代码.幸运的是,FIT框架使它变得非常简单.下面就是这些代码:
一个FIT Fixture(使用C#编程)
既然FIT fixture已经完成,等待我们的是在文档上运行,并且得到测试结果.首先,例子失败了,标记未红色(参看图1).既然测试失败,程序员必须修复它,最后例子变为绿色(参看图2).
在这里我想问一个问题,就是如何把文档里面值取出到软件的对应域呢,我记得当时我就是这样问我自己的.
?我想细心的人发现了一个现象.代码里的类名WeeklyCompensation不正好和表里的第一行相同吗,然后是类的成员不正好和表的列名相同,这意味什么呢?我想大家都明白了,其实表里面的值是和类的成员对应的.至于如何实现,我就不细说了.
图1.
程序员问客户一些期望讨论问题,同时,客户改进文档的清晰度,因此文档在将来可以作为参考文档了.测试审查这些例子,确保他们可以覆盖特性的所有重要方面.
如果他们发现新的东西,他们可以和剩余组分享这些新东西.这样FIT文档就越来越成熟了.
最后,还有一点需要补充,就是如何运行FIT文档,参看下图