FIT 和 Eclipse: 使用 Extended FIT Eclipse 插件执行测试

发表于:2007-05-25来源:作者:点击数: 标签:
了解 Framework for Integrated Tests (FIT) 的基本概念,并使用 Extended FIT Eclipse 插件着手为 Eclipse 开发 人员测试 FIT 表。本文是由两部分组成的系列文章的第一部分,向您介绍 FIT 并展示如何在基于 Eclipse 的环境中使用它。 自从大型计算机诞生以
了解 Framework for Integrated Tests (FIT) 的基本概念,并使用 Extended FIT Eclipse 插件着手为 Eclipse 开发人员测试 FIT 表。本文是由两部分组成的系列文章的第一部分,向您介绍 FIT 并展示如何在基于 Eclipse 的环境中使用它。

自从大型计算机诞生以来,软件工程师就关心着两个主要问题:第一,业务如何通过应用程序与其所需内容通信;第二,工程师如何验证他们是否正在构建满足业务需要的正确软件。多年来,为了解决这些关心的问题,已探索了许多方法和框架,但直到出现 Framework for Integrated Tests (FIT) 以后,才找到了解决这些问题的简便而直观的方法。

FIT 是一种通用的开放框架,您可以方便地对它进行扩展,来表示各种测试。本文介绍如何结合使用 FIT 与 Eclipse 来解决软件开发中的几个问题。首先简要介绍一下 FIT 如何解决软件工程中的固有问题。

FIT 促进了企业各利益相关者 (stake holder) 和开发人员之间的沟通,从而使他们更精确地关注必须完成的任务。此功能可帮助每个人避免不明确的业务需求,有助于确保开发人员有的放矢地解决业务问题。此外,FIT 还支持因系统升级而导致的不可避免的代码重组,从而减少维护、扩展或更改代码的难度,并减少代码膨胀和软件熵 (software entropy)。最后,FIT 通过确保团队能够立即知道组件何时完成,以及何时错误地中断完成的工作,从而提高了软件的总体质量

FIT 和 JUnit

如果您使用的是 JUnit,则最重要问题是:必须停止编写 JUnit 测试用例?回答当然是。FIT 不是用于补充 JUnit 测试的;它具有更高级别的功能,即集成测试(参见图 1)。


图 1. FIT 处理流程
FIT 处理流程

您仍可以开发 JUnit 测试。但是,另外还需要使用 FIT 表创建 FIT 测试。





回页首


FIT 和FIT 表

对于 JUnit,它是一个测试用例。对于 IBM Rational Unified Process® (RUP®),它是一个使用用例。对于 FIT,它是一个表。表在 FIT 提高利益相关者之间的沟通能力、软件灵活性和软件稳定性方面扮演着重要角色。

在日报上,无论是棒球比赛的最后得分,还是股票价格,表都是简单而又有效的沟通方法。因此,FIT 创建者选择表作为精良武器,使用户能够通过示例与软件行为进行通信。这减少了责任不明的情况,并由用户负责明确地定义软件系统。

灵活性(允许进行更改)是现代软件系统的重要特征。持续增长的竞争力迫使业务用户不断添加更多的特性和功能。FIT 测试通过定义更改,并确保软件修改不影响以前满足的需求,从而帮助增加了灵活性。FIT 表作为一种机制,用来传达所开发软件的结果,它在软件开发过程中像一盏指路明灯,并侧重于业务价值。

但是,随着灵活性的提高和不断进行的更改,失去稳定性的风险也在增加。FIT 表通过确保将底层系统的任何更改(包括重构和增强)立即以可视方式传达给该系统的各利益相关者,可以帮助恢复“被测系统 (SUT)”所需的平衡。





回页首


使用 FIT 进行测试计算

按照给定业务规则进行测试计算是软件测试的重要组成部分。采用表和具体示例的形式沟通业务需求可以帮助您了解所需内容。

示例:FIT 计算表

此示例中计算测试的业务规则是:

将价值 500 美元的美国奖学金授予“学术评估测验 (SAT)”分数至少为 2000 的学生,每超过 100 分增加 500 美元。表中的示例数据摸拟了 SAT 分数和所得奖学金之间关系的几种情形。例如,如果分数为 2300,则奖学金为 2000 美元。

表 1 是 FIT 表的一个示例,它摸拟了此业务规则的预期行为。该规则计算了学生根据他们的 SAT 分数应得到的奖学金。


表 1. 使用 ColumnFixture 表的 FIT 计算
CalculateScholarship
Score Scholarship()
1000 0
1999 0
2000 500
2050 500
2100 1000
2200 1500
2300 2000
2350 2000
2400 2500

表中的第一行显示要测试的 fixture 名称。fixture 类的作用相当于驱动程序,确定如何根据 SUT 来测试表中的示例数据集。在本示例中,fixture 是 CalculateScholarship

因为本示例涉及一个 ColumnFixture 表,所以第二行会标识给定的和计算的字段列名称。在本示例中,Score 列表示输入值,Scholarship() 列表示预期的计算结果。





回页首


为 ColumnFixture 表创建一个 FIT fixture

要让框架能够处理表 1,必须创建一个 fixture,或创建一个中间 Test Adapter 类,告诉 FIT 如何与您的软件通信。清单 1 显示了 CalculateScholarship fixture。


清单 1. CalculateScholarship fixture
public class CalculateScholarship extends ColumnFixture {
            public int score;
            public int scholarship(){
            ScholarshipSystem scholar  = new ScholarshipSystem();
            return scholar.calculateScholarship(score);
            }
            }
            

此 fixture 将调用清单 2 中显示的 SUT ScholarshipSystem 类,然后调用该类上的 calculateScholarship() 方法。


清单 2. ScholarshipSystem 类
public class ScholarshipSystem  {
            public int calculateScholarship(int score){
            int scholarship  = 0;
            if(score<2000)
            return scholarship;
            else
            scholarship = 500;
            scholarship = scholarship + ((score - 2000)/100) * 500;
            return scholarship;
            }
            }
            

您可以根据测试的内容对不同类型的 fixture 进行扩展。在上面的示例中,我使用 ColumnFixture 将表中的列映射为 fixture 中的变量和方法。

表中的两个列对应于 fixture 中的变量。包含预期结果的第二列对应于 fixture 中的 scholarship() 方法。为计算结果,我将 ScholarshipSystem 类用作 SUT。





回页首


在 Eclipse 中使用 FIT 测试

为了演示如何在 Eclipse 环境中使用 FIT,我使用了 Extended FIT Eclipse 插件,它提供了一个简单的用户界面 (UI),用于加载 FIT 输入和输出文件。此插件基于 FIT Library 基本插件。

安装 Extended FIT Eclipse 插件

要安装 Extended FIT Eclipse 插件,请完成下列操作步骤:

  1. 下载核心 FIT Eclipse 插件
  2. 解压缩 .zip 文件内容,将 .jar 文件复制到 Eclipse 安装所在的 Plugins 文件夹中。
  3. 下载 Extended FIT Eclipse 插件
  4. 将 .jar 文件复制到 Eclipse 安装所在的 Plugins 文件夹中。
  5. 重新启动 Eclipse。

现在,您会看到一个新的 FIT 菜单和 Run FIT 工具栏按钮(参见图 2)。如果是这样,则表明您已成功安装了 Extended FIT Eclipse 插件。


图 2. 在 Eclipse 中安装的 Extended FIT 插件
Extended FIT 插件

Extended FIT Eclipse 插件与 FIT .jar 文件捆绑在一起,所以您无需单独安装 FIT .jar 文件就可以运行测试。但是,要开发自已的 fixture,可能需要将 FIT .jar 文件添加到您的构建路径中。

测试其他类型的 fixture

您可以使用此处所示的方法(即使用 FIT 表和 fixture 测试计算结果)来测试其他 FIT 表。例如,使用 ActionFixtures fixture 测试业务处理流程,而使用 RowFixtures fixture 测试预期的搜索或查询结果。使用 Extended FIT Eclipse 插件测试此类 fixture 的惟一不同之处是您编写的 fixture 会扩展不同类型的 Base Fixture 类。

使用 Extended FIT Eclipse 插件

若要使用 Extended FIT Eclipse 插件,您需要三个文件:

  • 一个包含所有输入 FIT 表的输入 .html 文件
  • 一个包含 FIT 测试运行结果的输出 .html 文件
  • 一个包含所有自定义 fixture 类的单独 .jar 文件

注意:当创建自定义 fixture 类时,一定要使用您喜欢的构建工具将它们捆绑为一个 .jar 文件。Extended FIT Eclipse 插件需要此 .jar 文件的位置才能运行 FIT 测试。

有了 Extended FIT Eclipse 插件所需的所有文件后,您可以通过完成以下操作步骤来着手运行 FIT 测试:

  1. 单击 Run FIT
  2. 单击 Browse i/p 添加输入文件名。
  3. 单击 Browse o/p 找到输出文件。
  4. 单击 Browse fixture Jar 找到 fixture .jar 文件。
  5. 单击 Run FIT

FIT 采用 .html 文件作为输入文件;因此,应将输入文件名配置为与之相同(参见图 3)。


图 3. 使用 Extended FIT Eclipse 插件运行测试
运行测试

Extended FIT Eclipse 插件功能

用于 Eclipse 的 Extended FIT Eclipse 插件的作用相当于简单的包装,充当底层 FIT 库的一个委派。单击 Run FIT 后,Extended FIT Eclipse 插件通过将所选输入和输出文件作为参数传递给 FIT FileRunner 类来调用并运行该类。FIT FileRunner 类会依次解析输入文件,并将 FIT 运行的结果写入您选择的输出文件中。如果一切顺利,就会在窗口中显示运行结果。





回页首


展望

在本文中,您了解到 FIT 如何让用户和工程师就他们的软件架起沟通的桥梁。通过创建切实的示例,用户可以让工程师清楚地了解他们必须构建什么内容。您还了解到如何将 FIT 和 Eclipse 完美地结合在一起,不但让开发人员可以编写 fixture,而且可以运行 FIT 表来验证他们的软件。通过扩展核心 FIT Eclipse 插件,您了解到如何使用 Eclipse 执行基于计算规则的 FIT 测试,同时它也可以方便地应用于其他形式的 FIT 测试。

在本系列文章的下一篇中,您将了解如何构建 Extended Eclipse FIT 插件。还将学习如何使用 FIT 在 Eclipse 的“插件开发环境 (PDE)”中测试插件本身。

原文转自:http://www.ltesting.net