测试角色在项目各阶段的项目管理tips

news2024/11/27 0:28:10

目录

一、前言

二、现状及思考

三、详谈测试介入各阶段的项目管理tips

四、暴露风险最终与协作方共同确定运作策略

五、总结

 资料获取方法


 一、前言

项目管理是一个繁杂的过程,每个阶段需要涉及到不同人员、资源的协调配合。每个角色都有自己的定位和任务,为了紧密配合项目经理或无分配项目经理运行项目的场景下确保项目成员共同达成项目目标,不同的角色掌握相应的项目管理意识就尤为重要。

那么,测试角色作为项目交付的质量把控者,具备相应的项目管理意识在项目的高质量、高效率交付目标上有着重要作用,如前置识别质量风险、进度风险等。

本文旨在梳理、谈论测试角色在项目各阶段如何评估测试范围及风险、前置暴露问题以及推进测试进度等项目管理事项,高效协作及交付测试角色产物,最终与项目各方共同推进达到高质量、高效率交付的目标。

二、现状及思考

在现有敏捷迭代快速交付模式下,针对某一需求/项目会拆分至各个团队,各个团队节奏及交付目标不完全一致,且无项目经理角色跟踪推进的情况下,存在后置与协作团队沟通确认事项,如:未拉齐依赖方排期、前期未识别出改动系统、需求/设计变更未及时同步相关方、无设计方案沟通导致提测内容不满足提测标准,等均可影响交付节奏。那么作为测试角色的我们可以做哪些事情?

核心主旨:高效沟通协作,提前思考后续阶段较容易影响进度、质量问题及风险点,暴露问题,前置沟通、评估及推进相关事宜;避免问题后置暴露在测试阶段;下一章节就让我们来详谈各个阶段测试角色可提前关注事项,与各方高效协作共同推进解决的相关tips。

三、详谈测试介入各阶段的项目管理tips

3.1 需求评审阶段

软件测试的第一步就是需求评审,只有对软件需求做了准确、完整的评审后,才能对接下来各种测试工作的开展做好基础,如需求评审理解偏差,后期很多测试任务都将会受到影响。

需求评审完成需了解哪些信息:
  1. 优先级——识别项目/需求重点程度,优先级,以及期望上线时间情况(定位后续跟进力度)

  2. 需求背景——该需求基于什么业务背景改造(便于需求理解不偏差及后续测试阶段重点关注的核心目标)

  3. 改动范围——评审改动范围基于现有系统是否有冲突、是否明确合理,是否影响其他系统,也可关注下体验问题(避免后续开发测试阶段流程不通返工)

  4. 识别改动/交互系统——明确该需求是否涉及其他系统改动,识别改动系统/是否需配合联调系统(识别改动系统前置协调拉齐相关系统周期,避免后续阶段临时协调资源情况)

  5. 测试节点——软件需要进行哪些方面的测试,如功能测试、联调测试、回归测试、性能测试、稳定性测试、兼容性测试、安全测试等

  6. 测试环境——明确交互系统是否支持测试环境联调(可前置协调/前置确定联调方案,避免后置沟通确定环境占用测试周期)

  7. 测试数据——根据改动范围思考测试数据来源,识别是否可内部闭环造数,是否可使用测试小工具

  8. 测试方式——可前置思考使用功能测试、自动化测试

  9. 测试人员——识别测试干系人、明确主测试方(如重点项目/需求需要主测试情况)

3.2 设计评审阶段

设计评审为评价设计满足质量要求的能力,识别问题及提出解决办法。设计过程中越早增加质量保证活动对最终设计效果的影响就越明显。目前较大项目/逻辑较复杂需求/研发优化,均需研发输出设计评审文档并邀请测试参与涉及评审。

设计评审时需要check的内容:
  1. 设计思路满足需求——结合需求背景及内容优先关注设计思路是否与需求评审阶段理解的有偏差

  2. 设计内容是否存在遗漏——评估是否存在遗漏功能

  3. 关注实现方式——实时、异步等处理方式对后续测试排期、方式及测试难度有参考价值

  4. 评估改动设计影响——基于原有系统改动除本次需求修改内容是否影响原有功能,是需明确影响范围,研发侧输出影响范围

  5. 明确阶段范围——根据需求是否存在拆解阶段交付,是需明确各阶段交付内容

  6. 交互方/依赖方实现方式——关注交互方/依赖方实现方式

  7. UAT/灰度/上线方案——根据上线特性,前置沟通UAT/灰度/上线方案

3.3 排期阶段

排期阶段是项目管理中重要的一环,时常在此阶段会暴露一些风险,排期容易出现两个问题,一是排期不合理,二是后续不能按照排期稳步推进,好的排期就要尽量避免这两个问题,那么测试阶段合理的排期就需尽可能多的参考该节点及之前节点项目各方提供的有效信息,全局评估、拆分任务交付,最终提供较合理排期。

输出测试排期需要考虑的维度:
  1. 参考项目重点程度、优先级——是否优先级与已排期需求冲突,需参考优先级调整资源及排期

  2. 结合需求、设计参考及核对研发工时及排期、阶段交付内容——研发提供拆解后的任务排期是否合理(前置功能是否提前交付,依赖的任务是否有序等),测试依据研发排期时间提供可并行/串行等较合理的测试排期

  3. 关注研发是否有联调排期——需保障提测质量,时间紧任务重情况下是否压缩研发联调排期,可能影响提测质量及测试交付时间

  4. 测试联调排期——测试输出联调周期需拉齐对接系统排期(可协同产品沟通拉齐),避免临时协调联调时间导致延期

  5. APP排期——需确认实现方式为:原生/flutter

  6. 明确方案是否存在变更——可再次明确需求/设计方案是否存在变更未同步情况

  7. 明确主测试方——如涉及多方系统,排期阶段可明确主产品、主研发、主测试方

3.4 测试用例编写、评审阶段

测试用例的编写必须依据需求文档,结合设计方案,确认所有以疑问点,覆盖所有功能需求点,跟进需求情况输出冒烟测试用例、功能测试用例、联调测试用例,思考业务实操场景,模拟用户场景串联流程保障测试内容的高覆盖。并在用例评审节点邀请产研参与评审,有序进行用例评审,确认疑问共同完善测试点并会后输出评审会议纪要。

测试用例编写、评审阶段需要注意的事项:
  1. 确认需求文档版本及标准——明确最新PRD版本(存在产研线下沟通后未同步测试情况,尽量避免),如有原型需明确原型及PRD内容描述不一致情况下如何开展测试工作

  2. 思考细节逻辑合理性及歧义描述——思考细节逻辑描述是否合理,PRD描述存在歧义点需标注明确

  3. 包含充分的异常测试用例——丰富异常用例,避免异常情况下功能异常

  4. 识别用户体验问题——提示信息是否明确、页面功能是否易用

  5. 业务范围和系统设计维度补全用例——跟进需求及设计细化测试维度丰富测试用例

  6. 测试数据、账号、配置等——识别测试数据、账号及配置是否需协同方配合,是否可使用工具等提升效率,如需全流程连通在该阶段记录

  7. 测试用例评审——与产研侧确认测试范围、沟通疑问,评审用例设计的清晰度与合理性,优先级排定是否合理,是否覆盖了需求上所有测试点,用例是否具有很好的可执行性,用例的冗余处理机制,是否设计了充足的异常测试用例,是否从用户的角度出发来设计用户使用场景和使用流程的测试用例,是否简洁、复用性强。

  8. 联调用例评审——输出交互场景与交互方评审,如为主测试,评审前串联整个项目/需求的流程场景用例,组织评审、明确测试数据、账号、配置等信息

  9. 用例评审会议纪要——记录待确认点及已确认点

3.5 编码阶段

编码阶段作为研发角色活动,通过编码过程来实现产品需求,此阶段的异常等需相关方知悉;

研发阶段需同步的信息:
  1. 需求/方案变更——是否存在需求/方案变更,是否及时同步至产品、测试侧

  2. 是否有提测延期风险——存在延期风险会压缩后续测试周期,需前置识别并抛出

3.6 代码评审阶段

代码评审是研发全流程的工程实践之一,通过代码评审可以更好的保障产品质量和代码质量;可根据改动大小与研发侧沟通进行线上/线下等评审方式参与。

代码评审阶段需检验的标准:
  1. 慢sql、空指针等——可有意识评审慢sql、空指针等问题

  2. 业务逻辑——测试人员需关注是否有明显的逻辑错误,改动是否遵循业务逻辑

  3. 补全回归用例——跟进改动范围可识别需改动影响原有功能部分,特别注意需确保主流程是否影响,补充回归用例

  4. 文档——提供新接口/修改接口是否有相应的接口文档更新维护

  5. 需求冲突识别——关注改动范围,识别其他需求是否也存在改动该段代码问题,避免需求冲突

  6. 提高个人代码评审能力——学习研发针对代码评审的意见/建议以及好的代码实现逻辑,便于问题更早的发现(以及代码编写规范、可读性、可维护性等)

3.7 冒烟测试阶段

冒烟测试是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性,尽早发现较阻塞进度问题,提前识别。

冒烟测试阶段重点关注的维度:

  1. 基本功能验证——优先验证基本功能是否可用,便于后续逻辑等较复杂功能开展

  2. 主流程验证——优先识别主流程问题,避免流程阻塞,阻碍测试进度,提前暴露流程问题及风险(方式依据项目/需求情况有效采取手工/自动化方式进行)

3.8 功能测试阶段(内部测试阶段)

功能测试阶段开始了大规模的测试工作,在此期间仔细详尽的测试,

功能测试阶段核心把控的思想:
  1. 明确变更同步——针对测试阶段任何变更需同步至相关方,避免一方不知情

  2. 识别需求冲突——共同测试需求,测试分支、需求相互影响

  3. 测试数据高效使用——分析测试数据是否可验证多用例,高效使用测试数据验证尽可能多用例提升效率

  4. 测试问题务必抛出——测试阶段发现的问题即使较小也需要抛出来提供给相关确认方确认,如无需更改则记录相关结论

  5. 探索性测试——探索性测试,可在测试阶段发现前期未识别到的影响功能等

  6. 测试进度报告、风险抛出——针对时间较长/较大需求、项目发送测试进度报告,暴露风险(识别是否有影响进度、质量等风险问题,抛出问题,记录待确认问题及已沟通确认问题

3.9 联调测试阶段(包含研发联调、测试联调)

联调测试为了保障该需求/项目的所有改动场景下发的数据在全链路系统下正常流转闭环,覆盖用户真实实操场景来确保项目/需求的交付质量。

联调测试阶段注重:
  1. 研发联调环节——再次核对涉及系统交互需求/项目,研发联调工作是否覆盖主流程测试点

  2. 联调场景验证——与全链路系统进行联调测试验证,覆盖用户真实实操场景

  3. 补全联调场景——在联调阶段,可能存在场景覆盖不全情况,可有选择性了解上下游系统逻辑,可覆盖补全联调场景,且针对接口及消息尽量全的确保数据传输场景

3.10 稳定性测试(适用于APP)

为保障APP端用户体验,APP稳定性测试不可或缺,上线前针对上线版本进行稳定性测试已加入到APP测试流程中,日常针对APP稳定性随机测试也持续监控。

稳定性测试需监控:
  1. 崩溃率——监控阿凡达平台统计,分析APP线上崩溃原因,丰富稳定性测试脚本

  2. CPU实时监控——记录稳定性测试期间对应版本的CPU占用数据,平均值、最大值

  3. 内存实时监控——记录稳定性测试期间对应版本内存占用数据,平均值、最大值

  4. 网络实时监控——记录稳定性测试期间对应版本流量占用数据,平均值、最大值

3.11 UAT阶段

UAT阶段主要为业务验收阶段,用户角色验收产研测交付内容,为确保UAT顺利进行,较大项目/需求测试人员有针对性进行主流程拉通测试可提前发现配置、环境因素所产生的问题,此环节可加快UAT进度确保项目更高效交付(该阶段可根据项目诉求调整)。

UAT阶段应保障:
  1. 拉通主流程——根据项目/需求大小确定是否需拉通UAT,避免UAT因配置/环境等原因产生流程阻塞

  2. 跟进/复盘UAT问题——针对较大项目/需求跟进及复盘UAT中产生的问题,规避重复问题产生事项

3.12 上线前master回归测试阶段

上线前master回归未确保长时间需求不上线分支及版本冲突等因素,上线当前进行master回归操作可有效确保发布内容运行稳定,保障质量。

master回归阶段需check:

master回归测试——回归上线功能主流程以及原有流程主流程,规避测试分支与上线分支代码冲突等问题

四、暴露风险最终与协作方共同确定运作策略

在项目各环节已前置思考可能带来的风险,提前规避、提前暴露,但并不能完全保障,那么在暴露风险后,可参考风险程度分析与分类定位,与项目各方高效协作,共同商榷解除风险的可行性方案以及后续运行策略。

4.1 风险程度分析

  • 极小:没有危害或微小危害 20%

  • 轻度:轻度危害 40%

  • 中度:中等 60%

  • 重度:较大危害 80%

  • 极大:重度危害 100%

4.2 风险识别分类/分解结构

  • 技术类:明确是否为需求/技术层面引起的风险

  • 组织类:明确是否为项目依赖关系、资源等原因引起的风险

  • 外部:明确外部影响具体原因

4.3 与协作方共同商榷风险推进方案

测试人员可根据测试角度定位风险优先级,优先解决风险程度较高问题,且优先级较高风险需同步至上级知悉,必要时可采取升级等方式处理;

  1. 如为技术类风险——与项目经理、产品、研发共同评估技术层面解除方案;

  2. 如为组织类风险——与项目经理、产品、研发共同协同调整计划/申请资源等方式处理;

  3. 如为外部风险——测试人员需提供具体问题,协同项目经理、产品沟通具体原因,采取相对应的应对措施;

4.4 举例说明

4.4.1 举例一

背景:管理工作台项目(优先级top1,交付时间紧,开发工作量大)
产生问题:因测试周期时间紧,为避免延期提测,测试在研发阶段明确提测时间时,发现提测存在延期风险

  • 风险程度分析及分类:组织类-重度风险
    (识别阶段:研发阶段,识别及反馈角色:测试人员,类型:进度类)

  • 与协作方商榷推进方案(解决过程及方案):
    因项目优先级较高,测试人员将此风险反馈至主产品及产品负责人处,因各方前期了解的信息存在差异化/关注点不一致等,线下拉齐会议沟通,根据交付优先级拆解交付内容,迭代提测进行测试,最终拉齐前、后端研发、测试交付目标一致,并调配资源进行各项任务交付,风险解除。

小结:依据风险程度,可内部解除的快速推进落地,需耗时较长/协调资源等需及时反馈至上级沟通,确保风险尽快解除落地。

五、总结

前置评估、高效协作

保障在前置阶段通过测试经验总结提前思考后续阶段会带来的影响,包含但不仅限于:信息不同步、影响范围不明确、依赖关系不清晰等,前置有意识的识别较容易影响进度、质量问题及风险点,并暴露问题,继而与相关协作方高效协作、评估及推进风险点解除,避免问题后置暴露在测试阶段甚至交付上线阶段。


 资料获取方法

【留言777】

各位想获取源码等教程资料的朋友请点赞 + 评论 + 收藏,三连!

三连之后我会在评论区挨个私信发给你们~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/858802.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

15.3 【Linux】循环执行的例行性工作调度

相对于 at 是仅执行一次的工作,循环执行的例行性工作调度则是由 cron (crond) 这个系统服务来控制的。刚刚谈过 Linux 系统上面原本就有非常多的例行性工作,因此这个系统服务是默认启动的。另外, 由于使用者自己也可以…

Linux命名管道进程通信

文章目录 前言一、什么是命名管道通信二、创建方式三、代码示例四、文件进程通信总结 前言 命名管道 是实现进程间通信的强大工具,它提供了一种简单而有效的方式,允许不同进程之间进行可靠的数据交换。不仅可以在同一主机上的不相关进程间进行通信&…

[AHOI2002] 哈利·波特与魔法石

[AHOI2002] 哈利波特与魔法石 哈利波特与魔法石题目描述输入格式输出格式样例样例输入样例输出 解题思路AC 代码 哈利波特与魔法石 题目描述 输入格式 文件中第一行有七个数,分别是 S1、 S2 、 …、 S7 ;第二行有两个数,依次分别是起点城市…

网络知识面试题

一、TCP 和 UDP 的区别 我们一句话概率区别就TCP 是有连接的可靠传输,UDP 是无连接的不可靠传输。 1、TCP 在传输数据时需要先建立连接,UDP 不需要 2、TCP 传输的数据包比较复杂,UDP 传输的数据包比较简单 3、TCP 使用确认应答机制、超时重传…

通过Python模拟计算附近WIFI密码,没有我蹭不到的网

前言 大家早好、午好、晚好吖 ❤ ~欢迎光临本文章 今天来分享一下如何通过 Python 脚本实现 WIFI 密码的自动猜解 无图形界面 先来看看怎么实现没有图形界面版的自动猜解。 WIFI猜解 导入模块 import pywifi from pywifi import const import time import datetime测试连…

ejbca:8443报文跟踪

安装客户端证书后,访问管理员页面 :8443/ejbca/adminweb 同时在wireshark抓包 1、客户端向对端发出Client hello 在Server Hello看到一个颁发给客户端的证书,颁发给5be85c9c1df9(客户端node hostname 5be85c9c1df9)但没有在Clie…

ROS机器人操作系统Catkin的编译与常用命令的使用介绍

ROS中命令有很多,对一些频繁使用的常见命令,做一个整理,这些命令在平时操作机器人当中都是常用到的,也是在ROS中如何让机器人正常运作的必备知识。 尤其是对包进行编译时,熟悉CMake的朋友来说会很简单,在R…

方法重载和方法重写

方法的重载 Overload 对于功能类似的方法,因为参数列表不一样,却需要记住那么多不同的方法名称,太麻烦。多个方法的名称一样,但是参数列表不一样。( 同名不同参 ) 方法重载与下列因素相关: 参…

Java正确的错误捕获姿态

理论概述 在Java中,捕获异常并且合理地处理或抛出异常是编写健壮和可靠代码的关键部分。但是有时候我们可能会对各种错误的捕获方法有点模棱两可,不知道怎么合适的去使用,这里作为基础知识我们做一个回顾巩固!只有正确的开发方法…

原生js发送ajax请求---ajax请求篇(一)

在原生js中我们使用的是XMLHttpRequest对象来发送ajax请求 主要步骤就是: 1.创建XMLHTTPRequest对象 2.使用open方法设置和服务器的交互信息 3.设置发送的数据,开始和服务器端交互 4.注册事件 5.更新界面 (1) get方式 //步骤一…

Java自学网站推荐,专业教学快速提升

Java自学网站可以是学习Java的有用资源之一。它们通常提供了丰富的教学材料、在线课程、编程练习和实例项目,帮助初学者系统地学习Java编程语言和相关技术。 动力节点是一家专业的Java培训机构,他们提供在线视频学习平台,你可以参考他们的官方…

在用的二手电动汽车,雨季时,要注意保养哪些地方?

二手电动汽车在雨季的保养有一些特别需要注意的地方。首先,你要确保你的车子有足够的防水措施。电动汽车的电池组和控制系统通常都装在车辆底部,而这些部分是最怕水的。如果这些部分进水,可能会导致严重的电气故障,甚至可能会引起…

多语言B2B2C跨境购物平台无货源商品库搭建(全开源)

要搭建一个多语言B2B2C跨境购物平台,需要以下几个步骤,包括商品库的搭建、网站基础架构、多语言支持、订单管理、会员管理、营销推广、物流配送和支付接口集成。 1. 商品库的搭建 首先需要建立一个商品库,包括商品的名称、描述、价格、图片…

3理解图像本质-AI-python

下载Jupyter Lab 代码如下: import numpy as np //导入包 import matplotlib.pyplot as plt //为了显示图片要导入另一个图 %matplotlib inline //显示图片防止出错,在行内显示 from PIL import Image //读取图片 img Image.open(E:/ANCONDA/AI_Pyth…

Web前端之NodeJS、Vue

文章目录 一、Babel转码器1.1 Babel安装流程1.2 Babel命令行转码 二、Promise对象三、测试方式四、Vue(渐进式JS框架)4.1 准备4.2 创建一个项目4.3 运行一个项目 五、模板语法5.1 文本5.2 原始html5.3 属性Attribute5.4 使用JavaScript表达式 六、条件渲…

数据结构与算法基础-学习-28-图之拓扑排序

一、相关概念 名称描述有向无环图无环的有向图,简称DAG图(Directed Acycline Graph),通常用来描述一个工程或系统的进行过程。AOV网用一个有向图表示一个工程的各子工程及其相互制约的关系,其中顶点表示活动,弧表示活…

paddleseg数据集自定义比例划分为测试集test.txt,训练集train.txt,验证集val.txt

将语义分割的数据集标注好后如下所示: 整理好图片和标签文后需要按照比例划分为训练集,验证集,测试集。 具体划分代码见下: import glob import os.path import argparse import warnings import numpy as npdef parse_args():p…

数组对象去重的几种方法

场景: let arrObj [{ name: "小红", id: 1 },{ name: "小橙", id: 1 },{ name: "小黄", id: 4 },{ name: "小绿", id: 3 },{ name: "小青", id: 1 },{ name: "小蓝", id: 4 } ]; 方法一:…

Leetcode.1289 下降路径最小和 II

题目链接 Leetcode.1289 下降路径最小和 II rating : 1697 题目描述 给你一个 n x n 整数矩阵 g r i d grid grid ,请你返回 非零偏移下降路径 数字和的最小值。 非零偏移下降路径 定义为:从 g r i d grid grid 数组中的每一行选择一个数字&#xff…