耗时不会特别多,以我的经验看,CR 在执行测试之前,一个需求的代码 CR 典型时间是 1-2 个小时,但是需要这段时间保持高度的专注,并有以下作为前提:
要想发现比较多的问题,一般建议 CR 之前,先自己想一下如果你来实现这个需求,需要改哪些模块,怎么实现,难点在那里,然后再具体看对应实现跟你的想象做对比,查漏补缺。通常会发现一些实现逻辑不对、不全的问题。
至于偏语法、语言的错误类型,需要对使用的语言有比较高的熟悉度,知道常见易写错的点。当然,现在随着大模型普及,完全可以让 AI 做这一层的工作,实际上 AI 也能做的更好。
另外是对于经常合作的开发,应该了解他的能力和经常会写错的地方,CR 时要重点关注,这点在小公司比较普遍,大厂的研发通常不会犯很低级的错误。
CR 还会带来后续的好处,先 CR 之后,在实际测试阶段对于出现的问题定位会更加的高效,长期积累也可以提高自己的能力。
给每个开发买一个 GitHub Copilot 就可以了。
我说的就是这个问题,实际上应该更为具体,比如写明具体的订单编号(通过这个订单编号依赖于之前的用例生成),或者指明订单的特性,比如 “最近一周的订单”。只有这样具体的测试用例才是有可能把用例编写和执行解耦的。
为什么要强调编写和执行解耦?这会带来很多收益,例如:
这就是大厂里面重业务逻辑测试部门在推进的事情,也是为了降本增效。当然客观的讲这个事情实际不是这么理想的,执行用例的人还是会有熟悉需求的成本,意愿上也不太愿意纯执行别人写的用例。但这个事情在领导层面看来有上面提到的收益,就会推进。
其实写不写用例也是一个看 ROI 的事情,写用例无疑会有很大的成本,只有尽可能多的扩充收益,才能把这个事情推动下去。
“应该尽量设计通用的测试用例,避免过于细致的描述。”
这条就不对,测试用例是根据需求容量和测试投入来确定范围的,而不是尽量设计通用的测试用例,不知道是啥意思。
避免过于细致的描述也不对,测试用例应该是具体可执行的,最理想的情况是在多人协作场景下,写用例和执行用例可以不是同一个人,而且比同一个人完成写用例 + 执行用例的工时不会显著增加。这才是写测试用例的价值之一。
宇宙厂就是偷偷用 bug 数、case 数、工时这些给外包排名的,后来外包发现了,就开始拆分 bug、拆分用例、增加工时了,甚至出现一个月 21 个工作日,登记工作 30 多天的情况,但是没人在意,只需要淘汰排名靠后的即可,大领导也借此完成降本增效的 OKR。
简单说,在脑力活动占主导的工作中用指标打绩效,大部分场景最后对整体的收益都是负向的。坚持这么做的原因无外乎两种情况:
不要用 Jmeter 测试方法的性能,一般的方法如果是存计算逻辑,耗时很少 Jmeter 无法满足这种很低耗时的性能测试(它本身的测量误差都比方法耗时大)。能实现高精度性能测试的是 OpenJDK 开源的 JMH:https://github.com/openjdk/jmh
不建议去,你这个年龄和工作时间很尴尬,去大厂例如字节大概率 2-2,薪资估计也就 35,其实没多多少,但是风险和不确定性很大,工作强度也会大幅提高,完全不值这点涨幅。
你需要的是 web 自动化测试框架,例如 Playwright、 Cypress
对社区的付出真是有目共睹,respect!