devops 下测试组织管理面临的挑战及应对
导读
先从引发的5个问题讲起,再简单回顾一下devops 简介和兴起背景 ,再从itest 测试管理团队的视角提出应对办法
DevOps后,测试面临的挑战
敏捷开发必然是迭代开发管理模式,以实现持续集成和持续交付,而不是瀑布模式下阶段性介入。
问题1:持续集成首先引入的问题是集成环境的管理的问题,大公司有专门的运维部门还相对好一些,小公司环境会直接摔给测试人员自己整,测试人员如果环境一直依赖开发人员,那测试人员在公司的地位当然也可想而知了。
问题2: 持续交付下,不可能做到每个迭代手动回归的所有case
问题3:每个迭代侧重点不一样,测试策略必然不一样
问题4:上级管理者,需要快速知道整体测试进展,以便更好的进行风险把控
问题5:敏捷测试中,在每日站立会中,要拿测试数据说话,咋便利收集测试数据,简单扔两个统计图是远远不够的,需要体现出进度和工作量的数据,以及相关过程监控趋势分析数据,数据从哪来呢?
在探讨应对之道前,先简单回顾一下 devOps
DevOps 简介:
DevOps 是一个完整的面向IT运维的工作流,以 IT 自动化以及持续集成(CI)、持续部署(CD)为基础,来优化产品开发、测试、系统运维等所有环节,DevOps的引入能对产品交付、测试、功能开发和维护起到意义深远的影响。
DevOps 兴起的必然趋势:
配套技术当下已发展成熟:微服务架构理念、容器技术使得DevOps的实施变得更加容易,计算能力提升和云环境的发展使得快速开发的产品可以立刻获得更广泛的使用。
来自市场的外部需求:这世界变化太快,产品需要快速适应这些变化,并需要快速把产品交互到用用手中,团队可以更快地得到用户的反馈,从而进行更快地响应。而且,DevOps小步快跑的形式带来的变化是比较小的,出现问题的偏差每次都不会太大,修复起来也会相对容易一些。
实现DevOps
硬性要求:相关支撑工具,如cd/ci 工具,自动化运维工具等
软性需求:团队文化 ,即敏捷开发文化;团队技术水平
如何实现devOps 不是本文要阐述的问题。
既然devOps 是必然趋势,那开篇的问题也应意味着迟早要碰到,下面我们来看看应对之道:
问题1,测试环境管理应对之道:
采用虚拟化技术,主要是容器技术,第一可实现快速部署,第二在有限硬件资源下,可合理调配资源降底环境成本,当然大厂有大厂的玩法,小厂有小厂的玩法,但都可以用,只是大厂在使用上需结合业务系统自身的特点做一定的整合或改造,比如微服务的路由,微服务网关,业务组件多,可能还需要用类似Kubernetes相关技术以及Namespace实现隔离;小厂是单体应用,或是数量不多的少量微服务,或是微应用,用原生的docker 就可以解决,测试人员编写docker file 也不是难事。
Itest(流程驱动开源测试管理软件新秀官网) 即将发布的3.1.2 版本中,将实现环境管理功能,简单来说,就是可以管理测试环境的docker 镜像,或docker file 文件,实现一键部署测试环境,当然我们这是小厂的玩法 ,大厂这里略过,估计会有一套相关环境管理的支持系统做辅助。
环境功能已开发完成,未测试,业余时间做,等不忙了进行测试,即将发布的3.1.2 版本会含此功能
预发环境可理解为UAT 环境,就是线下和生产环境的软件环境一模一样的环境,当然硬件配置上会有差别
问题2,每个迭代不可能手动执行所有case ,应对之道:
自动化测试,首先自动化回归测试所有case 对应的接口,然后手动重点测试当前迭代完成的功能,再根据具体研发实现的改动,圈定一些测试包,手动执行测试包内的用例,说到这里,肯定有同学会反问,这要做风险很大,确实是有风险,这要求开发团队在实现时,要么组件化,要么微服务化,这样新的迭代对原有功能实现的影响最小,话有说回来,既然要玩devOps ,必须这么搞测试呀,如两周一个迭代,每个迭代手动跑完所有CASE是不实现的,就算有这风险, 也能倒逼研发在设计时多考虑组件化,微服务化,降低偶和(中型及大厂都有这自己的企业中台实现这些比较容易),才能快速迭代,快速响应变化,否则这是假敏捷,只是把瀑布模型拆分为几个提交可测试物件的里程碑(虽然这也是一小点进步)。当然上述这是其中两种主要方法,现实中还需要根据实际情况作出相应调整。
Itest(流程驱动开源测试管理软件新秀官网) 测试包管理功能如下图所示,3.2.1 版中奖现接口测试功能,在EXCEL中一行测试一个接口,设置上接品URL,参数,请求方式, 预期返回数据 ,如需要,还有用于认证的toekn 参数,然导入到itest 中,itest 来执行这些接口测试,并把测试结果管理起来,也可在ITEST中设置每个接口执行测试的次数,以及执行的时间,或是按预定的时间,itest 定时去执行这个接口测试。
每个一测试包,代表了某个测试策略的一组测试用例,且可查看执行结果
另外测试小组能力水平也不一样,且具体到某个迭代开发团队,测试团队,可能都有差别,比如团队是分布式的 可参见本一另一个贴子 分布式团队中沟通引发的问题, itest 解决之道
不同的团队规模,不同的迭代内容,不同的测试策略,测试流程也可能不一样,在itest 中 流程推动缺陷流转,不同的流程对应不同的状态演化,反应不同管控目的,并可实时调整
问题3, 每个迭代侧重点不一样,测试策略必然不一样,应对之道:
itest (流程驱动开源测试管理软件新秀官网) 根据当前或即将进行的迭代的产品或是项目目标,定测试任务,以便进行整体上的把控,然后挑选出当前迭代要解决的BUG和需求(itest 后期会增加需求管理功能),以及要执行的测试用例包,组成一个完整的测试迭代;然后测试和开发人员,直接在这个迭代下处理 BUG,执行用例,填写测试进度任务进度,填写需求实现状态(进度)。且可以便捷的查看特定测试迭代的报告;对于单一某个测试包也可查看其测试结果。
测试迭代报告
问题4:上级管理者,需要快速知道整体测试进展,以便更好的进行风险把控
上级管理者, 首要关注的是整体的测试进度,在itest 中,在一个测试迭代内可建多个测试任务,每个任务针对特定测试目的,然后以敏捷管理的看板形式展现出来,一目了然,没有再实现甘特图,我们认为,电子看板就足够了,当进度和上级管理者预期有出入时,他可提交干预,加入更多资源,或是其他风险规避措施。测试执行中,具体的 BUG数据,用例执行数据不是不重要,他是更“微观”数据,在管理上首先需要宏观方面管理数据,把测试工作纳入到任务管理中,就是为了宏观管理目的,宏观和“微观”本质上就是先整体后具体。
问题5:敏捷测试中,在每日站立会中,要拿测试数据说话,咋便利收集测试数据,简单扔两个统计图是远远不够的,需要体现出进度和工作量的数据,以及相关过程监控趋势分析数据,数据从哪来呢?
itest (流程驱动开源测试管理软件新秀官网) 的应对之道:站立会,每个人说话的时间不长,就更要求有整理好的数据说话,体现测试的专业性,在ITEST中,提供两个数据渠道,第一通过总览,帮助会前,作每日工作复盘;第二通过测试度量,以27个主题,从多维度(时间、人员、工作量、团队、缺陷和用例)、多指标过程监控,和结果汇总两方面来量化测试工作,然后再对这些量化数据进行归纳和总结。下面仅用几个图例来示例,后续会有相关解读itest 测试度量的贴子发出。比如BUG 龄期,itest 中有绝对龄期和相对龄期,一个指从BUG被发现,到被closed的 龄期,相对龄期指BUG停留在某个状态下的龄期,测试用例的执行,不仅看用例数,更看执行成本 ,从提交|打开|待处理|关闭|处理bug次数 趋势中分析,整个研发团队(含测试)工作瓶颈点在哪等等。

devops 下测试组织管理面临的挑战及应对的更多相关文章
- Alpha2版本-组织管理、党员管理、活动管理测试
小程序组织管理.党员管理.活动管理测试-测试报告 一.测试工具的选择 微信安卓版v7.0.8 微擎工具v1.7.0 PHPstorm Google Chrome 76.0.3623 二.测试用例 ...
- [转载]Web前端和后端之区分,以及面临的挑战
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- [转载]Web前端和后端之区分,以及面临的挑战【转】
原文地址:Web前端和后端之区分,以及面临的挑战[转]作者:joyostyle 在我们实际的开发过程中,我们当前这样定位前端.后端开发人员. 1)前端开发人员:精通JS,能熟练应用JQuery,懂CS ...
- Web开发面临的挑战主要有哪些?
摘要:要成为一名高效的Web开发者,这需要我们做很多工作,来提高我们的工作方式,以及改善我们的劳动成果.而在开发中难免会遇到一些困难,从前端到后端. 导读:要成为一名高效的Web开发者,这需要我们做很 ...
- 微服务架构下分布式Session管理
转载本文需注明出处:EAII企业架构创新研究院(微信号:eaworld),违者必究.如需加入微信群参与微课堂.架构设计与讨论直播请直接回复此公众号:“加群 姓名 公司 职位 微信号”. 一.应用架构变 ...
- OC中并发编程的相关API和面临的挑战
OC中并发编程的相关API和面临的挑战(1) 小引 http://www.objc.io/站点主要以杂志的形式,深入挖掘在OC中的最佳编程实践和高级技术,每个月探讨一个主题,每个主题都会有几篇相关的文 ...
- sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理
sql服务器第5级事务日志管理的阶梯:完全恢复模式下的日志管理 原文链接http://www.sqlservercentral.com/articles/Stairway+Series/73785/ ...
- iOS: ARC & MRC下string内存管理策略探究
ARC & MRC下string内存管理策略探究 前两天跟同事争论一个关于NSString执行copy操作以后是否会发生变化,两个人整了半天,最后写代码验证了一下,发现原来NSString操作 ...
- 【转】Oracle RAC 环境下的连接管理
文章转自:http://www.oracle.com/technetwork/cn/articles/database-performance/oracle-rac-connection-mgmt-1 ...
随机推荐
- 如何将list集合转成String对象
使用Stringutils中的join方法: 方法一: public String listToString(List list, char separator) { return org.apach ...
- zz自动驾驶多传感器感知的探索
案例教学,把“问题”讲清楚了,赞 Pony.ai 在多传感器感知上积累了很多的经验,尤其是今年年初在卡车上开始了新的尝试.我们有不同的传感器配置,以及不同的场景,对多传感器融合的一些新的挑战,有了更深 ...
- CF757F Team Rocket Rises Again
题意 建出最短路图(DAG)之后就跟这题一样了. code: #include<bits/stdc++.h> using namespace std; #define int long l ...
- Django signal(信号)
Django中提供了"信号调度",用于在框架执行操作时解耦,就是一些动作发生的时候,信号允许特定的发送者去提醒一些接受者. Django 内置信号 Model signals pr ...
- 【day06】PHP
一.字符串函数库 1.安装 2. (1)strlen:获得字符串的字符长度 (2)substr:字符串截取 格式: string substr(string $var, ...
- 重构 改善既有代码的设计 (Martin Fowler 著)
第1章 重构, 第一个案例 1.1 起点 1.2 重构的第一步 1.3 分解并重组 statement() 1.4 运用多态取代与价格相关的条件逻辑 1.5 结语 第2章 重构原则 2.1 何谓重构 ...
- git pull --rebase的理解
在使用git的过程中经常需要使用到git pull命令,在更新远端代码的同时如果与本地代码产生冲突了, 那么冲突的文件中就出现了需要手动合并的部分,而git pull --rebase不同的地方则是当 ...
- 大话设计模式Python实现- 抽象工厂模式
抽象工厂模式(Abstract Factory Pattern):提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们的类 下面是一个抽象工厂的demo: #!/usr/bin/env pyth ...
- vuex 源码分析(五) action 详解
action类似于mutation,不同的是Action提交的是mutation,而不是直接变更状态,而且action里可以包含任意异步操作,每个mutation的参数1是一个对象,可以包含如下六个属 ...
- Java对象依次取出属性,并去掉特殊字符
工作里从数据库往前台调数据的时候,庞大的数据量里难免有些字段里包含空格或者一些特殊字符,在前台显示出来会非常不美观,所以在此记录一个去对象内所有属性特殊字符的方法: //获得该对象属性的集合 Fiel ...