tdd - 创新的软件工程方法

标签 tdd bdd agile methodology

我正在准备一个演示文稿。我的主题是创新的软件工程方法。敏捷是现代且创新的方法论,但答案只是敏捷吗?还有哪些其他创新和现代方法?测试驱动开发和行为驱动开发也是创新方法吗?极限编程是像瀑布一样的传统方法吗?

最佳答案

我不确定我们是否可以将这些方法或框架归类为创新、传统或其他。

方法或框架的选择完全取决于产品和客户需求。任何满足产品要求并为您的团队提供效率的方法都可以在该范围内进行创新。

在当今的开发世界中,大多数软件开发过程都是在复杂的环境中开发复杂的产品。我完全同意敏捷方法论、极限编程、TDD 和 BDD 与之前在复杂环境中开发复杂产品的定义非常吻合。因此,大多数敏捷方法都是对开发复杂产品的检验。

敏捷方法

“敏捷”一词是软件开发专业人士使用的一个非常流行的术语。有很多敏捷方法论、框架,例如 Scrum、看板或 XP。他们提出了让我们变得敏捷的方法。敏捷一词涵盖了这些方法。其中大多数解决了预测、适应、透明度、检查和经验过程。所有敏捷方法都试图解决软件开发过程中面临的这些问题。

极限编程

极限编程专注于开发合格的软件产品并适应不断变化的需求和环境。说实话,我真的很喜欢XP。它不仅仅提出开发方法。它还建议了一些有关客户管理、成本管理等的建议。这确实很基础,但很难实现。我强烈建议阅读 Kent Beck 所著的《极限编程解释》一书。

另请参阅:

Extreme Programming

Extreme Programming Explained, by Kent Beck

Scrum

Scrum 是另一个基于经验过程控制的软件开发框架:透明度、检查和适应。它非常简单,定义了软件开发过程中的一些角色和事件。这些角色包括 Scrum Master、产品负责人和开发团队。这些事件包括 Sprint 计划、每日 Scrum、Sprint 回顾和 Sprint 回顾。我建议阅读 Scrum 指南以获取更多信息。

另请参阅

Scrum Guide

测试驱动开发

测试驱动开发是一个软件开发过程。我不能说它本身就是一种敏捷方法。它有助于软件开发变得敏捷。测试驱动开发支持开发人员在第一阶段进行测试。测试驱动开发还需要一种在每次开发之前都考虑测试的心态。它不仅仅是编写单元测试。

另请参阅

Test-driven development

Test-driven development by Martin Fowler

Test Driven Development: By Example, Kent Beck

行为驱动开发

这是另一种软件开发过程,源自测试驱动开发。它侧重于跨团队(如开发、管理和客户)共享工具和共享流程,以便对需求有相同的理解。 BDD建议业务人员、客户和技术团队对产品应该有相同的理解。客户的需求,让坐客户的句子,可以通过工具自动测试。

另请参阅

Behavior-driven development

10 Tips for Writing Good User Stories

Cucumber.io

摘要

如果没有 XP、Scrum、Kanban 或任何其他方法或框架,敏捷一词本身就缺失了。如果没有 TDD、BDD 或持续集成,任何敏捷方法或框架都会丢失。其中任何一项都必须得到公司文化、客户或业务人员的支持。项目中的每个利益相关者都应该有产品高于项目的心态。否则,敏捷方法可能没有帮助。

最后,我强烈建议充分理解持续集成。

另请参阅

Continious Integration

Products over projects

The Clean Coder: A Code of Conduct for Professional Programmers

关于tdd - 创新的软件工程方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39967776/

相关文章:

unit-testing - 如何重构单元测试?

svn - 是否有工具可以从一组 SVN 存储库发送每日摘要?

c# - 在测试之外使用模拟对象,不好的做法?

javascript - Jest 不会自动模拟常见的 js 模块

c# - 有没有 BDD 的成功案例?

bdd - 如何告诉Behat/Mink将鼠标悬停在网页上的元素上?

python - Django 模型 .get 失败,但 .filter 和 .all 有效 - 对象存在于数据库中

c# - 对 Viewmodel 进行单元测试

sql - 用具有嵌入式SQL的旧Delphi代码执行TDD的好方法是什么

git flow 发布选定的功能