• 0
  • 0
分享

  改进您的需求管理过程可以对你的开发过程产生重大影响,所带来的益处包括:提高效率、缩短上市时间,以及节省宝贵的预算和资源。需求是最能向工程师说明要构建什么,以及向测试人员说明要测试什么的信息。

  需求具有三个主要功能:

  · 定义计划创建什么样的产品

  · 确定产品需要做什么以及它应该是什么样子

  · 描述产品的功能和价值。

  需求的复杂性因项目而异。需求管理计划可以是粗略想法或结构化“应该有的样子”的描述,也可以是文本、模型、从高级需求的层级结构中分化出的子需求。需求也可以是详细规范,其中包含对于产品行为或组件的功能要求描述。

  高级需求有时被简称为“要求”或“目标”,软件开发实践有时将需求称为“用例”、“特性”或“功能需求”。敏捷开发方法通常将需求称为“史诗”和“故事”。无论采用何种术语,需求对于产品开发都至关重要。如果没有明确定义的需求,一个公司可能会生产出不完整或有缺陷产品。

  定义需求的过程中通常涉及多个利益相关者,如用户、业务分析师、设计师、开发人员和测试人员。每个利益相关者都有自己的目标和需求,可能要求描述产品将如何为解决问题提供有价值的特性、从可用性或用户界面的角度定义需求,或者创建符合特定技术系统需求。要想成功开发产品,需要协调和整合各方需求,并实施经过验证的需求管理最佳实践。

  四个需求管理最佳实践

  产品和软件应用程序的开发变得越来越复杂,通常需要收集成百上千个需求才能充分定义项目或发布的范围。需求在开发过程中变更的情况并不少见,因此,团队必须秉持协作原则,能随时能访问需求,了解需求更新,并测试每个需求直至项目完成。为了有效地管理这些需求,团队需要了解需求管理工作流程的四个基本要素:

  1.好的需求

  良好的需求要具备可操作性。它应该提供通向解决方案的途径,团队中的每个人都应该明白它的含义。好的需求需要简洁明确,应该回答“我们需要什么?”而不是“我们如何满足需求?”有了准确的需求,利益相关者就可以理解他们在计划中的部分。如果他们缺乏这种知识,如果需求模糊不清或含糊,最后的产品可能有缺陷或失败。

  2. 协作和认同

  让一个公司对需求达成一致是很难的,特别是对于有许多利益相关者的大项目。实际上,不需要通过妥协达成共识。更重要的是在团队中建立认同(在管理层批准项目之前或之后),以便开发过程能够向前推进。有了认同,团队就会支持最佳解决方案,做出明智的决定,并做好必要的工作以推动需求管理过程。

  团队协作是建立良好需求的关键。协作的团队努力确保每个人都对项目有贡献,并提供反馈。当有对项目目标的承诺和理解时,团队成员往往会支持他人的决定。只有当开发人员、测试人员或其他利益相关者感到“被排除在外”时,才会出现沟通问题,人们会感到沮丧,项目会被延迟。

  3. 可追溯性和变更管理

  需求可追溯性是一种让每个人都保持对项目了解的方式。从只是一个想法到最终测试阶段,需求可追溯性可组织、记录并跟踪所有需求。可追溯性被形象地比喻为枢纽环节,它可识别项目中不同要素之间的关系。下图展示了常见的下游流程示例。

1.png

  公司应能够在整个开发过程中,而不仅仅是在完成后,追溯每个需求回到其原始的业务目标。通过追溯需求,公司可以识别变化带来的连锁反应,查看他们是否已经完成了一个需求并且是否正确地测试了它。通过可追溯性,以及有效地管理变化,管理者可以预见问题并确保持续的质量。

  可追溯性还确保产品满足来自不同利益相关者的所有重要需求。通过追溯需求,所有团队成员与彼此和所有的相互依赖保持连接。通过良好地管理变化,公司可以避免范围蔓延——当需求没有被清楚地捕获、理解和沟通时发生的未计划的变化。良好需求的好处是对产品和涉及的范围有清楚的理解。这导致更好的开发时间表和预算,防止延误和成本超支。

  4. 质量保证

  准确的获取需求可提高工作质量,缩短开发周期,提高客户满意度。清晰、具体的需求能够帮助公司及早发现和解决问题,因为在项目开发过程中,后期解决问题的成本要比前期高出许多。研究表明,有效地管理需求可以解决50% 到 80% 的项目缺陷。Borland Software(现Micro Focus)认为,在开发过程的后期纠正缺陷的成本,可能比前期高出 100 倍。

  将需求管理最佳实践整合到质量保证流程中,可以帮助团队提高效率的同时避免返工。卡耐基梅隆软件工程研究所表示,软件开发成本的 60% 到 80% 花费在返工上。也就是说,开发团队将大部分预算浪费在因为需求管理不完善而产生的问题上。

  虽然需求管理最佳实践看起来很复杂,但其核心概念却很简单,它可以帮助团队回答以下问题:从业务领导到产品经理、项目负责人、开发人员、QA 经理和测试人员,是否都了解团队正在构建什么样的产品以及原因是什么?

  当团队中的每个人都协作在一起,积极参与关于产品开发的讨论,清楚所有决策和变更,这样的团队一定能开发出成功的产品。


作者:开发者工具分享    

来源:http://www.51testing.com/html/69/n-7797669.html

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •   1、添加Jdbc Request  2、添加ForEach控制器(右键线程组->逻辑控制器->ForEach控制器)  ①输入变量的前缀:mobilephone;  从jdbc request设置的变量得知,我们要取的值为mobilephone_1、mobilephone_2、mobilephone_3......所以这里输入mobilephone  ②Start index for loop:0  变量循环启动的索引,第一个元素起始索引+1End index for loop:6;变量循环结束的索引。所以这里是取值mobilephone_1、mobilephone_2、......
            0 0 625
            分享
          • 一、APP测试基本流程1、流程图2、测试周期测试周期可按项目的开发周期来确定测试时间,一般测试时间为两三周(即15个工作日),根据项目情况以及版本质量可适当缩短或延长测试时间。3、测试资源测试任务开始前,检查各项测试资源。产品功能需求文档;产品原型图;产品效果图;测试设备;其他。4、日报及产品上线报告(内部报告机制)测试人员每天需对所测项目发送测试日报。(也就是我这边有邮件通知测试项目的时候一般均属于输出测试日报)测试日报所包含的内容为:需求ID、总bug数,今日提交bug数、已解决bug数、未解决bug数、对应开发、对应测试等等不同版本测试报告输出二、App测试点1、安全测试1.1软件权限扣...
            0 0 3047
            分享
          • 并发测试和持续性压测都是评估系统性能的常用方法,它们可以帮助开发人员发现并解决系统中的性能问题。本文来详细介绍下。概念并发测试: 旨在评估系统在同时处理多个用户请求时的性能。在这种 测试 中,系统会暴露于一定数量的用户负载下,并且会记录系统的响应时间、吞吐量和资源利用率等指标。这些指标可以用来确定系统的性能瓶颈,以及在不同负载下系统的表现。持续性压测: 旨在评估系统在长时间运行或高负载下的性能。在这种测试中,系统会暴露于一定数量的用户负载下,并且会持续一段时间运行,通常在几个小时或几天。这种测试可以用来确定系统在长时间运行下的表现,以及在高负载下系统是否具有可扩展性。并发测试在并发测试中,需要...
            0 0 1713
            分享
          • Fiddler:网络抓包工具Fiddler在测试中一般用于篡改接口请求或接口返回数据以测试前后端业务场景或对异常功能的兼容.它能监控进出设备的http协议请求,并且支持重新编辑请求与返回,从而测试前端页面对不同结果的反应。官网下载地址:https://www.telerik.com/fiddler2.Apifox:接口测试工具Apifox作为本土软件,在接口测试方面表现不亚于postman,它提供了完善的 API 场景测试(流程测试)功能,保证接口数据的正确性。另外具备可视化的断言、提取变量、数据库(SQL)操作等功能。除此之外还支持自定义前置/后置脚本,自动校验数据正确性。同时,也能进行测...
            12 13 2250
            分享
          •   小编自己已经做了好几年的手工测试了,越来越觉得如果一直在手工测试的道路上前进,并不会有很大的发展,所以通过自己的努力,已经成功的转入自动化测试的方向,那么想快速的转入自动化方向,我们应该怎么做呢?  首先我们先来说一下手工测试和自动化测试的区别:  手工测试  手工测试主要是通过手工操作的方式来测试功能是否符合要求,存在许多主观因素,有可能因为测试人员的失误导致功能点的漏测或者由于测试人员的主观因素给开发人员提一些并不是bug的bug,浪费大家的时间,且大多数是重复性工作,容易产生厌烦心理。  自动化测试  自动化测试主要是使用工具,利用代码自动执行测试用例。这种方法主观因素较少,对就是对...
            0 0 732
            分享
      • 51testing软件测试圈微信