您与您最喜欢的应用程序之间的每一次成功交互都是QA团队共同努力的结果。您与喜爱的应用程序的每一次成功互动都是质量保证(QA)团队的成果。这些孜孜不倦的错误猎手确保全球移动设备用户满足日常需求的应用程序的每个方面都在每次发布和更新时顺利运行。当您被早上的闹钟唤醒、查看天气或向所爱之人发送消息时,我们必须感谢这些通常是默默无闻的英雄。当团队的努力失败时,他们肯定会听到许多用户毫不犹豫地在流行(且非常明显)的评论网站上提供负面反馈。现代移动应用程序用户(也就是现在我们几乎所有人)的期望是完美,QA团队的主要目标是确保每个部署都没有错误。错误和问题的存在会很快使应用程序沉没。不幸的是,确保无错误的体验绝非易事。而且它只会变得更加复杂。当今的软件开发世界变得越来越复杂,针对这种复杂性产生的许多潜力和场景进行测试意味着测试本身变得越来越复杂和资源密集。鉴于移动应用程序开发的历史,应用程序只会变得更加复杂并且需要更高级和更频繁的测试是非常合理的。但一定要这样吗?我们注定需要越来越多的员工和越来越大的QA团队吗?1980年代:手动测试让我们花点时间考虑一下我们是如何走到这一步的。直到最近——“哇——我想这真的是很久以前的1980年代了”——软件QA团队严重依赖手动测试他们的设备以确保推向市场的产品表现良好。那要简单得多在这个时代,设备的功能和活动场景要少得多,因此手工编码是一种足够的测试方式。虽然繁琐的工作在彻底执行时可能会花费很多时间,但手动测试对测试人员来说效果很好。但是技术作为一种不断发展和改进的野兽,以自动化的形式迎来了一场变革,极大地改善了测试过程。软件不断进步并变得更加复杂。1990年代–2010年代:编码测试自动化在接下来的几十年里,测试的进步使QA测试人员无需实际处理测试用例。他们不再需要在成堆的意大利面条代码中手动查找错误。他们在解决软件问题方面有了新武器:大规模手动测试已经变得不切实际,如果任何QA团队要在合理的时间内彻底测试潜在的版本,他们需要按以下方式执行测试脚本:一个自动化工具。那么,复杂性战争赢了吗?不完全的。最好不要将自动化测试视为一种革命性的创新,而应将其更多地视为与软件不断发展的复杂性进行军备竞赛的又一步。时间在流逝,但地平线上还没有明显的胜利。随着移动应用程序越来越受欢迎并成为我们日常生活中的核心工具,自动化测试一直在失势。幸运的是,一场期待已久的变革即将来临,一场真正的革命。2020年代:无代码测试自动化直到最近,QA测试团队的困境确实变得非常可怕。为了确保高质量的产品发布,自动化测试需要越来越复杂的代码工具,这意味着QA团队需要将越来越多的程序员专门用于测试,而不是其他任务,例如生成新功能。这不仅成本越来越高,而且还意味着将发布日期越来越往后推。但另一种选择,即灾难性的发射,可能要昂贵得多(正如许多备受瞩目的失败发射所证明的那样)。但不可避免的事情发生了。根据抽象原则——基于接口的表示为极其复杂的过程铺平了道路(例如,想想你正在阅读的文章后面隐藏的1和0)——许多专家早就预示着一个新的抽象层,一个A“无代码革命”在过去几年确实取得了成果。最近出现了许多平台,允许跨各个行业的无代码解决方案。无代码革命的一个更明显的例子是真正的所见即所得网站编辑器(想想Squarespace或Wix)的流行,而在不太明显的软件测试领域,我创立的公司Sofy是一个独特的平台,它提供无-移动应用程序代码测试。无代码革命通过让非专家处理复杂任务成为可能,从而让专家有时间处理其他任务,从而彻底改变了复杂任务。因此,在不久的将来,我们无疑会看到越来越多的面向各个行业的无代码解决方案。2025?真正智能的自我测试软件尽管如此,无代码革命只是事物计划中的又一步,我相信软件测试的下一步是自我测试的软件。我并不孤单:就像无代码革命一样,自我测试软件多年来一直是预期的现实。以技术的变化和发展速度,可以想象到2025年能够在无需人工干预的情况下测试AI操作的智能测试自动化(即自测试软件)将显着扩展,这一点也不荒谬。目前,智能测试的有限实施依靠机器学习(ML)和人工智能平台来提高软件发布的速度和质量。这允许快速和连续的测试(从而增加投资回报率)。此外,AI可以复制人类智能,而ML允许计算机在没有人为干预的情况下学习。人工智能和机器学习采用基于深度学习的算法来访问数据,并通过提取模式从中学习,以实现更有效的调试和决策。此外,这项技术允许QA团队跨各种设备和不同的外形规格执行许多测试。不是几天,而是几个小时。现在是一场革命。没有代码仍然需要人类;人不是机器:他们会犯错误。即使没有代码——虽然大大减少了——人为错误仍然是严重问题的一个因素。考虑手动测试导致的资源、时间和精力的过度使用。智能测试可自动生成和维护测试用例,并产生可概括为提高生产力和输出质量的宝贵收益。但要实现智能测试自动化,必须首先结合以下要素:从人类输入中学习:当机器执行测试时,它必须像人一样行事。它必须了解人类需要和想要什么,以及人类如何使用设备。正如我们所讨论的,这可能很难预测,复杂的应用程序意味着复杂的测试场景和模式。然而,必须从这个有利的角度理解和操作机器。从实际使用中的生产数据中学习:机器必须了解应用程序在不同生产环境中的使用情况。这包括了解可能正在使用的设备、设置它们的语言和它们的使用流程,包括菜单、屏幕和操作的使用。训练数据:就像自动驾驶汽车(尚未破解的坚果)一样,机器学习需要训练数据来帮助勾勒出软件模式。这三者必须内化并针对每次代码更改进行彻底测试。然后必须以无缝和智能的方式对它们进行聚合和优先级排序。这是一项不小的壮举,但我们将继续努力迈向下一步。我们没有。在我们继续前进之前,必须完成这些步骤中的每一步,但这实际上只是时间问题。自测试软件只是第一步:我预测我们可以期待其他刚刚进入市场的无代码示例转向机器学习。我相信根据某些用户指定的参数生成整个网站成为现实只是时间问题。今天,无代码革命终于到来,但随之而来的是另一场革命的开始。
