近几年,人工智能逐渐兴起,AI 助手、无人驾驶汽车、云端全功能芯片...在媒体领域,机器人写稿、媒体大脑、智能检校等不断涌。
2016年,阿尔法狗崭露头角,2017年5月,阿尔法狗3:0击败世界冠军柯洁,人工智能被推上风口浪尖。2016-2017世界质量报告上提出:在人工智能高速发展的情况下,软件测试领域或许将迎来一个新的时代—人工智能时代。
不过,对于软件测试,人工智能是否能够替代软件测试工程师?人工智能本身如何测试?下面我们就来聊一聊这个问题。
首先,先了解下软件测试的背景
软件测试对于确保使用应用程序客户的满意度是十分必要的。
测试是指在一些特定条件下观察应用程序,且在测试过程中测试人员已经知道要实施相同的门槛和风险。
同时,测试有助于保护应用程序避免潜在的可能会对应用程序和将来的组织造成危害的危险因素。而软件测试的下一步是软件调试,但只有在经过彻底的测试之后才能进行软件调试。
什么是人工智能?
任何一个复杂任务,如果能够被测试者不假思索地解决,都是人工智能的候选之一。
人工智能的一般定义是指,机器能够独立理解环境并执行输入数据,完成智能工作和学习如何自动提高自身工作水平的能力。
具有智能特性的测试工具Appvance IQ
Appvance IQ根据应用程序的映射和对实际用户的活动分析,学习并生成自动化测试脚本,生成的脚本可以准确地表示用户曾经的行为及想要进行的行为。Appvance IQ使用应用程、序蓝图作为被测应用程序的指导,同时使用服务器日志作为实际用户活动的大数据源。
MABL
Mabl 是由一群前 Google 雇员研发的 AI 测试平台,其侧重点是对应用或网站进行功能测试。在Mabl平台上,我们通过与应用程序进行交互来 “训练”测试并进行录制,录制完成后,经训练而生成的测试将在预定时间自动执行。
Test.AI
Test.AI 被视为一种将AI大脑添加到 Selenium 和 Appium 的工具,它以一种类似于 Cucumber 的 BDD 语法的简单格式定义测试。在应用程序中,Test.AI 能够动态识别屏幕和元素,并自动驱动应用程序执行测试用例。
除此之外,Functionize 、Katalon Studio和 Tricentis Tosca等工具也具有智能特性。
为什么在软件测试中我们需要人工智能
将近80%的测试活动是对软件已经进行过的测试的重复。这会消耗了大量的人力和时间。
这种现象在软件测试中十分常见,随着项目的扩展,参数也会增加,从而会导致给测试团队带来额外的工作量,这可能已经超出他们的能力和工作时间的范围之外了。
同时手动测试还会面临可伸缩性的问题,这会需要对多台机器进行管理。这种方法复杂又繁琐。
但是,人工智能却可代替以上方法,可通过以下方式来解决这些问题:
使用人工智能机器,80%的重复性任务可以由人工智能机器人完成,剩下的20%工作可以由人类利用他们的创造力和推理能力去完成。因此,人工智能可以做重复性的任务,如测试数据的数量、回归测试等,而测试人员可以专注于处理类似于系统集成的创造性的和困难的任务。
使用人工智能机器人,测试人员可以重构测试以合并新的参数,这会使得测试的覆盖率增加却不会给测试团队带来额外的工作量。
人工智能可以自动创建测试用例。这降低了使用内置标准的工作级别(LOE)。
AI通过理解用户接受标准自动生成测试代码或伪代码。测试自动化可以节省大量的时间和成本。
人工智能还可以进行无代码测试自动化,它可以在你的web或移动应用程序上自动创建和运行测试,而无需编写任何代码。
由于人工智能机器人可以全天候工作,它们可以在任何需要的时候帮助调试项目,因此测试无需人工干预也可以运行更长的时间。
最后,基于AI的测试也会让测试人员感到困惑。测试人员可能会怀疑AI测试的有效性,要消除这种不信任,测试人员需要掌握不同于传统测试人员所需的技能,他们需要更多聚焦在数据科学技能上,还需要了解一些机器学习的原理。
说到这里,也许有人会问,测试人员的工作会被AI抢走吗?
未来,人工智能会取代软件测试工程师吗?我总觉得答案是,也不是。说是,因为AI bot比较适合那些重复性较强的测试任务,如果测试人员的工作内容重复性较高,无创造性,那么迟早会被AI取代。然而对于那些需要一些创造性和比较困难的测试任务,AI目前还无能为力。
"AI is the new electricity",这是Stanford教授Andrew.Ng对于AI的一个很好的观点,对于软件测试来说,AI是一个工具,一个聪明的助手。而对于测试人员来说,需要拥抱变化,提升能力,这样才能更好地利用AI带来的能量!
下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。
对于软件测试的的朋友来说应该是最全面最完整的面试备战仓库,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你
关注微信公众号【程序员二黑】即可领取Python自动化测试超硬核资源啦