测试
写测试为何会加快开发
写软件最耗时的部分就是debug。如果一个项目发现了线上bug,那么整个定位起来会非常麻烦(日志缺失,模块太多,定位到出问题模块)
写测试就是将模块变小,每个模块都有自己的测试,这样错误暴露出来时只需要查找一小部分代码,非常省时间。这也是为什么要写多少代码加多少测试的原因。
其次,测试代码是先难后易的,测试多起来之后,加新的测试真的是举手之劳,相比手测会节省大量时间。
最后,写多少代码加多少测试的方法也会使整个开发进度相对可控,避免出现代码写完了——测试完全不行,然后推倒重写或者修很久bug的问题。
写测试为何会减少bug(相比手测)
试想,我们实现了一个有100个功能的软件,然后也全部进行了手测。
这时,产品经理/老板过来让你加了5个新功能,过了一段时间,又加了5个新功能。
那么理论上,第一次你需要测试100 + 5 105 个功能,第二次,你需要测试100 + 5+ 5 110 个功能,才能保证你在修改过程中没有影响其他功能。
但是实际上,很可能是第一次测试了 5 个新加的功能,第二次又测试了五个新加的功能,如果在修改过程中产生了新的bug,就会因为测试不充分而漏过。
写测试为何会提高程序员幸福感
- 写测试可以避免重复劳动,你写的测试会在之后每次修改后自动测试,不需要再对这些功能进行手测
写测试相对手测轻松惬意许多
例如:
手测 easegress 某个 filter:- make
- ./bin/easegress-server
- ./bin/egctl object create …
- go run test-server
- curl … or go run test.go …
- 如果遇到bug, 修改后重复步骤1-5
写测试:
go test - race -v