一、软件需求的定义一需求的核心定义通俗来说就是甲方需要的想法、刚需、期望值乙方的实现能力IEEE标准定义用户视角解决用户的问题、达成用户目标所需要的条件/能力系统视角系统需满足合同、标准、规范所需的条件/能力及对应的文档说明对测试人员的要求二者要兼顾既要参照需求文档执行测试也要站在不同的用户角色来思考场景二需求的三个层次业务需求反映组织机构或用户对系统、产品层次的目标要求从总体上描述了为什么要达到某种效应希望达到什么样的目标用户需求描述的是用户的具体目标描述用户能用系统做什么来自用户访谈、场景整理系统需求从技术角度来说软件需求包含三类1.功能需求是指必须实现的软件功能2.非功能需求是指系统属性包括性能、兼容性、安全等3.约束是指设计和构造过程中的限制分为设计约束和过程约束三需求的分类为了最大程度的提升软件过程中用户的满意度将用户要求转化成软件需求共分为三类常规需求用户明确要求的功能 / 性能实现越多用户越满意期望需求用户默认系统应该具备、但没明确描述的需求、不实现会导致不满意外需求超出用户要求的功能实现会提升满意度不实现不影响四项目需求于产品需求项目需求有特定的客户基于客户给出的原始需求、业务需求和工作任务书。产品需求没有特定用户发现市场商机做调研找市场机会。二、软件需求工程定义需求工程分为需求开发和需求管理两大模块吗核心目标是定义软件的功能和性能等需求。一需求开发1.需求获取定义确定并理解不同项目干系人客户、用户、投资人等的需求和约束的过程目的在开发者和用户之间建立共识明确系统必须具备的特征和约束核心获取手段头脑风暴、访谈、小组会议、问卷、标杆对照、原型法、竞品分析、投票、亲和图、名义小组技术2.需求分析定义对获取到的杂乱需求进行筛选分类细化和冲突解决剔除无价值和不可实现的需求核心目的将模糊的用户期望转化为精确、可验证的技术规格确保交付正确的产品而非仅正确交付产品常用方法结构化分析数据流图、实体关系图、状态转换图、面向对象分析UML 建模3.需求定义定义将分析后的需求按公司规范编写成软件需求规格说明书 (SRS)敏捷项目中整理为产品待办列表编写说明需求规格说明书有编写的标准4.需求验证定义初步检车需求的成本、进度、技术可行性从测试较低来看是否具备可测试性二需求管理1.需求评审定义对 SRS、产品待办列表等需求文档进行全面的同行评审提前发现缺陷核心评审方法1正规检视审查是最正式流程最严格评审计划→预备会→个人准备→评审会议→问题修改→跟踪已发现缺陷为核心2走读形式随意作者自行讲解兼具交流学习作用评审核心关注点正确性是否符合客户真实意图数据/规则准确完整性无遗漏正常/异常场景全描述无TBD悬空一致性全文无矛盾前后描述统一非歧义性表述唯一无模糊词所有人理解一致可追踪性需求有源头、有编号、可追溯到设计/开发/测试可验证性可量化、可测试无主观描述优先级明确高低指导资源排期分类和理性按功能/性能/安全分类编号编写规范编号规范统一2.需求基线定义需求经过正式评审后达到受控状态成为后续开发、测试的基准规则基线后的需求不能随意变更必须走正式变更流程3.需求跟踪定义跟踪需求从源头到设计、开发、测试的全流程确保需求不遗漏、变更可追溯核心工具需求跟踪矩阵常用工具禅道核心作用确保需求全部实现、全部被测试、跟踪需求变更影响4.需求变更控制定义识别出问题问题分析和变更描述变更分析和成本计算变更实现变更流程提出变更请求 (CR)→提交变更控制委员会 (CCB) 裁决→CCB 拒绝则结束接受则修改 SRS/RTM→评审签发→同步更新开发、测试工作变更原因业务调整、法规更新、技术迭代、进度 / 成本限制、新风险出现