背景:QA和软件测试是许多努力想要入行互联网、IT业的人最喜欢的入门级职业。但随着人工智能在诸多应用领域的快速发展,软件测试被认为或许是下一个被替代的职业。
人工智能的崛起引起了质量保证专家对未来的忧思。人工智能解决方案最终是否会取代人类的专业知识?是否有办法在类似ChatGPT的工具和人类知识之间取得平衡?
在这篇文章中, 软件开发公司QArea的BizDev负责人 Sandra Parker,研究了这些问题,并与ChatGPT来了一场对话,探讨对质量保证行业的潜在影响。
01 ChatGPT如何看待AI在软件测试的应用
新闻业的第一条规则是–准确性,并且要找到源头。在分享我(作者,Sandra Parker)对软件测试中的人工智能的想法和发现之前,我决定采访一下ChatGPT。
是的,我和ChatGPT进行了一场对话,对话的内容如下:
问题1:ChatGPT,人工智能对软件测试的帮助越来越大吗?
答案:由人工智能驱动的工具可以将重复和耗时的测试任务自动化。这可以帮助减少测试所需的时间和资源,提高软件的整体质量。然而,人工智能不是人类测试人员的替代品,而是一种可以补充和增强他们努力的工具。
似乎最后一句话是为了不吓唬人类而写的,所以我(作者)的下一个问题更直接:
问题2:聊一聊GPT,人工智能是否真的可以取代软件测试中的人类专家?
答案:不,在不久的将来,AI不太可能完全取代软件测试中的人类专家。虽然人工智能可以使某些任务自动化并协助测试,但它仍然有局限性,不能取代人类的判断力和创造力。人类测试人员带来了人工智能无法复制的独特视角和解决问题的技能,他们在验证测试结果的准确性、解释复杂场景和做出决定方面也发挥着关键作用。
嗯,这听起来更让人放心。现在,我有了动力和人工智能证实的背景来讨论软件测试中人工智能的利弊、风险和机会。
02 如何利用AI改善软件测试
有一个可预测的共识,即人工智能有助于使流程更快、更有效。让我们在关键的QA和测试流程中,看看AI工具如何发挥它的作用。
1.测试用例生成。人工智能算法可以自动生成测试案例,节省时间并减少人为错误的可能性。他们还可以创建更多的测试,增加测试过程的整体覆盖率。
2.测试优化。人工智能可以根据风险、复杂性和使用频率来确定测试的优先次序,确保首先运行最关键的测试。这对金融科技等行业有额外的好处,因为它们的开发速度快,发布速度也快。
举例:人工智能可以分析软件代码和使用模式,以确定哪些测试最有可能发现错误和其他问题,并将这些测试优先执行。
3.测试数据管理。人工智能工具可以通过为测试案例生成数据集和保持跨测试的数据一致性来管理测试数据。这又是一个人工可能犯错,并付出高昂代价的领域。
4.缺陷预测。人工智能算法已经被用于灾难预测解决方案中。在这里,他们可以根据过去的数据预测缺陷发生的可能性,强调最高风险的领域。
举例:人工智能可以帮助测试中的缺陷预测,QA是在一个大型的软件应用中,有许多成千上万行的代码和复杂的要求。人工智能可以用来分析代码、需求和测试结果,以便在开发过程的早期识别潜在的缺陷。
5.测试自动化。人工智能可以用来实现测试过程的自动化,使测试人员解放出来,专注于其他任务,如测试设计和分析。
6.持续集成和持续部署(CI/CD)。人工智能算法可以被集成到CI/CD管道中,以帮助确保以最大的效率和准确性完成构建和部署。
7.根源分析。人工智能算法可用于分析测试结果,并精确指出故障的根本原因,使测试人员能够更快速、有效地修复缺陷。
对话结果分析,人工智能可以分析测试结果并确定趋势,使测试人员能够对被测软件的状态做出数据驱动的决定,并改变他们的测试策略或整体QA战略。
03 软件测试中的AI有哪些缺点?
如果你觉得前面的部分证实了你可能很快就会失业…,至少现在是这样。以下是人工智能已经并将在相当长的时间内体现出来的缺点。
1.缺少创造力。人工智能算法在生成考虑边缘情况或意外情况的测试案例时遇到很大问题。他们需要帮助解决不一致和偶发的情况。
2.取决于训练数据。不要忘记,人工智能只不过是一个算法,一个被输入数据进行操作的数学模型。它不是自然的力量或自然发展的结果。因此,人工智能产生的测试案例的质量取决于用于训练算法的数据的质量,这些数据可能是有限的或有偏见的。
3.需要 “完美的条件”。我打赌你之前在工作中经历过一些情况:项目文件几乎没有,用例模糊不清,不切实际……,遇到这些情况人工智能就无能为力了,它的工作质量的好坏将完全取决于转化为可量化数据的输入和背景的质量。
4.对软件的理解有限。我们倾向于赋予人工智能和它对世界的理解以超能力,事实上,它目前确实非常有限。可能对被测试的软件没有深刻的理解,这可能会导致错过重要的场景或缺陷。
5.需要熟练的专业人员来操作。例如,将测试策略与人工智能驱动的CI/CD管道整合在一起,设置、维护和故障排除都很复杂,因为它需要高级技术技能和人工智能算法和技术的知识。我们现在使用的尝试和真正的方法,多年来可能保持更便宜和更容易维护。
04 AI驱动的测试有关的威胁?
人工智能不能做好的事情和即使它完美地完成工作也会出错的事情之间是有区别的。
1.优先级的偏见和缺乏透明度
越来越难以理解人工智能算法是如何做出优先级决定的,这使得很难确保测试是以道德和公平的方式进行优先排序。在用于训练AI算法的数据中,偏见会影响AI算法,这可能导致测试优先级的倾斜。
举例:假设训练数据包含偏见,例如来自某个特定人口群体的测试案例数量不成比例。在这种情况下,算法可能会以一种不公平地偏向或不利于某些群体的方式来确定测试的优先次序。例如,训练数据中男性的测试案例比女性多。人工智能算法可能会假设男性是软件的主要用户,女性是次要用户。这可能导致不公平或歧视性的测试优先级,这可能对代表不足的群体的软件质量产生负面影响。
2.对人工智能的过度依赖
缺乏人的决策会降低测试方法的创造性,将边缘案例推到一边,最后可能会造成弊大于利。缺乏人的监督会导致不正确的测试结果和遗漏的错误。增加人类的监督可能导致维护的开销。
举例:如果团队仅仅依靠人工智能驱动的测试自动化工具,他们可能会错过可能对软件功能和用户体验产生重大影响的重要缺陷。人类利用使用类似解决方案的整个背景来捕捉不一致的地方。AI只依赖于有限的数据和数学模型。人工智能越先进,检查结果的有效性就越困难,过度依赖的风险就越大。这种对人工智能的过度依赖会导致错误的安全感,并导致软件发布时出现无法预料的缺陷和问题。
3.数据安全相关的风险
测试数据通常包含敏感的个人、机密和专有信息。使用人工智能进行测试数据管理可能会增加数据泄露或侵犯隐私的风险。
举例:亚马逊改变了它的程序员和测试人员在使用人工智能生成的提示时应遵循的规则,因为据称有数据安全漏洞。据规定,ChatGPT的回应方式表明它可以访问亚马逊的内部数据,并根据要求与全球用户分享。
05 那么,测试领域的AI将发生什么?
如果你是一个手动QA的初学者–你最好赶紧投资你的技能。你现在做的任务越不专业、越容易自动化,人工智能算法就会越快地替代你的工作。
AI自动化是QA行业的一个必要的和期待已久的发展。它将不可避免地接管具有大数据量和成千上万行代码的任务。它将需要人类的监督和维护,而公司将再次面临平衡成本的必要性。
我相信安全要求会加强,测试人员和开发人员对人工智能的使用对客户来说会变得更加透明。最终,企业要对其解决方案的数据安全、保密性和性能负责。更强的安全要求将导致新的角色和检查点:人类监督人工智能是必须的,而且人工智能越先进,人类就应该越专业。
对于国际化公司来说,道德文化和无偏见的数据输入问题将是最紧迫的问题之一,特别是考虑到本地化方面。我想,具有额外的当地本土化认知和DEI相关教育的QA专家将被大量需求。
最后,以下是Chat GPT的看法:
在我们公司,我们早在2022年就开始应用基于人工智能的工具进行测试自动化,就目前而言,我可以确认它加快了进程,但这完全取决于你如何勤奋地 "教 "它。我们将继续测试人工智能,使我们为客户的工作更快、更好、更有成本效益,因为现在可能是可怕的,但人工智能是未来。
最后:为了回馈铁杆粉丝们,我给大家整理了完整的软件测试视频学习教程,朋友们如果需要可以自行免费领取【保证100%免费】