提升提测质量之研测共建 | 京东云技术团队

一、序

日常研测工作演绎

你是否也有同样的困惑?

跟进的需求,就在提测前一秒,被告知不能如期提测了,研测计划被打乱;

提测的功能,犹如遇到不好的购物体验,缺斤短两,与prd预期不符;

产研测三方需求理解不一致,临时组会讨论,出临时解决方案;

等等。。。

你是否也遇到了以下的挑战?

1.时间约束:敏捷开发周期较短,迭代速度快,使得测试人员很难在可用的时间内彻底测试软件;

2.回归测试:在不断地迭代中,系统功能大大小小的功能点,多如牛毛,如何能准确确定回归范围?

3.测试自动化:敏捷开发通常需要高度的测试自动化来跟上快速的开发节奏,测试case的开发和维护,都需要投入大量的时间和精力。

面对这些困惑、挑战,我们该如何去推动、提升研发的提测质量呢?有没有前置的动作,能够提高提测质量呢?

二、提测质量研测共建

软件项目中,影响产品质量的因素很多:需求质量、设计质量、编码质量**、**测试质量,甚至发布时的配置,都会影响最终的交付质量。提测前的工作占比高,为核心环节,过程、质量的好坏,直接决定最终的结果。

1. 责任与使命

参与者的参与度、责任感,都会直接影响整个产品质量:

目标管理:“心之所向,行之所往,未来可期”,在软件项目中,也同样适用,有明确的目标,即把工作做好、做极致、做完美,才会有好的结果。

越位思考,本位做事:每个参与除了要考虑岗位职责范围的工作,还要将自己置身于整个过程、整个链路中,思考上、下游衔接点,做好无缝衔接。

拥抱变化:软件研发管理中,变化是常态,参与者要善于调整计划,适应变化。

自我提升:在工作中,不断地提升自身的技术能力,拓展业务知识,提高沟通和协作能力,通过持续的提升,提高工作效率,提升工作质量。

2. 项目管理

2.1 资源管理

人员是最为重要的项目资源,进行工作安排时,应充分考虑以下几点:

人员的责任心够么?能够支撑他完成这项任务么?

人员能力与项目所需能力是否匹配,会小马拉大车么?

人员对业务是否了解?是否能把握当前需求么?

人员的工作量是否已饱和?是否能消化当前需求?

2.2 流程管理

在每个迭代实施过程中,形成标准化的协作流,如下图:

在践行标准的流程下,还有些细节点可以帮助提升提测质量:

2.2.1 需求评审阶段

在敏捷管理中,需求评审是一个关键环节。需求是项目实施过程中共同的标准参考,需求的质量很大程度上决定了最终的交付质量,研测要在评审前,做充分的思考:

  1. 评审前,研测人员对需求进行预习,准备待确认问题,对需求问题进行信息拉齐;

  2. 抽象:从宏观层面,了解业务背景,理解要解决的业务痛点;

  3. 具象:了解需求功能,了解相关功能的上下文;

  4. 抽离:对功能进行推理、演化、扩展,提出需求未明确的场景,进行补充确认;

  5. 控场:对于歧义较大、需求缺失信息较多的情况,合理拒绝。

  6. 对评审的问题,形成待办,落实责任人。对问题进行跟进,对结论进行同步。

2.2.2 研发设计评审阶段

在敏捷管理中,设计方案评审是一个重要的环节,旨在确保项目的设计方案符合项目需求、技术标准,准确评估影响范围。

  1. 研发人员需要编写清晰、具体、可验证的设计文档,数据库设计,接口文档,以便在评审过程中更好地理解和评估设计方案;

  2. 测试人员评审前对相关文档进行预习:包含但不限于以下文档,设计文档、依赖的内部、第三方、企微接口文档、数仓表、上下游功能等;

  3. 测试人员准备待确认问题,不限于设计问题,也可包含业务场景补充、影响范围补充;

  4. 测试人员提合理的物料要求:比如造数、日志关键字支持,在测试环境进行冒烟测试,配置依赖的配置信息,通过业务流完成冒烟测试;

  5. 测试人员,可以提前识别复杂造数场景,与研发沟通,协商采用脚本或其他工具提前完成;

  6. 研发技改需求,研发为了追求完美,方案可能会改多版,改动随意,要求明确改动点,影响范围,回归范围;

2.2.3 研发开发、自测阶段

  1. 频繁沟通,保持频繁、及时、有效的沟通,确认需求理解一致性,确保对项目的需求和进展有清晰的理解;

  2. 对业务背景及需求理解透彻,避免开发方向性错误;

  3. 合理设计方案,具备灵活扩展、足以应对小的需求变更的能力;

  4. 合理工作拆分,尽量减少交叉工作及相互依赖;

  5. 合理评估工作量,细化工作内容,规避工期对质量的影响;

  6. 合理设计自测场景,提前了解测试用例,提高自测意识及覆盖度;

  7. 全面评估及约束影响范围,避免对已有功能产生不可预知的影响;

  8. 开发细节过程可追溯,避免在测试阶段遗漏;

  9. 代码评审,通过评审,帮助团队发现签潜在的问题,提高提测质量。

2.2.4 测试用例设计及评审阶段

  1. 测试用例前置,帮助团队发现潜在的问题,避免在后期才发现问题,从而降低修复问题的成本;

  2. 充分理解需求,了解业务的痛点,从业务层设计,全面覆盖业务场景;

  3. 理解技术实现过程,了解数据存储及数据处理逻辑,多考虑可能的异常情况,对数据的不同态进行考虑设计;

  4. 自动化测试用例资源盘点,复用自动化用例,提高测试效率,扩大测试回归范围,保证测试质量;

  5. 测试物料准备工作前置,环境的构建,数据的准备,脚本的开发,资源的协调等;

  6. 充分进行需求变更,通过改动点,精准圈定变更范围;

2.2.5 冒烟测试阶段

  1. 严格按照约定的标准进行准入、准出;

  2. 根据过往合作情况,灵活调整冒烟策略;

  3. 对冒烟测试不通过的需求,进行记录;

  4. 可酌情,做必要的冒烟支持工作;

2.2.6 持续改进

质量数据积累

通过积累的度量数据,提供分析,改进过程的数据依据。

质量门禁建设

质量门禁的作用,就是从需求阶段开始,尽早的介入需求设计、产品设计和技术方案设计等环节,通过评审、提问等方式,尽可能多的发现存在的问题,通过制定科学合理符合项目实际情况的准入准出标准,来保证每个环节流转到下一环节的输出结果,质量更高。

不但测试需要建设质量门禁,研发也同样需要。

自动化测试用例库建设

自动化测试用例建设是软件测试过程中的一个重要环节,帮助测试团队提高测试效率、减少人工测试的工作量,以及确保软件质量。测试人员,在项目结束后,要完善响应的case,通过自动化case的不断积累,来打破时间约束带来的问题。

复盘总结+分享

以史明鉴是一种重要的学习方法,定期复盘总结很有必要,能够帮助我们避免犯重复的错误,在错误中吸取教训,补充缺失点,并形成文档或报告,以供以后的项目参考。

作者:京东零售 王兰青

来源:京东云开发者社区 转载请注明来源

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

wpf devexpress 添加GanttControl到项目

这个教程示范如何添加GanttControl 到你的项目使用内置GanttControl数据类。 要求 添加 Devexpress.Wpf.Gantt Nuget包到你的项目使用GanttControl. 数据模型 GanttControl携带和内置数据对象,可以使用创建视图模型: GanttTask 呈现甘特图任务 Gan…

web服务器练习---配置nginx三种虚拟主机

在做实验之前,大家先安装nginx服务,有两种安装方法: 1、rpm包安装(安装过程简单,适用于学习阶段,方便测试) 2、源码安装(安装过程较为复杂,适用于生产环境)…

三十分钟学会Hive

Hive的概念与运用 Hive 是一个构建在Hadoop 之上的数据分析工具(Hive 没有存储数据的能力,只有使用数据的能力),底层由 HDFS 来提供数据存储,可以将结构化的数据文件映射为一张数据库表,并且提供类似 SQL …

设计模式--模板方法外观模式

模板方法模式 场景:需使用代码方式实现,考完试后,将各个学生的试卷及答案誊抄一份。 假如有两个学生的试卷誊抄完毕. // 学生A public class TestPaperA {// 试题1public void testQuestion1() {System.out.println("问题一:XXXXXXXX…

一文搞懂RC滤波器的设计?

滤波器是一种可以对“波”进行过滤的器件,一般是特定频率的信号。所以可以常常看到滤波器的种类繁多,有高通滤波器,低通滤波器,带通滤波器及带阻滤波器等等。 滤波器的主要作用就是滤波,它需要尽可能的让有用信号能够做…

九. Linux网络命令

网络命令write 网络命令wall 网络命令ping 首先,ping程序会向域名服务器(DNS)发送请求,解析域名www.baidu.com的IP地址。DNS返回域名的一个别名www.a.shifen.com以及对应的IP地址183.2.172.185。之后ping程序开始向这个地址发送请求报文,每1s…

大模型重塑软件设计,南京真我加入飞桨技术伙伴,大模型生态圈成员又添一员!...

为帮助伙伴更快、更好的应用大模型技术,飞桨技术伙伴体系及权益基于星河共创计划全面升级,通过丰富的场景、技术、算力、品牌等资源,为伙伴企业提供一站式的大模型资源对接,全面降低创建AI原生应用的门槛。 近日,南京真…

C 语言字符串

C 语言字符串 在本教程中,您将学习C语言编程中的字符串。您将在示例的帮助下学习声明它们,对其进行初始化以及将它们用于各种 I / O(输入/输出)操作。 在C语言编程中,字符串是以null字符\0结束的字符序列。例如: ch…

电子学会2023年06月青少年软件编程(图形化)等级考试试卷(一级)真题,含答案解析

青少年软件编程(图形化)等级考试试卷(一级) 一、单选题(共25题,共50分) 1. 看图找规律,请问下图红框中是?( ) A.

京东数据采集与挖掘(京东大数据):2023年10月京东冰箱品牌销售排行榜

鲸参谋监测的京东平台10月份冰箱市场销售数据已出炉! 10月份,冰箱市场的销售额有小幅上涨。鲸参谋数据显示,在京东平台上,今年10月冰箱市场的销量为94万,销售额将近23亿,同比增长超过1%。从价格上看&#x…

Flume学习笔记(1)—— Flume入门

Flume 概述 Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统 Flume 基于流式架构,灵活简单 Flume最主要的作用就是,实时读取服务器本地磁盘的数据,将数据写入到HDFS 基础架…

4.3每日一题(知全微分求函数本身)

公式 1、先通过公式:dx前系数对y求偏导、dy前面的系数对x求偏导,求出 f(x)的表达式;对x求不定积分,再通过 f(0)0求出常数C,即可求出 f(x) 2、把F(x)的全微分列出来,dx、dy前面的表达式分别为F(x)偏x、y的…

数据库编程sqlite3库安装及使用

数据库编程 数据库的概念 数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。 数据库是存放数据的仓库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是…

在python中os.chdir()的含义以及用法

文章目录 一、os.chdir() 是什么?二、用法注意 一、os.chdir() 是什么? 在Python中,os.chdir() 是 “change directory” 的缩写,意思是改变当前工作目录。这个函数是Python的 os 模块的一部分,允许你更改程序的工作目…

CTF-虚拟机——【前置知识二】

文章目录 CPU虚拟化特权级压缩权限系统虚拟化解决方法模拟&解释执行(VMware)扫描&修补二进制翻译(Binary Translation)二进制代码翻译技术与扫描修补技术区别硬件辅助虚拟化技术(VT)VMX操作模式&am…

在线 sha1 加密

ttmd5 http://www.ttmd5.com/hash.php?type5 qqxiuzi https://www.qqxiuzi.cn/bianma/sha-1.htm jb51 http://tools.jb51.net/password/sha_encode

vue3安装vue-router

环境 node 18.14.2 yarn 1.22.19 windows 11 vite快速创建vue项目 参考 安装vue-touter 官网 yarn add vue-router4src下新建router文件夹,该文件夹下新建index.ts // router/index.ts 文件 import { createRouter, createWebHashHistory, RouterOptions, Ro…

浅谈霍尔电流传感器在UPS蓄电池浮充电流远程监测方案的应用-安科瑞 蒋静

摘要:针对无人平台UPS蓄电池多次出现浮充电流过高的现象,介绍了UPS系统的结构和工作原理,通过应用霍尔电流传感器,DCS组态,实现UPS蓄电池浮充电流远程监控,异常电流故障报警,推动了无人平台的自…

《向量数据库指南》——TruLens + Milvus Cloud构建RAG深入了解性能

深入了解性能 索引类型 本例中,索引类型对查询速度、token 用量或评估没有明显影响。这可能是因为数据量较小的关系。索引类型对较大语料库可能更重要。 Embedding 模型 text-embedding-ada-002 在准确性(0.72,平均 0.60)和答案相关度(0.82,平均0.62)上优于 MiniLM Embeddin…

BUUCTF [GXYCTF2019]佛系青年 1

BUUCTF:https://buuoj.cn/challenges 题目描述: 密文: 下载附件,解压得到ZIP压缩包。 解题思路: 1、压缩包内有一张png图片和一个txt文本,解压zip压缩包,解压出图片,但txt文本提示需要输入密…