当前位置: 首页 > 科技观察

如何评估软件质量保证是否成功:KPI、SLA、发布周期和成本_1

时间:2023-03-21 00:21:05 科技观察

软件质量保证KPI:  ?活动缺陷  ?自动化测试  ?覆盖率要求级别  ?高/关键缺陷和逃脱缺陷的百分比  ?被拒绝缺陷的百分比  ?测试时间  ?已编写的测试  ?自动化测试  ?代码覆盖率  ?每天修复的缺陷  ?通过需求  ?通过测试  ?拒绝缺陷  ?审查需求  ?执行测试用例  ?关键缺陷  ?执行测试  ?工作时间表和约束  ?缺陷关闭率您是否评估过QA的成功?  软件质量保证是软件开发过程的重要组成部分。它确保软件产品符合组织中设定的质量标准。然而,尽管软件质量保证无疑是可取的,但它也可能相当昂贵。本文将回顾如何评估您的质量保证并提供良好的投资回报。但首先,让我们看看QA如何影响软件发布,以及为什么您可能需要衡量QA的成功。QA对软件发布周期的影响  发布周期包括从开发测试到部署跟踪的不同阶段。在竞争激烈的市场中,较长的发布周期可能是一个劣势。因此,组织通常希望加快发布周期。但是,对速度的关注可能会导致产品质量下降。但是通过在软件发布管理中实施最佳实践,您可以在不牺牲质量的情况下缩短发布周期。这里有一些方法可以做到这一点。记录你的发布时间表  记录你的发布时间表是让每个人都在同一页面上的好方法。发布计划应包括您的目标、质量期望和参与者的角色。记录发布计划后,确保所有团队成员都可以访问、参考并根据需要轻松更新它们。流程自动化  自动化手动和重复性任务是加快发布周期同时保持质量的好方法。QA自动化释放了宝贵的人力资源,然后您可以将其重新分配给其他高优先级任务。这些潜在的可自动化任务包括自动化回归测试、代码质量检查和安全检查。创建一致的发布周期  评估发布过程的状态后,创建定期发布计划。  这样做将有助于创建一个您的团队可以适应的常规系统。最终用户也将知道何时需要更新,并且更有可能参与最新版本。  短发布周期通常是个好主意,小而频繁的更改而不是长期更改。制定目标发布计划将帮助您的团队朝着发布日期努力,同时在发布周期中实现当前目标。开发和优化您的发布基础设施  发布基础设施中隐藏的瓶颈会减慢部署过程。因此,您必须优化交付基础架构并实施持续测试和测试自动化等实践。进行发布审查  发布审查涉及审查过去版本中的流程,以提取可以帮助您在未来版本中改进这些流程的见解。发布回顾为团队提供了一个开放的环境来分析过去的问题并制定策略以避免将来发生这些问题。  但是,为了确保您的发布周期一致且顺利运行,您可能需要评估QA在软件开发中的有效性。为什么要评估软件质量保证的成功  使测试过程更加高效和具有成本效益至关重要。  使用指标分析当前系统可以帮助您了解哪些方面需要改进。因此,您将能够为流程的下一阶段做出明智的决定。  如果不使用指标来确保质量,衡量软件质量是一项挑战。如果您不对其进行衡量,您怎么知道您的质量保证策略是否有效。什么是软件测试指标,为什么需要它们?  软件测试指标是QA团队用来评估软件开发项目质量的指标。跟踪它们可以快速概览测试过程,并有助于评估QA团队的效率。  你无法改进你无法衡量的东西。软件测试中的质量指标旨在实现这一目标——改进的质量保证流程。作为回报,优化QA流程有助于更有效地为测试需求制定预算。  这样他们就可以为未来的项目做出明智的决定,了解需要改进的地方,并做出必要的改变。那么,哪些指标可以帮助您做出这些决定?QA指标的类型  有许多QA指标或多或少对您当前的场景(即项目的当前状态)有价值。指标可以通过其可操作性(测量导致改进)以及是否可以持续更新来定义。  以下是一些与项目当前状态相关的指标示例:  ?平均检测时间——检测问题平均需要多长时间。越早发现问题,解决问题的成本就越低。?平均修复时间——修复一个问题平均需要多长时间。当您的产品或服务无法正常工作时,这段时间也等同于停机时间,您会蒙受损失并可能危及您的声誉。  ?测试可靠性——测试反馈的价值。基本上,可靠的测试在测量上是一致的并且是可重复的。  ?发现的逃逸缺陷——有多少缺陷在生产期间未被质量检查团队发现,但在发布后被发现。  你怎么知道你的项目要使用哪些指标?同样,这完全取决于哪些指标与项目的当前状态最相关和最客观。但是请注意,帮助评估软件或组织质量的指标与评估QA团队有效性的指标之间存在差异。  更深入一点,衡量后者的一种方法是设置KPI。如何使用KPI评估质量保证  关键绩效指标或KPI是用于衡量软件测试中质量保证有效性的设定指标。  KPI通常有助于评估QA有效性。但是,它们并不适用于所有场景。以下是衡量KPI最有益的一些情况:?您实施测试流程已有一段时间了。当测试处于早期阶段时,KPI毫无帮助。但是,如果您已经实施了一段时间的测试流程,衡量KPI将帮助您了解哪些领域需要改进。?您计划引入新的测试流程。衡量当前流程的KPI将帮助您了解新流程的目标。?你有一个庞大的测试团队。与大型QA团队合作涉及测试任务的分配和管理。衡量KPI将帮助您确保流程高效并使团队成员保持正轨。最常见的KPI  以下是评估QA性能时最常用的一些KPI:ActiveDefects  此KPI是针对缺陷、开放缺陷或已修复缺陷的数量。活动缺陷数量少表明产品处于高质量水平。测试经理设置一个阈值,超过该阈值团队必须立即采取行动来减少缺陷。  发现、统计、分类和解决缺陷的过程称为缺陷管理。此过程包括完成所需信息,例如缺陷的名称和描述。一旦团队获得相关信息,就会对所涉及的错误进行优先排序并安排解决方案。自动化测试  此KPI跟踪自动化测试的百分比。自动化测试的百分比越高,检测到软件中关键错误的机会就越大。测试经理应根据软件类型和计算的自动化成本确定此KPI的阈值。  自动化测试指标的一些示例包括:  ?总测试持续时间-运行所有自动化测试所需的时间。  ?单元测试覆盖率——单元测试覆盖了多少代码。  ?路径覆盖率——测试覆盖的线性独立路径的数量。需求覆盖度  此KPI衡量一个或多个测试用例覆盖的需求百分比。目标应该是至少有一个测试用例涵盖每个需求。测试经理监控这个KPI并指定当需求不能映射到测试用例时应该做什么。  需求通常在覆盖矩阵中描述——一个包含需求链接和相应测试用例的表格。当要求很高或没有明确记录时,这些矩阵很有用。当新团队成员必须熟悉需求时,它们也会派上用场。  使用需求覆盖矩阵允许测试经理将所有需求放在一个资源中,所有团队成员都可以访问。它使开发人员和QA工程师的工作更有效率,并有助于确保他们将所有要求都考虑在内。高/严重缺陷和逃逸的百分比  逃逸是在测试期间逃过检测并被最终用户发现的问题。团队应该分析这些缺陷以改进流程并防止类似事件的发生。  跟踪逃逸缺陷率可以推动对更好或更自动化测试的需求。它还可能表明需要放慢开发过程以进行更广泛的测试。%ofRejectedDefects  此指标指的是测试人员发现的被开发人员拒绝的缺陷的百分比。如果缺陷不可重现、不正确或已报告,则可以拒绝缺陷。  拒绝的缺陷会浪费大量时间并降低测试团队的效率。它们还会降低测试人员的士气,因为这会让他们看起来不专业。如果被拒绝的缺陷数量很高,测试人员可能需要进一步培训或更新文档。测试时间  此KPI用于跟踪功能从“正在测试”阶段移动到“完成”阶段所需的时间。因此,它有助于衡量功能的复杂性以及测试人员的效率。  所有这些KPI都有助于衡量您的QA团队在不重复的情况下识别软件产品缺陷的效率,以及测试需要多少时间。当您要从外包公司聘请QA服务时,这些KPI至关重要。如何选择QA外包公司  外包软件QA服务可以节省时间和金钱,同时让您专注于您的核心业务。但是,您选择的供应商的质量将直接影响质量保证外包的投资回报率。  以下是评估软件质量保证公司时需要注意的一些因素。?测试基础设施。确保QA服务公司拥有适合您产品的测试基础设施,例如必要的软件、操作系统、硬件设备、测试工具和经过认证的测试程序。?产品组合。花一些时间审查供应商的产品组合。批判性地审视其历史、现有客户、使命和声誉。您需要寻找稳定且声誉良好的公司。?客户关系。寻找以合作为导向的公司。这些公司努力培养和维护与客户的良好客户关系。因此,您更有可能获得愉快的体验并与此类供应商建立长期合作关系。?灵活性和可扩展性。确保公司拥有灵活的商业模式,能够应对测试要求的变化。随着测试需求的发展,这种灵活性会派上用场。  ?安全。仅考虑在网络安全、临时安全、数据库安全和知识产权保护领域提供高度安全环境的供应商。?文档标准。确保供应商遵守必要的QA文档标准。例如,他们应该充分记录测试结果、报告、计划、脚本和场景,并为您提供轻松访问文档的途径。  这些因素对于精通商业的专业人士来说似乎是显而易见的。但如果您在选择第三方供应商时不考虑它们,您可能会浪费本可用于实际质量保证的时间和金钱。软件质量成本  软件质量成本是您为确保软件产品质量而支付的一切费用,供应商费用或内部专家薪水除外。了解这些成本是什么将有助于您为它们做出适当的预算。  让我们看看不同类型的质量检查成本。质量保证成本的种类  主要的软件质量保证成本包括预防成本、检测成本、内部故障成本和外部故障成本。  ?预防成本。这是组织为防止质量问题而进行的投资。预防成本包括培训开发人员、防错、根本原因分析和改进计划。?测试成本。这些是软件质量控制过程的成本,旨在在软件提供给最终用户之前发现并解决缺陷。它们包括与审查和测试代码库相关的成本,以及技术支持服务成本。?内部失败成本。内部故障成本是在产品到达最终用户之前解决缺陷所产生的成本。它们包括浪费的时间、延迟的项目和返工缺陷产品的成本。?外部失败成本。外部失败成本是与交付低质量软件产品和服务相关的成本。它们包括退货、保修索赔、诉讼和声誉损害。降低质量保证成本和提高投资回报率的方法  软件质量的成本会迅速增加并成为一笔可观的投资。以下是帮助您最大限度地降低成本和最大化投资回报率的一些步骤:?尽快开始测试。尽早开始测试以将QA成本降至最低非常重要。早期测试减少了发布后发现严重错误的机会。此外,在开发后期修复缺陷的成本可能是在设计和架构阶段修复缺陷的30倍。?明智地自动化测试。如果您的产品稳定,自动化测试是在开发过程中节省资金的绝佳方式。即使您的软件产品是动态的,您也会从尽可能多的自动化测试中受益。测试自动化提高了效率,使QA工程师能够更快地提交错误报告,以便开发团队可以更快地开始修复缺陷。自动化还使您能够获得更好的测试覆盖率。  在实施测试自动化时,避免急于立即自动化每个测试。相反,请仔细考虑贵公司的测试需求并计算测试自动化的投资回报率。?关注隐性成本。为项目设定预算时,请注意测试期间可能产生的隐性成本。例如,您的产品可能具有您的测试工程师不熟悉的独特功能。为了正确测试,他们需要花时间了解产品,从而产生采用费。  其他可能的间接费用包括基础设施成本和测试工具的维护。这些隐性成本会占用您预算的很大一部分。因此,您需要密切关注它们并寻找减少隐藏费用的方法。?明智地选择您的QA团队。QA团队的素质对QA的投资回报率有重大影响。因此,在选择一个团队来外包您的软件QA需求时,您需要考虑几个因素。这些可能包括他们的产品组合、声誉和测试基础设施。  ?评估您的质量检查是否成功。这样做将使您了解如何改进测试过程并做出更好的决策。  除了成本,另一个考虑因素是与第三方公司的正式协议。如何与外包QA公司签订合同  质量保证服务级别协议或QASLA是您与软件QA公司之间书面合同的一部分,其中规定了您对服务提供商的期望以及解决冲突的过程。  通常,这些是为了确保资源的可用性。例如,SLA可能包括如果项目扩展,提供商可以多快扩展团队。为什么您需要SLA  合同很简单,但QASLA将帮助您确保一些结果:?服务质量。SLA允许客户设定他们对服务质量的期望并轻松衡量服务提供商的绩效。因此,QA团队应对糟糕的表现负责。?清晰的沟通。清晰的沟通对于团队之间的成功协作至关重要。SLA有助于确保预先商定沟通方法和工作时间表,使沟通更加顺畅。?最佳程序和实践的文档。当最佳实践在书面文档中明确说明时,它们通常更有可能被遵循。SLA使服务提供商能够为其员工提供最佳实践的快速参考文档。?相互保护,安心。SLA消除了假设并让所有相关方高枕无忧。因此您可以放心,如果出现问题,您组织的利益将得到保护。SLA的主要组成  软件QA外包的服务水平协议通常包括两个关键的组成部分——QA服务和管理。  服务要素包括:?所提供的软件质量保证服务详情。此部分是定义明确的各项服务列表,包括服务说明、服务提供者和提供者以及何时需要各项服务。?服务可用性条件。此部分应定义一个工作时间表,其中将包括协议中涉及的每个实体,细化到一天中的时间、一周中的时间和可用的时区格式。  ?当事人的责任。这些是每个实体在法律上有义务履行的义务。  ?成本/服务权衡。  ?服务标准。结合估计的工作量定义什么是低性能级别和高性能级别。  管理元素通常包括:  ?指标。这些是明确定义的评估工作的方法。  ?报告程序。这些包括报告类型和格式,即谁在何时以及如何报告。  ?冲突解决程序。这是解决客户-供应商冲突的一种方式,从识别分歧到定义各方的解决责任。  ?更新合约的机制。以下是有关如何启动和实施已签署合同变更的说明。  预算成本,达成协议,现在让我们看看外包QA的流程是如何处理一些真实案例的。  明确目标的好处在长期项目中最为明显。虽然较短的项目(产品发布前的性能和负载测试)可能会受益于“一劳永逸”的方法,但与QA团队的长期合作需要一致的沟通和明确、明确的目标。结论  软件开发中的质量保证对于高质量产品的开发至关重要。但是,为确保获得积极的投资回报率,您需要:  ?确保您使用正确的QA指标来评估您的产品/服务。  ?设置KPI来衡量QA团队的效率。  ?如果您打算外包QA服务,请聘请合适的专家。译者介绍崔英峰,社区编辑,70后程序员,10多年工作经验,长期从事Java开发、架构设计、容器化等相关工作。精通Java,熟练使用Maven、Jenkins等DevOps相关工具链,擅长容器化方案规划、设计和实施。原标题:如何评估软件质量保证是否成功:KPI、SLA、发布周期和成本链接:https://dzone.com/articles/how-to-evaluate-software-quality-assurance-success?fromrel=true