目前绝大多数基于人工智能的软件测试都处于操作性阶段。最基本的操作测试包括创建模仿测试人员执行数百次的例程的脚本。这个例子中的“AI”远远不够智能,它可以帮助缩短脚本创建、重复执行和存储结果。
过程性 AI 是操作性 AI 的一个更成熟的版本,测试人员使用过程 AI 进行测试生成。其他用途可能包括测试覆盖范围分析和建议、缺陷根本原因分析和工作量估计,以及测试环境优化。过程 AI 还可以促进基于模式和用法的合成数据创建。
过程性 AI 的好处显然易见,它提供了一双额外的“眼睛”,以抵消和对冲掉测试人员在设置测试执行策略时所承担的一些风险。在实际应用中,过程性 AI 可以让修改代码后的测试变得更容易。
手动测试,经常会看到测试人员重新测试整个应用程序,查找代码更改时的意外后果。
另一方面,过程性 AI 可以建议对单个单元(或有限影响区域)进行测试,而不是对整个应用程序进行大规模重新测试。
在这个级别的人工智能,我们发现在开发时间和成本方面有明显的优势。
然而,目光切换到第三阶段——系统性 AI 时,画风就会朦胧起来,因为,未来可能会成为一个滑坡的、无回报的承诺而已。
3、不靠谱的系统性 AI
系统性(或者说完全自主的) AI 测试,之所以不可能(至少目前不可能) ,原因之一是 AI 将需要大量的培训。测试人员可以确信过程 AI 将建议一个单元测试来充分保证软件质量。然而,对于系统 AI,测试人员无法高度自信地知道该软件将满足所有需求。
如果这个级别的人工智能真的是自主的,它将不得不测试所有可以想象到的要求——甚至是那些人类没有想象到的要求。然后,他们需要审查自主 AI 的假设和结论。要证实这些假设是正确的,需要花费大量的时间和精力,才能提供高度可信的证据。
自主软件测试永远不可能完全实现。因为人们不会信任它,而这就相当于失去了实现完全自主的目标与前提。
4、人工智能需要调教