测试驱动开发

Test-Driven Development

把需求转换为测试用例,再把测试用例转换成生产环境代码

要求熟悉Swift语言与iOS应用开发基本流程

测试驱动开发是一种软件开发迭代方法,大体包含四个步骤:

  1. 写失败的测试用例
  2. 让测试用例通过
  3. 修改代码
  4. 重复整体过程

测试驱动开发可以通过写好的测试用例,确保你的软件在现在和未来都可以按照预想的方式正常运行

一个好的测试用例包含下面四个特点:

  1. 条件不满足的情况下会发生失败
  2. 可以被不断的重复执行
  3. 运行耗时很短
  4. 容易维护

测试覆盖率越高并不一定意味着软件被测试的越好了。

不需要对所有的逻辑都写测试

  • 通常对那些不能被自动化检测的代码逻辑写测试,
  • 自动生成的代码逻辑则没有必要写测试,因为自动生成器应该保证它们自动生成的代码逻辑的正确性
  • 对于可以触发编译警告和错误的代码逻辑也不需要写测试,因为编译器会发现它们
  • 不要为依赖代码写测试,依赖代码的测试应该由依赖提供方来保证
  • 在为了学习某个组件运行逻辑时,也可以写一些临时的测试,但是要记得用完后清理掉

对于测试驱动开发,通常有人会抱怨开发周期太长,耗时又费力。但是如果从长期来看,软件开发的时间成本,不仅仅是开发第一个版本所花费的时间,它应该还包括后期维护时迭代需求、代码重构、问题修复以及重复测试的时间。测试驱动开发从长期来看,是可以为软件开发工作节省整体成本的,同时它可以让问题尽早的暴露在开发阶段,避免造成线上问题

什么情况下应该采用TDD开发模式

如果你的软件需要长期维护、不断的迭代新功能和发布新版本,并且会不断的集成新功能和一些复杂逻辑,测试驱动开发就适合被引入到软件项目中。如果只是临时项目,测试驱动开发就是看你自己的决定了。

总体来说,测试驱动开发只是一种软件开发工具,具体情况还需要具体分析优缺点来决定是否采用