测试


写测试为何会加快开发

写软件最耗时的部分就是debug。如果一个项目发现了线上bug,那么整个定位起来会非常麻烦(日志缺失,模块太多,定位到出问题模块)

写测试就是将模块变小,每个模块都有自己的测试,这样错误暴露出来时只需要查找一小部分代码,非常省时间。这也是为什么要写多少代码加多少测试的原因。

其次,测试代码是先难后易的,测试多起来之后,加新的测试真的是举手之劳,相比手测会节省大量时间。

最后,写多少代码加多少测试的方法也会使整个开发进度相对可控,避免出现代码写完了——测试完全不行,然后推倒重写或者修很久bug的问题。

写测试为何会减少bug(相比手测)

试想,我们实现了一个有100个功能的软件,然后也全部进行了手测。

这时,产品经理/老板过来让你加了5个新功能,过了一段时间,又加了5个新功能。

那么理论上,第一次你需要测试100 + 5 105 个功能,第二次,你需要测试100 + 5+ 5 110 个功能,才能保证你在修改过程中没有影响其他功能。

但是实际上,很可能是第一次测试了 5 个新加的功能,第二次又测试了五个新加的功能,如果在修改过程中产生了新的bug,就会因为测试不充分而漏过。

写测试为何会提高程序员幸福感

  1. 写测试可以避免重复劳动,你写的测试会在之后每次修改后自动测试,不需要再对这些功能进行手测
  2. 写测试相对手测轻松惬意许多
    例如:
    手测 easegress 某个 filter:

    1. make
    2. ./bin/easegress-server
    3. ./bin/egctl object create …
    4. go run test-server
    5. curl … or go run test.go …
    6. 如果遇到bug, 修改后重复步骤1-5
      写测试:
      go test - race -v