自动化质量评估维度

简介: 上篇文章讲了下关于终端自动化的一个探索《终端自动化测试探索之路》,今天来聊聊关于自动化质量评估的维度,包括UI和接口。

误报率



误报率,指的是由于非应用或系统代码缺陷导致的自动化用例执行失败次数占所有自动化用例执行失败次数的比率。简单讲,误报就是应用或系统无代码或功能缺陷但是自动化用例执行失败。误报率是衡量自动化的一个核心指标,体现的是自动化用例的稳定性。一般导致UI自动化和接口自动化误报的主要有以下几个因素:


UI自动化:


  • 应用集成频繁,可用测试设备资源不足;
  • 网络环境不稳定,网络频繁超时延迟;
  • 测试账号被风控;
  • 测试设备各种无法预知的系统弹框;
  • 外部系统稳定性不可控,如宿主机断电关机、测试设备离线等;
  • adb通讯不稳定;
  • 自动化用例有Bug造成不稳定;


接口自动化:


  • 应用经常发布,导致服务不可用;
  • 网络环境不稳定,网络频繁超时延迟;
  • 应用依赖外部系统,外部系统稳定性不可控;
  • 自动化用例有Bug造成不稳定;


针对以上问题,可以从以下几个方面来提高UI和接口用例运行的稳定性。


UI自动化:


  • 可以根据测试设备资源情况更改应用集成触发的频率;
  • 尽量给UI自动化设备连接稳定的无线网络;
  • 测试账号申请加白名单;
  • 通过另起一个服务自动监听识别系统弹框,自动点击关闭;
  • 针对断电重启问题,如果没有断电保护设备,那么就需要配置开机自启服务来重启自动化相关进程;
  • adb通讯不稳定的问题可以考虑尝试通过docker容器技术的方式来实现;
  • 增加失败自动化用例执行重试机制,失败率或次数达到一定指标才明确将用例标为失败;


接口自动化:


  • 增加失败自动化用例执行重试机制,失败率或次数达到一定指标才明确将用例标为失败;
  • 对外部系统进行mock;


发现率



发现率,是指应用缺陷代码和功能被自动化用例检测出来的概率,影响发现率的主要因素是下面两点:


  • 自动化用例校验逻辑有遗漏,检验不全面;
  • 自动化用例覆盖率不足;


提高发现率要与自动化投入成本进行平衡,不需要盲目追求发现率。


经过我们一年多的实践,发现UI自动化在BVT(每日版本测试)和MAT(冒烟测试)这两个阶段发现问题的概率比较高。


覆盖率



自动化测试覆盖率主要有以下几个指标。


接口覆盖率,评估对测试接口集合的覆盖度。如果有一条自动化用例能够覆盖该接口的一个正常业务场景的测试,那么该接口就是被自动化覆盖的。


接口/UI功能用例覆盖率,指的是自动化用例在所有接口/UI功能用例中占的比率。接口/UI功能用例中各测试用例具有优先级之分,因此对应的自动化用例覆盖率也会有优先级之分。其中比较重要的是核心用例覆盖率,它指的是P0级场景用例的自动化比例。个人经验上来说建议UI自动化用例覆盖率应该优先追求对核心用例的覆盖,接口自动化测试倒是可以尽可能覆盖100%。


代码覆盖率,是从应用代码层面评估自动化的质量,它的统计方式是运行完接口/UI功能的所有自动化用例后,接口/UI功能实际执行的逻辑代码的覆盖程度。


覆盖率指标优先级从高到低分别是,核心用例覆盖率、接口覆盖率或接口/UI功能用例覆盖率、代码覆盖率。


UI/接口变动



在自动化用例执行的过程中经常会由于业务迭代出现,UI被测元素的变动、需求的变更还有接口的变动,针对UI变动,可以与开发约定代码的边写规范,保证同样的UI元素ID或定位信息不变,接口的新增和删除也要及时同步维护相应的自动化用例。


可维护性



可维护性,衡量新增、修改自动化用例是否方便,自动化是否易于拓展。可以从以下几个方面,来提高可维护性:


  • 合理的用例层级和组织;
  • 测试数据与脚本分离,可配置化,或者在设计框架时考虑数据驱动体系;
  • 自动化用例易于阅读,尽可能地体现接口/UI定义和功能;
  • 用例之间尽可能独立隔离,互相之间不产生依赖;
  • 合理地抽象自动化基础功能代码,避免大量重复冗余代码;
相关文章
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【8月更文挑战第27天】在软件开发的海洋中,自动化测试是确保航船不偏离航线的关键罗盘。随着人工智能(AI)技术的兴起,这艘航船正乘风破浪,以前所未有的速度前进。本文将探索如何通过AI技术优化自动化测试流程,不仅提高测试的效率和覆盖范围,而且增强测试用例的智能生成和结果分析能力。我们将从AI在自动化测试中的应用入手,深入探讨其对测试准确性和效率的影响,以及面临的挑战与未来的发展方向。
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
敏捷开发 监控 测试技术
软件测试中的自动化策略:提升效率与质量
在软件开发过程中,测试是确保产品质量的关键环节。随着敏捷开发模式的普及,自动化测试成为提升测试效率和质量的重要手段。本文将介绍自动化测试的基本概念、实施步骤以及如何通过自动化测试提高软件测试的效率和质量,同时分享一些实用的自动化测试工具和技巧。
284 3
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
462 3
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
168 5
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
125 2
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
测试技术 持续交付 Python
自动化测试之美:打造高效的软件质量保障体系
【9月更文挑战第25天】在软件开发的海洋中,自动化测试是一艘能够引领我们高效航行的帆船。它不仅能帮助我们发现缺陷,更是一个持续集成和持续部署(CI/CD)过程中不可或缺的部分。本文将通过浅显易懂的语言和实际代码示例,引导读者理解自动化测试的价值,并学会如何实施它,从而提升软件的质量与开发效率。
139 4
|
敏捷开发 监控 测试技术
提升软件质量的利器:自动化测试的实践与反思
在软件开发的生命周期中,测试作为保障产品质量的重要环节,其重要性不言而喻。随着敏捷开发和持续集成等实践的普及,传统的手动测试方式已逐渐无法满足快速迭代的需求。因此,自动化测试作为一种提高测试效率和准确性的有效手段,正受到越来越多开发者的青睐。本文将深入探讨自动化测试的价值、实施步骤以及在实践中可能遇到的问题和解决方案,帮助读者更好地理解和应用自动化测试。
183 2
下一篇
oss云网关配置