摘要:AQC持续集成平台,提供一站式的环境构建和持续集成服务,如环境申请、环境构建、单元测试、接口测试、WebUI自动化、JVM和RPC模式的覆盖率(单元测试、接口测试、全量、变更)统计、黑白盒安全扫描、PMD扫描、FindBugs扫描、代码审计(如复杂度、重复度、注释率、有效行等)、代码评审等,具备应用级、项目级、发布级、产品域级、专项级、全站级的持续集成能力并提供一站式持续集成报告,为开发自测、交付测试、日常测试、集成测试、环境冒烟测试、全站回归等奠定平台基础。此外,依据蚂蚁金服SQPG组织的评分方式,提供即时的应用质量评分以及应用质量趋势报告等。
关键词:单元测试;接口测试;覆盖率;持续集成;代码测试
一.业务背景
自2014年11月,蚂蚁金服(原支付宝)做一些研发团队架构调整,测试主管汇报给研发总监,逐步形成分布式的研发团队,虽然蚂蚁金服在质量防控方面有较强的积累,但是新的研发模式对原有的质量基础设施平台带来了更大的挑战,如老持续集成平台过于分散,部分工具(如字节码测试、RPC模式下覆盖率统计等)尚未做专做精做深。2014年12月,工具团队有幸承担起蚂蚁金服持续集成平台的研发与实施,快马加鞭,初步构建起AQC持续集成体系,以进一步提升全站研发质量能力的提升,进而助力研发效能的提升。
此外,本文不再和大家熬述什么叫环境构建、什么叫持续集成,因为百度百科都有答案,本文完全从方案落地的层面做了系统性分享,本文中提到的部分关键概念如下:
AQC:也就是Alipay quality center,蚂蚁金服线下质量技术平台;
SQPG,也就是Software quality practice group ,专注于蚂蚁金服软件开发工程技术实践的总结、规范与标准化、以及推广和咨询;
自动化测试,业务涉及单元测试、接口测试、WebUI自动化、JVM和RPC模式的覆盖率(单元测试、接口测试、全量、变更)统计、黑白盒安全扫描、PMD扫描、FindBugs扫描、代码审计(如复杂度、重复度、注释率、有效行等)、代码评审等;
测试实验室,也就是自动化测试计划,一个测试计划含有多个测试用例;
回归实验室,一个回归实验室包含多个测试实验室,提供集成测试阶段的产品域、全站级的自动化回归测试;
代码测试,如PMD、FindBugs、覆盖率、Fault Injection等;
专项测试,如黑白盒安全、兼容性测试等。
二.方案特色
统一化:基于method=case、test project∈java project、单元测试与代码测试或专项测试具备相同前置条件,构建统一化持续集成平台,无需维护多套框架、执行调度、管控体系、报表体系等;
业务解耦:test method(自动化用例) + manual case (手动用例)。自动化与手工完美结合,避免重复测试;
一站式:一站式的环境申请、环境构建、持续集成等服务;
执行模式:OnTime+ OnEvent+ OnManual,随时随地进行持续集成;
单平台大容量:单平台1500量级项目、15万量级项目与回归用例,无需维护多套Jenkins、Sonar等,支持多项目并发持续集成。
三.业务架构
本平台在开发自测、交付测试、日常测试、集成测试、环境冒烟、全站回归、线上回归中将扮演重要的角色,也坚信本持续集成平台即将成蚂蚁金服为质量数据供应商和质量基础设施平台,成为研发人员互动的客观质量评判和流程准入的客观依据,如图1、图2:
四.业务分布
笔者认为,自动化不是万能的、自动化测试不可能完全替代传统手工测试,但自动化测试必将成为手工测试的有效补充,自动化测试将渗透到研发的各个环节中去。在蚂蚁金服,持续集成的业务分布,如图3:
五.方案解读
1.业务模式与执行模式
在和业务同学沟通发现,大家的业务诉求还是有一定的差异,有些同学对环境构建有需求,有些同学对自动化测试有需求、有些同学既需要环境构建又需要自动化测试,基于业务为导向的理念,在整个业务架构方面,我们对整个持续集成平台做了深入业务分解,提供了环境构建、自动化测试、环境构建+自动化测试三种业务模式,如图4: