测试必须选择“AI all the things!”或“No AI for you!”?No,AI 如狗!

我们都曾经听过或读过一些聪明人士关于AI用于软件测试的知识,但是对此想法有很多困惑。

首先,我要说的是,我对数学和编码没有足够的热情,以至于对AI的直觉和技术方面不够关注。我认为自己是一个对技术概念有很好的掌握,并且可以使用多种编程语言编写平庸代码的软件测试员。我相信软件测试是由人来完成的,并且我相信测试是通过探索和实验来了解、评估产品的过程。但是我也接受自动化和工具。

AI 如狗!

让我解决你可能会问的一些问题,以便我们所有人都能更好地了解AI如何适合测试的。

我需要成为天才才能使用 AI 进行软件测试吗?

如上文所述,在AI的内部运作方面,我绝不是AI专家。信不信由你,由于我在狗训练方面的背景,我发现自己喜欢AI。 

认真地说,让我们超级简化一下,将AI机器人与狗进行比较。如果你曾经养过狗或小狗,我相信你有过要求他们坐下来,只让他们用困惑的脸抬头看着你的经验。所以你掏出了点心,当他们的屁股触地时,你就奖励了他们。他们很快明白“屁股触地”等同于奖励。然后,你开始在上面贴上标签。你会说,“坐下”,如果屁股触地,他们会得到一个奖励,所以“坐下”意味着屁股触地。Got it!

同样,AI机器人以一种混乱的方式爬行你的应用程序,尝试不同的路径和探索不同的屏幕。只有当机器人的行为开始获得“奖励”时,它们才会开始学习我们要求它们做的事情。一旦它们探索了应用程序的一部分,随后获得了奖励,我们标记了该操作,然后它们以可重复的方式执行该操作。就这么简单!

你不需要成为一名兽医就可以训练狗,但是对狗的思维方式和动机有一个大致的了解确实有帮助。同样,你无需能够创建AI机器人来理解如何使用它们进行软件测试。但是,你应该知道如何测试软件,并对AI的工作原理有足够的了解,以便正确使用它。

AI 如狗!

AI会取代我成为测试员吗?

继续上面的比喻,让我们直接说一个事实,那就是仍有训犬师。狗还没有学会,似乎也没有真正的意愿训练彼此如何听从指挥。部分原因是他们不能用我们能听懂的语言交流。

机器人的相似之处在于它们尚无法自我训练。即使它们可以,也缺乏理解软件测试所需的上下文和意图的能力。因此,如果你认为可以雇用很多AI机器人来取代你的测试人员,或者如果你认为自己将因AI机器人而失去工作,那么大错特错。

AI在我的测试策略中适合哪些方面?

如果你问自己这个问题,我给你点赞。关于AI,我一直注意到的进入障碍之一是二进制的想法:你要么必须选择“AI all the things!” 或“No AI for you!

什么都离不开事实。正如我已经解释的那样,AI不会取代软件测试员。我还想说的是,AI不能也不应该做一切事。

AI自动化 是可用于软件测试的工具。它们不能自己测试软件,而且很容易被滥用。而是应使用它们来补充你的测试。就像私人助理一样,他们会执行我们没有时间(或意愿)去做的事情,这使我们有时间专注于重要的事情。

许多公司都试图“使所有事情自动化”。我们中的许多人仍在尝试从使所有事情自动化的过程中清理混乱。有些事情不应该自动化。安吉·琼斯(Angie Jones)对此进行了精彩的 演讲和授课。就像自动化一样,AI不应该用于“AI all the things!” 你可以涉足众所周知的AI水域(即这水太深,适可而止)。

以训练狗类比为基础,你不会让你的狗开你的车。我不会要求AI进行复杂的组合自动化。

你可能会想:“但是等等,AI很聪明,我不应该让它做那些困难的事情吗?” 答案是,你绝对可以让它做那些困难的事情。但是那些你必须反复做的事情呢?你知道,这些东西令人无聊,高度可重复并且需要测试人员花费多个小时吗?那真的是对测试人员大脑的最佳利用吗?你雇用他们只是每天按下按钮,还是你雇用他们做他们擅长做的事,这是测试?

我供职的一家公司花费大量资金支付我的测试团队在生产环境中进行冗余UI检查。这是我们大多数人都不喜欢的令人麻木的工作。使用AI,我们能够持续运行这些检查,并为开发和运营提供快速反馈。最重要的是,除此之外,我们使用的AI服务还提供了包括CPU使用率、内存使用率和性能在内的指标。因此,在运行自动化的同时,我们能够对一些性能指标进行趋势查看、分析,而无需进行额外的特定负载和性能测试。这是解决我们问题的一个非常有效的方案。

AI的最佳用途可能只是处理测试人员不想做的所有事情。如果让机器人执行简单、可重复的任务,则可以让测试人员进行实际测试。所以,与其害怕每天上班去按按钮,不如动动脑筋。

现在你有了一个机器人,它正在做一个测试人员以前做过的事情,除了更快更高效之外,你还有一个快乐的人类热情地测试。恭喜你,你刚刚提高了产品覆盖率!

这就是为什么需要将AI纳入测试策略的原因,就像将自动化纳入测试策略一样。

总之,AI和人类可以协同测试软件。使用AI进行软件测试不一定非得是个天才,你只需要聪明一点就行了。AI不是软件测试的灵丹妙药,也不应该被当作灵丹妙药使用。通过战略性地使用AI来补充其他测试工作,你可以大大提高产品覆盖率。而且,如果你使用AI来完成简单、可重复的任务,则可以让测试人员专注于他们擅长的工作:测试!从而提高他们的士气。

译自 Janna Loeffler 的 How Humans and Bots Can Work Together to Test Software



留言