如何用精准测试来搞垮团队?

测试行业每年会冒出来一些新鲜词:混沌工程、精准测试、AI测试…… 这些新概念、新技术让我们感到很焦虑,逼着自己去学习和了解这些新玩意,担心哪一天被淘汰掉。

以至于给我这样的错觉,当「回归测试」、「精准测试」这两个词摆在一起,「回归测试」立刻就显得有些低级。我们愿意花时间去学习更新鲜的东西,也不愿意花费更多时间去研究如何做好「回归测试」这类老生常谈的工作。

所以,每隔一段时间我都会试着问问自己:「这项新技术的本质是什么?」、「和传统测试技术的关系是什么?」、「我为什么要学习它?」、「只是一个空洞的概念?还是有落地的实际方案?」、「公司内有适合推广的土壤吗?」……

如何用精准测试来搞垮团队?

弄清楚了这些问题后,我发现自己甄别出了:哪些技术我要学习,哪些技术我完全不需要学习。

最后,我也就不焦虑了。

精准测试是什么?

精准测试 是一套计算机测试辅助分析系统。精准测试所涉及的核心范围包含:软件测试用例和代码的双向追溯、智能回归测试用例选取、覆盖率分析、缺陷定位、测试用例聚类分析,这些功能完整的构成了精准测试技术体系。

用大家能听懂的话来说,我们在做软件测试时,往往面临2大难题:时间复杂度

时间:

测试的时间不足、人手不足。

在有限的时间内,怎样提高资源利用率、减少浪费,避免漫无目的测试。

复杂度:

排除不稳定因素、不确定因素。

例如,

你问测试工程师小张:小张,昨天的A项目上线了,你作为测试方,你觉得上线的质量怎么样?

小张:还行吧,我觉得应该没问题。

你:还行?觉得?应该?小张为什么用这么多不确定的词来回答呢?

因为他确实不知道呀。他不知道:他在测试的过程中,测试环境有没有人不小心碰到,测试数据有没有和同事合用,测试场景有没有遗漏,系统代码有哪些没有测到?

这么多不知道,他当然不知道了。

这时,精准测试可以作为一个系统的测试工程加以实践。

以服务端精准测试为例,行业里最普遍的做法是引入Jacoco开源插件,无论是以工程打包插桩的方式、还是以无侵入的方式,将被测系统部署在测试环境中,接下来执行「手工测试或自动化测试」,最终,生成一份「精准测试染色报告」。

如何用精准测试来搞垮团队?

通过查看染色报告中的细节,你可以看出来,「红色区域」是你测试遗漏的地方,接下来,对比测试用例,弄清楚这些「测试遗漏」是不是因为自己设计的测试用例存在不足。

如何用精准测试来搞垮团队?

精准测试其中一个最好的用法,就是用在做好「回归测试」上。

例如:

1、我能发现这次回归测试,哪些功能代码根本没测试到。

2、我能发现自己的测试用例原来存在这么多设计上的遗漏场景。

3、我能发现代码中有些逻辑代码属于是无效代码。

……

引入了精准测试概念的回归测试行为,你会发现,我们的重点不在于回归测试了,而在于「我这次回归还有遗漏吗?」

精准测试,可以更进一步拉近「你」与「回归测试」之间的距离。

如何用精准测试来搞垮团队呢?

与其说是尝试用「精准测试」来搞垮团队,倒不如说是「新技术」来搞垮团队。

下面6个点,既可以用在「精准测试」身上,也可以套用在「任何新技术」上来搞垮一个团队。

1、仅关注指标

往往纯管理类型的测试经理,会在工作中尝试寻找「管理抓手」。

拿精准测试来说,既然我不懂精准测试,但我又想知道精准测试的效果如何,简单,找指标呗。

张三,你这个系统必须达到75%的行覆盖率。

李四,你那个系统必须满足80%的分支覆盖率。

王五,你能力那么强,那你的指标肯定不能低于张三和李四,对吧。

整个过程就像旧社会,地主向长工催交租子一样,而长工们也会穷尽一切办法上交。

啥?质量?这里面哪有质量的事啊?只看指标就行了。

2、技术能力弱

俗话说,没有精钢钻就别揽瓷器活。

如果测试团队技术能力弱,但又想试着去做「新技术」的研究,多数情况下,无异于羊入虎口。

我亲眼见过很多传统小厂里,测试团队中有一半以上的人不会用Python写接口自动化脚本,有80%的人不懂任何编程语言,而准备一边投身功能测试,一边投身去做精准测试的。

最终的结局,往往是两边都做不好,搞不下去。

说到底,失败只是一个结果,逐渐做不下去是过程中的表现,选择导致了方向错误,技术能力弱则是团队的原罪。

3、理解认知问题

对于新技术,很多朋友往往存在着片面的认知,例如:精准测试就是Jacoco、接口自动化就是Pytest、UI自动化就是Seleium、性能测试就是JMeter、功能测试就是点点点。

在他眼里,所有的技术都可以用一个工具代替所有,而拥有这种思路的测试工程师,在实际工作中还带着好几个「亲传弟子」,手把手教他学测试……

每时每刻,行业中都有很多惨剧在发生着。

4、仅仅懂测试相关的知识

当你选择了研究「精准测试」时,你会发现,测试相关知识仅仅是其中之一,仅仅掌握测试是做不好的。

如果你想做好还需要熟悉:构建发布CICD、工具开发、编程语言、网络传输、甚至Docker虚拟化……等其他知识。

其实,这里面不但变相考察了大学里面所学的「计算机基础知识」、「数据结构」等基础知识,还跨了岗位,涉及到开发工程师、运维工程师、测试架构师岗位的知识。

5、心态不开放,不愿接受失败

有尝试就有失败,有失败就能总结经验,有经验、有信心就有可能做成事。

心态的不开放,往往会存在两种情况:

case 1 - 拿来主义、投机主义:

上一页12下一页


留言