聊聊测试左移到需求阶段

news/2024/5/17 19:37:16 标签: 精益工程, 敏捷流程

这是鼎叔的第七十九篇原创文章。行业大牛和刚毕业的小白,都可以进来聊聊。

欢迎关注本公众号《敏捷测试转型》,星标收藏,大量原创思考文章陆续推出。本人新书《无测试组织-测试团队的敏捷转型》​​​​​​​已出版(机械工业出版社),各大电商平台热销中,30万字350页。

测试左移是多年来测试行业的热门话题,在实际的践行中容易停留在“意识流”层面,仅仅是鼓励测试人员应该“主动做什么”,然而在业务压力大的常态下,被鼓励的尝试往往无疾而终。只有基于敏捷理念的理解,对研发生命周期各个环节进行质量内建实践,才能把测试左移落实成好习惯,形成好流程,最终内化为敏捷团队的本能。

具体而言,测试左移,可以移动到需求澄清阶段,也可以移动到开发设计、编码和开发自测阶段。

而测试右看,是指当研发阶段的测试活动结束,产品进入发布上线阶段时,测试人员依然不能放松对质量数据和用户反馈的敏锐度,持续汲取下个迭代如何改进的反馈,形成滚动提升的飞轮。

测试左移和右看》这个专辑,将基于多年来的测试团队实践,分享在测试左移和右看活动中的推荐做法和有效经验,它们也是敏捷理念在测试活动中的落实,在整个软件生命周期中持续性测试。

为什么要左移到需求阶段

敏捷测试的本质是尽早测试,频繁测试,推动质量从源头内建。

而产品研发的源头,自然是需求产生及澄清阶段。精益需求的产生过程,就是测试左移最早可以发力的地方。

如果我们忽视在需求阶段的测试左移活动,仅依靠软件工程层面的效能提升,始终会存在部分本质矛盾难以解决的情况。需求质量难以提升,那么很容易给技术团队带来频繁的返工和浪费。测试左移到需求的本质,就是从一开始尽量提高需求的可测试性。

基于敏捷知识,先从精益需求的产生过程进行介绍。相关内容请参考 聊聊精益需求的产生过程

一个软件产品需求的产生流程可以简单分为这几个阶段,最终将形成价值验证的闭环。

图片

制定业务目标:确定产品的愿景,商业机会,和核心价值(包含产品定位的差异化策略等),并确定目标群体。以此为蓝图制定本年度的商业发展目标,包含量化指标。

梳理用户(或客户)需求:通过多种调查方式,如用户访谈,用户画像,用户调查问卷等,完成相关的定性定量分析,挖掘出用户真正需要满足的诉求,即定义好产品的“问题域”。在此阶段可以将梳理完成的用户需求写成BRD(商业需求文档)。

产品设计方案:在产品核心目标和定位的基础上,根据用户的本质诉求,形成完整的产品设计创意思路,最终给出可落地的产品设计方案,即梳理出产品的“解决域”。所谓可落地就是成本,时间,技术能力等限制条件都可以满足。这个阶段就可以开始输出PRD(产品需求文档)了。

拆解单个功能需求及用户故事:根据产品设计方案,对产品能力需求进行梳理和优先级排序,整理出具体的需求描述,然后进一步识别/拆解为可开发的用户故事。

需求评审会议:完成了上述的需求定义过程,产品负责人组织需求评审会议,和技术团队以及其他项目干系人澄清产品方案,分享需求背景知识,需求定义和优先级。团队估算工作量,确认交付计划(包括重要发布计划和短期迭代计划)。

测试人员如何提升需求质量

以上就是常见的需求产生及澄清过程,期间并非只由产品人员唱独角戏。在这些阶段中可以进行上一个专辑介绍的多种敏捷测试实践活动 聊聊团队如何开始敏捷转型(合辑共15篇)。我们测试同学可以从下面几个方面进行质量把关,并输出专业意见,帮助产品经理和特性团队,在进入开发环节之前提升需求质量。

1)明确需求价值。

2)完善用户画像和用户故事场景。

3)需求评审前给出验收测试点,帮助团队建立需求验收标准。

4)迭代计划会议确保需求拆解合理,测试任务纳入估算。

5)需求评审中把关质量,并明确DoR纪律。

这篇文章重点说说测试人员如何实践前两方面的活动。

明确需求价值

首先,需要向业务方或产品经理获得背景知识,为什么我们要上这个需求?

第一,不做这个需求有什么损失?用户对我们这个需求有多期待?有没有具体反馈声音可以让我们学习?这对于测试场景的思考有极大好处。

第二,这个需求对公司有什么好处?提高满意度口碑,还是能提高收入?有利于我们未来盈利么?新需求是否匹配产品的“调性”(定位),它是否有利于产品长期目标的达成?

能提高用户口碑,或者提高利润的功能,自然是我们着力要保障的高优先级需求。

知道了业务价值是什么,成功的方向是什么,就能更充分地调动项目参与工程师的积极性。

其次,如何客观度量产品特性上线后带来了预期的价值?

虽然产品负责人对产品设计的价值(或商业变现目标)负责,但是产品价值是体现在具体指标的,和用户场景息息相关。测试人员知道了商业上的度量指标定义和目标,就能更加关注要验收的核心场景。

另外,对于预期价值的思考及信息同步,也给了产品负责人以终为始的压力。产品需求绝不是越多越好,甚至有可能新功能上线越多,用户流失越快。把产品预期价值和背后的逻辑晾晒给技术团队看,既可以推动产品设计更加深思熟虑,也可以获得技术人员宝贵的早期意见输入。

再次,多挖掘本产品相关的竞品信息和行业信息。

看竞品。本产品的竞争对手为用户提供了哪些相似能力的解决方案?他们和本产品的说明书差异是什么?实现方案有啥不同(哪个感觉更靠谱)?测试人员从中可思考什么场景、什么指标可以用来做竞品对比。

看行业(本领域)。本产品所在的细分领域,有什么规范/默认潜规则,是本产品(需求)应该顾忌的?本领域是否有约定俗成的产品形态/交互风格,让用户早已养成习惯?这背后有什么博弈故事么?理解约定俗成的法律、规范、强大习惯,就可以让测试断言(是否有效缺陷,严重程度如何)更有底气,降低争论成本。

最后,当需求功能上线一段时间后,敏捷特性团队通常应该复盘上线的结果,确认具体商业价值指标是否达成预期,产品设计方案是否达到预期,还可以针对上线的具体特性功能,观察用户使用健康度(通过数据埋点)是否达到设计预期。

如果没有达到预期,产品团队要思考背后缺失了什么,以此来调整后面的设计方案和需求安排。

完善用户画像和用户故事场景

测试人员同产品经理一道,梳理用户画像并给出自己的看法,再根据目标用户的特征和视角,针对性地调整测试优先级和覆盖场景。

首先,我们可以挖掘下,目标用户是从哪些维度来划分的?

一是从人口学特征划分,包括年龄,性别,地域,人体特征(如左撇子,手型大小,视力情况等等)。

二是从使用习惯和经验划分,如新手用户和老手用户,强目的性用户(专找秒杀,或用完即走)和漫游型用户(随便看看)。从中我们总结出用户的痛点和对产品的期待。

三是从文化背景/社会背景划分,识别用户的特征,如城市白领,小镇居民,乡村农民;如高级知识分子和中学文凭的工人;如中国大陆用户和东南亚用户等。对于测试人员不熟悉的社会文化背景,比如海外市场产品,有必要认真学习当地社会和文化知识,甚至出差去该国家走访,体验典型用户所处的生活氛围。

四是从平台角度来划分,是公司外部用户还是公司内部用户(如管理员)。

理解了被划分的主要用户类型,我们可以在脑海里尝试给每种类型创造一个生动的典型人物,起一个名字,如电商产品的用户——张小婷,想象她具备上述哪一种个性特征,如果她给我们产品的各个功能进行满意度打分,会打几分?标准是什么?她会用什么关键词来表达情绪?

当然,我们也可以从客服“用户之声”详细原声访谈中,或者从产品经理做用户调研的定性分析和定量分析中,寻找生动的典型用户形象、使用习惯和评价尺度。

至于如何完整梳理产品的用户故事场景,我们可以学习和实践用户故事地图的脑爆和设计方法(待下回分解)。而用户故事的具体概念和估算&拆解实践,请参考:聊聊用户故事与测试启发,聊聊用户故事的估算和拆解


http://www.niftyadmin.cn/n/5169672.html

相关文章

core-site.xml,yarn-site.xml,hdfs-site.xml,mapred-site.xml配置

core-site.xml <?xml version"1.0" encoding"UTF-8"?> <?xml-stylesheet type"text/xsl" href"configuration.xsl"?> <!--Licensed under the Apache License, Version 2.0 (the "License");you may no…

AIGC ChatGPT4 能为你做哪些事情

分类内容学术论文它可以写各种类型的学术论文,包括科技论文、文学论文、社科论文等。它可以帮助你进行研究、分析、组织思路并编写出符合学术标准的论文。创意写作它可以写小说、故事、剧本、诗歌等创意性的文学作品,能够在描述情节和角色方面提供帮助。内容创作它可以写SEO文…

基于Docker容器DevOps应用方案

文章目录 基于docker容器DevOps应用方案环境基础配置1.所有主机永久关闭防火墙和selinux2.配置yum源3.docker的安装教程 配置主机名与IP地址解析部署gitlab.server主机1.安装gitlab2.配置gitlab3.破解管理员密码4.验证web页面 部署jenkins.server主机1.部署tomcat2.安装jenkins…

PanNet: A deep network architecture for pan-sharpening(ICCV 2017)

文章目录 AbstractIntroduction过去方法存在的问题我们提出新的解决方法Related work PanNet: A deep network for pan-sharpening&#xff08;PanNet:用于泛锐化的深度网络&#xff09;Background and motivationPanNet architectureSpectral preservationStructural preserva…

Vue报错解决Error in v-on handler: “Error: 无效的节点选择器:#div1“

因为我们在创建元素之前用了#div1"所有它会报错&#xff0c;解决方案简单粗暴咱们直接用 setTimeout(createEdit, 1)解决问题了 原理&#xff1a;vue的虚拟dom创建完成以后再调用真是dom就没啥问题 function createEdit() {const editor new E(#div1)editor.config.hei…

【机试题】编写一个Java函数,实现批量获取数据的功能

题目&#xff1a;编写一个Java函数&#xff0c;实现批量获取数据的功能&#xff08;BService.get(List ids)&#xff09;。具体要求如下&#xff1a; 1)提供一个函数BService.get(List ids)&#xff0c;支持最多传入100个id&#xff1b; 2)在BService.get((List ids)函数内部&a…

【MATLAB源码-第74期】基于matlab的OFDM-IM索引调制系统不同频偏误码率对比,对比OFDM系统。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 OFDM-IM索引调制技术是一种新型的无线通信技术&#xff0c;它将正交频分复用&#xff08;OFDM&#xff09;和索引调制&#xff08;IM&#xff09;相结合&#xff0c;以提高频谱效率和系统容量。OFDM-IM索引调制技术的基本思想…

2、鸿蒙开发工具首次运行时开发环境配置

请务必在第一次运行时配置好开发环境&#xff0c;如果取消了配置&#xff0c;后续再配置会比较麻烦 1、点击工具图标运行 2、在欢迎页中点击“Agree” 3、默认“Do not import setting”&#xff0c;点击“OK” 3、此片设置Nodejs和Ohpm的安装&#xff0c;其中&#xff0c; …