软件自动化开发和测试

2021-06-30 02:34
全国新书目 2021年4期
关键词:业界瓶颈框架

人們正在尝试将机器学习应用到各种以前只有人类才能完成的高难度领域,比如软件开发和测试。软件开发可以说是一种“高智能”的工作项目,软件工程师通常需要多年的理论、技术和实践经验积累才有可能开发出高质量的软件产品。但正如当初人们不相信AI可以在围棋这种代表人类智慧的领域超越自己,却在AlphaGO等的攻击下“节节败退”一样,AI在软件开发领域的应用也正在逐步刷新曾经骄傲的世人们的看法。

目前已经有多个业界巨头正在使用AI技术来提升软件自动化开发能力,其中的先行者当数AlphaGO所属公司Google,以及Facebook等几大互联网巨头。

不仅是软件开发领域,软件自动化测试在AI的攻击下也同样逐步沦陷。值得一提的是,自动化测试(Automated Testing)并不是一个新概念,它已经存在了几十年了。而且从历史发展过程来看,它与AI之间并没有过多的交集—它们之间的“触电”是因为自动化测试领域已经来到一个瓶颈期,更确切地说,就是借助传统的技术已经没有办法满足它进一步提升的需求了。

可以思考一下,如果需要将AI应用到自动化测试领域,有哪些可能的切入方向呢?下面是本书对基于AI的软件自动化测试的“畅想”。

1.游戏自动化测试

一方面,由于游戏(特别是移动设备端游戏)规则的不确定性、画面渲染动态性等多方面原因,游戏的自动化测试一直是学术界和业界的一大难题—这个难题催生了不少专业的游戏自动化测试公司。但到目前为止,业界能做到的最好状态也只是能够完成少量的自动化测试。

另一方面,学术界和业界已经有很多在游戏方面击败人类的案例,譬如围棋界的AlphaGO,国际象棋界的Deep Blue(深蓝)等。那么有没有可能进一步将这些成果应用到游戏的自动化测试领域,并代替人的手工测试呢?虽然短期内仍然存在不少棘手的问题,但我们相信这个问题的答案是肯定的。随着AI浪潮的崛起和越来越多的技术突破,这或许只是一个时间问题了。

2.自动化探索测试

目前的软件自动化测试水平,还无法在完全没有人工干预的情况下生成有效的“功能测试用例”。这其中的核心原因在于自动化测试框架缺乏“思考”能力。换句话说,它们只能机械地执行人类利用测试脚本等方式告知它的“固定做事方法”。这样带来的坏处是显而易见的。一方面人们需要持续投入人力来编写和维护测试脚本;另一方面对于测试过程中出现的各种异常情况,它们也只能“望洋兴叹”。

基于AI的自动化探索测试可以赋予现有测试框架所欠缺的“逻辑思维”能力,从而有效解决传统测试技术中的瓶颈。当然,和游戏自动化测试类似,只有持续的技术和资源投入才可能最终触发这一方向的“质变”。

3.传统测试框架的技术瓶颈

传统测试技术已经遇到了很多瓶颈,特别是当测试过程中需要用到只有人类才具有的“高级”能力时更显得“捉襟见肘”,包括但不限于以下几方面。

1) 感观判断能力

2) 逻辑判断能力

3) 测试的可继承性

当然,上面只是我们对于软件开发、测试领域与AI技术相结合所能带来的变化的一些设想。未来将会如何,我们拭目以待。

猜你喜欢
业界瓶颈框架
突破乡镇地区幼小衔接的瓶颈
框架
浅谈框架网页的学习
在突破瓶颈中成长
基于Jmeter对Node框架性能的测试研究
点击图象问题突破图象瓶颈
业界大事
业界大事
从业界到学界:成功转型仍需“洪荒之力”
一元一次不等式和一元一次不等式组