效能度量 如何确保有效的软件质量管理流程

TesterHome小助手 · 2022年09月14日 · 3985 次阅读

如何确保有效的软件质量管理流程

低质量的软件不仅会导致用户采用率不足,还会危及公司的声誉并增加软件生产成本。不合标准的软件会导致用户留存率低并影响用户参与度,36% 的受访者提到更高质量的软件是他们 IT 战略规划的主要目标。

在创建高效的 SQM 流程之前,重要的是要了解:它是什么?为什么它对软件工程团队很重要?

什么是软件质量管理及其组成部分?

ISO 8402-1986 将软件质量定义为 “产品或服务的所有特性和特征,具有说明所述需求或满足的能力。”

人们常说,很难描述什么是质量,但如果存在,它肯定可以被识别。因此,有效的软件质量管理过程对于确保最终产品和制造过程中的可见质量至关重要。软件质量管理(SQM)是指确保软件产品不仅符合其需求规范,而且符合任何相关的国家和国际标准(如 ANSI、IEEE 和 ISO)的综合过程。

一般来说,SQM 由以下部分组成:

质量控制 (QC)

该步骤面向产品,并与软件开发同时开始。QC 包括手动和自动测试,包括功能、集成、可用性、性能和回归测试等阶段。软件质量控制的主要目标是检查软件是否符合业务需求,并防止软件投入生产后出现任何重大错误。

质量保证 (QA)

这是 SQM 的过程导向部分,需要在项目规划阶段尽早引入。QA 处理以下问题:

  • 软件应该遵守的标准是什么?
  • 各个利益相关者在确保高质量软件方面的责任是什么?
  • 什么是有助于防止出现缺陷的最佳生产流程?如何建立这些最佳生产流程?

美国国家标准与技术研究所(US National Institute of Standards and Technology)假设,修复软件测试中发现的错误要比需求优化的成本高出 6 倍。成熟且结构良好的质量保证过程旨在防止缺陷,而不是通过测试来识别缺陷。

质量策划(QP)

QP 关注于公司范围内的质量管理实践或特定项目。在项目层面,质量策划正式确定了 SQM 的各个方面,如:

  • 利益相关者在质量保证方面的角色和责任
  • 软件需求规范及其应遵守的标准
  • 相关类型的测试和测试文档
  • 测试进度、成本和所需资源的近似值
  • 测试 KPI 或指标等

对软件质量管理的需求

以下这些因素对于软件质量管理至关重要:

可预测性:
高质量软件的性能和结果被认为是可预测的。按时交付高质量产品不仅可以降低成本,还可以增加利益相关者对产品和公司的信心。
产品的好坏决定着公司的优劣。任何导致软件质量降低的错误都可能代价高昂,损失的不仅仅是金钱。

员工士气高涨:
自信的员工队伍是快乐的员工队伍。劣质产品会导致返工、投诉和声誉损失。这反过来又会导致士气低落,影响效率和绩效。

客户满意:
高品质的产品始终确保客户满意。一旦产品满足用户的要求,客户就没有理由投诉。

如何衡量当前的软件质量管理处于什么阶段

有效的质量管理过程可以通过其成熟度水平来衡量。在寻求优化现有的软件质量管理过程之前,重要的是了解该过程目前处于什么阶段。有几种 QA 成熟度模型可以用来这样做。
软件测试中的测试成熟度模型(TMM)于 1996 年由伊利诺伊理工学院开发。它列出了一组级别,通过这些级别,团队或组织可以走向更高的测试成熟度。
软件测试中的 TMM 也可用于评估当前测试流程的成熟程度。一旦测量了当前成熟度,TMM 还可以帮助确定在向更高成熟度级别移动时要实现的目标。
测试成熟度模型基于同一研究所先前创建的能力成熟度模型(CMM)。

  • TMM 1 级 - 初始
    此阶段验证软件是否满足用户的基本要求。缺乏适当的文档,测试侧重于调试。普遍缺乏适当的工具、技能和资源来确保高水平的软件质量。

  • TMM 2 级 - 托管
    测试过程被定义、结构化,并形成一个有凝聚力的、可执行的策略。以需求和规范为重点,制定测试计划、案例和程序。此阶段的重点是探索评估软件质量的技术,而不仅仅是修复错误。

  • TMM 3 级 - 定义
    在这个级别上,测试管道集成到软件开发生命周期中。在每个 sprint 中,sprint 开发阶段之后是测试。一个独立的 QA 团队在考虑预定需求的情况下检查软件。然而,在这个阶段,测试目标也考虑了风险管理。测试计划是在项目构思开始时进行的,也是处理预期风险的综合测试策略。

  • TMM 4 级 - 管理和测量
    在这一阶段,为了更好的管理,对需求和目标进行了度量。评审和检查活动作为测试的一部分引入生命周期。测试用例被记录并存档,以便以后用于回归测试。目前的主要关注领域是同行评审、测试测量和量化以及软件质量确定。

  • TMM 5 级 – 优化
    只有在实施了前一阶段的关键步骤之后,才能达到这一阶段。在这个阶段,测试过程已经变得以结果为导向,以数据为驱动,并且具有成本效益。软件测试技术、方法和指标都经过验证和迭代改进。测试工具被广泛用于记录、分析和报告结果。该级别的标志是缺陷预防、最佳质量控制和测试过程优化。

确保有效的软件质量管理过程的步骤

以下步骤对于建立精简高效的软件质量管理流程非常有用:

  • 创建公司范围的质量管理计划
    软件质量管理包括所有可能的以质量为导向的活动。质量控制更加以产品为导向,并确保软件符合所有预期和需求,而质量保证旨在预先处理缺陷而不是追溯处理缺陷的流程。
    制定项目团队需要实施和监控的步骤对公司计划至关重要。这不需要对组织结构进行任何更改。拥有一个卓越测试中心也有助于汇集一个全面的质量计划,以建立总体 KPI,决定招聘和提升人力资源技能,并建立一个通用的质量管理流程模板,以达到高水平的测试成熟度。

  • 遵守成熟度模型
    任何成功的 SQM 过程的标志都是达到测试成熟度的适当阶段。像测试成熟度模型(TMM)这样的成熟度模型可以帮助提供一个改进软件质量管理过程的路线图,并帮助组织了解其当前流程的位置。

  • 遵循敏捷测试流程
    任何软件质量过程的主要功能是能够尽早发现缺陷。软件开发过程中发现缺陷的时间越晚,纠正缺陷的成本就越高。在敏捷团队中,开发人员和测试人员不会在无懈可击的工作空间中工作。在敏捷测试过程中,测试被构建到每个 sprint 中,通常由开发人员和测试人员完成。但是测试人员仍然是敏捷工作流中非常重要的一部分。一致和迭代的测试过程是交付无缺陷软件的可靠方法,这就是为什么自动化测试仍然是敏捷开发的核心。

  • 尽可能多地自动化测试套件
    测试自动化使测试能够以足够快的速度运行,从而在短时间冲刺中产生准确的结果,满足敏捷团队对快速、全面和完美反馈的需求。充分的测试自动化策略能够主动识别错误并优化测试成熟度。这与并行测试等其他测试方法相结合,可以帮助尽早交付高质量的软件。

  • 结合持续测试
    保持质量控制的关键是持续测试产品,持续测试可确保以下好处:及早发现关键错误、开发人员、QA 和运营团队之间的无缝协作、评估每个阶段开发的软件质量、加快产品上市时间以及持续反馈机制。

  • 不断创新
    创新是任何组织成长中最重要的因素。如果 QA 团队无法创新方法,在项目和组织层面上从这些过程中获得最大的杠杆作用,那么遵循成熟度模型或整合最先进的过程将是徒劳的。

结论

软件质量管理过程是任何产品团队的核心,并确保在预期的时间内实现最佳产品交付。这一过程的成功会影响声誉,以及任何公司的财务底线。因此,将这些流程简化到完美是极其重要的。实现这一点的一个关键要求是通过真实环境测试获得准确的结果。

暂无回复。
需要 登录 后方可回复, 如果你还没有账号请点击这里 注册