765DevOps

Thinking is the problem, Doing is the answer !

0%

DevOps启蒙-开发测试管理系统

这个算是个回顾吧,自己再2019年进入X公司,发现开发测试流程耦合严重,没有独立的测试环境管理平台,所以参照自己的前东家(👉iflow系统)实现了一个简单的开发测试流程管理系统,当时的思想还很稚嫩,观点粗浅(算是自己DevOps启蒙篇吧),仅供参考哈。

如果你对以下的内容感兴趣,可以一起探讨交流哦……

  • 技术开发在项目移交测试后,既可以“放飞自我”、“自由飞翔”
  • 测试妹子如何实现“私人定制”的测试环境,实现简单mock第三方Api
  • **终极:**如何让开发测试整个流程自动化

1、“初来乍到”,遇到的问题

刚来到公司时,项目都是 小作坊管理方式 的,项目的流程规范不是很完善,有些项目让我接的有点“措手不及”吧。还有就是在开发移测后,自己需要过度介入整个测试过程,无法正常开始其他方面的工作:

总结以下吧:

  • 产品研发流程不完善
  • 测试开发过度耦合,无法有效释放生成力

结合我遇到的问题,我会和大家一起探讨解决问题。

2、产品研发流程简介【这不是本文重点】

其实在网上有很多资料,来说明一个互联网产品研发的流程了,基本大同小异。

我主要分以下几个部分简单说一下吧:

  • 需求阶段:产品需求调研【为什么要做;做了之后会带来什么好处;最终在数据上怎么体现】,明确需求优先级
  • 方案阶段:产品原型文档,各负责人需求评审,一线开发&测试 具体方案评审,排期
  • 开发阶段:设计方案、编码、自测、提测
  • 测试阶段:测试用例、线下测试、stage测试
  • 上线:Beta环境,GA环境

其中在产品的需求和方案阶段的流程完善可以通过人为 强制约束规范 得到有效解决

img

3、开发&测试中的问题

1
//TODO 大家都是码农,我就懒得说了,😄

4、开发测试流程体系

4.1、 问题如何解决

问题真实存在,我们应该如何解决呢?怎样才能使我们的工作的更****

我的思考:业务流程化 –> 流程工具化 –> 工具自动化(信息化)

4.2、 开发测试流程体系

其实很容易,在研发流程当中其实已经说明了开发测试的一个简单的流程体系,其主要就是三个阶段:

  • Dev阶段:开发设计文档、创建分支、编码、自测、测试用例、提测
  • Test阶段:线下测试、Stage测试、代码审查、产品验收
  • Online阶段:Beta环境、GA环境

流程化的过程如下:

img

5、Iflow开发测试流程管理系统

基于以上的问题和思考,以及以往的经验【这个占绝大部分】,我开发一套开发测试流程管理系统。所有的流程【除特出流程类型,如:hotfix】都是分步骤一步一步往下进行的,可以流程化管理。

Iflow系统特点:

  • 记录整个开发测试到上线的整个过程
  • 主子流程明确,不会有流程交叉
  • 严格流程化,当前流程之后的流程灰色,不可点击
  • 流程化&权限化,严格把控“出错”风险
  • 测试环境统一化管理,测试可自由定制,mock第三方Api
  • 后续可完善,做成CI系统

5.1、IFLOW — 基本界面说明

  • **主流程:**主阶段,创建Iflow、dev阶段、test阶段、online阶段
  • **子流程:**就是当前主极端对应的子阶段,如下图中 dev阶段,对应的开发文档阶段,创建分支……
  • **开发应用:**目前一个QS,可能需要关联开发多个应用,每个应用可以单独的流程,可以独立区分,便于不同的童鞋开发

img

5.2、IFLOW — 创建IFLOW(选择应用)

目前根据QS-Id建立Iflow流程【注,目前未关联QS系统】,可以选择应用和不同的流程类型创建Iflow流程。

流程类型说明:

  • 正常:需要按常规走完流程
  • bug修复/Notesting/线上紧急bug:可以跳过特定的流程步骤

img

5.3、IFLOW — DEV阶段

由对应开发走完整个流程,上传传文档审核,建立分支,自测,到最后提测。开发走完整个Dev阶段后移交测试。

img

5.4、IFLOW — TEST阶段

由对应测试走完整个流程

首先测试可以在左侧菜单栏【iflow流程列表】,检索对应QS-ID,即可进入对应的流程测试,以及查看dev阶段的api文档和开发文档。

其次进入dev阶段完成相应阶段的测试,其中测试环境支持以下的功能:

  • **释放分支:**释放当前的测试环境绑定
  • **切换/更新分支:**将当前iflow流程对应的分支,切换至当前的测试环境
  • **更新dev配置文件:**基于目前环境存在的分支代码,同步copy更新dev配置文件,注意:更新后,原有的定制配置将被覆盖。
  • **配置文件修改:**更改/定制当前测试环境的配置文件
  • **模拟APi【mock第三方api数据】:**可以模拟第三方的api返回数据,设置超时,【使用前,注意绑定下对应模拟api的域名IP,不同的环境这个域名和IP不同】。

img

5.5、IFLOW — ONLINE阶段

即上线至beta环境和GA环境,显示但前版本列表,支持一键回退功能【目前只是一个空架子】。

img

6、总结

整体来说IFLOW开发测试流程管理系统只是一个流程框架或者外壳,后续相关的功能的模块都可以进行集成,将其形成一套完善的流程管理系统(整体页面功能可能会比较简陋,当时花费一个多月的闲余时间写的😀)。

可集成功能:

  • **文档系统:**api文档、Wiki知识库
  • **测试用例系统:**测试编写用例,开发可以审核过测试用例等
  • **自动化测试系统:**测试自动化测试脚本
  • **代码管理平台:**可以直接检测代码质量,给代码评分等,比如 sonarQube,可点击此查看
  • **打包构建工具:**比如jekins(PHP你懂的,木有构建哦😂)
  • CI可持续集成
  • 发布系统
  • ……