首发于性能测试

DevOps会导致测试人员失业,何去何从(中)

现实中开发人员测试能力不够,懒得做测试,这就需要培养这种新的、敏捷/DevOps的质量文化,不断让测试开发顾问/全栈测试顾问通过培训、绩效考核加以引导。在招聘新人时,也要考察应聘者是否具有质量意识、有质量保证的技巧、愿意为软件的功能、性能、易用性等质量为之努力,测试不再是甩锅给专职测试的任务,而是必备的一项任务。
其次,接口类的测试工作,可测试性、健壮性和性能,可以交给开发做。
但是,总有一部分UI测试需要手工进行的,这就需要团队在后期一起参与做测试/或小部分的测试集成工程师去做。
最终能做到这样,需要管理层和研发人员的共同支持,从上到下、由下到上形成合力,才能做到真正的“将质量构建于产品之中”的研发过程。

2. 人工智能会让测试团队会缩小5倍甚至更多?

靠传统的自动化测试发现缺陷的能力还是很弱的,而且当我们把主要精力放在技术、就很有可能忽视业务、忽视用户的需求。如果采取ATDD、BDD实践,情况会有所改善,但是对于复杂的业务逻辑,ATDD/BDD就会面临较大的挑战,这时就需要专业的测试人员进行业务层、端到端的测试。单元、功能没有问题,不能代表系统能够完全满足业务的需求,而系统满足业务的需求才是终极目标。
其次,开发人员测试自己的代码或程序,会有心理障碍、思维障碍。如果开展TDD测试实践,测试在先、开发在后,这种障碍就不存在了。但现实中几乎难找到全程以TDD方式开发产品的公司。当然,开发人员也可以进行交叉测试,这时候,在短暂的时间区间内,开发人员在扮演专职测试人员的角色,也就是说,一个软件工程师经常交替扮演开发人员、测试人员等不同角色。
再者,软件开发的各项工作都是专业的事情,软件测试也不例外。每个开发人员能做测试,这有信心。但让大多数开发人员成为高水平的测试能手,依旧困难重重。许多开发人员的一项工作做得不够好,要把两项工作都做得很出色,就更困难。过去也是这样,但质量多了一道守护——专职测试人员的系统测试,质量会有一定的保障。对于极少数优秀的开发人员,的确可以相信,测试促进开发,开发促进测试,两者相辅相成,将开发和测试溶于一身,反而是有利的。

从这些角度看,少量的专职测试人员暂时还离不开,特别是对质量有更高要求,希望获得更好的客户满意度。

3. 如果AI再助软件测试一臂之力,多数专职测试人员还可以回家
过去,我们谈到探索式测试,觉得这必须由测试人员亲自动手来做,正如前面所说,传统的自动化测试(TA)发现缺陷的能力比较弱,而人类测试工程师具有创造性,能够举一反三,能够不断深入探索下去。但是,随着AI的越来越多的应用,赋予传统的TA工具的智能特性,就有可能超过人类测试人员。虽然工具(这里指测试机器人)可能再优秀不能超过顶尖的测试人员(不到20%,也许只有5%),但完全可以超过80%~95%的普通测试人员。在今年举行的人机大赛中,差不多就证明了这点,稍微具有一点AI能力的单元测试工具evoSuite打败了绝大多数人类选手,虽然它最终输给最优秀的人类选手。



刚开始(比赛开始三十分钟),人类选手需要较长学习时间,干不过任何工具
(这几位优秀选手都是很优秀的,他们是从几千个选手中选出来的)




(比赛开始60分钟)很快人类选手打败随机测试工具,但还干不过低智能的AI工具



(比赛进行90分钟)顶尖的人类选手可以打败低智能的AI工具



(比赛进行120分钟)在之前,我将软件测试定义为一个公式:
过去,也许你还认为,有一块自留地(未知领域)交给我们手工测试(探索式测试),当我们引入AI技术之后,连这块自留地也不给人类测试工程师剩下,可以彻底实现完全的自动化。
前两天在中兴测试技术大会上分享了App游戏的UI自动化测试——借助蒙特卡罗树搜索算法、增强神经元网络算法,进行150次模拟后,就能够超过人类的游戏玩家。
今天,AI不仅可以模拟人工操作,而且还能应用到测试的其它方面 。不仅可以进行功能性测试,而且可以进行安全性测试、可靠性测试。正如Gartner告诉我们,到2020年,普通人与机器人的交谈会比与他们的配偶更多!留给我们测试人员的时间只有三年,三年内必须转型,成为AI不能代替、更具智慧、创造性工作的专业人员。

发布于 2018-05-15 16:17