进入开发推动CI/CD的落地,将测试用例和代码绑定在一起保证测试的完备性

220 阅读5分钟

当测试人员在公司中做到了测试用例的自动化执行,并编写了自动化测试框架和测试相关的工具时,他们会发现他们的工作仍受到开发的影响以及他们无法保证自己测试过的项目不会发生大的缺陷。

痛点

  1. 测试人员的工作受到开发的影响:开发每一次的提测都需要测试去重新执行测试用例
  2. 测试人员没办法保证自己的用例覆盖了

什么是质量工程

现代质量大师 PhilipCrosby (1926-2001)提出了“质量即符合要求” 以及质量管理的4项基本原则

  • 什么是质量?质量即符合要求,而不是好
  • 质量是怎样上产的?预防产生质量:检验不成产生质量
  • 什么是工作标准? 零缺陷,而不是“差不多就好”
  • 怎样衡量质量? 不符合要求的代价(金钱),而不是指数

质量的历史

质量工程难点

外因:互联网所处于的环境在快速变化 内因: 线上环境和业务系统越来越复杂 团队: 团队的扩大,职责越来越多,协同和沟通成本日益增加 传承: 人员流动下,历史知识沉淀和能力传承的诉求越来越大

  • 软件质量的概念
    • 软件质量就是"软件与明确和隐含地定义的徐需求相一致的程度"
    • 软件质量就是软件与明确地叙述的功功能和性能需求、文档中明确描述的开发标准
  • 质量概念的思考
    • 质量是相对的,不能脱离具体的人去抽象的谈论质量
    • 架构师在进行质量决策的时候,又要从谁的出发点去考虑的呢?
    • 是否不出错就是优质质量?又要怎么是衡量? 质量的历史
  1. 传统质量阶段 : 1985年 工匠的水平决定了产品的质量水平 工人根据实际操作经验,感官估计以及一些简单的度量衡器测量 无专业分工和专门的监测方法,流程
  2. 质量检验阶段 1925年 科学管理将检验从生产中分离,成立独立的检验部门 按照规定的技术要求进行质量监测,防止次品出厂 事后型质量把关,检测工作量大,破坏性检验难以实施
  3. 统计质量阶段 控制图与预防缺陷理论的提出,对生产过程中的关键质量特征进行测定、记录、评估并检测过程是否处于控制状态。 抽样检验法的提出名二战期间不允许事后检验,全数检验 美国标准协会颁布美国战时质量管理标准

质量工程应该怎么做

打造高质量架构,小步快速迭代,全链路持续交付 做好从线上到线下的全方面质量管理,故障防控,防范于未然 建设统一质量规范、流程、促进跨团队下的质量保障 做好传承官,将知识体系化,沉淀并影响他人

质量管理

度量体系:坚持数据驱动研发 持续交付体系:持续迭代,小步快跑 产品评测:它山之石,可以攻玉 灰度发布:快速试错,最小化损失 质量中台:灵活快速应对变化的可复用质量架构 image

image

image

需求管理

  • 需求数量
    • 需求完成周期--->对事评估 image

image

image

image

image

指标--> 数据大盘 报表

缺陷管理

代码追踪 image

image

image

image

image

image

image

image

image

image

image

image

持续交付 image image image

image

image

image

image

image 版本控制 image

image

image

image

image

质量中台

SuperCell
强大中台支撑 ---创新

什么是中台? 怎么建设中台? 中台的价值?

image

image 困境 image

image

image

image

image

image

image

image

image image

image

image

一定要中台么?

中台与前台的平衡 前台特点 image 中台特点 image

image 建设自己的质量管理体系 image image 质量管理体系 image

阿里巴巴质量管理体系 image

image

image

阿里质量重点保障

image

image image

image

image

image

百度业务体系 image image 独立部门 支撑全部业务 优势: 跨产品线协同,工具传播 专业路径 劣势:业务贴合度低 发展差异化小 人力专注度低 软件测试 自动化 服务测试 分布式测试 MTC 泛质量领域 线上业务监控 质量评测 众测 数据众包

工程效率 灰度发布 持续集成 持续交付

image

image

image

image

如何建设适合自己的质量体系

如何推动质量升级 代码质量---> 服务质量 功能测试---快速恢复 线下质量----线上质量 模块质量---链路质量 质量场景 质量规则 质量流程 image image image image

image

image


案例分析

image

代言人的质量偏离 image

质量建设双线并行 image

代码规范落地 image

代码评审 经验分享 image

CR 步骤 image

最好的告别 image

CodeReview 的策略 image

质量经济学 image 质量低谷下何去何从 image 制定适合自己的代码规范 image 公司发展阶段对规范的影响 image 架构师业务与架构分析 image 质量建设之数据驱动 image

image

image


技术选型

  • sonar 支持自定义规则,较多的公司使用
  • 360火线 IDE 辅助功能
  • xcode android studio
  • 阿里巴巴java工具手册ide插件支持 独立的静态分析工具
  • findbugs
  • pmd
  • androidlint
  • scan-build
  • 阿里巴巴java开发手册pmd 插件

为什么使用Sonar

代码坏味道

  • 代码规范
  • 技术债评估 bug和漏洞 -代码重复度 单测与集成
  • 测试用例数量
  • 覆盖率

sonar搭建

demo版

docker run -d  --name sonarqube  -p 9000:9000 -p 9092:9092  registry.docker-cn.com/library/soarqube 

代码审计平台

质量监控(测试右移)

全流程监控