当前位置: 首页 > news >正文

【Review+预测】测试架构演进的曲折之路

文章目录

前言

一、“原始”阶段

二、“小打小闹”阶段

三、“小米加步枪”阶段

四、“摩托化部队”阶段

五、“骑兵连”阶段

六、“海军陆战队”阶段

七、“社区型组织”阶段


前言

        近期公司的测试团队需要重新组织安排,本着谦虚谨慎的态度,我从网上翻找了一下相关的资料,高质量的资料比较少,看到的大部分是比较宽泛的谈论。于是便想着梳理一下自己这几年的工作经历,把经验教训摘出来,然后再加一些同行的先进办法,搞一套完善一点的测试体系。这一梳理才发现,自己已经走过的了一条曲折的测试道路,现在把它分享出来,希望对读到的人有所裨益。

 

一、“原始”阶段

        这个阶段可以追溯到最早的校内实验室阶段。自己当时还是本科生,最有代表性的项目是全国大学生电子设计竞赛。那时候脑子里还没有专业测试相关的概念,整个项目就是老师讲一个大体的方案,然后学生一个设计电路板、一个写代码,然后两个人一起调试功能,功能出来了基本上也就到时间该提交东西了,最后小组一起去演示考评。

        这个阶段的测试还仅限于功能体调试和演示,所以用现在的眼光,从专业测试的角度来看,这是单个的设计人员自己做测试,我把它比喻成测试架构演进过程中的最“原始”阶段。

二、“小打小闹”阶段

        这个阶段还是在校内的实验室。比较典型的是一个大创项目,当时是要设计一套编程工具。这时候团队的稳定人员已经达到的6个以上了,大家就会交叉着做一些测试工作。比如我刚用开发出来的工具,实现了一个电子节气门的功能,这时候就会让另外一个人过来看一看试一试,收集一些评价。虽然说在单个设计物上面,做到了设计人员和测试人员的分立,但是这个“测试人员”毕竟还是设计人员中的一个,也没有明确的测试立场和独立的测试思维。这种测试模式我把它比喻成测试架构演进过程中的“小打小闹”阶段。

三、“小米加步枪”阶段

        这个阶段是在一个企业的研发部门。自己当时研究生还没有毕业,作为一名测试工程师,参与了几个控制器的开发项目。这时候跟我一起的还有另外三、四个测试工程师,已经形成了一个专门的测试小组,核心的工作就是做测试。这时候的测试工作,从横向和纵向展开的矩阵如下所示:

        这个阶段的测试人员,虽然形成了小组,有了专门的工作内容,但是毕竟还存在于设计部门内部,大部分工作都依设计规划而定,没有自己的工作流程。而且小组内部没有具体分工,也没有专门的设备设施做支撑,更没有测试角色的话语权,所以只是一种最初级的测试架构。这个阶段的测试模式,我把它比喻成“小米加步枪”式的测试架构。

四、“摩托化部队”阶段

        这个阶段的测试部门是在企业的质量中心下面。当时自己作为测试团队的一员,亲历了测试架构从第三阶段向第四阶段演进的始末。这个时候原本位于几个设计部门的测试小组分别走出来,共同合并为了一个大约15人的测试部门,归入质量中心。这个阶段的测试工作矩阵如下:

        这时候测试人员的工作内容有了更细致的划分,工作流程也规范了一些,有了专门的设施设备做支撑,也有了测试角度的话语权,算是一种比相对较高级的测试架构,所以可以比喻成一个“摩托化部队”。这个阶段还有一个重要的特征是,测试团队中出现了管理者的角色。这个角色从测试执行的试验任务中解放了出来,开始思考整个测试工作的发展问题,承担起了培养测试团队、写企业标准、画故障树、写FEMA、做性能仿真、挖掘设计薄弱、做回归分析、打测试补丁、研究电子可靠性、机械可靠性、做测试系统分析等工作。正是这个管理者角色的工作,把整个测试架构的形态推上了更高的一个台阶。但是由于质量工作的定位,与设计部门拉开了太大的距离,过度和衔接出现了一些问题,一部分原本来自设计部门的技术人员离开后,早期在测试上面的规划和设想便不了了之了。

五、“骑兵连”阶段

        这个阶段的测试团队,是企业设计部门中的一个测试小组,是介于前面第三阶段和第四阶段之间的一种中间形态。工作特点和组织形式兼备了设计部门的技术性和质量部门的严谨性,团队规模也是15人左右。这个阶段的测试工作矩阵如下:

        这时候的测试工作,在横向和纵向都拓宽和拉长了很多,测试工程师也开始细分。做软件测试的人就不去搞硬件测试,做测试开发的人就不去做测试执行。其中最重要的测试管理的人,也不去搞很发散的东西,而是专注于项目测试的框架、测试团队培养、测试设备建设、测试数据库维护、测试流程规范化、测试标准集编纂、新测试标准引入、新测试板块导入、新测试项开发、新测试技术培训、可靠性工程宣贯、等等这些非常内化的东西。这样的测试团队,因为工作更具象了,所以也更专注了,虽然不是很高大上,但是效率还是比较高的,所以可以比喻成一个“骑兵连”。

六、“海军陆战队”阶段

        这个阶段是未来要长期规划的一个新形态,期望的目标是测试工作既不依附于设计部门,也不拘泥于质量部门,一种独立的第三方形态。测试团队内部的稳定规模至少要达到25人以上,每个产品类型的测试团队中需要具备一名测试架构工程师,每个模块的测试小组中需要具备一名测试开发工程师和若干名测试工程师,每个人都有自己明确的分工和要求。如果某个产品类型与已有的产品有重叠的测试模块,就可以与其他产品线共用测试小组,但是至少要有一名专门的测试架构工程师。大体的测试架构应该是如下这样的三维状态:

        这种形态的测试部门,要求有足够的设施设备资源做基础支撑,测试团队的每个人员对产品的原理和应用要有足够深入的理解,对相应的法规和标准要足够的熟悉,并持续维持高度的技术专业性。这种宽领域的知识和技能储备,我把他比喻成了“海军陆战队”。测试团队的管理者要有足够的话语权,能够争取到上级的足够重视和支持投入,能协调到足够的外部配合,能建立一套科学的人才考核制度来推动整个部门的发展车轮向前滚动。

        这样的测试架构才能够保持自己的正常节奏,真正发挥出测试的本质作用——早期充分挖掘问题,提高产品可靠性,最大程度降低后期风险。

七、“社区型组织”阶段

        未完待续…


        版权声明:原创文章,转载请注明出处与链接,违者必究!

相关文章:

【Review+预测】测试架构演进的曲折之路

文章目录 前言 一、“原始”阶段 二、“小打小闹”阶段 三、“小米加步枪”阶段 四、“摩托化部队”阶段 五、“骑兵连”阶段 六、“海军陆战队”阶段 七、“社区型组织”阶段 前言 近期公司的测试团队需要重新组织安排,本着谦虚谨慎的态度,我从…...

2015年认证杯SPSSPRO杯数学建模D题(第二阶段)城市公共自行车全过程文档及程序

2015年认证杯SPSSPRO杯数学建模 D题 城市公共自行车 原题再现: 城市交通问题直接影响市民的生活和工作。在地形平坦的城市,公共自行车出行系统是一种很好的辅助手段。一般来说,公共自行车出行系统由数据中心、驻车站点、驻车桩、自行车&…...

视频汇聚平台EasyCVR启用图形验证码之后调用login接口的操作方法

视频综合管理平台EasyCVR视频监控系统支持多协议接入、兼容多类型设备,平台可以将区域内所有部署的监控设备进行统一接入与集中汇聚管理,实现对监控区域的实时高清视频监控、录像与存储、设备管理、云台控制、语音对讲、级联共享等,在监控中心…...

【数据结构】非线性结构——二叉树

文章目录 前言1.树型结构1.1树的概念1.2树的特性1.3树的一些性质1.4树的一些表示形式1.5树的应用2.二叉树 2.1 概念2.2 两种特殊的二叉树2.3 二叉树的性质2.4 二叉树的存储2.5 二叉树的基本操作 前言 前面我们都是学的线性结构的数据结构,接下来我们就需要来学习非…...

数据分析POWER BI之power query

1.导入数据 ctrla全选--数据--获取数据--其他来源--来自表格/区域 导入数据,进入编辑模式 2.整理与清除 清除:删除所选列的非打印字符 转换--格式--清除 修整:删除前面和后面的空格 转换---格式---修整(修整后前面后面的空格没有了…...

【c语言】详解操作符(上)

1. 操作符的分类 2. 原码、反码、补码 整数的2进制表示方法有三种,即原码、反码、补码 有符号整数的三种表示方法均有符号位和数值位两部分,2进制序列中,最高位的1位是被当做符号位其余都是数值位。 符号位都是用0表示“正”,用…...

VR全景展示:传统制造业如何保持竞争优势?

在结束不久的两会上,数字化经济和创新技术再度成为了热门话题。我国制造产业链完备,但是目前依旧面临着市场需求不足、成本传导压力加大等因素影响,那么传统制造业该如何保持竞争优势呢? 在制造行业中,VR全景展示的应用…...

2.7、创建列表(List)

概述 列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求(如通讯录、…...

solr functionquery函数查询自定义函数实现

Solr是一个开源的搜索平台,基于Apache Lucene库构建,主要用于提供全文搜索的功能。它被设计为一个高度可靠、可扩展的搜索应用服务器。以下是Solr的一些主要使用场景: 全文搜索:Solr最核心的功能是提供全文搜索,它可以…...

如何将 Parallels虚拟机 安装或者迁移到 移动硬盘 or U盘?

本文讨论主题 如何安装 Parallels 虚拟机到移动硬盘和U盘? 已经安装到了mac上的虚拟机如何迁移到移动硬盘活着U盘上? 关于Parallels Deskshop 19 虚拟机 安装激活,文末关注公众号AIshape,回复:PD 进行获取通过将虚拟机安装在外置的移动硬盘U盘上,可以节省mac本身SSD的容…...

大型网站集群管理负载均衡

课程介绍 结合企业大规模应用,解决应用高并发问题,解决单节点故障问题,缓存数据库的应用。学完掌握知识点:企业应用实现四七层负载均衡,以及Nginx等应用的高可用性,Redis缓存数据库的部署应用以及高可用方…...

JAVA使用POI实现Excel单元格合并-02

JAVA使用POI实现Excel单元格合并 实现效果 解释&#xff1a;只要是遇见与前一行相同的数据就合并 引入jar <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>5.2.2</version></depe…...

深入了解 Linux 中的 MTD 设备:/dev/mtd* 与 /dev/mtdblock*

目录 前言一、什么是MTD子系统&#xff1f;二、 /dev/mtd* 设备文件用途注意事项 三、/dev/mtdblock* 设备文件用途注意事项 三、这两种设备文件的关系四、关norflash的一些小知识 前言 在嵌入式Linux系统的世界里&#xff0c;非易失性存储技术扮演着至关重要的角色。MTD&#…...

2、Spring CLI安装

安装 Spring CLI 提供了多种格式,让您选择自己喜欢的安装方法。可下载的制品可从发布页面获取。 二进制发行版 WindowsLinuxMac手动安装(Windows,其他自己看) spring-cli-standalone-<version>-windows.x86_64.zip - 打包了 x86 JDKspring-cli-installer-<versi…...

数据库备份工具(实现数据定时覆盖)

数据库备份工具&#xff08;实现数据定时覆盖&#xff09; 永远热爱&#xff0c;永远执着&#xff01; 工具介绍 自动化测试数据库更新调度程序 这段 Python 脚本自动化了每天定时从生产数据库更新测试数据库的过程。它利用了 schedule 库来安排并执行每天指定时间的更新任务…...

测试环境搭建整套大数据系统(十二:挂载磁盘到hadoop环境)

一&#xff1a;链接硬盘 将硬盘连接到计算机的 SATA 接口或 USB 接口&#xff0c;并确保硬盘通电并处于可用状态。 二&#xff1a;查看硬盘信息 sudo fdisk -l三&#xff1a;创建分区 gdisk /dev/vbd重新扫描磁盘 partprobe /dev/vdb格式化磁盘 mkfs.ext4 /dev/vdb2查看磁…...

Spring事务核心:声明式事务注解式事务

全解&#xff1a;声明式事务和注解事务 在Spring中&#xff0c;事务管理是一个非常重要的特性&#xff0c;它可以帮助开发者在应用程序中实现事务控制。Spring提供了两种事务管理方式&#xff1a;声明式事务和注解事务。 1. 声明式事务 声明式事务是指通过配置文件或注解的方…...

AcWing 1015. 摘花生

Problem: AcWing 1015. 摘花生 文章目录 思路解题方法复杂度Code 思路 这是一个典型的动态规划问题。我们需要在一个二维网格中&#xff0c;从左上角走到右下角&#xff0c;每次只能向右或向下移动&#xff0c;目标是使得经过的路径上的数字之和最大。 我们可以定义dp[i][j]为从…...

Dalle-3、Sora、Stable Diffusion 3 掀起AIGC新浪潮

随着科技的飞速发展&#xff0c;我们迎来了视觉AIGC高光时刻&#xff0c;一个充满无限可能与机遇的新时代。在这个时代里&#xff0c;三大里程碑Dalle-3、Sora和Stable Diffusion 3以其炸裂式的技术发展&#xff0c;引领着AIGC领域的新浪潮。文章首先做相应简要介绍&#xff0c…...

Unity 视频组件 VideoPlayer

组件添加&#xff1a; 在自己定义的组件下&#xff08;例如&#xff1a;Panel&#xff09; 点击 Inspector 面板中的 AddComponent &#xff0c;输入“VideoPlayer”。 资源 这里 视频资源有两种形式&#xff0c;第一种是 VideoClip &#xff0c;需要将视频文件拖拽到该属性字段…...

大数据学习栈记——Neo4j的安装与使用

本文介绍图数据库Neofj的安装与使用&#xff0c;操作系统&#xff1a;Ubuntu24.04&#xff0c;Neofj版本&#xff1a;2025.04.0。 Apt安装 Neofj可以进行官网安装&#xff1a;Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

线程同步:确保多线程程序的安全与高效!

全文目录&#xff1a; 开篇语前序前言第一部分&#xff1a;线程同步的概念与问题1.1 线程同步的概念1.2 线程同步的问题1.3 线程同步的解决方案 第二部分&#xff1a;synchronized关键字的使用2.1 使用 synchronized修饰方法2.2 使用 synchronized修饰代码块 第三部分&#xff…...

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决

Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中&#xff0c;新增了一个本地验证码接口 /code&#xff0c;使用函数式路由&#xff08;RouterFunction&#xff09;和 Hutool 的 Circle…...

在QWebEngineView上实现鼠标、触摸等事件捕获的解决方案

这个问题我看其他博主也写了&#xff0c;要么要会员、要么写的乱七八糟。这里我整理一下&#xff0c;把问题说清楚并且给出代码&#xff0c;拿去用就行&#xff0c;照着葫芦画瓢。 问题 在继承QWebEngineView后&#xff0c;重写mousePressEvent或event函数无法捕获鼠标按下事…...

C#中的CLR属性、依赖属性与附加属性

CLR属性的主要特征 封装性&#xff1a; 隐藏字段的实现细节 提供对字段的受控访问 访问控制&#xff1a; 可单独设置get/set访问器的可见性 可创建只读或只写属性 计算属性&#xff1a; 可以在getter中执行计算逻辑 不需要直接对应一个字段 验证逻辑&#xff1a; 可以…...

使用LangGraph和LangSmith构建多智能体人工智能系统

现在&#xff0c;通过组合几个较小的子智能体来创建一个强大的人工智能智能体正成为一种趋势。但这也带来了一些挑战&#xff0c;比如减少幻觉、管理对话流程、在测试期间留意智能体的工作方式、允许人工介入以及评估其性能。你需要进行大量的反复试验。 在这篇博客〔原作者&a…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

比较数据迁移后MySQL数据库和OceanBase数据仓库中的表

设计一个MySQL数据库和OceanBase数据仓库的表数据比较的详细程序流程,两张表是相同的结构,都有整型主键id字段,需要每次从数据库分批取得2000条数据,用于比较,比较操作的同时可以再取2000条数据,等上一次比较完成之后,开始比较,直到比较完所有的数据。比较操作需要比较…...

OD 算法题 B卷【正整数到Excel编号之间的转换】

文章目录 正整数到Excel编号之间的转换 正整数到Excel编号之间的转换 excel的列编号是这样的&#xff1a;a b c … z aa ab ac… az ba bb bc…yz za zb zc …zz aaa aab aac…; 分别代表以下的编号1 2 3 … 26 27 28 29… 52 53 54 55… 676 677 678 679 … 702 703 704 705;…...