课程背景:
软件质量管理的主要目标是确保软件满足要求,即满足干系人的需求和期望,企业的根本目标是为获取更多的利润,在实际运作软件项目时,项目的进度、成本和质量往往存在着矛盾。如果不惜一切代价追求高质量,付出的代价超过收益,则失去商业价值,如果为了抢占市场而把速度作为最高优先级,那么没有足够时间,如何保证产品的性能指标?如何在考虑各种制约因素的前提下,提升软件质量,多快好省地开发出符合要求的软件,成为软件开发制胜的关键。
质量不是检验出来的,而是设计和制造出来的。遵循这一基本质量管理原则,课程将覆盖软件开发过程的端到端的各个环节,做好质量管理规划,在软件需求分析、系统设计、编码、评审和测试等各个环节,分享多年积累的实践经验和实战案例,帮助掌握提升软件质量的关键活动,并用可视化监控方法实施全面质量管理。
本课程《快速开发高质量软件的实战应用》将全面、深入剖析适应于不同环境的软件质量管理方法,并提供具有实操性的工具和方法,助力企业提升软件项目的质量管理水平。
课程收益:
1.掌握软件开发生命周期和质量管理模型,建立整体认知;
2.掌握软件项目估算的特点,能够正确判断计划对项目产生的实际影响,识别其中的常见误区;
3.掌握软件项目需求工作的特点,以及引领和驾驭需求的多种方法;
4.理解软件设计工作不到位会带来的严重后果;
5.掌握召开有效的技术评审会议的方法,以及如何解决常见的问题;
6.掌握软件系统测试用例的设计方法、典型性能问题出现的场景及应对策略;
7.掌握制定质量管理计划的方法,以及如何通过质量保证人员提升产品质量。
课程特色:
1.实战性强:以业界质量管理大师的理论为基础,结合软件工程的行业标准,以及26年一线大型复杂软件工程项目的实战经验和丰富的案例,帮助理解和掌握软件质量管理的科学和艺术,具有很强的落地性和实操性;
2.定制性强:每次内训课都会在课前针对企业现状、学员情况进行调研,在深度理解核心需求的基础上定制课件、行业案例,紧扣重点和难点;
3.落地性强:针对国内软件项目研发工程师和项目经理的特点,聚焦频发和普遍存在的问题,进行重点剖析,揭示问题的本质,提供有效落地的解决措施。
课程时间:2天,6小时/天
课程对象:软件项目的质管人员、项目经理和技术骨干等
课程方式:互动式讲解+案例分析/研讨+实战演练+练习+答疑
课程大纲
课程导入:
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.本过程域的关键管控点
课程总结和答疑