什么是软件质量保证?

软件质量可以从外部和内部属性来评估。外部质量关注软件在真实运行环境中的表现,以及它对用户是否有用。内部质量关注底层代码。用户主要感受到的是软件的外部行为,而要维持这种质量,离不开清晰、编写良好的代码。

External and Internal Software QualityTest External Quality(Visible)ReliabilityEfficiencyMaintenanceCostReview Internal Quality (Invisible)ComplexityProgramStructureFlexibilityReadabilityReusabilityTestabilityCodingPractices
打开完整尺寸图表

软件质量

什么是软件质量保证?

评估软件质量有两种重要方法。

  1. 缺陷管理法
  2. 质量属性法
任何不符合客户要求的情况都可以视为缺陷。对需求的误解可能导致设计错误。功能逻辑有误、代码不正确或数据处理不当也可能引入缺陷。缺陷管理要求记录缺陷、按严重程度分类并统计数量,然后由团队根据严重程度采取相应措施。控制图可以帮助衡量开发过程的能力。

Defect Management ApproachMetricsDevelopmentProcessQAProcessQA1. RiskAnalysis2. DefectDetection3. AnalysisSoftwareDevelopmentAssign Severityand PrioritySoftwareDevelopmentConductImpactAnalysisfor HighPriorityDefect Management Approach
打开完整尺寸图表

缺陷管理法


早期的软件产品质量模型 ISO/IEC 9126-1 将质量属性归为六项特性。

Quality Attribute ApproachFunctionalitySuitabilityAccuracyInteroperabilityComplianceSecurityReliabilityMaturityRecoverabilityUsabilityUnderstandabilityLearnabilityEfficiencyTime Behavior(Time Taken)Resource UtilizationMaintainabilityAnalyzabilityChangeabilityStabilityTestabilityPortabilityAdaptabilityInstallabilityConformanceReplaceability
打开完整尺寸图表

质量属性法

1. 功能性 软件提供的全部重要功能。

  • 适合性。软件功能是否符合预期用途?
  • 准确性。功能是否正确实现?
  • 互操作性。软件如何与系统的其他组件交互?
  • 合规性。软件是否遵守适用的法律和指南?
  • 安全性。软件能否安全地处理数据事务?
2. 可靠性 软件在规定条件下持续运行一段指定时间的能力,包括承受组件故障的能力。
  • 成熟性。软件发生故障的频率有多高?
  • 易恢复性。发生故障后,系统能否顺利恢复完整运行?
3. 易用性 某项功能是否容易使用。
  • 易理解性。用户能否轻松理解各项功能?
  • 易学性。经验水平不同的用户需要花多少精力才能理解各项功能?
4. 效率 一般取决于开发采用的架构和编码实践。

5. 可维护性 也称可支持性。它在很大程度上取决于代码的可读性和复杂度,涉及发现和修复缺陷的能力。
  • 易分析性。找到故障的主要原因有多容易?
  • 易修改性。修改代码并消除缺陷需要多少工作?
  • 稳定性。系统在修改后的表现有多稳定?
  • 易测试性。测试系统需要多少工作?
6. 可移植性 系统适应环境变化的能力。
  • 适应性。系统适应规格变化有多容易?
  • 易安装性。安装系统有多容易?
  • 一致性。对应功能性中的合规性。
  • 易替换性。在给定环境中替换某个系统组件有多容易?

软件质量成本 测试需要投入时间、金钱和精力。分析软件质量成本有助于了解这些投入的回报,即投资回报率(ROI)。

Cost of Software QualityCost ofSoftwareQualityPreventionCostsTestabilityAutomation Testing(Unit and Integration)ContinuousIntegrationAppraisal CostsQA Test PlansUATManual TestingInternal FailureCostsOperationalDowntimeExternal FailureCostsFinancial LossesLoss of Business
打开完整尺寸图表

软件质量成本

质量成本包括符合性成本和不符合性成本。符合性成本包括以下几类。
  1. 预防成本。正确实施质量保证措施的成本,包括团队培训、代码评审及其他质量保证活动。
  2. 评价成本。计划和开展测试的成本,包括设计与执行测试用例。
不符合性成本来自以下两类失败。
  1. 内部失败成本。初期的内部测试失败所带来的成本,包括开发人员修复单元测试或组件测试中发现的缺陷所投入的工作。
  2. 外部失败成本。客户发现测试人员未发现的缺陷所带来的成本。此类成本远高于内部失败成本,尤其是在客户不满意或将软件故障升级处理时。
软件故障成本 多种因素都可能导致软件故障。
  1. 难以跟上变化。随着软件老化,如果只添加新代码以实现功能,同时长期忽略现有代码,软件可能变得更庞大,也更难维护。久而久之,团队将难以识别需要修改的部分。
  2. 软件本身、工作负载或数据发生变化时,性能可能下降。例如,内存泄漏可能导致运行中的软件消耗越来越多的内存。先衡量问题并调查原因,再决定修复、升级还是替换软件。
  3. 修复可能引入回归问题,尤其是在其他组件依赖被修改代码的情况下。确认修复解决了原始问题,并测试受影响的行为。综合测试结果、维护成本和业务影响决定下一步。
软件测试与质量保证 在 IT 行业,软件质量保证和软件测试经常被混淆。由于两者都以获得高质量软件为目标,测试人员有时也被称为质量保证专业人员。
质量保证制定和实施相关流程,以满足客户的质量要求并遵循软件开发生命周期中的各项规程。它是一种主动的方法,重点包括以下方面。
  1. 缺陷预防
  2. 流程
  3. 持续改进这些流程
软件测试通过严格检查软件来发现缺陷和错误,并检查是否存在需要纠正的客户需求偏差。测试是面向产品的质量控制活动。测试发现缺陷,调试负责修复缺陷。

质量保证与质量控制 质量保证与质量控制关系密切,各有侧重。质量保证通过流程预防问题。质量控制侧重识别和处理产品质量问题的各项活动。
测试是质量控制的一部分。质量保证和质量控制共同支持质量管理。质量保证通过建立和改进流程,帮助团队满足客户要求。

Quality Management, Assurance and ControlQuality ManagementQuality AssuranceQuality Control
打开完整尺寸图表

质量保证与质量控制

质量控制包括验证和控制产品特性,以及检查开发是否满足既定要求。其中最重要的活动是检查和测试产品。

质量控制团队识别不符合公司质量标准的产品或服务。如果发现问题,可以暂停生产,直到问题得到解决。

审核和检查的重要性

审核系统地考察组织如何开展软件测试。审核人员评审已记录的流程,检查组织或团队是否遵守既定标准。

检查是对需求、设计或代码等工作成果进行的正式评审。由作者以外的评审人员寻找缺陷以及不符合约定标准的地方。典型的检查包括以下活动。

  1. 制定计划
  2. 概要介绍和个人准备
  3. 检查会议
  4. 返工
  5. 跟进




我们保证,学完免费在线培训,您就能通过软件测试认证考试!

  1. 01

    在线报名

    选择您希望获得的认可认证,完成报名。

  2. 02

    接收访问码

    您的专属考试访问码将立即发送到您的电子邮箱。

  3. 03

    准备并参加考试

    学习免费培训材料,在线回答 50 道选择题。

  4. 04

    获得终身有效的认证

    领取全球有效的证书和可验证的数字徽章。

Accredited Software Test Manager Certification™ 证书样本
报名参加认证

您的免费优质在线培训

Software Testing Revealed 第二版已为您备好。

我们与来自各主要行业的知名企业领导者、团队负责人、软件测试教练、导师、专家及权威人士共同开发了这套培训。所有访问 International Software Test Institute™ 的人士都可以学习。您可通过 您的免费软件测试书籍 以及 您的免费优质软件测试培训 获取培训资料。这两个栏目都在顶部菜单中。

这些资料是 International Software Test Institute™ 享有版权的知识产权。我们免费向所有人分享,因为公开我们的专业经验能帮助软件测试从业者,并促进这一领域的发展。

认证考试采用选择题。请学习在线培训,掌握通过考试和获得软件测试认证所需的知识。

我们保证,学完免费优质在线培训,您就能通过软件测试认证考试!