软件质量管理的主要目标是确保软件满足要求,即满足干系人的需求和期望,企业的根本目标是为获取更多的利润,在实际运作软件项目时,项目的进度、成本和质量往往存在着矛盾。如果不惜一切代价追求高质量,付出的代价超过收益,则失去商业价值,如果为了抢占市场而把速度作为最高优先级,那么没有足够时间,如何保证产品的性能指标?如何在考虑各种制约因素的前提下,提升软件质量,多快好省地开发出符合要求的软件,成为软件开发制胜的关键。 质量不是检验出来的,而是设计和制造出来的。遵循这一基本质量管理原则,课程将覆盖软件开发过程的端到端的各个环节,做好质量管理规划,在软件需求分析、系统设计、编码、评审和测试等各个环节,分享多年积累的实践经验和实战案例,帮助掌握提升软件质量的关键活动,并用可视化监控方法实施全面质量管理。 本课程《快速开发高质量软件的实战应用》将全面、深入剖析适应于不同环境的软件质量管理方法,并提供具有实操性的工具和方法,助力企业提升软件项目的质量管理水平。
1.掌握软件开发生命周期和质量管理模型,建立整体认知; 2.掌握软件项目估算的特点,能够正确判断计划对项目产生的实际影响,识别其中的常见误区; 3.掌握软件项目需求工作的特点,以及引领和驾驭需求的多种方法; 4.理解软件设计工作不到位会带来的严重后果; 5.掌握召开有效的技术评审会议的方法,以及如何解决常见的问题; 6.掌握软件系统测试用例的设计方法、典型性能问题出现的场景及应对策略; 7.掌握制定质量管理计划的方法,以及如何通过质量保证人员提升产品质量。
课程导入: 1.讲师自我经历介绍,建立链接 【开场破冰】 2.澄清课程的目标,达成共识,强化心理预期 【目标共建】 第一讲:软件质量管理的常见误区和对策 一、常见问题——认知误区阻碍质量提升 1.软件项目管理的难点 小组研讨:讨论典型的软件项目所犯的错误 2.软件项目管理的典型错误 3.掌握平衡——通盘考虑多个制约因素 工具:项目管理铁三角和七大制约因素 二、提出对策——软件产品开发过程方法论 从小作坊到正规军:个人英雄→查质量→做质量→流程机制 1.敏捷软件开发方法——迭代模型 & 增量模型 2.ISO9000族质量管理体系、CMMI软件成熟度模型 3.重量级方法论: IBM RUP(Rational Unified Process),统一软件开发过程模型 集成产品开发IPD(Integrated Product Development) 小组研讨:选择实际项目,根据项目特点选择合适的项目管理方法 4.软件产品开发过程介绍 (1)软件产品开发过程模型 横向:售前立项│产品开发│产品试运行│产品移交和收尾 纵向:营销过程│项目管理过程│产品研发过程│项目支持过程 (2)软件产品开发项目的组织结构和角色——12种角色 (3)软件产品开发过程模型中的过程域、主要活动和主要工作成果 软件产品开发过程模型 第二讲:软件产品开发过程——营销过程详解 一、产品创意和需求研究 1.本过程域的2个活动及其工作成果 2.本过程域的关键管控点 二、产品试用和市场宣传 1.本过程域的2个活动及其工作成果 2.本过程域的关键管控点 三、合同项目售前管理 1.本过程域的4个活动及其工作成果 2.本过程域的关键管控点 四、客户维护和项目验收 1.本过程域的4个活动及其工作成果 2.本过程域的关键管控点 第三讲:软件产品开发过程——项目管理过程详解 一、立项管理 1.本过程域的4个活动及其工作成果 2.本过程域的关键管控点 二、项目规划和监控 1.本过程域的6个活动及其工作成果 2.QA人员在项目规划过程中提供支持指导 A:根据项目特点帮助选择正确的项目生命周期 B:根据组织裁剪指南和项目特点定义软件过程 C:帮助识别项目高层风险,如跨团队、跨项目的依赖关系 D:帮助制定培训计划 3.软件项目估算和规划的难点 A:客户要求压缩进度,项目经理怎么办? B:过于乐观的进度计划产生的根源 C:过于乐观的进度计划的不良后果 D:进度谈判策略——双赢的解决方案 小组研讨:合理估算项目进度,讨论以下因素之间的逻辑关系 估算进度 VS.实际进度 项目进度 VS.项目费用 估算进度 VS.完成可能性 案例分析:某商业银行1号工程缘何受挫?项目失败的导火索是什么? 三、风险管控和变更控制 1.本过程域的2个活动及其工作成果 2.本过程域的关键管控点 3.软件项目风险分类及其解析 核心理念:从救火模式到未雨绸缪 |政治法律|客户|子承包商/供应商 |上级领导/行政部门/合作部门|项目规划 |项目团队|需求|综合技术/开发能力 四、结项管理 1.本过程域的3个活动及其工作成果 2.本过程域的关键管控点 第四讲:软件产品开发过程——产品研发过程详解 一、需求开发和管理 1.本过程域的6个活动及其工作成果 案例分析: 一个危机整改项目——某农信社渠道软件平台需求管理的典型错误 2.把控质量问题的源头——软件需求分析 (1)基本概念:什么是需求、客户和用户? 要求(明确说出)+ 期望(未明确说出) 需求和设计界限不明:写需求时考虑如何实现,写设计时发现需求模糊 (2)软件项目失败的典型原因 (3)软件需求的特点:分散性、模糊性、矛盾性、潜在性 3.如何引领软件需求工作 (1)对待需求工作的态度 (2)需求开发的7个主要困难与对策 (3)如何引领需求工作——破解需求的冰山 需求研究的重点——洞察三类需求 ✱ 客户没有说出来的需求(Unsay) ✱ 客户没有想到的需求(UnWanted) ✱ 客户没有预期的需求(Unexpected) (4)攻城为下,攻心为上——关注对方的5种心理状态 (5)谁是选择解决方案的最佳人选——识别真正问题 (6)控制项目范围蔓延 [攻守兼备] A:采用敏捷方法拥抱变化 工具:敏捷合同 B:与客户对需求变更流程达成共识 C:预测潜在需求变更的4类方法 模板:《软件项目配置变更申请单》 小组研讨:如何应对多变的软件需求? 工具:软件缺陷修复/变更成本曲线 二、系统设计 1.本过程域的4个活动及其工作成果 2.打好软件质量的基础——软件系统设计 典型错误:接口设计不详细造成严重的质量问题 案例分析:典型生产事故根因分析—— 某互联网金融平台交易金额扩大100倍的质量问题 3.关键业务连续性的架构设计策略 案例分析:银行关键业务系统架构设计核心策略 金融平台门户潮涌解决方案 三、开发和集成 1.本过程域的3个活动及其工作成果 2.本过程域的关键管控点 四、测试管理 1.本过程域的3个活动及其工作成果 2.软件缺陷的表现形式、产生原因和产生过程 软件错误>软件缺陷>软件故障>软件失效 3.软件测试的分类与比较 单元测试→集成测试→确认与系统测试→验收测试 4.如何制定测试计划 测试范围,测试目标,测试里程碑、交付物、WBS、工作量估算、进度计划、资源需求(人力、软硬件资源)、测试组织结构等 5.软件测试用例设计方法 (1)测试用例的7大要素 (2)如何编写测试用例 A:什么是好的测试用例 B:白盒测试用例设计方法 C:黑盒测试用例设计方法 模版:《软件测试用例表》 6.测试过程常见典型问题分析 软件性能测试分类 案例分析:高并发压力下,容易出现软件性能问题的几个典型场景 五、软硬件系统集成 1.本过程域的4个活动及其工作成果 2.本过程域的关键管控点 六、部署试用 1.本过程域的4个活动及其工作成果 2.本过程域的关键管控点 七、系统运维 1.本过程域的3个活动及其工作成果 2.本过程域的关键管控点 第五讲:软件产品开发过程——项目支持过程详解 一、软件配置管理和文档管理 1.软件配置管理的概念 2.软件代码管理、文档管理的一般规则 3.技术文档质量 (1)技术文档的重要性和5C原则 (2)技术文档的15个基本要求 (3)什么是好的软件需求规格说明书——10大标准 (4)文档编写中需考虑的3个因素 敏捷软件开发不用写文档吗? 误区:对敏捷宣言的错误理解 案例分析:典型生产事故根因分析—— 某银行核心业务系统动账交易失败的质量问题 4.软件项目全生命周期的文档要求 GB/T8567-2006计算机软件文档编制规范——25种软件文档 A:管理文档(10份) B:技术文档(8份) C:用户文档(7份) 示例:技术文档的核心内容 简介:目的和范围 总体概述:软件概述、软件功能、用户特征、假设和依赖 具体需求:功能需求、性能需求、接口需求(用户接口、软件接口、硬件 接口、通信接口) 设计约束:标准约束、硬件约束、技术限制 质量属性:可维护性、可靠性、安全性、可移植性、易用性 依赖关系:需求内外部依赖关系 二、软件质量管理(测试管理、技术评审、缺陷跟踪、质量保证) 1.全面软件质量管理模型和5个活动 制定质量管理计划 A:技术评审(同行评审) B:测试管理 C:质量保证:过程审查 & 产品审查 审查内容、审查方式、审查时间/频度、工作量 D:缺陷跟踪 E:发布管理 模版:《软件质量管理计划》 案例分析:某大型软件项目的质量测量指标之争论 2.软件质量特性 (1)什么是软件产品质量 (2)软件10大质量要素 正确性│健壮性│可靠性│性能│易用性│ 清晰性│安全性│可扩展性│兼容性│可移植性 小组研讨:讨论实际项目中,软件系统哪些质量要素对于商业价值很重要? 3.软件全生命周期的质量成本 A:质量成本分类: 一致性成本——预防成本、评估成本 非一致性成本——内部失效成本、外部失效成本 B:对质量活动进行成本效益分析 工具:质量成本效益曲线 4.项目经理与QA人员的关系 QA必须具有独立性 QA人员推进工作的难点和困惑: -质量出了问题,是质管人员的错吗? -质量保证能够保证质量吗? 案例分析:一个两败俱伤的项目—启动不成功,满盘皆输 案例分析:某大型软件项目QA人员错位导致的质量失控 关于项目计划,QA与PM多次发生冲突,如何解决? 软件修复后紧急上线,QA与项目经理发生冲突,如何解决? 5.持续过程改进的难点和推进方法 难点:高速公路上换轮胎 策略:找到合适的切入点,平衡流程和效率 破解:组织文化带来的改进阻碍 6.技术评审,关键问题 (1)技术评审实施的6个步骤 (2)评审会议为什么虎头蛇尾——常见的6大问题 小组研讨:技术评审存在的问题及如何解决? 如何提升评审效果,避免走形式? 案例分析和模版展示: 某银行技术评审检查单(各类评审的关键点和要素) 架构评审、需求评审、设计评审、代码评审、测试用例等评审 7.缺陷管理及统计分析 A:缺陷统计维度:缺陷来源6种、缺陷类型15种、缺陷严重程度S1-S5、 缺陷优先级P1-P5、缺陷状态6种 B:缺陷统计分析:缺陷趋势分析、缺陷密度分析、缺陷分布分析、 缺陷各维度分析(严重程度、种类、根源等) 三、客户服务支持管理 1.本过程域的2个活动及其工作成果 2.本过程域的关键管控点 四、统计分析 1.本过程域的2个活动及其工作成果 2.本过程域的关键管控点 课程总结和答疑