项目管理

用于自动化应用的测试驱动开发的好处

测试驱动开发(TDD)通过通过将要求纳入测试协议来消除创建需求和规范的单独任务,可能对自动化应用程序有用。

由Duane Grob. 2019年6月25日

测试驱动开发(TDD)是在2003年首次使用的作为开发项目代码的新方法。该概念假设对于每个步骤开发,应仅创建足够的应用程序代码以成功完成给定的测试要求。开发人员以简单的测试要求开始,并在测试成功之前修改代码。然后开发人员创建下一个测试,开发关联的代码,并继续循环。在前进时,开发人员在新的测试纳入应用要求时重新确定代码以确保没有任何破布。

这一切都听起来不错,但开发人员如何利用这一概念进行自动化应用?

通常,开发人员任务是根据测试协议开发定义系统的要求作为单独的文档工作。这与实际代码开发分开,意味着我们可能会开发要求,然后并行开发应用程序代码和测试脚本。

这是很多发展,但问题是许多项目无法支持这种努力所需的成本和时间。

看着测试设计事先的对于任何代码开发,消除了为代码创建要求的单独任务。更正确,我们将需求开发纳入测试协议,最小化或消除创建规范的独特阶段。

简单地,开发人员通过指定正确的测试来定义应用程序的要求,该测试是正确满足的要求......然后写下该测试的代码。将代码进行测试并修改,直到它通过测试,然后移动到下一个必需的测试。

现实是开发人员可能在编写第一位代码之前定义了许多测试,但他们可以一次编写和测试。其中一些变得冗余,特别是如果开发商有一个经过验证的库,质量代码可以从中抽出。当您只写几行代码而不是写了几百(或数千个)的行时,测试更有效。

这里的目的是开发清洁代码,即在短时间内满足测试协议,具有足够的文档来开发和测试并验证应用程序。许多客户很少或没有规范或要求,并且更喜欢不购买设计文件。我们拥有所有看到的项目,其中预期结果是“明显的”或“简单”,只需要几个小时与所有者/最终用户进行对话,以便继续。但是,我们总是需要一种方法来测试和验证客户,我们已经开发的是他们想要的。

TDD的另一个优点是它可以应用于不仅仅是代码开发。开发人员还可以使用它来定义和测试硬件实现和单元和系统体系结构。最后,测试文档和要求规范是相同的,在开发任何代码之前,购买的硬件或执行的现场工作之前,或完成。

首先在一个小项目上尝试TDD很好,所以开发人员可以验证他们可以更轻松地开发文档和代码。

Duane Grob.是工程师的原则Avanceon.,CFE媒体内容合作伙伴。本文最初出现在Avanceon的网站上。由Chris Vavra编辑,生产编辑,控制工程,CFE媒体,cvavra@cfemedia.com.


Duane Grob.
作者生物:Duane Grob,原则工程师,阿维森