testing - 敏捷方式 : Integration Testing vs Functional Testing or both?

标签 testing tdd scrum

<分区>

我在一个办公室工作,该办公室已经进行了一段时间的敏捷开发。我们使用Scrum进行项目管理,并融入了XP的工程实践。它运行良好,我们不断吸取教训并改进我们的流程。

我想告诉您我们通常的测试做法,并获得有关如何改进的反馈:

TDD:第一道防线 我们对单元测试非常虔诚,我想说我们的开发人员也有足够的经验来编写全面的测试,并始终将 SUT 与模拟隔离开来。

集成测试 对于我们的使用,集成测试基本上与单元测试相同,只是不使用模拟。这往往会发现一些在单元测试中遗漏的问题。这些测试往往难以阅读,因为它们通常在规范框架的 before_eachafter_each 部分涉及很多或工作,因为系统必须经常达到特定状态为了使测试有意义。

功能测试 我们通常以结构化但手动的方式执行此操作。我们玩过 Selenium 和 Windmill,它们很酷,但至少对我们来说还不够。

我想听听其他人是如何做事的。您是否认为如果集成测试或功能测试做得足够好,另一个就可以被忽视?

最佳答案

单元测试、集成测试和功能测试虽然在执行相同的代码,但却是从不同的角度对其进行攻击。正是这些观点产生了差异,如果您要放弃一种类型的测试,那么某些东西可能会从那个角度发挥作用。

此外,单元测试实际上并不是测试代码,尤其是在您练习 TDD 时。 TDD helps you design your code better的过程,您只需在它结束时获得一套测试的额外奖励。

您没有提到您是否有持续集成服务器在运行。我强烈建议设置一个(Hudson 很容易设置)。然后,您可以针对代码的每次 checkin 运行集成和功能测试。

关于testing - 敏捷方式 : Integration Testing vs Functional Testing or both?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/555899/

相关文章:

ruby-on-rails - 模型和测试中的验证方法之间的错误 :Unit assertion results

java - 如何覆盖此方法的所有分支?

node.js - 如何为 MVC Controller 功能编写简单的 jasmine 测试 (sails.js)

java - Spring Boot 中的拆分单元测试和集成测试

project-management - Scrum - 你是鸡还是 pig ?

mysql - 如何模拟mysql数据库?

android - 如何在android单元测试期间检查 Activity 是否显示对话框

ruby-on-rails - 测试 Rails 中 cookie 值的清除?

jira - 您如何在Jira/GreenHopper中创建用户案例和任务?

scrum - 如何进行 Youtrack Agile Board 时间估算以获得良好的燃尽图?