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

自动化测试提升AI和ML的五种方法

时间:2023-03-23 01:21:52 科技观察

【.com快译】近年来,人工智能(AI)和机器学习(ML)技术蓬勃发展,例如:自动驾驶汽车、机器人和亚马逊的Alexa等应用程序已经深刻地影响和改变了我们的日常生活。当然,随着此类智能应用程序和设备让我们的生活变得更加轻松,对优质软件产品的需求越来越大,对产品缺陷的容忍度也越来越低。一旦出现功能或性能问题,用户会迅速转向市场上类似的替代产品。因此,面对如此苛刻的需求,应用开发企业一方面要根据复杂的服务流程不断迭代软件结构,另一方面要以更快的交付速度发布高质量的软件。这就是人工智能和机器学习发挥作用的地方。他们可以通过高度自动化的测试手段,为企业提供速度更快、质量更好、效率更高的合适的端到端解决方案。因此,开发团队可以在有限的时间内创建专有的测试用例,避免从头编写测试脚本,并尽可能多地覆盖关键和高风险的测试场景。可以说,利用AI和ML进行自动化测试,正在逐渐成为整个开发测试过程中不可或缺的一部分。接下来,我将与大家探讨如何利用AI和ML带来的自动化智能测试技术,解决传统测试中的痛点,协助项目组降低测试工作量,提高测试覆盖率。1、自动化测试的自愈技术自动化测试中的自愈技术可以有效解决测试脚本的维护问题。通过基于动态定位的策略,此类自动化脚本在对象属性(包括名称、ID、CSS等)发生变化的每个阶段都会产生中断,从而使程序能够自动检测各种变化并做出响应,而无需人工干预。接下来,动态修复它们。因此,项目团队可以在其敏捷测试中使用左移方法来加快产品交付并提高生产率。例如:当开发者对HTML页面中的各种对象标识符进行更改时,AI会自动修正测试用例中对应的UI标识符。也就是说,AI引擎会在属性发生变化时及时发现此类元素,然后根据源代码的变化进行相应的修改。可以说,这种自愈技术节省了开发者大量花在识别变化和对UI做出相应改变上的时间。在具体的应用中,基于AI的测试平台会按照端到端的处理流程,利用AI引擎找到因对象属性变化导致的测试项中断,然后依赖自我修复技术提取整个DOM以深入研究每个属性。由于每个测试用例都是自动运行的,因此流程可以使用动态定位策略进行相应的更改,而无需任何人为干预。2.AutomaticallygeneratetestscriptsAutomaticallygeneratetestscripts过去,当我们需要开发自动化测试脚本时,往往要求开发人员具备Java、Python、Ruby等高级编程语言的相关技能。显然,这是一个费时费力的过程。今天,人工智能和机器学习技术可以大大简化测试脚本设计和开发的整个过程。目前市面上有很多这方面的测试工具,其中selenium是最常见的一种。用户不仅可以手动构建各种自动化测试脚本,还可以通过平台读取并自动生成各种自动化脚本。在实际应用中,它可以通过自带的各种人工智能算法,使用自然语言处理(NLP)技术。在完成全面良好的训练后,它可以理解用户的意图,进而模仿网络应用的各种动作。值得一提的是,在整个操作过程中,用户无需自己编写任何代码。数据显示,该工具可减少常规测试脚本的设计时间和人员工作量约80%。套用现在流行的概念,这种自动化测试可以称为“Touchlesstesting”。3.有效利用大量测试数据许多使用敏捷和DevOps方法实施持续测试的组织在其软件开发生命周期中每天多次使用端到端严格的测试方法来测试其软件应用程序的单元。、API、功能、可访问性、集成效果等方面进行测试。与上述测试内容的增加相比,需要测试的数据量的增加,使得项目组更难通过软件应用做出更好、更准确的决策。对此,机器学习可以通过可视化那些极不稳定的测试用例,帮助开发者轻松关注大数据对关键软件功能和服务的影响。在实际应用中,人工智能和机器学习系统可以轻松地对海量数据进行切片、切块和分析,提供模型解释、业务风险量化,加速目标项目的决策过程。同时,开发者还可以利用AI和ML系统识别需要优先处理的持续集成工作,或者在被测环境中发现目标平台的潜在错误,在以下几个方面获??得“测试红利”:测试影响分析安全漏洞平台特定的缺陷测试环境的不稳定测试失败的重复模式应用程序组件的漏洞位置4.使用自动化视觉验证工具,进行基于图像的测试软件过程中的视觉测试(也称为用户界面测试)开发,可以保证要构建的web或者移动应用的UI能够给用户带来流畅的体验。过去,此类测试通常难以自动化,需要人工进行繁琐的手动测试。如今,使用基于ML的可视化验证工具可以让测试人员识别过去在手动测试中容易遗漏的元素。事实上,使用最新机器学习技术以及自动化视觉验证工具的基于图像的测试在许多自动化社区中很受欢迎。这种基于图像的测试可以动态地改变软件公司在任何系统上提供自动化测试服务的方式。相应地,测试专家不再需要隐式地向目标系统插入各种输入,而只需要创建ML测试,以自动化的方式验证被测软件在显示效果(或视觉)方面的正确性,发现各种错误和时间上的不足。5、利用AI进行爬取现在很多开发者也使用基于AI的自动化技术,通过爬取的方式为应用程序自动编写测试用例。也就是说,一些新颖的AI/ML工具支持对Web应用程序进行爬网。在实际爬取过程中,此类工具首先通过截图、下载每个页面的HTML代码、测量流量负载等方式收集数据,并不断重复前面的步骤。然后,根据收集到的数据,他们构建完整的数据集,并根据被测应用程序的预期模式和行为训练机器学习模型。然后,此类工具会将当前阶段观察到的模式与先前输入的模式进行比较。如果结果有偏差,他们会将其标记为测试中的错误。最后,标记的问题由具有领域知识的人验证。可以看出,虽然ML工具主要负责错误检测过程,但人工验证仍然必不可少。总结目前,大部分公司已经将AL、ML等新技术应用到软件测试的自动化过程中。当然,你和你的测试团队应该通过学习该领域的专业知识,学会如何分解和分析复杂的数据结构,从而增强测试的判断和决策能力,提高整体效率和服务水平。项目。希望以上五点经验能够更好的帮助大家实现这个目标。原标题:5GreatWaysToAchieveCompleteAutomationWithAIandML,作者:MohitShah