残酷的事实是,测试人员、测试工程师和开发人员都花了太多时间等待。即使团队走向持续的一切(测试、集成、交付和部署),交付过程仍然是低效的。浪费太多,复杂太多,瓶颈太多,等待太多。所有这些都让测试人员和开发人员感到沮丧。
(资料图片)
我们等待是因为软件交付过程效率低下,无论您使用的是自动化管道还是瀑布过程。正如你已经猜到的,任何过程都有瓶颈,造成软件交付瓶颈的最大元凶就是测试。
20世纪90年代,软件测试真正成为一门学科。尽管自动化和工具技能有所提高,但从根本上来说,它们没有太大变化。我们继续以同样的方式操作,因为要测试的应用程序仍然是一个黑盒,作为测试人员,我们通常不会偷看里面。
我们建立了一个广泛的测试网络,因为我们认为这是一种捕捉错误的方法。现实是,网上的洞通常太大,缺陷会逃逸,或者我们可能会把网撒错方向。我们依赖越来越多的测试套件来证明非回归性和验证新特性。运行这些不断增加的测试套件的有效方法是提高自动化程度。然而,有一件事会导致进一步自动化本身的低效率。花费在维护测试上的成本和精力超过了自动化本身的好处。这是我们需要注意的少即是多的原则。很多情况下,多可以少。
如果我告诉你,在任何测试阶段(单元、集成、系统和用户接受)的每次迭代中,90%以上的测试都被浪费了,我该怎么办?你可能不会感到惊讶,因为现代应用程序的复杂性和缺乏理解,也因为未经测试的代码区域的差距,应用程序通常被部署到生产中,这将带来质量风险。
人工智能可以解决这个问题。人工智能可以照亮测试。把AI从大网拖网改成鱼骨更有意思!
AI如何照亮测试?
人工智能的字典定义是:“能够执行通常需要人类智能的任务,如视觉感知、语音识别、决策和跨语言翻译的计算机系统的理论和发展。”
当AI有很多数据点可以分析,发现趋势,做出预测,确定问题的解决方案时,其效果是最好的。比构成当今复杂应用场景的数百万行代码和数千个测试用例更好的输入。例如,谷歌浏览器包含670万行代码;相当于120,600页的印刷文本。人们如何开始分析和理解这些数据,并立即决定将QA的时间和精力放在哪里来构建测试,并在每次构建新版本时有选择地运行有效的测试?
因此,人工智能和质量分析正在成为质量检验的规则改变者。通过了解代码是如何执行的,并观察与被测应用程序的交互,可以在这些交互中收集数百万个数据点。然后,AI可以在几秒钟内处理数据,并将数据转化为可行的见解,以提供高质量的分析并提出建议。这些见解可以包括应该在哪里进行测试投资来填补质量风险,以及应该进行什么具体的测试执行来充分验证对应用程序所做的具体更改。
1通过人工智能降低质量风险。
1即使有连续的交付管道,应用程序也必须至少经历三个测试阶段才能进入生产阶段。虽然大多数开发团队使用代码覆盖工具进行静态代码分析,但是很少有交付团队知道如何在不同的测试阶段执行和验证实际代码。这种不了解会导致质量风险。由于缺乏测试执行范围和适当的验证,任何测试空白都可能导致避免缺陷。
1通过了解应用程序中每个交互和每个测试的“足迹”,人工智能可以处理数百万个数据点,以显示应用程序的最高风险区域,这些测试差距陷阱位于何处,并可以指导资源的优先级排序,以插入应用程序差距。
1通过AI减少测试执行时间。
1现实情况是,在任何一个回归测试周期中,你都不会在待测试的代码中发现超过99%的缺陷,这主要是因为应用程序的代码和逻辑流程在当前的构建期内没有发生变化。如果是,为什么要花时间一直运行所有的测试?如果您可以运行基于人工智能和质量分析的测试子集,您可以将测试时间和承诺的部署时间减少90%以上。
1AI可以更好地理解每个测试周期应该进行哪些测试。使用从以前的测试执行中收集的数据,人工智能可以识别哪些代码已经改变,并根据应用程序风险自动定义测试套件。这可能包括基于最近更改选择的测试;测试应用程序的哪些部分最常用于生产;哪些代码更改非常复杂,需要特别注意;哪些测试最有可能失败,因此应该在测试周期开始时更频繁地运行它们。
1这种“目标测试”方法将更快地发现缺陷,并为交付团队提供更快的反馈循环。相反,当发现缺陷时,它会为测试人员提供更直接的满足感。
标签: