人工智能替代软件测试大概还有几年?

伲伲言


人工智能替代软件测试的可能性,这个问题要区别对待。

软件测试是一个大的范畴,作为软件工程以及信息系统项目管理中质量管理下的一个小部分,或是说,作为软件开发周期的一个环节,软件测试工作有其相对的完整性、复杂性、特殊性和流程性。

如果说,AI能不能代替软件测试中的某一方法、某一个例,或者某个小部分,那么完全可以认为,现有的人工智能技术已经达到了这样的水平,而且也有不少的开发团队、研发组织已在软件测试工作中运用了AI。

如果说,AI能不能代替软件测试的全过程(在整个项目周期中),答案是目前做不到的,而且今后十年内都难以企及。

人工智能是继移动互联之后与云计算、边缘计算、虚拟/增强现实并列的下一个技术革新风口。前些年的概念热炒把人工智能的历史进程人为拔高了过多,以至于现实中冒出许多不切实际的观点,这些观点肯定人工智能对人类劳作的强替代性,认为许多工作与技能岗位将被AI所占有。这种观点盲目地排斥了现代职业体系中人的作用,缺乏系统性的辩证思维。

事实上,从人工智能的历史发展进程来看,其本身的演进方向一直是强化对人智的辅助作用,而非完全取代人智,这在学术界早已是共识。

近些年来,人工神经网络领域的深度学习发展迅猛,加之业界巨头、机构、市场的助推,AI训练市场飞速崛起。也就是说,目前人工智能最前沿以及落地前线的几乎所有成果,多与此有关。在软件测试中运用的AI也不例外。

软件测试是促进软件开发正确、完整、安全和质量的过程,已保证结果的可靠性、稳定性、轻便性、易于维护、以及实用性。按照进程测试有Alpha测试、Beta测试、缺陷测试等;按照方法则可分为黑盒测试、白盒测试、压力测试与性能测试等;按照阶段可分为单元测试、集成测试、系统测试和回归测试。

当前的人工智能能够企及的地方,包括黑盒测试、单元测试、回归测试等等,但其结果只能作为测试员判断的依据或是参考,起到一个辅助的作用。也就是说,AI还做不到“无人化”的参与效果。虽然并行计算与分布式计算给我们带来了可靠的算力支撑,但目前的瓶颈是缺乏有效的建模。

为什么说十年之内AI都难以企及软件测试领域的全部?这与人工智能发展的大方向有关。人工神经网络、深度学习这条进程线之前的阶段是什么,专家系统。这是一脉相承的,AI技术进程的方向正朝着人智的高辅助发展,而不是强替代,十年之内很难预见偏离人工神经网络的方向。


水哥


客观讲人工智能替代软件测试还很遥远,远不止三五年。但通过人工智能完成软件测试领域内的部分测试活动已经实现了。


首先,软件测试是一个广义上的概念,其包含功能测试、性能测试、安全性测试、可靠性测试、可用性测试等等,测试覆盖软件整个生命周期。随着类敏捷、devops模式的逐渐普及、应用,推进着测试左移与右移的持续发展,使得软件测试领域变得更加丰富,因此人工智能替代软件测试,目前来看还是很遥远的。


其实类似的问题,放到若干年前好像也遇到过,比如自动化测试出现的时候,也会有部分测试人员产生自动化测试是否可以全部替代手工测试的疑问,后来经过实践我们也发现答案是否定的。


但随着人工智能的发展,的确对测试领域产生了积极的影响,比如我们正在尝试利用人工智能实现页面自动化测试,取代原先基于元素定位等方式页面自动化,使得开发、维护成本将至极低。


我们作为测试人员,持续的感知测试相关行业的技术发展,拥抱变化,不断促进测试技术的创新与应用,保障产品质量的同时,使得测试更智能化、高效化。


测试开发技术栈


AI正在慢慢渗透到我们生活的方方面面,但软件测试不能说是被首先取代。

软件测试作为一个被普遍认为技术含量低,在一段时间内别说被AI取代了,一直有人认为开发就会取代测试,测试这个岗位不应该存在,牛逼的开发不允许测试的存在。某厂取消了测试职位,但仅仅是取消了测试职位,测试工作仍然存在,只是以另外一种职称存在。

AI很强大,带给我们很多惊喜,但依然如上面的朋友说的,它可以去智能的执行各种测试,但它比较难做到一些主观的工作,可以想下我们各个公司的软件产品五花八门,即使它做到了一些公共模块的测试,但产品个性化特殊性的功能仍需要特别制定相关的测试策略,如果这块AI也能搞定,根据不同产品定制不同测试策略,那我们从成本考虑,又有多少公司会在这部分付出成本。

另外,我们假定AI已全面替代测试这个职位,可以有较大的测试覆盖率,有很强的测试分析,并且AI测试的错报率也降低到很合理的位置,但是要知道我们的软件产品是给人用的,不是用机器做出来给机器用的,软件在交付上线前真的不让人来体验,来试试?谁来试?机器测试的错报谁来二次检验?所以那时候的测试可能只是不叫测试了,而是ai测试开发工程师。

综上,不光是测试,各行各业的职位是在好多年的历史进化中形成的,有它存在的意义,它可能会消失,但消失的同时必然会引起这个职位的升级或者相关新职业出现,那么我们要担心的不是这个职位的消失,而是保持新技术的敏感性,在新技术出现的同时去考察它能为我们的工作带来哪些便利,做第一批进化的职业人,如果这样做了,谁还可以淘汰我们?


码农的搬砖生涯


先上结论:

软件测试智能化是未来的发展趋势,但是完全替代人工还有很长的路,还需要人工智能的进一步突破,预计至少十年以上。

我研究生从事人工智能算法研究,其中一个导师就是做的智能软件测试相关的工作。首先我从两个方面来回答一下,一是当下的人工智能和你们目前在媒体中看见的不一样,二是人工智能目前在软件测试方面的探索。


一、当下人工智能是什么

人工智能分为强人工智能和弱人工智能,目前的人工智能还停留在弱人工智能阶段。所以能替代的只能是比较机械的活,比如简单的电话销售,简单的语音翻译。

所以对于软件测试上的一些比较复杂的测试是很难能通过简单的人工智能达到的。


二、人工智能在软件测试方面的探索

目前人工智能在软件方面的测试主要有两个维度,一个维度是通过模式识别来做一些bug的定位,比如通过app截图来查看这个app的某些界面是否有bug,相当于是替代了一部分众包工作。另一个维度是在数据生成方面,软件测试里面很重要的一块是fuzz测试和分支覆盖,那么如何提高fuzz的效率,可以结合强化学习来实现,前段时间微软有一个工作则是将强化学习和fuzz测试做了结合。总之,对于软件测试的智能化,目前在学术界已经有了很多比较好的工作,但是距离真正的落地到工业界还有一定距离,要想完全替代人工进行软件测试还有比较长的路。


三、未来的挑战

除了软件测试的智能化以外,还有一个比较有趣的方向就是智能软件的测试,即像深度神经网络、自动驾驶这一类的智能软件该如何进行有效的测试,和传统软件由逻辑和事情驱动所不同,当下的智能软件更多的是数据驱动。比如我有一个师兄他们在做百度的无人驾驶系统阿波罗的测试,发现现在的fuzz只能覆盖很小很小一部分的代码,所以这个方向未来的路也很长


四、总结

题主问的问题是一个非常大的概念,总结一下的话就是未来软件测试智能化一定是趋势,但是路还很长,预计至少要十年才能真正全面的铺开。


人工智能与未明学院


50年。

不靠修仙悟道,没有奇能异功。

地球文明升级,唯有科技进步。

官科退休著,写实千年未来。

颠覆读者三观,看了超凡脱俗。

启迪脑洞大开,科技改变人生。

科幻《奇遇未来》,一看终生受益!

http://book.qidian.com/info/3315433


预言科幻作家


人工智能永远也替代不了手工测试,目前自动化测试也只能达到回归测试阶段,但是新需求,新变化,还有各种各样的异常场景都需要测试员主观去测试。


用户8586525929615


被ai取代最快的应该是crud程序猿吧 开发模式非常固定,很容易被替换


呵呵呵008


2030年正式完成


银165900406


以目前的发展速度,快则三五年,慢则七八年吧


红鲤鱼与红绿灯


不能武断,还是行内人说吧!


分享到:


相關文章: