本文转载自公众号“读芯术”(ID:AI_Discovery)
人工智能对于我们生活的影响越来越显著,改变着多个行业多个领域,影响到日常生活的方方面面。尤其在人工流程自动化领域中,人工智能发挥了突出的作用。因此,本文将研究人工智能如何影响软件测试领域,尤其是自动化测试领域。
现存挑战
什么是软件测试?软件测试是对开发的程序的性能进行评估的过程,以检查其是否符合客户的要求,并在投入使用前检测它是否存在错误从而加以完善。
每当开发人员添加新代码,都必须进行新的测试。质量监管人员(QAs)需要耗费大量时间来确认新代码不会破坏现有代码库。而人工执行回归测试非常耗时,并且会在很大程度上增加QAs的负担。
传统的QA检测方法包括检查一个任务列表,以确保软件按预期的方式工作。一开始只需要测试几个功能时,这还是一个可行的任务;但随着功能的增加,QAs面临着在截止日期前完成全面测试的困难。一个应用程序越复杂,就越难确保它得到完整的测试覆盖。
随着人工智能的出现,简化测试过程成为可能。此外,新软件和产品在竞争压力下必须加快发布,延长测试周期并不是智举。因此,只能测试得更聪明而不是更难,别无选择。
人工智能如何克服这些挑战
人工智能在软件测试工具中的应用集中在简化软件开发生命周期(SDLC)上。通过应用推理、问题解决和机器学习,人工智能可以在开发和测试阶段中促进自动化并减轻冗杂的工作任务。
例如,假设你正在运行一个自动化框架来测试自己的项目。大多数情况下,你不知道要运行哪些测试,因此会运行所有测试或预定的一组测试。
那么,如果一个支持AI的机器人可以检查当前的测试状态、最近的代码更改、代码覆盖率和其他指标,决定要运行哪些测试,然后再运行它们呢?这样的软件可以有效地代替开发人员/测试人员参与决策过程。
人工智能和机器学习应用推理和问题解决方案来自动化和改进测试。软件测试中使用人工智能有助于减少耗时的手动测试,使团队得以专注于更复杂的任务,例如创建创新性的功能。以下是利用人工智能优化软件测试过程的几个方面:
他们教系统学习源分析并在将来应用知识。通过这种方式,AI测试在不断重复中得出更准确的结果。因此,使用人工智能技术进行数据分析降低了人为错误概率。
基于人工智能的软件测试现状
目前,实践中已经开始使用自主和智能代理(称为“测试机器人”)来自动化诸如应用程序发现、建模、测试生成和故障检测等活动,并结合机器学习技术来实现测试机器人,包括但不限于决策树学习、神经网络和强化学习。
与传统的测试自动化工具和框架不同,机器学习允许测试机器人在不确定的条件下运行。过去十年形成的人工智能驱动的测试方法包括以下示例:
2014年以来,提供AI驱动的测试服务的供应商数量激增。这些工具供应商中的大多数是初创公司,他们主要针对移动应用程序系统级测试,这一主题在业界引起了广泛关注。
观察AI功能最简单的方法是使用各种工具和框架,以下是一些很受欢迎的AI驱动的测试工具:
人工智能会“偷走”你的工作吗?
关于此问题的当前比较流行的观点是,人工智能不会取代人,但会帮助人进行QA测试。支持这种观点主要理由是,人工智能在软件开发中的使用仍处于起步阶段,其在更先进的领域中自主水平远低于所见,如人类仍在主导的自动驾驶系统领域。但是可以肯定的是,AI协助人类的下一步就是让AI掌握整个运作过程。这只是时间问题。
众所周知,技术的增长,尤其是AI和机器学习的增长是指数级的,要预测未来的AI能力并不容易。AI接管测试工作的那一天可能比预期到来的要早,在此之前,你得做好准备。
继印度、美国、英国和澳大利亚之后,端到端加密似乎受到了欧盟的紧密关注。《金...
虚假诉讼不仅侵害他人合法权益,更严重破坏社会诚信,损害司法公平、公正和公信...
1.醉过才知酒浓,爱过才知情重。你不能做我的诗,正如我不能做你的梦。 2.我深...
消除老年人数字鸿沟的呼声不减,老年人也直面接入互联网的新需求。近日,智能搜...
乔布斯入场的时候,身后摆着皮沙发和圆桌茶几。 你很难不去注意这奇怪的发布会陈...
各大APP的新春红包活动正进行的如火如荼,这不手机QQ也来凑热闹了,这次手机QQ为...
正式商用一年来,我国5G发展驶入快车道。截至9月底,全国已开通5G基站69万个,提...
【51CTO.com快译】 亚马逊网络服务(AWS)宣布了其基于云的机器学习平台SageMake...
今年10月,DCByte与Knight Frank合作发布了《数据中心报告》。该报告是对欧洲十...
熟悉VR头显的用户应该都知道一种所谓的防护系统。这是因为VR头显会用数字内容取...