软件从开发-上线两步走到现在开发-测试-上线三步走,经历了一个重要的过程。测试在其中扮演了重要的角色,从开发自测到专门设立测试工程师,测试工程师从手工测试逐渐转为自动化测试。随着数据变革和开发运维的驱动,自动化测试已经成为软件测试的核心,并且在软件测试的发展进程中处于领先地位。但是,接下来测试会向着什么方向演变,这是全行业关注的重点。
当前有个流行的观点,AI将会“偷走”你的工作,因为AI已经可以写代码、做基本的测试工作了,比如现在大火的ChatGPT,它顺利通过了ISTQB认证,这是国外通行的软件测试证书,这似乎代表着什么,但在实际和测试者们的沟通中发现,这件事的影响远没有那么大,大家认为AI不会取代人类,反而会帮助人们进行QA测试。目前,人工智能在软件开发中的使用仍处于起步阶段,其在更先进的领域中自主水平甚至更低。
但不可否认,以AI如今的进步速度,代替人类似乎只是时间问题。AI似乎能够成为测试的未来,人们对AI在软件测试领域的表现给予了极高的期望,AI的发展使得一些组织变革了他们的流程,取得了良好的发展时机。
AI在测试中有不同的使用方式
用AI做单元测试。AI进行静态分析以发现单元测试代码无法被处理的区域,针对没有覆盖到的代码创建单元测试,并给这些单元测试提供输入数据,这代表着无需人工设置,也无需组件交互,单元测试将更加便捷。在将来,AI将能够随着源代码的更改随时更新、维护这些单元测试,这也意味着开发人员维护的时间将直线下降。
用AI做功能测试。功能测试离不开画面、离不开UI,而这恰恰是AI的拿手绝活。功能测试中,如何对界面元素的位置进行有效判定是一个重要的考验,通过AI元素识别,可以帮助用户自动定位界面元素位置。进一步,AI可以通过对元素的识别,判断界面元素之间的联系,自动生成可行性步骤,生成测试用例。这个测试用例在目前的情况下比较简单,但是通过对AI的反复数据训练,将会大大加强测试用例的复杂度,甚至做到AI直接做测试。
目前,我们对外推出了AI视频转流程图的功能,是对AI做功能测试的初步尝试,我们通过手机录制原生操作视频,再把视频上传,经过AI分析识别,自动生成对应操作步骤的测试用例,也就是说通过录制视频,AI就能完成基础的测试用例搭建工作,减少不必要的录制时间,感兴趣的小伙伴可以百度龙测前往。
用AI做接口测试。AI可以理解不同的接口命令之间的模式和关系,AI能够创建一系列的接口命令并且提供要测试的参数,此外,AI也能通过学习用户行为为接口测试生成更多高级的模式和输入。
AI测试的优势
AI将帮助测试实现无差错和简化。使用新的算法和工具,软件开发人员将花费更少的时间写测试代码和验证数据。为了节省时间,AI拥有通过日志文件分类和提高特定程序准确性的能力。数据的产生使开发人员能洞悉哪些测试区域需要修复,因此使用较少时间做针对性的修改从而缩短了开发周期。新的算法也将规避将来的错误或复杂的情况以提高测试效率。
AI通过清洗返回日志,优化测试套件,识别冗余和唯一的测试案例,从而消除重复并且改善可追溯性。
AI帮助在开发过程中更早的识别缺陷以达到未来规避该缺陷的效果。通过更快地发现缺陷,开发人员能够基于已验证的错误优先做回归测试,通过AI生成的信息,测试人员能在bug出现的时候迅速检测并且消除bug。
最后,AI可用于分析测试结果,识别缺陷并预测质量,AI预测程序的关键参数并且批准最佳操作,从而发现一些重要的、关键的和不怎么明显的缺陷。
总之,AI将更快、更好的生产出优秀的测试用例,更好的优化,更广的覆盖范围,更好的可追溯性,从而加强软件质量;AI将缩短测试周期,节省开发成本。
但是,AI要完全准备好接手软件测试还有很长的路要走。AI需要大量的训练才能达到上面所说的这些能力——这是一个需要耗费大量时间教学的过程。
目前,我们还需要给AI一些积累的时间~
|