当前位置: 首页 > 科技观察

人工智能会“偷走”软件测试人员的工作吗?

时间:2023-03-18 12:14:51 科技观察

本文转载自公众号《读书芯》(ID:AI_Discovery)人工智能对我们生活的影响越来越显着,改变着多个行业和领域,影响着日常生活的方方面面。尤其是在人工流程自动化领域,人工智能发挥了突出作用。因此,本文将探讨人工智能如何影响软件测试领域,尤其是自动化测试领域。现有挑战什么是软件测试?软件测试是对开发的程序进行性能评价,检查其是否满足客户要求,并在投入使用前检测是否存在错误,从而加以改进的过程。每次开发人员添加新代码时,都必须进行新测试。质量保证员(QA)花费大量时间确认新代码不会破坏现有代码库。手动进行回归测试非常耗时,并且会大大增加QA的负担。传统的QA检查方法涉及检查任务列表以确保软件按预期工作。当一开始只需要测试几个功能时,这是一项可行的任务;但随着功能的增加,QA面临着在截止日期前完成全面测试的困难。应用程序越复杂,就越难确保其具有完整的测试覆盖率。随着人工智能的出现,可以简化测试过程。此外,新软件和产品在竞争压力下必须快速发布,延长测试周期也不是明智之举。所以别无选择,只能更聪明地测试,而不是更难。人工智能如何克服这些挑战人工智能在软件测试工具中的应用侧重于简化软件开发生命周期(SDLC)。通过应用推理、问题解决和机器学习,人工智能可以在开发和测试阶段促进自动化并卸载繁琐的任务。例如,假设您正在运行一个自动化框架来测试您自己的项目。大多数时候,您不知道要运行哪些测试,因此要么运行所有测试,要么运行一组预先确定的测试。那么,如果启用AI的机器人可以检查当前的测试状态、最近的代码更改、代码覆盖率和其他指标,决定运行哪些测试,然后运行它们呢?这样的软件可以有效地代替开发人员/测试人员参与决策过程。人工智能和机器学习应用推理和问题解决来自动化和改进测试。在软件测试中使用人工智能有助于减少耗时的手动测试,使团队能够专注于更复杂的任务,例如创建创新功能。以下是使用人工智能优化软件测试过程的几个方面:提高准确性——我们必须承认,即使是最有经验的QA工程师也会犯错误。数据量太大,测试人员在软件质量检查时难免分心,忽略一些重要的缺陷。这就是人工智能和机器学习技术发挥作用的地方。他们教系统学习源代码分析并在未来应用这些知识。这样,AI测试在反复迭代中得出更准确的结果。因此,使用人工智能技术进行数据分析可以减少人为错误的可能性。加快流程-AI无需像测试人员那样手动处理数千个代码,而是可以快速排序日志文件,在几秒钟内扫描代码并在更短的时间内检测到错误。通过将AI纳入重复测试,QA工程师可以专注于测试新功能或专注于软件的重要部分。更加自动化——人工智能程序可以随着代码的改变而进化。他们可以适应并学习识别新功能。当AI机器人识别出代码修复时,可以对它们进行编程以判断它是新功能还是代码更改中的某些错误。正确理解客户需求——在软件开发过程中,最重要的是能够理解客户的实际需求。人工智能可以检测相似的网站和应用程序,以确定哪些因素有助于赢得目标受众,还可以帮助研究大量竞争产品以确定它们的优势。通过正确了解客户的需求,他们可以创建测试用例以确保产品在实现这些特定目标时不会出现故障。基于人工智能的软件测试现状目前,自主智能代理(称为“测试机器人”)已在实践中用于自动化应用程序发现、建模、测试生成和故障检测等活动,并结合机器学习技术来实施测试机器人,包括但不限于决策树学习、神经网络和强化学习。与传统的测试自动化工具和框架不同,机器学习允许测试机器人在不确定的条件下运行。过去十年开发的人工智能驱动测试方法包括以下示例:差异测试——比较应用程序版本、对差异进行分类并从分类反馈中学习。视觉测试–使用基于图像的学习和屏幕比较来测试您的应用程序的外观。声明式测试——以自然或特定领域的语言指定测试的意图,并让系统确定如何执行该测试。自我修复自动化-当UI更改时自动更正测试中的元素选择。自2014年以来,提供AI驱动测试服务的供应商数量呈爆炸式增长。这些工具供应商大多是初创公司,他们专注于移动应用的系统级测试,这一话题在业界引起了广泛关注。观察人工智能能力的最简单方法是使用各种工具和框架。以下是一些流行的AI驱动测试工具:人工智能会“偷走”你的工作吗?目前关于这个问题的流行观点是,人工智能不会取代人,而是会帮助人进行QA测试。支持这一观点的主要论据是,人工智能在软件开发中的应用仍处于起步阶段,其在更高级领域的自主水平远低于人们所见,例如人类仍占主导地位的自动驾驶系统领域.但可以肯定的是,人工智能辅助人类的下一步,就是让人工智能掌握整个操作过程。这只是时间问题。众所周知,技术的增长,尤其是人工智能和机器学习的增长呈指数级增长,预测人工智能未来的能力并不容易。人工智能接管测试的那一天可能会比预期来得更快,在那之前,你必须做好准备。