写测试的感悟与心得

“我写的代码没有bug” “公司没有规定,个人没这个习惯” “场景复杂,没法测试” “过于麻烦” “没必要” “太痛苦” 等…. 这些字眼成为了我这些年来不写测试的理由(借口),而归根到底是因为自己的懒惰,还有一方面是:没有从内心认识到测试真正带来的收益 。下面记录下我对写测试过程的思路、认识、理解和感悟。

在写测试的过程中,首先要确定的是:我想要测什么?是 API 测试还是功能测试。

确定目标而后,伴随而来的下一个问题是 怎么测?怎么测这一个问题,我是站在一个使用者(用户或开发人员)的角度来思考,我期望输入什么或执行什么操作,得到什么样的结果。

下面是我写测试的示例:
image.png

image.png

写测试的过程中,绝大部分的时间花费在这个描述上,因为它代表你接下来要测试的思路、场景。如果真正的按照你的描述去测试会写的很顺畅,而让你感觉很舒服很快乐。

在跟同事的交谈过程中,同事提到 测试驱动开发 *。什么是测试驱动开发?就是在具体开发之前 先把要测试的case 列出来,这里的 case 就是你下面要开发的功能,然后用功能来跑你的测试,我尝试后,在某些情况下是挺不错的,这相当于 在你开发之前 TODO 了一遍,而有时需要执行一连串的操作/逻辑,这种情况前者就不是很合适了,因为有些场景或细节只有在开发过程中才会发现,所以可以 *先开发功能 后测试。当写测试多了,得心应手了,那么测试随你怎么玩。

但测试也要写的有质量,尽量的抽象,无用的测试就是在瞎胡闹,掩耳盗铃,与写测试的初衷相悖。比如我要测试:根据过滤条件(年龄、身高、学历),获取用户API。那么需要随机创建 不同年龄、身高、学历的几个用户,然后根据过滤条件,期望获取到包含的哪些用户,如果符合则通过,反之失败。

说了这么测试的思路细节,说下测试能给你带来什么收益,毕竟这才是真正驱动你写测试的动力:

  1. 虽然写测试花费的时间和精力很大,但它是一劳永逸的,因为很多时候会出现 改此处的bug,产生出不易发现的bug。
  2. 测试出没有想到或没有覆盖到的场景,及时调整。
  3. 加深理解功能的目的和引发的思路。
  4. 让你的代码更加自信

最后,建议让你的代码带上重要的一环:测试。也警示自己再忙再着急也要把测试补全,坚持✊!

原创技术分享,您的支持将鼓励我继续创作