1、甲方软件项目管理与,质量控制,国家应用软件产品质量监督检验中心,副主任:左家平,个人研究方向,信息系统架构设计,软件企业及实验室质量体系管理认证,国家信息技术标准编制,软件全过程质量保证解决方案设计,软件测试工具研究,。,对,软件开发全过程控制与管理项目,软件需求分析,软件结构 软件详细设计 设计,编码,单元 测试,软件 集成,集成 测试,系统 测试,交付,需求评审,设计评审,代码评审,各阶段测试,项目管理 / 配置管理 / 缺陷管理 / 质量保证 相关活动进行监督与控制第三方全过程保证,软件项目开发过程中的角色需求方(甲方),第三方测试,开发商(乙方),监理方,需求方在软件开发中的作用(1)
2、,从合同观点:,需求方 (甲方),可行性研究,需求 定义,招标 准备,合同的准备 谈判和修改,对乙方 的监督,验收和完成,开发方在软件开发中的作用(1),从合同观点:,开发方 (乙方),准备 投标,签订 合同,制定 计划,实施和控制,评审和评价,交付和完成,需求方在软件开发中的作用(2),从管理观点:,需求方 (甲方),开始和 范围定义,计划,实施和控制,评价和确认,完成,开发方在软件开发中的作用(2),从工程观点:,开发方 (乙方),软件需求 软件结构 软件详细分析 设计 设计,编码,单元 测试,软件 集成,集成 测试,系统 测试,交付,测试方在软件开发中的作用,企业/ 操作需求,功能需求,
3、系统和接口规格说明,详细设计,编码,测试和改正缺陷,产品,测试需求,测试标准功能需求,测试策略,KPA 7 质量管理,KPA 1 测试计划编制,测试计划,KPA 2 测试开发,测试用例,KPA 4 测试执行,测试结果,KPA 3 测试环境准备应用软件质量生命周期,测试报告,KPA 5 测试结果分析KPA 6 编制报告,第三方软件测试,监理机构和第三方检测机构的关系,软件质量,内部质量特征 外部质量特征,第三方检测机构 (以程序和软件文档的测评为主),开发商的过程能力,监理机构(以开发计划和软件文档的检查为主),软件项目管理目标(甲方)质量控制,进度控制,成本控制,组织结构,人员要求,环境要求,
4、1,2,3,4,5,Contents,内容提要,软件需求分析阶段,软件开发设计阶段,软件开发编码及测试阶段,其他控制过程,第三方测试和项目后评估,软件需求分析阶段软件开发的基础,需求 开发 测试,需求重要性需求评估标准,开发过程的依据 开发管理过程的依据 用户接收的依据 测试的依据无歧性完整性可验证性一致性可修改性可追踪性运行和维护阶段,需求分析阶段,评估文档,的可使用性软件需求说明书 数据要求说明书,需求的作用,甲方乙方第三方,精确描述需要什么样的产品准确理解甲方需要什么样的产品明确规定产品的检验依据,需求的层次,业务,满足,任务,完成,软件功能,需求,需求的层次,满足,任务,组织机构或客户
5、对系统、产品高层次的目标要求,业务,用户使用产品必须要完成的任务,需求评审:评价业务需,求、用户需求、需求规,格说明的一致性完成软件功能开发人员必须实,需求,现的软件功能,需求中常见的问题与原因, 笼统需求, 项目可行性分析研, 隐含需求,究不深入, 与已存在的限制条件, 不善于提需求,矛盾的需求, 不完整的需求, 乙方代劳的需求,如何设计软件需求GB/T 9385-1998计算机软件需求说明编制指南总体要求,无歧性完整性可验证性一致性,可修改性可追踪性运行和维护阶段的可使用性,必须描述的基本问题,软件需求描述,功能性能,外部,需求基本问题,接口设计限制属性,需求设计-典型案例,苹果,1个苹果
6、,红苹果,带有心形图案的苹果中间为实心心形图案,的苹果,20,需求设计,沟通,一致性分析,控制协调,指标,大 小,需求评审指标定义,ra(1-sin(sita),x=rcos(sita),y=rsin(sita),需求评审的主要内容,是否生成软件需求规格说明书,所提出的需求的技术可行性,需求是否可测,需求规格说明书内容完整,评价用户需求与需求规格说明书的一致性,是否有需求管理过程,需求评审,分层次评审,正式评审与非正式评审结合,分阶段评审,建立标准的评审流程,做好评审后的跟踪工作,充分准备评审,例子:需求问题记录表,1,2,3,4,5,Contents,内容提要,软件需求分析阶段,软件开发设计
7、阶段,软件开发编码及测试阶段,其他控制过程,第三方测试和项目后评估,软件开发设计阶段,开发 测试,设计重要性设计评估标准,形成软件框架 软件开发的原形 开发过程的指导详细性准确性,可验证性一致性可实现性 评估文档,软件开发设计阶段,概要设计说明书 详细设计说明书 数据库设计说明书,设计阶段评审, 分析设计是正确的、与需求一致并可追溯到需求, 分析设计中的事件次序、输入、输出、接口、逻辑,流程、出错定义、错误处理, 验证根据需求所选择的设计是否合理,设计阶段评审, 概要设计阶段, 是否生成概要设计说明书(含数据库设计说明书) 同行评审:验证系统架构设计正确性及可行性, 详细设计阶段, 详细设计说
8、明书 每个模块、函数、接口的实现方法,输入参数、数据结果说明等,1,2,3,4,5,Contents,内容提要,软件需求分析阶段,软件开发设计阶段,软件开发编码及测试阶段,其他控制过程,第三方测试和项目后评估,软件开发编码及测试阶段,开发 测试,编程评估标准测试评估标准评估文档,程序编写按照里程碑完成 使用界面的设计和验证 用户使用文档内容的确定测试计划的完成和执行完成单元/集成/系统测试完成回归测试完成纠正关键缺陷完成文档测试用户文档操作手册,软件开发编码及测试阶段,其他评估,系统安装和部署计划确定 售后服务系统计划完成,单元测试内容,检查模块算法的逻辑正确性,输入参数有没有做正确性检查,重
9、要的执行路径的正确性,错误处理的路径的正确性,异常处理,边界条件的正确性,模块接口的正确性,调用其他模块的接口的正确性,检查常量或全局变量使用的正确性,程序风格的一致性、规范性,检查内部注释是否完整,单元测试方法, 代码评审 / 选择关键代码进行审查,是否与需求相一致 是否符合编码规范 注释是否详细,可读性好, 白盒测试, 代码覆盖率评估 代码执行效率评估,集成测试的内容,测试穿越模块接口的数据是否丢失,测试各子功能组合起来后是否达到预期要求的父功能,测试一个模块是否对另一个模块产生不利的影响,测试全局数据结构是否有问题,系统测试及验收测试, 系统确认测试, 对比需求规格说明书、测试计划中的系
10、统测试环境是否与实际的测试环境一致 确认系统实现功能与需求规格说明书是否一致, 验收内容, 所有文档、代码, 系统验收测试策略, 根据已定义的策略和准则进行验收 委托第三方检测机构进行验收,最佳实践, 每日编译与BVT(冒烟测试), Microsoft以缺陷为核心的开发流程,测试阶段数据采集与分析的目的,1评估被测软件的质量缺陷的数量 缺陷的种类,2评估开发过程的质量缺陷的分布 修复缺陷的时间 回归测试时发现 的缺陷数量,3评估测试工程师表现是否按计划完成 任务 发现缺陷的数量,测试阶段主要采集数据,测试用例执行的进度 = 已执行的数目 / 总数目,缺陷的存活时间 = 缺陷从打开到关闭的时间,
11、缺陷分布密度 =,对应于一项需求的总缺陷数 / 对应于该项需求的测试用例总数,缺陷修改质量 = 每次修改后发现的缺陷数量,功能点缺陷率 总缺陷数 / 总功能点数,测试缺陷趋势分析缺陷的趋势分析 - 按照测试执行的时间顺序,被发现的缺陷数量的分布,缺 陷,Bug curve,数Bug Convergence pointResolved curveZero Bug point时间,开发过程中的文档,可行性研究和计划阶段,需求分析阶段,设计阶段,实现阶段,测试阶段,运行与维护阶段,可行性研究报告,项目开发计划,软件需求说明书,数据要求说明书,测试计划,概要设计说明书,详细设计说明书,数据库设计说明书
12、,用户手册,操作手册,维护修改建议,测试分析报告,开发进度月报,项目开发总结,文档验收,用户文档编写的规范性,用户文档的全面性,用户手册内容的完整性,文档审查,一致性检查,用户手册对关键操作有无例图文说明,,例图的易理解性如何,主要功能和关键操作的应用,实例数量及详细程度,用户手册包装的商品化程度和印刷质量,1,2,3,4,5,Contents,内容提要,软件需求分析阶段,软件开发设计阶段,软件开发编码及测试阶段,其他控制过程,第三方测试和项目后评估,1,2,3,4,项目开发过程中的其他控制过程,项目管理过程 - 是否按照项目计划执行 / 是否 按照里程碑定义实施 / 是否采取项目监控措施,S
13、QA过程 - 是否有质量计划 / 是否开展管理 评审与技术评审活动 /是否有质量改进活动,缺陷管理过程 是否有缺陷管理系统 / 是否追 踪每个缺陷的状态 / 是否阶段性缺陷分析数据,配置管理过程 - 软件有什么变更 / 谁做的变更 / 什么时间做的变更 / 为何要变更,项目管理过程项目监控,项目计划1.是否在规定的时间内 细化了下一阶段计划 2.任务延迟是否能及时 调整项目计划 3.是否建立开发组织内 部的质量管理过程,项目过程中监控1.项目启动检查 2.是否建立支持过程 3.开发进度例会 4.开发进度周报/月报,SQA活动, 管理评审, 应当结合项目计划、时间表、标准和指南评价项目的状态,进
14、行改进活动 依据计划对过程、产品和服务的状态进行评价 通过充分的分配资源来保持对项目的全面控制 改变项目的方向或确定改变计划的必要性,SQA活动, 技术评审, 评审产品是否符合规格说明 评审产品是否完整 软件产品的开发、操作和服务是根据项目的计划、进度、标准和指南进行的 对软件产品的改变是适当的,缺陷管理过程, 软件缺陷(Defect),软件中存在的错误,与预期属性的偏,狭义广义,离软件开发周期中存在的错误、问题以 及偏离,缺陷生命周期中的角色及职责跟踪所有bugbug的状态协调和仲裁存在的问题领导者,修复bug,提交测试版本,开发人员,测试人员,发现bug 报告bug 跟踪bug 确认bug
15、,N,BEGIN,Status of Bug,Indication,Bug reported,缺陷处理流程,Action Taken by Tester,Action Taken by Developer,New,Not A Bug,Action Taken by Communication,Pending,ReviewYOpenAssignYAssignedFix,N,DuplicateNot Reviewed,N,Verif,Defer,No Plan To Fix,y,Y,N,N,FixedConfirmY,Deferred or RejectedY,Closed,Deferred,48
16、,Rejected,被测功能不能正确实现 被测数据处理错误 软件错误导致数据丢失 用户需求未实现,缺陷的分类,导致系统崩溃 导致程序模块丢失 主业务流程出现断点 内存泄漏 导致死机,S2S1,一般性的错误,细小的错误,S3,严重等级S4,S5,建议性问题,优先级,低,中,高,沟通的重要手段- Bug Triage会议,开发人员,领导层,组织管理协调仲裁测试人员,软件配置管理过程, 缺乏配置管理造成的常见问题, 组织的知识和过程财富流失 不能及时了解项目的进展状况 缺乏实现并行开发的手段 软件复用率低下 无法开展规范化的测试工作 对软件版本的发布缺乏有效的管理 缺乏历史数据的积累,没有软件开发的
17、历史数据 无法有效的管理和跟踪变更,软件配置管理的重要性, 使软件产品变为受控的,控制以下问题,软件有什么变更?(WHAT) 谁做的变更?(WHO) 什么时间做的变更?(WHEN) 为何要变更?(WHY)软件将在什么时间发布 当前发布版本中有哪些功能,由哪些组件构成 当前版本中加入了针对哪些Bug的修改 软件的某个修改是谁认可的 如何建立新的发布版本,实施软件配置管理的好处, 开发、测试, 有助于规范团队各个角色的行为 为各个角色之间的任务传 递和交流提供无缝的接合 帮助项目经理更好地了解项目的进度、开发人员的负荷、工作效率和产品质量状况、交付日期等信息, 用户, 得到正确的软件版本,1,2,
18、3,4,5,Contents,内容提要,软件需求分析阶段,软件开发设计阶段,软件开发编码及测试阶段,其他控制过程,第三方测试和项目后评估,软件验收要求软件质量可验收指标,软件项目管理指标软件开发全过程监控,合格 软件,35%,软件质量状况软件质量检测项目的通过率,依据国家软件检测中心,8%,2%,2006年全年的软件质量检测数,据统计,软件开发商认为已经,可以交付使用的软件,送交本,中心做质量检测,检测结果如,图:,一次检测通过,55%,两次检测通过 三次检测通过 四次检测通过,测试是保障软件质量的有效手段开发,设计,新软件开 发测试框架,实施,部署,应用,服务,定制,扩展,遗产软件更新,测试
19、,测试,应用软件集成,部署,升级,实施,第,三,方,测,试,机,构,现实的软件企业的组织结构软件企业,技术支持部门,开发部门,测试部门,质量保证部门,开发组1项目组1,开发组2,测试组1项目组2,测试组2,第,三,方,测,试,机,构,现实的软件企业的组织结构,没有专门 的支持部门,软件企业,测试部门力量薄弱2,3人,没有QA部门,技术支持部门,开发部门,测试部门,质量保证部门,开发组1,开发组2,测试组1,测试组2,测试组对应多个项目 软件质量难以保证,项目组1,项目组2,理想的软件企业的组织结构软件企业,技术支持部门,开发部门,测试部门,质量保证部门,开,发,组,开,发,组,测,试,组,测,
20、试,组,1项目组1,2,1项目组2,2,软件可验收指标, 制定原则, 满足用户需求(业务需求和商业需求) 定量与定性相结合 涵盖功能性、非功能性等多方面, 具体体现, 用户需求说明书 软件需求规格说明书,第三方独立测试机构提供的服务,测试过程质量保证工作,故障定位,需求阶段,开发阶段,测试阶段,运行阶段,需求评审,需求一致性分析 需求指标的定义,验收测试,项目后评估,沟通、协调等,第三方全过程质量保障的优点,1合理性强强联合 降低成本 深入理解需求,2有效性更专业 更全面 更彻底,3独立性协调沟通 客观公正 认真敬业,开发阶段第三方全过程保障,单元 测试,集成 测试,全过程保障,系统 测试,用
21、户 测试,第三方测试组织机构图委托单位(甲方),专家组,集成商,设备提供商,测试方,服务提供商,开发方,业 务 专 家,技 术 专 家,质量保证组业 业务 务分 培析 训,文 档 审 查,管理组方 计 案 划 设 设 计 计,测试组用 用 例 例 设 执 计 行,环境准备组缺 结 现 陷 果 场 管 分 调 理 析 度,技 术 支 持,项目后评,全,过,程,保,障,与,监,控,第三方软件测试确保信息系统质量,故障定位,估,需求评审,验收测试,软件任务,交付软件,系统需求系统需求,验证,验证与确认,系统测试测试后的软件,软件需求软件需求 验证概要设计概要设计,验证,验证与确认验证,合格性测试集成
22、的软件集成测试测试后的单元,详细设计详细设计,验证验证编码,单元测试编译后的单元,第三方测试能够解决的问题,需求多,实现少需求标准高,实现水平差缺少性能指标笼统需求文档资料不全,不准,缺项降低标准,再提设备要求实现多少算多少验收时缺少检测依据后期使用维护困难,成功案例1-全过程质量保障, “北京奥组委场馆交通运行模型”质量保证,主要职责:,在工程的各个阶段应严格审查关键性过程和阶段性成果,检查其,是否符合预定的质量要求,整个跟踪过程中应强调对工程质量的事前,控制、事中监管和事后评估。并将质量保证工作定位在监督、审查、,控制、建议上。,工作内容:,主要包括需求评审、工程项目组织及技术总体方案的把
23、关、质量,控制、进度控制、投资控制、合同管理、信息文档管理等七个方面。,成功案例2-效率检测数,基 准 测 试,并发测 试,一天24小时长时间 稳定的运行人数较多,疲劳强度测 试,内存泄漏检 测,每个终端的 用户数较少住宿系统,场景测 试,据存储容 管理的客房信息量 数据量庞大测 试,极限测 试,递增测 试,入住时间 较为集中,终端访问数 据库服务器,终端分布广,并发用户数 :支持50用户并发,频繁,数据容量:系统能处理25000条签约客房信息,稳定性 :系统能够长时间连续运行,服务器的各项性能指标在需求规定范围内,,且不出现宕机等情况,响应时间 :系统的响应时间在需求规定范围内,设备资源占用
24、 :CPU占用率、内存使用量等在需求规定的范围内,内存泄漏检查 :系统不能存在内存泄露,成功案例3-故障定位系统响应时间慢,系统一段时间后需要重启,设备更新后,效率反而变差,系统越来越慢,无人使用时,设备资源占用仍很高无缘无故死机需要专业的第三方机构,对系统进行全面的检测,定位问题70,问题归纳总结,笼统需求,合同要求的软件功能缺失软件功能未正确实现,主要功能流程出现断点灾备系统不能正常工作均衡算法设计不合理,项目后评估, 项目后评估:对项目实施全过程的前期规划、实施及策略、,制度规范和创新及产生的投资效果、影响和持续发展等方,面作出综合评价,并总结经验教训、树立典型,对工程的,后续建设与发展
25、提出建设性意见;, 主要内容:依托项目的验收工作,通过全程参与验收会议、,基础资料采集、现场调研、问卷调查、访谈、研讨会议、,专家评估会议等多种方法和手段,对整体工程进行全面综,合评价。,项目后评估,过程评估项目执行效率评价 工作单元进展度量 代码生产率评估 需求稳定性,管理评估项目管理计划评估 资源预算评估 工作量评估 项目控制能力评估 里程碑分析,质量评估缺陷分析 功能点缺陷率评估,工作量,150,21万,项目后评估-案例1,神州数码,构件应用示范2004构件应用示范单位之一 实现效益,350 300 250 200,生产者复用 传统开发方法 消费者复用,采用构件技术后,国税项目,代码复用率7676,单个项目节约 成本21 预期效益金融、电信、税务、国信领,100500,计划,需求,设计,编码,集成 系统测试,域软件开发每年节约成本上千万,项目后评估-案例2,中科软科技股份有限公司,项目管理工作量节省27%;,质量平台平台开发+SQA,成效,项目数据统计工作量节省30%;项目度量工作量节省30-50%;节约成本200万元,直接经济效益1000万元,Q&A,邮件地址:,