这个算是个回顾吧,自己再2019年进入X公司,发现开发测试流程耦合严重,没有独立的测试环境管理平台,所以参照自己的前东家(👉iflow系统)实现了一个简单
的开发测试流程管理系统,当时的思想还很稚嫩,观点粗浅
(算是自己DevOps启蒙篇吧),仅供参考哈。
如果你对以下的内容感兴趣,可以一起探讨交流哦……
- 技术开发在项目移交测试后,既可以“放飞自我”、“自由飞翔”
- 测试妹子如何实现“私人定制”的测试环境,实现简单mock第三方Api
- **终极:**如何让开发测试整个流程自动化
1、“初来乍到”,遇到的问题
刚来到公司时,项目都是 小作坊管理方式 的,项目的流程规范不是很完善,有些项目让我接的有点“措手不及”吧。还有就是在开发移测后,自己需要过度介入整个测试过程,无法正常开始其他方面的工作:
总结以下吧:
- 产品研发流程不完善
- 测试开发过度耦合,无法有效释放生成力
结合我遇到的问题,我会和大家一起探讨解决问题。
2、产品研发流程简介【这不是本文重点】
其实在网上有很多资料,来说明一个互联网产品研发的流程了,基本大同小异。
我主要分以下几个部分简单说一下吧:
- 需求阶段:产品需求调研【为什么要做;做了之后会带来什么好处;最终在数据上怎么体现】,明确需求优先级
- 方案阶段:产品原型文档,各负责人需求评审,一线开发&测试 具体方案评审,排期
- 开发阶段:设计方案、编码、自测、提测
- 测试阶段:测试用例、线下测试、stage测试
- 上线:Beta环境,GA环境
其中在产品的需求和方案阶段的流程完善可以通过人为 强制约束规范 得到有效解决
3、开发&测试中的问题
1 | //TODO 大家都是码农,我就懒得说了,😄 |
4、开发测试流程体系
4.1、 问题如何解决
问题真实存在,我们应该如何解决呢?怎样才能使我们的工作的更**爽
**
我的思考:业务流程化 –> 流程工具化 –> 工具自动化(信息化)
4.2、 开发测试流程体系
其实很容易,在研发流程当中其实已经说明了开发测试的一个简单的流程体系,其主要就是三个阶段:
- Dev阶段:开发设计文档、创建分支、编码、自测、测试用例、提测
- Test阶段:线下测试、Stage测试、代码审查、产品验收
- Online阶段:Beta环境、GA环境
流程化的过程如下:
5、Iflow开发测试流程管理系统
基于以上的问题和思考,以及以往的经验【这个占绝大部分】,我开发一套开发测试流程管理系统。所有的流程【除特出流程类型,如:hotfix
】都是分步骤一步一步往下进行的,可以流程化管理。
Iflow系统特点:
- 记录整个开发测试到上线的整个过程
- 主子流程明确,不会有流程交叉
- 严格流程化,当前流程之后的流程灰色,不可点击
- 流程化&权限化,严格把控“出错”风险
- 测试环境统一化管理,测试可自由定制,mock第三方Api
- 后续可完善,做成CI系统
5.1、IFLOW — 基本界面说明
- **主流程:**主阶段,创建Iflow、dev阶段、test阶段、online阶段
- **子流程:**就是当前主极端对应的子阶段,如下图中 dev阶段,对应的开发文档阶段,创建分支……
- **开发应用:**目前一个QS,可能需要关联开发多个应用,每个应用可以单独的流程,可以独立区分,便于不同的童鞋开发
5.2、IFLOW — 创建IFLOW(选择应用)
目前根据QS-Id建立Iflow流程【注,目前未关联QS系统】,可以选择应用和不同的流程类型创建Iflow流程。
流程类型说明:
- 正常:需要按常规走完流程
- bug修复/Notesting/线上紧急bug:可以跳过特定的流程步骤
5.3、IFLOW — DEV阶段
由对应开发走完整个流程,上传传文档审核,建立分支,自测,到最后提测。开发走完整个Dev阶段后移交测试。
5.4、IFLOW — TEST阶段
由对应测试走完整个流程
首先测试可以在左侧菜单栏【iflow流程列表】,检索对应QS-ID,即可进入对应的流程测试,以及查看dev阶段的api文档和开发文档。
其次进入dev阶段完成相应阶段的测试,其中测试环境支持以下的功能:
- **释放分支:**释放当前的测试环境绑定
- **切换/更新分支:**将当前iflow流程对应的分支,切换至当前的测试环境
- **更新dev配置文件:**基于目前环境存在的分支代码,同步copy更新dev配置文件,注意:更新后,原有的定制配置将被覆盖。
- **配置文件修改:**更改/定制当前测试环境的配置文件
- **模拟APi【mock第三方api数据】:**可以模拟第三方的api返回数据,设置超时,【使用前,注意绑定下对应模拟api的域名IP,不同的环境这个域名和IP不同】。
5.5、IFLOW — ONLINE阶段
即上线至beta环境和GA环境,显示但前版本列表,支持一键回退功能【目前只是一个空架子】。
6、总结
整体来说IFLOW开发测试流程管理系统只是一个流程框架或者外壳,后续相关的功能的模块都可以进行集成,将其形成一套完善的流程管理系统(整体页面功能可能会比较简陋,当时花费一个多月的闲余时间写的😀)。
可集成功能:
- **文档系统:**api文档、Wiki知识库
- **测试用例系统:**测试编写用例,开发可以审核过测试用例等
- **自动化测试系统:**测试自动化测试脚本
- **代码管理平台:**可以直接检测代码质量,给代码评分等,比如 sonarQube,可点击此查看
- **打包构建工具:**比如jekins(PHP你懂的,木有构建哦😂)
- CI可持续集成
- 发布系统
- ……