软件开发行业最近最热门的词汇之一就是人工智能。但它的真正含义是什么?软件测试自动化背景下的人工智能与其更广泛的定义有何不同?
当我们谈论人工智能及其姊妹词机器学习时,我们是什么意思?我想我会澄清我们的用法,以便清楚我们如何使用AI和机器学习来推进最先进的API测试。
如何在软件测试中实现人工智能(这不仅仅是嗡嗡声)
人工智能是数字市场中最超负荷的流行语之一。“人工智能”让人联想到诸如全能的超级计算机,一心想要毁灭人类;Alexa或Siri的语音控制协助;电脑棋牌对手;或自动驾驶汽车。
维基百科将人工智能研究定义为“......对‘智能代理人’的研究:任何能够感知环境并采取最大限度地提高其成功实现目标的机会的行动的设备”。但这有点太抽象了。我喜欢把人工智能看作是计算机程序或机器的思考(为自己推理)和学习(收集数据并以有益的方式修改未来行为)的能力。正是在这个定义中,我们开始看到一些更有意义的东西,即AI对软件开发工具和技术的意义。
同样重要的是要意识到,被认为是“AI”的范围会随着时间的推移而改变。例如,曾经,人们认为光学字符识别(OCR)是人工智能中最先进的技术。或者是Siri和Alexa的问答式回答,在一段时间内,其影响被认为是最先进的,但现在基本上被认为是理所当然的,并不总是被认为是AI系统。同样的事情也会发生在软件测试工具上--随着新功能的发展,今天自动化方面的创新将成为预期。但现在,让我们考虑2019年软件测试自动化中的AI。
2020年软件测试自动化中的AI
目前,人工智能在软件开发中的应用还处于起步阶段,与自动驾驶系统或语音辅助控制等发展较快的工作领域相比,自主化程度要低得多,不过仍在向自主测试的方向推进。人工智能在软件测试工具中的应用主要集中在让软件开发生命周期变得更容易。通过应用推理、解决问题,以及在某些情况下