软件质量保证(SQA)被定义为评估软件质量的良好计划和系统方法。它检查对软件产品标准,流程和过程的遵守情况。 SQA包括确保建立标准和程序并在整个软件开发生命周期和测试周期中都遵循的系统过程。
测试的主要重点是尽早发现系统中的错误,因为尽早修复缺陷的成本较低。根据研究的数量,如果在发布后发现错误,则修复起来的代价会更高,并且还会影响最终用户对应用程序的信心。
IBM的一项研究表明,修复在发布应用程序之后发现的缺陷的成本要高出100倍。
- 综上所述,软件质量保证很重要,因为它可以:
- 确保项目符合要求
- 尽早预防,发现和修复缺陷
- 最小化项目风险
- 提高产品可靠性
- 改善最终用户体验
- 测试和标准合规
- 发布管理和发布控制
- 降低开发成本
- 降低维护成本
测试的好处
- 缩短上市时间
- 高质量
- 最新的测试资源
- 灵活的资源配置
- 专注于战略重点
SQA活动发生在开发生命周期的每个阶段。这些阶段分为需求收集,系统设计以及编码和测试,最后发布的领域。
- 验证–评估系统或组件以确定给定开发阶段的产品是否满足该阶段开始时施加的条件的过程。
- 验证–在开发过程中或开发过程结束时评估系统或组件以确定其是否满足特定要求的过程
在应用程序开发的需求分析,设计和编码阶段,需要测量,监视和管理每个阶段的输出,以便可以根据其预定义的退出标准来验证每个输出。当最终应用程序完成编码和集成阶段时,必须根据原始应用程序要求对其进行验证,并由高级管理层签署并通过验证测试。在此应用程序开发的每个阶段,都必须在可能的情况下改进开发过程中的工作,以提高质量并保持竞争力。
验证,确认和软件质量度量之间的区别
有效的验证工作必须表明所有要求均已正确执行,这是通过对产品交付进行测试来完成的。如果以后要更换系统,可以重新执行这些测试以达到相同的结果。
验证表明,在开发生命周期中,产品在预定义的里程碑处满足其指定要求。验证会在开发生命周期结束时检查系统是否满足客户要求。
验证是评估最终产品以检查应用程序是否满足客户期望和要求的过程。这是验证和测试实际产品的动态机制。验证测试使用黑盒(功能)测试,灰盒测试和白盒(结构)测试等方法。
每个过程或模型中产生的软件的质量均根据所创建缺陷的数量来描述。通常,最常见的缺陷度量标准是:
- 测试案例总数
- 通过的测试用例数
- 测试用例数量失败
- 阻止的测试用例数
- 发现的缺陷数量
- 接受的缺陷数量
- 拒收的缺陷数量
- 延迟的缺陷数
- 严重缺陷数
- 计划的测试小时数
- 实际测试小时数
- 交付后发现的错误数量
质量保证的不同活动如下:
- 根据规范和业务要求保持项目质量。
- 缺陷预防,以及其他缺陷预防技术的正式方法。
- 减少缺陷。
- 检验,正式和非正式审查:直接执行故障检测和排除,而无需执行项目方案。
- 测试项目以进行故障观察和错误修复。
- 风险识别。
- 缺陷跟踪技术和方法。
- 软件容错能力。
- 结束语并维护报告。
为什么软件质量保证非常重要
- 用户角度:从最终用户角度看应用程序并根据该应用程序创建方案,可以很好地保证软件应用程序的质量。
- 测试阶段的缺陷:例如,最好在早期发现问题并在客户发现产品之前对其进行修复。
- 项目风险:项目开始时的质量保证在减轻规范阶段已确定的风险方面起着关键作用。
- 可靠性:当最终用户发现应用程序符合其期望时,可以提高他们的信任度。即使是消极的情况,宽容完全失败也会增加最终用户的信任度,并使应用程序变得智能。
- 减轻最终用户的负担:它可以帮助最终用户执行业务任务,而无需对应用程序有任何技术知识。易于理解的应用程序比传统应用程序拥有更多的用户。
- 防止安全漏洞:它可以帮助软件开发人员保护生产环境中的用户数据,并检测测试环境中的任何数据泄漏。
- 负载理解:它有助于了解在模拟下工作的应用程序,并在了解生产环境中系统的实际负载之后解决问题。
- 自动化:测试软件的目的是减少测试工作量,以更经济实惠的方式更快地交付功能。它有助于以更少的精力构建质量更高的软件。