软件质量管理与控制
软件开发过程的质量控制和管理

软件开发过程的质量控制和管理第一章:引言在不断发展的数字时代,软件已成为人们生活和工作中必不可少的工具。
软件开发不再是一个独立的技能,而是需要多个专业人士的合作完成。
软件开发过程的质量控制和管理已经成为开发高质量软件的必要措施。
在这篇文章中,我们将了解软件开发过程中的质量控制和管理。
第二章:软件开发过程中的质量控制质量控制是确保软件产品满足特定要求和标准的过程。
在软件开发过程中,质量控制需要在整个生命周期中进行。
软件开发过程中的质量控制主要包括以下几个方面:1.需求定义和分析需求定义和分析是软件开发过程中最重要的环节之一。
在这个阶段,开发团队需要与客户密切合作,确认需求和相关标准。
这是确保软件能够满足客户需求的关键步骤。
必须对需求进行仔细的分析和评估,确保需求的准确性、完整性和一致性。
2.设计软件设计是开发过程中的另一个重要环节,它是根据已经确认的需求创建软件体系结构的过程。
在这个阶段需要考虑性能、可靠性和可维护性等因素。
还可以通过软件建模和模拟来评估设计和架构的有效性。
3.编码/代码审查编码是将设计转化为实际软件代码的过程。
编码需要遵循标准和最佳实践,确保代码质量和可扩展性。
代码审查还可以在编码过程中进行,以确保代码符合标准。
4.测试测试是确保软件符合质量标准的重要工具。
测试可以通过不同的方法进行,如单元测试、集成测试、系统测试和验收测试等。
测试可以检测软件产品中的错误和潜在的问题,并在开发过程中进行修复。
第三章:软件开发过程中的质量管理软件开发过程的质量管理是一种管理方法,旨在确保软件产品能够满足客户和相关标准的要求。
质量管理包括以下几个方面:1.项目管理在软件开发过程中,项目管理是确保产品质量和按时完成的重要组成部分。
项目管理涉及计划、协调和跟踪项目进展,以确保项目按时交付、满足客户需求。
2.质量计划质量计划是确定质量标准、程序和流程的过程。
质量计划必须在项目开始前制定,以确保项目的顺利进行。
软件项目管理及质量控制

软件项目管理及质量控制目录1项目风险管理 (3)2风险管理的流程 (3)2.1风险的识别及控制 (4)3项目配置管理 (4)3.1文档的存放、管理及处理权限 (4)3.2文档的提交流程 (5)3.3文档的版本控制方法 (5)3.4源码配置管理 (5)4项目沟通管理 (5)4.1沟通手段 (6)4.2针对具体情况的沟通方式 (6)4.3项目变更管理 (7)4.4变更控制角色 (7)5项目质量控制 (8)5.1编码规范 (8)5.2代码复查 (8)5.3测试保障 (8)6项目工具管理 (9)6.1项目实施常用工具和方法 (9)6.2测试管理工具 (9)7系统应急预案 (10)8日常维护机制 (11)9故障解决机制 (11)10系统备份与恢复机制 (11)1项目风险管理在本项目中XX公司负责项目的风险和成败,并指定专人对风险列表进行管理与监控,而XX公司配合XX公司进行项目的风险管理,同时双方都应指定相关风险的责任人。
2风险管理的流程1.风险管理包括:⏹定义标准的流程,以识别、分析评估、监控风险的防范⏹采用集中统一的风险日志工具,来记录和跟踪工程和各项目的风险⏹采用风险评估表,量化评估风险的可能性和影响程度⏹标准的风险报告风险管理主要由项目经理负责,项目组的成员对于日常中发现的各种风险,都有责任汇报给风险管理的责任人。
对于识别风险而产生的纠正与预防措施,指定责任人、列入项目计划进度表实施。
风险管理内容包括:⏹识别风险。
是管理风险的第一步,即识别整个项目过程中可能存在的风险。
包括技术、性能、质量、组织、公司外、行为性等方面;⏹风险分析。
风险分析的目的是确定每个风险对项目的影响大小,一般是对已经识别出来的项目风险进行量化估计。
评估风险的影响、风险概率和风险值。
⏹风险应对。
确定风险的应对策略,编制风险应对计划。
⏹风险监控。
跟踪已识别风险的发展变化情况;根据风险的变化情况及时调整风险应对计划,每周周期性的提交《风险控制表》。
软件开发质量保证与质量控制

软件开发质量保证与质量控制引言概述:在当今快速发展的信息技术领域,软件开发质量保证与质量控制显得尤为重要。
随着软件应用范围的不断扩大和用户对软件质量的要求越来越高,软件开发过程中的质量保证与质量控制成为确保软件稳定性和可靠性的关键环节。
本文将从五个方面介绍软件开发质量保证与质量控制的相关内容。
一、需求分析阶段的质量保证与质量控制1.1 确定明确的需求:在需求分析阶段,要确保对用户需求的准确理解和明确表达,避免模糊不清的需求导致软件开发过程中的误解和错误。
1.2 需求验证与确认:通过与用户的沟通和验证,确保需求的准确性和完整性,避免开发过程中对错误需求的开发和实现。
1.3 需求变更管理:及时响应用户需求的变更,并进行合理的评估和管理,确保变更后的需求与原始需求的一致性和稳定性。
二、设计阶段的质量保证与质量控制2.1 架构设计的合理性:在设计阶段,要确保软件架构的合理性,包括模块划分、接口设计等,以保证软件的可扩展性和可维护性。
2.2 设计评审与验证:通过设计评审和验证,确保设计方案的正确性和可行性,避免设计上的漏洞和错误。
2.3 设计文档的编写与管理:编写清晰完整的设计文档,并进行合理的管理和维护,以便于后续开发和维护工作的进行。
三、编码阶段的质量保证与质量控制3.1 编码规范的遵循:制定并遵循统一的编码规范,保证代码的可读性和可维护性,减少潜在的错误和问题。
3.2 单元测试的执行:对编写的代码进行单元测试,确保代码的正确性和稳定性,提前发现和修复潜在的问题。
3.3 代码审查与质量评估:通过代码审查和质量评估,发现和纠正潜在的问题和不足,提高代码的质量和可靠性。
四、测试阶段的质量保证与质量控制4.1 测试用例的设计与执行:设计全面有效的测试用例,对软件进行全面的功能和性能测试,确保软件的正确性和稳定性。
4.2 缺陷管理与修复:及时记录和管理测试过程中发现的缺陷,并进行合理的修复和验证,确保软件的质量和稳定性。
软件项目质量控制和管理规范

软件项目质量控制和管理规范在软件项目中,质量控制和管理是非常重要的。
在需求阶段,规范填写质量控制文档并进行评审是最重要的手段之一。
为了确保需求文档的质量,需求人员需要填写《预审问题表》并提交给每个评审人员进行评审。
根据评审结果,质管人员需要填写《需求分析过程检查表》来评估需求分析和管理活动是否分配任务和进度,并对用户的需求进行收集和检查。
同时,需要确保系统分析人员接受了相关培训,系统分析结果形成了文档,并且需求规格说明书是否按计划完成。
在需求被标识、管理的前提下,才能确保软件项目的质量。
需求管理和跟踪在需求说明书中是否标识了潜在问题,以便在后续的需求跟踪和关闭中进行管理?如果是,需求应该被唯一标识并描述状态,以便统计需求个数。
如果不是,应该将潜在问题描述并追踪至关闭,以确保项目的顺利进行。
配置人员应该管理项目的需求基线,以便在需要时进行编辑和修改。
质量控制在设计阶段,质量控制的手段是规范填写质量控制文档并进行设计文档的评审。
设计人员应该填写设计预审问题表并提交给每个评审人员进行设计文档评审。
根据评审结果,质管人员应该填写设计分析过程检查表,以评价检查内容的实施情况。
设计文档评审表应包括项目评审表、项目评审问题追踪表、评审人员签字、批准人签字、评审时间和验证人签字。
在评审过程中,应该检查是否形成了概要设计说明书和详细设计说明书,并记录是否符合模板。
概要设计说明书是否按计划完成也应该进行评估。
在测试阶段,我们使用bug管理工具对缺陷进行管理和跟踪,直到系统满足测试退出标准或用户需求。
测试人员提交系统测试报告后,根据需求评审测试情况。
首先,我们需要填写测试预审问题表,然后根据评审结果填写软件测试检查表。
检查内容包括是否有测试计划、是否有测试用例、文档格式是否正确等。
评审人员需要签字并批准,同时SQA人员进行验证。
测试计划和测试用例是否按计划完成也需要进行评估,并采取必要的纠正措施。
同时,我们需要量化测试进程,监督测试进度和测试人员安排。
如何进行高效的软件测试管理和质量控制

如何进行高效的软件测试管理和质量控制软件测试是确保软件产品质量的重要环节,对于软件开发公司和团队来说,进行高效的软件测试管理和质量控制是确保项目顺利交付和客户满意的关键。
本文将介绍一些有效的软件测试管理和质量控制的方法和技巧。
一、需求分析和测试计划在进行软件测试之前,确保对软件需求有充分的理解和分析是非常重要的。
开发团队和测试团队需要共同明确软件的功能和性能需求,并根据需求制定详细的测试计划。
测试计划应包括测试资源、测试人员、测试工具、测试环境等方面的规划,并明确测试的范围和目标。
二、测试团队的组建和培训一个高效的测试团队需要由经验丰富的软件测试工程师组成。
测试团队应根据软件的特性和需求,制定合理的团队组织结构,并确保每个成员的职责和角色清晰明确。
同时,定期进行培训和知识分享,提高团队成员的技能水平和专业素养。
三、测试用例的设计和执行测试用例是软件测试的核心文档,它们描述了对软件功能和性能的测试需求和测试步骤。
在进行测试用例设计时,需要覆盖软件的各个功能模块和边界条件,并考虑到不同用户的使用情况。
测试用例应具有明确的预期结果,以便进行测试结果的验证和分析。
在执行测试用例时,需要确保测试环境的稳定和准备充足的测试数据。
四、缺陷管理和跟踪在软件测试过程中,不可避免会发现各种缺陷和问题。
测试团队应有一个完善的缺陷管理系统,用于记录和跟踪缺陷的处理过程和结果。
缺陷管理系统应能够及时通知相关责任人,并进行优先级和严重性的评估,以便合理安排修复和验证的工作。
五、自动化测试工具的应用自动化测试工具可以提高测试效率和准确性,并降低测试成本。
测试团队应根据软件的特性和测试需求,选择合适的自动化测试工具,并开发相应的测试脚本和测试数据。
自动化测试工具的使用需要经验丰富的测试工程师进行规划和配置,并进行定期的维护和更新。
六、持续集成和持续测试持续集成和持续测试是敏捷开发模式下的重要实践之一。
通过持续集成和持续测试,开发团队和测试团队可以及时发现和解决软件的问题,确保产品的质量和稳定性。
软件产品质量控制方法

软件产品质量控制方法引言概述:随着信息技术的快速发展,软件产品在各个领域的应用越来越广泛。
然而,软件产品质量问题也随之而来。
为了确保软件产品的质量,有效的质量控制方法是必不可少的。
本文将介绍软件产品质量控制的五个方面,包括需求管理、设计评审、编码规范、测试方法和缺陷管理。
一、需求管理1.1 确定清晰的需求:软件产品的质量控制首先要从需求开始。
需求管理的第一步是确保需求的准确性和完整性。
团队应与客户充分沟通,明确需求,并将其记录下来。
1.2 需求追踪:需求管理的另一个重要方面是需求追踪。
团队应建立需求追踪矩阵,跟踪每个需求的状态和进展。
这有助于确保每个需求都得到满足,并及时发现和解决需求变更或遗漏的问题。
1.3 需求评审:在需求管理过程中,进行需求评审是必要的。
通过与项目团队和客户的讨论,评审需求的可行性、一致性和完整性,可以及早发现和纠正潜在的问题,确保软件产品的质量。
二、设计评审2.1 架构评审:在软件产品开发的早期阶段,进行架构评审是至关重要的。
通过评审软件的整体架构,可以确保软件的可扩展性、可维护性和性能等方面的质量。
2.2 模块设计评审:在软件产品的详细设计阶段,进行模块设计评审是必要的。
通过评审模块设计,可以发现和解决潜在的设计问题,确保模块之间的接口清晰,并确保软件的质量。
2.3 代码评审:在编码之前,进行代码评审是非常重要的质量控制方法。
通过代码评审,可以发现和纠正潜在的编码错误,确保代码的可读性、可维护性和性能等方面的质量。
三、编码规范3.1 代码规范:制定统一的代码规范是保证软件质量的重要手段之一。
通过制定规范,可以提高代码的可读性和可维护性,并减少潜在的错误。
3.2 代码复审:在编码完成后,进行代码复审是必要的。
通过复审代码,可以发现和纠正潜在的编码错误,确保代码的质量。
3.3 单元测试:编写单元测试用例,并进行单元测试是编码规范的重要组成部分。
通过单元测试,可以验证代码的正确性,并及早发现和解决潜在的问题,确保软件的质量。
软件产品质量管控方案

软件产品质量管控方案一、引言软件产品质量是评估软件开发过程中各个阶段和成果的属性或特征,关乎软件产品是否能满足用户需求、是否能够保持稳定运行等。
为了确保软件产品的质量,需要建立一套科学有效的质量管控方案。
本文将介绍一种软件产品质量管控方案,旨在提高软件开发团队对产品质量的关注度,确保软件产品的可靠性、可用性和安全性。
二、质量目标1.提高软件产品的可靠性,确保软件能够稳定运行。
2.提高软件产品的可用性,确保用户能够方便地使用软件。
3.提高软件产品的安全性,确保用户数据和系统的安全。
三、质量管理流程1.需求分析阶段–在需求分析阶段,确保对用户需求的深入理解和准确把握,避免对需求的误解或遗漏。
–进行需求评审和验证,确保需求的完整性、一致性和可行性。
2.设计阶段–进行软件架构设计和详细设计,确保设计的可靠性、可扩展性和可维护性。
–进行设计评审,确保设计符合要求,并符合最佳实践。
3.开发阶段–采用规范统一的编码风格,确保代码的可读性和可维护性。
–实施代码审查,确保代码质量和规范。
–进行单元测试和集成测试,确保代码的正确性和稳定性。
4.验收阶段–进行系统测试,确保软件的功能、性能和稳定性达到用户要求。
–进行用户验收测试,确保软件能够满足用户需求和期望。
–进行安全性测试,确保软件没有漏洞和安全隐患。
四、质量控制措施1.引入质量保证人员–在开发团队中引入专门的质量保证人员,负责监督和审查各个开发阶段的工作,确保质量标准得到遵守。
2.持续集成–使用持续集成工具,确保代码的集成和构建过程自动化,减少人工操作和错误。
–每次代码提交后,自动进行代码检查和单元测试,确保代码的质量。
3.代码审查–引入代码审查流程,对关键代码进行审查,发现和纠正潜在的问题,确保代码的质量和规范。
–根据代码审查结果,及时进行修复和改进,确保代码的可靠性和可维护性。
4.测试覆盖率–对软件进行全面的测试,包括单元测试、集成测试、系统测试和验收测试。
软件开发质量控制与缺陷管理

软件开发质量控制与缺陷管理1. 软件开发质量控制软件开发质量控制是指在软件开发过程中通过一定的手段和方法对软件开发活动进行监督、检测和评估,以确保软件开发过程中全部或部分产品质量遵循软件开发标准和规范,并且产品可以达到用户的需求和要求。
1.1 质量检测质量检测是指通过检查、测试、审查、评估等手段获取软件产品的质量数据,并对数据进行分析和统计,以便在软件开发过程中及时地识别和解决问题,防止发生质量问题。
1.2 质量保证质量保证是指通过制定和执行质量计划、质量标准、质量体系建设、质量评审、项目管理等手段,保证软件产品质量符合规定的标准和要求,以及与用户的需求和期望相符。
1.3 质量管理质量管理是指对软件开发过程中的质量进行规划、组织、控制和评估,以实现高质量的软件产品。
质量管理要求在整个软件开发过程中建立与运用有关的质量标准、流程、方法和工具。
2. 缺陷管理缺陷管理是指在软件开发过程中对软件缺陷进行管理,包括记录、分类、跟踪、分析和解决缺陷等活动,目的是提高软件产品的质量和可靠性。
2.1 缺陷记录缺陷记录是指对软件缺陷进行记录,包括缺陷的编号、描述、级别、状态、责任人、解决日期和备注等信息。
2.2 缺陷分类缺陷分类是指对软件缺陷进行分类,按照缺陷的类型、严重程度、发生阶段和所属模块进行分类。
2.3 缺陷跟踪缺陷跟踪是指对软件缺陷进行监控和追踪,跟踪缺陷在软件开发过程中的产生、解决和验证过程。
2.4 缺陷分析缺陷分析是指对软件缺陷进行分析和评估,包括缺陷的影响范围、解决难易程度、缺陷趋势分析和缺陷分布等方面的分析。
2.5 缺陷解决缺陷解决是指对软件缺陷进行解决,包括确定解决方案、分配责任、实现修复、验证修复效果和关闭缺陷等活动。
3. 质量控制与缺陷管理的方法和工具3.1 质量控制方法和工具1) 需求分析和确认2) 用例分析和规划3) 软件测试和验收4) 编码规范和复审5) 合理的需求管理和项目管理6) 质量保证计划和过程控制7) 结果评估和质量评审3.2 缺陷管理方法和工具1) 缺陷管理工具:JIRA、Mantis、Bugzilla、Redmine等2) 缺陷定位工具:debug工具等3) 缺陷分析工具:Sylamer、Crashreporter等4) 缺陷测试工具:Monkey、UIAutomator等5) 缺陷解决方法:排除缺陷、修复缺陷、再测试缺陷4. 总结软件开发质量控制与缺陷管理是软件开发过程中必不可少的一个环节。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第8章 软件质量管理与控制
8.1 目的
软件质量管理的目的是通过分析质量要素和质量目标,制定合适的质量计划,整合技术评审、软件测试、质量保证、缺陷(或问题)跟踪等手段,保证软件开发质量。
8.2 关键活动与流程
软件质量管理的流程如图8-1所示,关键活动是“制定质量计划”、“技术评审”、“软件测试”、“质量保证”、“缺陷跟踪和问题跟踪”。
图8-1中,在技术评审、软件测试和质量保证活动中发现的缺陷和问题,都采用缺陷跟踪工具和问题跟踪工具来管理。
质量人员
测试人员
图8-1 软件质量管理的流程
该流程的主要工作成果见表8-1。
表8-1 软件质量管理流程的主要工作成果
8.2.1 制定质量计划
质量计划是软件质量管理的行动纲领,通常由项目经理和质量人员共同协商制定质量计划。
如果机构有独立的质量人员,那么由质量人员起草《质量计划》,递交给项目经理和质量经理审批。
如果机构没有独立的质量人员,那么项目经理兼任质量人员和质量经理的角色。
表8-2为《质量计划》的参考格式。
表8-2 质量计划
8.2.2 技术评审
技术评审的目的是通过同行专家对工作成果的评审进行讨论,尽早地发现工作成果中的缺陷,并帮助开发人员及时消除缺陷,从而有效地提高产品的质量。
技术评审的主要好处有:
☆通过消除工作成果的缺陷而提高产品的质量。
☆技术评审可以在任何开发阶段执行,不必等到软件可以运行之际,越早消除缺陷就越能降低开发成本。
☆开发人员能够及时地得到同行专家的帮助和指导,无疑会加深对工作成果的理解,更好地预防缺陷,一定程度上提高了开发生产率。
理论上讲,为了确保产品的质量,产品的所有工作成果都应当接受技术评审。
现实中,为了节约时间,允许人们有选择地对工作成果进行技术评审。
在制定质量计划的时候,应该确定技术评审计划。
技术评审是团体活动,一般地,机构没有专职的技术评审人员,当需要技术评审的时候临时组织人员就可以了。
质量人员应当参与重要的技术评审会议,这样既监督了技术评审,又加深对工作成果的了解。
技术评审的一般流程如图8-2所示。
图8-2 技术评审的流程
第一步准备评审
☆评审主持人首先确定评审会议的时间、地点、设备和参加会议的人员名单(包括评审员、记录员、作者、旁听者等),并告知所有相关人员。
☆评审主持人把工作成果及相关材料、技术评审规程、检查等发给评审员。
☆评审员阅读(了解)工作成果及相关材料。
第二步举行评审会议
☆主持人宣讲本次评审会议的过程、重点、原则、时间限制等。
☆作者扼要地介绍工作成果。
☆评审员认真查找工作成果的缺陷。
作者回答评审员的问题,双方要对每个缺陷达成共识。
☆作者和评审员共同讨论缺陷的解决方案。
对于当场难以解决的问题,由主持人决定“是否有必要继续讨论”或者“另定时间再讨论”。
☆评审小组给出评审结论和意见,主持人签字后本次会议结束。
评审结论有三种:(1)工作成果合格,“无需修改”或者“需要轻微修改但不必再审核”。
(2)工作成果基本合格,需要作少量的修改,之后通过审核即可。
(3)工作成果不合格,需要作比较大的修改,之后必须重新对其评审。
☆主持人和相关人员撰写《技术评审报告》(如表8-3所示)。
第三步缺陷跟踪
作者修正工作成果,消除已发现的缺陷。
评审主持人(或者指定审查员)跟踪每个缺陷的状态。
直到工作成果合格为止。
表8-3 技术评审报告
8.2.3软件测试
技术评审和软件测试的目的都是为了消除软件的缺陷,两者的主要区别是:(1)前者无需运行软件,评审人员和作者把工作成果摆放在桌面上讨论;(2)后者一定要运行软件来查找缺陷。
技术评审在软件测试之前执行,尤其是在需求开发和系统设计阶段。
相比而言,软件测试的工作量通常比技术评审的大,发现的缺陷也更多。
软件测试的主要工作有:
☆制定测试计划
☆设计测试用例
☆执行测试
☆缺陷跟踪
☆消除缺陷
8.2.4质量保证
QA: Quality Assurance
质量保证的实质:检查项目的“工作过程和工作成果”是否符合既定的规范。
符合规范的工作成果不见得就是高质量的,但是明显不符合规范的工作成果十有八九是质量不合格的。
质量保证的要点:找出明显不符合规范的工作过程和工作成果,及时指导开发人员纠正问题,切勿吹毛求疵或者在无关痛痒的地方查来查去。
在制定《质量计划》的时候,质量人员确定主要检查项和检查时间(或频度)。
质量人员在执行质量保证工作的时候,如果发现质量问题,应该立即记录下来。
最好使用问题跟踪工具(或者缺陷跟踪工具),有助于提高工作效率。
质量人员首先设法在项目内部解决已经发现的质量问题,与项目成员协商,给出解决措施。
在项目内难以解决的质量问题,由上级领导给出解决措施。
质量人员定期撰写《质量保证报告》(格式见表8-4),向项目成员和上级领导汇报现阶段的质量状况。
表8-4质量保证报告
8.2.5缺陷跟踪与问题跟踪
(1)缺陷
人们在执行技术评审、软件测试、质量保证工作时,会发现不少软件缺陷(或者其它质量问题)。
缺陷的属性如表8-5所示。
(2)缺陷跟踪工具
缺陷跟踪工具:帮助项目成员记录和跟踪缺陷用的软件。
一般都有数据支持,可以在局域网内运行。
如果没有缺陷跟踪工具的话,人们只好用纸张或文件去记录缺陷,不仅变更缺陷信息很麻烦,而且难以共享信息。
(3)问题跟踪
问题跟踪缺陷跟踪很相似,“问题”的含义比“缺陷”更加广泛。
8.3常见问题解答和实施建议
8.3.1 什么是软件的质量属性和质量要素
软件质量是许多质量属性的综合体现,各种质量属性反映了软件质量的方方面面。
人们通过改善软件的各种质量属性,从而提高软件的整体质量(否则无从下手)。
(1)质量属性
常见的质量属性有:正确性、健壮性、可靠性、容错性、性能、易用性、安全性、可扩展性、可复用性、兼容性、可移植性、可测试性、可维护性、灵活性等。
(2)质量要素
软件质量要素是指:
A.从技术角度讲,对软件整体质量影响最大的那些质量属性才是质量要素;
B.从商业角度讲,客户最关心的、能成为卖点的质量属性才是质量要素。
对于一个特定的软件而言,我们首先判断什么是质量要素,才能给出提高质量的具体措施,而不是一股脑地想把所有的质量属性都做好,否则不仅做不好,还可以能得不偿失。
如果某些质量属性并不能产生显著的经济效益,我们可以忽略它们,把精力用在对经济效益贡献最大的质量要素上。
简而言之,只有质量要素才值得开发人员下功夫去改善。
8.3.2 企业追求什么样的质量目标
企业的根本目标是为了获取尽可能多的利润,而不是生产完美无缺的产品。
如果企业销售出去的软件的质量比较差,轻则挨骂,重则被退货甚至索赔,因此为了提高用户对产品的满意度,企业必须提高产品的质量。
但是企业不可能为了追求完美的质量而不惜一切代价,当企业为提高质量所付出的代价超过销售利益时,这个产品已经没有商业价值了,还不如不开发。
企业必须权衡质量、效率和成本,产品质量太低了或者太高了,都不利于企业获取利润。
企业理想的质量目标:不是“零缺陷”,而是恰好让广大用户满意,并且将提高质量所付出的代价控制在预算之内。
8.3.3 谁对质量负责
谁对软件质量负责?
全员负责。
任何与软件开发、管理工作相关的人员都对质量产生影响,都要对质量负责。
不要把质量问题全部推给质量人员或测试人员。
谁对软件质量负最大的责任?
谁的权力越大,他所负的质量责任就越大。
质量人员是成天与质量打交道的人,但他个人并不对产品质量产生最大的影响,所以不负最大的责任。
8.3.4 为什么质量保证并不能保证质量
质量保证活动就是检查项目的“工作过程和工作成果”是否符合既定的规范。
如果质量人员发现某些项目的“工作过程以及工作成果”不符合既定的规范,那么马上可以断定产品存在缺陷。
但是符合既定规范的东西并不意味着质量一定合格,仅靠规范无法识别出产品中可能存在的大量缺陷。
不少机构的质量人员老是对照规范,查找错别字、标点符号、排版格式等问题,迷失了方向,这样只有疲劳没有功劳,而且让开发人员很厌烦。
质量保证的技术含量比较低,只能检查出肤浅的缺陷,不能对付有技术难度的缺陷。
所以单独的“质量保证”,其实不能“保证质量”。
质量保证对于保证质量而言只是必要的手段,而不是充分的手段。
对于软件质量管理而言,软件测试、技术评审比质量保证更加重要。
8.3.5为什么技术评审的效果不明显
有些机构按照CMM的要求制定了技术评审的规范,项目人员依据规范执行了技术评审(例如设计评审),但是感觉技术评审对开发工作几乎没有帮助,倒是评审会议浪费了不少精力。
为什么?
技术评审的价值在于“请同行专家评审工作成果,找出缺陷,给出改进建议”,而不在于是否按照规范召开了评审会议(形式是次要的)。
技术评审和设计评审通常是最重要的评审,项目经理一定要请真正内行的人参与评审,而且要让评审者投入一定的精力,这样才可能取得评审的效果。
习题:
软件质量管理的关键活动有哪些?说明各项活动的主要工作。