欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

人工智能会如何影响软件测试行业?

程序员文章站 2024-01-11 19:26:04
...

传统的测试工具,通过让电脑执行一系列步骤,并根据预先定义的预期来检查结果。 那么,人工智能会在软件测试里扮演一个什么角色呢,机器软件测试人员?

 

也许。

 

想像一下按揭计算器的测试,不是按照预定义的几个例子,而是随机选择有效数据。 也就是说,选择随机利率从0%到5%,随机贷款金额,贷款期限等。 然后,编写另一个称为oracle的算法,计算结果。 运行软件,看看oracle和软件本身是否匹配。 这种测试工具的方法是非常明确的,这是模型驱动测试的一个简单例子,它可以扩展到诸如随机遍历应用程序之类的事情,为每个输入提供随机数据,并预测结果应该如何。 通宵运行这些测试,或许可以找到一些有趣的错误。

 

这样运用人工智能是很诱人的,但实际上计算机没有真正的学习,应用程序正在遵循预定义的规则。 像人工智能和机器学习这样的术语意味着计算机发现规则,或创建自己的规则。通过机器学习,该软件可以查看一千个甚至一百万个例子,并创建自己的算法。这是不是很像机器软件测试人员?

 

举一个简单的例子:当你在Google上搜索“软件测试”时,你没有办法知道算法是否正确。 例如,你不知道顶部的页面是不是最相关的或具有最大权威性的,你也不知道Google是如何基于你的位置,搜索记录和过去的点击改善你的搜索结果的。 然而,如果结果都是一些关于大学备考的内容时,基于你的生活经历,你会知道结果是错误的。

 

通过为计算机提供大量数据集,以及对每条数据的一些判断规则,人工智能能帮助计算机尝试找出其中的关联。 例如,保罗·格雷厄姆曾经提出过一个用于电子邮件的贝叶斯过滤器,人们首先将数千个电子邮件识别为垃圾邮件和非垃圾邮件,并将该信息提供给计算机。归纳算法会尝试找出垃圾邮件的共同点,并预测收到的邮件是否为垃圾邮件。 Gmail正是利用这种方法来识别垃圾邮件的,同时还提供了一个“报告垃圾邮件”的按钮,为过滤器提供了更多的信息。

 

现在,思考一下人工智能在软件测试中的潜力:你可以训练你的应用程序来发现问题。

 

网络爬虫和链接检查工具可以遍历整个网站,寻找404错误。基于模型的软件可以识别崩溃,比如包含一些错误文本的页面。用不同的方法来训练你的软件,找到那些看起来不正确的东西。结合机器学习,我们可以拥有常用的有效输入集,用模型驱动的技术来随机遍历一个应用程序,让机器具有感性的专业知识。这似乎听起来还只是一个梦想,还不存在这样的软件。

 

不过,我们不必等待这种理想的机器学习,而是进一步发展软件测试中的人工智能思想。 视觉测试是一个记录测试的过程,然后在新构建中重新运行该测试,测试人员可以使用工具快速地验证差异,将每个更改标记为错误(需要返回到之前的状态),或作为新功能(成为新的标准)。大多数视觉测试工具允许用户训练软件来忽略那些变化的字段,比如自动生成的日期,而只专注在不应该改变的内容上。

 

所有编程本质上都是创造变革,这些可视化工具提供变更检测。 这可能看起来是多余的,告诉计算机,“是的,这种改变是我们预期的”,但它也提供了一种非常快速的方式来检查任何视觉变化,而不仅仅像传统测试工具那样去检查预期结果。

 

未来,人工智能会取代软件测试人员么?当收音机出现时,人们认为报纸应该消失,然而一百年后,报纸依然运作良好。即使使用机器软件测试人员,仍然需要一个人来运行它们。 自动发现问题的机器学习将会发现常见的通用问题,但不具备专业和定制化的知识能力。 当然,软件测试中的人工智能还不存在。今天测试中大多数成功的机器学习项目,更像分析生产日志中的一系列错误,以确定是哪些行为产生了这些错误。

 

翻译原文链接:

http://searchsoftwarequality.techtarget.com/tip/Is-artificial-intelligence-in-software-testing-coming-to-you