自动化测试现状与挑战对产品开发人员的重要性这是一个不小的挑战。我们探索自动化测试的意义在于帮助企业以更好的质量和更快的速度占领市场。与人工测试相比,自动化测试的测试覆盖率更高,面对TOP300模型和TOP500模型时测试效率也更高。同时,自动化测试可以配合持续集成工具,实现快速响应的版本。到了一个版本就可以进行回归测试,甚至可以在提交代码后进行回归测试。而且自动化测试还可以集成一些特殊的测试。近年来,在腾讯内部,对自动化测试的需求也在不断攀升。从2019年到2020年的数据来看,腾讯主导项目的自动化测试用例数量增长了50%,自动化测试频率增长了200%。本文将从多个角度全面分析腾讯内部是如何探索和构建自动化测试的。智能自动化测试探索腾讯产品众多,涵盖类型广泛,其接入方式、测试场景和测试需求各不相同。一个优秀的自动化测试平台需要帮助业务解决以下问题:效率:方便快捷的业务接入,支持多种接入方式可用:稳定执行测试任务:99.9%+效果:易于分析定位问题,易于返回,那么WeTest作为一个被腾讯众多知名产品认可的一站式测试平台,是如何构建智能自动化测试的技术解决方案的呢?01全链路测试能力建设WeTest自动化测试平台提供了从脚本编写到任务触发、任务执行、任务上报,最后到问题调试的一系列自动化测试能力。同时也提供了IAAS、PAAS、SAAS不同层次的接入方式。在IAAS层,WeTest提供信号屏蔽柜、恒温实验室、国内外网络专线等一系列硬件设施;在PaaS层,提供不同的接入方式。提供SAAS层全链路自动化测试能力。业务仅通过IAAS层接入即可使用这些底层硬件和设备,或者通过PAAS层接入整个测试平台,或者直接通过SAAS层使用这些自动化测试能力。02多种接入机制为满足各种系统对接,面对不同的业务接入需求,WeTest提供了不同的接入方式。比如CI插件,作为CI自动化测试的一部分,可以每天定时抽烟或者返回版本构建;对于有测试平台的业务,WeTest可以以RESTAPI的形式提供平台级对接;为了满足业务方的不同需求,WeTest还提供了可以在网页上一键提交的自动化测试,以及可以通过简单的命令提交自动化测试的命令行工具。03部署镜像测试框架在进行自动化测试时,不同业务团队的自动化测试技术有很大差异。脚本框架、脚本环境和终端设备要求不同。一些用户脚本甚至可能存在一些安全问题。为了解决此类问题,WeTest提供了镜像部署方案。业务团队在部署测试框架时,只需要生成相应的镜像并使用即可。镜像中需要依赖的脚本或者测试框架库只需要通过编写DockerFile打包成镜像,然后上传到平台的镜像仓库即可。当用户提交自动化测试时,平台系统会从用户的镜像仓库拉取用户需要的镜像,然后以拉取整个K8S集群的形式运行。使用K8S集群还可以自动进行负载均衡,让执行任务的容器均匀分布在不同的节点上,扩展起来也很方便。04可配置的测试调度设备、用例、脚本都是可以配置和调度的资源。例如,当用户需要调度用例时,只需要配置需要执行的用例和用例需要的设备执行条件即可。执行方法被优化分配给设备以加速用例的执行。对于模型调度,平台会根据一定的算法选择免费的、能够满足用户测试需求的设备,从而提高测试效率。05集中化、网络化、集群化目前业界大部分的自动化测试平台,平台设施连接的硬件都是消费级产品的拼接,导致手机的可用性取决于所有硬件的可用性整个链接。当这些硬件之一不可用时,电话将无法使用。这样一来,不仅单点故障会成为整个手机的瓶颈,整体的控制环节也会很长。面对这样的问题,WeTest提出了“硬件数据集中化、手机控制网络化、执行机集群化”的新解决方案。06综合测试报告为了在业务完成测试后能够快速方便地发现和定位问题并进行回归测试,WeTest提供了综合测试报告。包括设备日志、性能数据、网络数据、截图数据、错误堆栈信息、整个测试过程的回放等。对于报告中个别手机出现的问题,平台还提供远程调试功能,支持高清图片和音频输入输出。07专有云针对某些保密性强、设备时效性强的业务的特殊需求,平台可提供专属于该业务的专用云。不仅可以零等待时间满足保密要求和设备时效性,还可以对设备进行特殊的配置和部署,满足用户特定应用预安装、免卸载、永久登录状态的需求、自动聊天、自动审核等需求场景。为了更好的保障用户的产品质量,智能自动化测试会给用户带来更好的平台体验。我们一直在研究、探索和思考自动化测试技术,不断追求技术进步。针对低代码工具和AI探索领域,我们开发了新一代用于脚本录制的低代码自动化工具——WeAutomator。这个低代码工具包含多种脚本录制功能,包括最基本的通过图像、空间和坐标进行综合录制,也可以提供基于图像边缘算法的智能录制。而且这个工具支持场景和代码模式,支持Android和iOS。案例分享王者荣耀皮肤自动化测试左侧画面为用户真实游戏画面,右侧画面为王者荣耀为画面自动化测试提供的专用测试图。它将时间改为逻辑标题,去除地图噪音,将底面变成统一的蓝色,并隐藏敌人不需要测试的英雄、血量、英雄名称。在自动化测试的整个过程中,系统都会进行录制,录制完成后,通过OCR识别提取每段视频的每一帧,然后将所有的图片帧保存下来。不同迭代版本之间的图片会通过ORB的特征匹配和图片的精准比对,利用图片比对库过滤出有差异的图片进行标注,进而判断是否存在UI异常。整个自动化测试的bug发现能力非常强,相当于人类能力的5倍。同时,由于王者荣耀组件资源较多,自动化测试相比人工测试可节省160小时。微信客户端自动化测试案例微信相关的端到端UI自动化测试主要涉及:微信基础客户端、支付UAT、小程序基础、搜索等业务测试。一般来说,UI自动化测试需要经过四个步骤:选择UI驱动工具、选择用例组织工具、编写用例和用例部署。微信客户端项目组根据自身业务情况,在部署用例时选择了3次介入自动化测试的机会。1.合并检查开发会在每次提交MR时检查编译和启动问题。这次主要是检查微信启动/消息是否成功,用3个用例+登录来测试。2.红版测试在这个版本中,需要保证应用的基本功能稳定可用,允许在某些场景下出现新特性或BUG。编译包后,介入选定的用例(约40个用例)进行测试,验证基本功能是否执行成功,主要是检测是否存在一些明显影响体验的问题。3、通过P0测试的需求会合并到release分支中发布,合并后会触发打包。打包编译后介入P0自动化测试(约400个用例)的执行,可保证测试在26分钟左右运行。微信接入WeTest的自动化测试后,我们可以将用例分发、用例结果存储、测试报告等功能交给WeTest。WeTest本身有更多的精力专注于业务测试本身。WeTest提供高稳定性设备和自动化设备操作。维监控,测试稳定性达到99.68%,测试效率提升40%,让用户无需担心设备问题,更高效便捷地测试产品质量。探索成果1、设备维度:设备稳定性高,月均测试量100w+台,设备成功率和测试任务执行率高达99.9%。2.用例纬度:用例覆盖率高,通过用例动态分发,缩短测试时间,支持灵活的用例分发方式3.效率维度:更多资源,更快速度,40%测试效率WeTest目前覆盖腾讯6大BG关于WeTest腾讯WeTest是腾讯开放平台正式推出的一站式精品。十余年质量管理经验,致力于质量标准建设和产品质量提升。腾讯WeTest为移动开发者提供兼容性测试、云真机、性能测试、安全防护等优秀的研发工具,为100多个行业提供解决方案,覆盖产品研发各个阶段的测试需求开发运营,经历上千款产品。.金牌专家团队通过5大维度41项指标,高度保障您的产品质量。关注腾讯WeTest,了解更多热门测试产品
