在测试中实施人工智能。它值得吗?
软件测试中的人工智能方法是一种强大的工具,它甚至比普通的自动化更进一步推动了效率。
为了说明情况,本文中的人工智能指的是其现代状态,而不是理想目标。我们生活在一个狭窄或弱小的人工智能的世界里,它在个别任务上胜过人类,如尝试基本的故障排除方案,比开发人员更快。我们离真正强大的人工智能还有几年或几十年的时间,它几乎能做人类能做的任何事情。这意味着人工智能测试不会在没有人类输入的情况下发生,但你可以将努力程度降到最低。
人工智能的实施如何改善软件测试过程?
软件测试中的人工智能是自动化QA的自然演变。人工智能测试自动化比模仿人工工作更进一步。"机器 "还首先决定何时和如何运行测试。
创新并没有结束。人工智能测试已经是一个东西。根据实施情况,测试将被修改和/或从头开始创建,不需要任何人工输入。如果项目的复杂性使你想知道如何测试,这是一个很好的解决方案--人工智能很可能就是答案。
人工智能的好处
仅仅这一部分就值得写一系列的文章,这取决于定义和其他因素。让我们坚持讨论人工智能测试的好处和人工智能在QA中的其他用途:
- 人工智能自动化测试是一个节省时间的方法:我们已经涵盖了使用测试自动化工具来实现调度奇迹,但让我们把事情提高一个档次。如果你也能只维护有用的测试呢?例如,你可以自动日落或暂停那些从未失败的测试,以调查它们是否确实是浪费时间。
- 测试的一致性可以提高不少: 偶尔会遇到无缘无故失败的测试,这很自然。有可能自动标记这样的测试,让人工智能审查,这将识别一个编码问题或指出你在几个测试中发现的概念性缺陷。
- 测试维护变得不那么麻烦了: 这对于经常为A/B目的每天(如果不是更频繁)调整用户界面的B2C解决方案来说尤其重要。这种小的变化对于模仿用户旅程的测试来说仍然是破坏性的,例如,一个按钮根本不存在了。将人工智能和测试自动化结合起来,意味着你的测试会根据用户界面的变化进行调整,而不需要人工输入。
最佳实践
这里有一些来自处于人工智能测试前沿的公司的试验和错误的建议:
- 知道你在做什么: 在没有充分准备的情况下推动测试自动化是一个巨大的时间消耗。就像自动化测试一样,缺乏一个高级专家来领导,是灾难性的。
- 把你的测试套件整理好 :缺少或不正确的标签、错别字和遗留的数据库都可能歪曲数据,这些数据将被人工智能用来改善你的测试。
- 写下实施人工智能的目标:这包括你希望解决的业务目标(例如,通过更顺畅的用户体验在保留率方面的可衡量的改善),将验证你的人工智能努力是值得的QA目标,以及一些人工智能测试的基准,看看你是否在正确的轨道上。
- 给你的同事提个醒 :将人工智能纳入测试是一个漫长的过程,它可能会影响QA专家的可用性和他们的产出,至少在短期内。你的项目经理、产品负责人和上层管理部门会感谢对这种剧烈变化的提前通知。当然,开发人员也应该知道,特别是如果他们处理项目的单元测试。
- 确保你的测试管理也是创新的:如果你的团队还停留在Excel上做QA,那么AI测试就没有什么用处。你需要一个专门的测试管理解决方案,对第三方人工智能工具友好。
基于人工智能的软件测试自动化的方法
将人工智能纳入软件测试的方法主要来自于最流行的人工智能技术。它们是机器学习,自然语言处理(NLP),自动化/机器人,和计算机视觉。下面是这些技术如何用于QA的一些例子:
- 模式识别采用机器学习来寻找测试和/或测试执行中的模式,可以转化为可操作的见解。如果一个相同的类的问题使多个测试失败,你的人工智能解决方案将要求团队再看一下可能有问题的代码。模式识别也可以用于你的软件的代码本身,以发现和预测潜在的漏洞。
- 如果自动化测试开始变得令人头疼,自愈 功能会纠正它们。摇摆不定的测试最终可以被追踪到问题的路线上。看似不可复制的缺陷会被发现并解决。随着你的项目越来越大,能够自我修复的测试是一个真正的游戏规则改变者。
- 可视化回归测试 使你的软件和对它的测试都处于工作状态。这就是前面提到的调整UI的例子的意义所在。良好的自我修复消除了很多多余的工作,使产品团队对A/B测试有更大的野心,并帮助他们快速响应一些趋势。
- 数据生成 与主要的软件测试工具一起真的很有用。可以采用人工智能在更大的范围内对测试进行参数化,例如,生成大量具有罕见分辨率和元数据的个人资料图片,看用户是否能顺利上传。
用于人工智能软件测试的最佳测试工具
让我们看看采用上述方法的一些工具。
Launchable
Launchable使用模式识别来查看测试失败的可能性。这一信息可用于削减测试套件,消除一些明显的冗余。另外,你可以对测试进行分组,例如,在部署热修复程序之前,只运行最有问题的测试。Launchable最认可的客户端是BMW。
珀西
Percy是一个可视化回归测试工具。它非常适合保持你的UI测试的相关性,帮助你在不同的浏览器和设备上保持用户界面的一致性。谷歌、Shopify和Canva都在Percy的客户组合中。
mabl
mabl是一个整洁的测试自动化平台,具有自我修复功能。它宣扬低代码的方法,但在传统的方式下也可以完全使用。Riot Games、JetBlue以及Stack Overflow和Splunk等IT公司都在mabl的网站上作为客户出现。
Avo测试数据管理
Avo有一个专门的工具来管理测试数据,功能也包括AI数据生成。该解决方案声称可以大规模地模仿真实世界的数据,并在上面进行一些数据发现。Avo被索尼、普华永道以及aqua的客户之一--Tech Mahindra使用。
总结
软件测试中的人工智能方法是一个真正强大的工具,它比常规的自动化更进一步地推动了效率。一些子集可能看起来有点过分(例如,在人们开始给所有东西贴上 "人工智能 "标签之前,数据生成是一件事),但自我修复测试和模式识别是不小的功绩。只要你制定了适当的目标并找对了人,在你的质量保证程序中实施人工智能肯定是值得努力的。
然而,如果没有一个好的测试管理解决方案,将人工智能引入你的软件测试是毫无意义的。你需要一个坚实的测试组织来涉足人工智能,任何认真的努力都会增加杂耍多种人工智能QA工具的复杂性。在你踏上软件测试的人工智能之旅之前,请确保你找到一个好的多合一测试管理解决方案。