软件质量工程SQA-7质量管理方法

2021-07-06  本文已影响0人  python测试开发

质量管理体系(QMS quality management system)侧重于必要的战略和策略,以使组织成功实现其质量目标和目的,并提供高质量的产品和服务。作为QMS的一部分,需要有相应的方法和技术。

质量成本(COQ)和投资回报(ROI)

分析与产品和过程有关的COQ类别(预防、评估、内部故障、外部故障)和投资回报率(ROI)指标。

质量成本

质量成本(Cost of Quality COQ),也称为质量差的成本,是一种组织用来给生产和/或不生产高质量产品和服务的成本附加一个美元数字的技术。换句话说,质量成本是预防、发现和纠正缺陷(不符合要求或预期用途)的成本。质量成本代表的是,如果产品能够被开发出来,或者服务能够在第一时间内被完美地提供,那么就不需要花钱了。根据Krasner (1998),"软件质量成本是一种会计技术,它有助于我们理解交付优质软件所涉及的经济权衡"。因此,进行软件开发、完善性和适应性维护活动的成本不计入质量成本,包括。

质量成本有四大类:预防、评估、内部故障成本和外部故障成本。质量总成本是花在这四类成本的总和。

此外,质量的外部失败成本包括失败在运营中发生的成本。这些成本的例子包括。

为了减少内部和外部故障的成本,一个组织通常必须在预防和评估上花更多的钱。质量成本的经典观点指出,理论上存在一个最佳的平衡点,即质量的总成本处于最低点。然而,这个点可能很难确定,因为许多外部失败成本,如利益相关者的不满或销售损失的成本,可能极难衡量或预测。

上图是更现代的质量最佳成本模型。这种观点反映了越来越多的经验证据,即流程改进活动和预防技术受制于成本效益的提高。这些证据似乎表明,可以用有限的成本达到接近完美的效果(Campanella 1990)。例如,Krasner(1998年)引用了一项对雷神电子系统公司(RES)三年来实施能力成熟度模型(CMM)时的15个项目的研究。在成熟度等级1,软件质量的总成本占总开发成本的55%到67%。当达到成熟度等级3时,软件质量的总成本下降到总开发成本的平均40%。三年后,软件质量的总成本已经下降到总开发成本的15%左右,其中很大一部分是质量的预防成本。

质量成本信息可以针对项目和/或过程的当前实施情况进行收集,然后与历史值、基线值或基准值进行比较,或随时间变化而变化,并与其他质量数据一起考虑,以通过识别低效、无效和浪费的领域,确定过程改进的机会。

评估过程改进活动的影响。为未来基于风险的成本和产品完整性要求之间的权衡决策提供信息。

投资回报率

投资回报率(ROI Return on investment)是一种财务业绩衡量标准,用于评估一项投资的效益,或比较不同投资的效益。"在过去的几十年里,投资回报率已经成为流行的通用指标,用于评估资本收购、项目、计划和倡议,以及股票的传统金融投资或风险资本的使用'' (business-case-analysis.com )。

有两个主要的方程式用于计算投资回报率。

应该指出的是,投资回报率是评估一项投资或比较多项投资的一个非常简单的方法。两个投资回报率方程式都没有考虑到未来收到的金额的净现值(NPR)。换句话说,投资回报率忽略了资金的时间价值。事实上,在投资回报率中根本就没有考虑到时间。例如,以下哪一项是更好的投资?投资A的累计净现金流为75,000.00美元。投资B的累计净现金流为60,000.00美元。两者都需要50,000.00美元的总成本。如果投资回报率计算为((收入-成本)/成本)×100%),投资A的投资回报率为50%,投资B的投资回报率为20%。仅从这些信息来看,投资A看起来是更好的投资。然而,考虑到时间因素。投资A花了五年时间才看到50%的投资回报率,所以它每年平均回报率为10%。投资B只用了一年时间就看到了20%的投资回报率。现在哪个是更好的投资?

另一个问题是,对于组织如何衡量收入和成本作为投资回报率方程式的输入,并没有既定的标准。例如,像管理费、基础设施、培训和持续的技术支持等项目可能被算作成本,也可能不被算作成本。一些组织可能只考虑收入,而另一些组织可能会给一些因素赋予货币价值,如在市场上提高的声誉或利益相关者的善意,并将其列为收入。"那么,这种灵活性揭示了使用投资回报率的另一个限制,因为投资回报率的计算很容易被操纵,以适应用户的目的,而且结果可以用许多不同的方式来表达"(Investopedia.com 2016)。

在使用投资回报率作为财务业绩衡量标准时,必须注意确保使用相同的方程式,对收入和成本进行一致的衡量,并使用类似的时间间隔。在进行投资之间的比较时,这一点尤其重要。

过程改进

定义和描述基准、精益流程、六西格玛方法的要素,并使用定义、测量、行动、改进、控制(DMAIC)模型和计划-执行-检查-行动(PDCA)模型进行流程改进。

标杆管理

标杆管理是一个组织用来识别、理解、调整和采用世界上任何地方的其他组织的优秀实践和流程的过程,以帮助该组织提高其流程、项目、产品和/或服务的绩效。标杆管理可以为管理层提供保证,使质量和改进的目标和目的与其他团队或组织的良好实践相一致。同时,标杆管理有助于确定这些目标和目的是可以实现的,因为其他人已经实现了这些目标。基准的使用可以帮助组织 "跳出框框",并能带来突破性的、进化性的改进。

第1步:第一步是确定基准的内容,即组织要分析和改进的过程、项目、产品或服务。这一步包括评估组织当前做法的有效性和效率、优势和劣势,确定需要改进的领域,对这些领域进行优先排序,并选择首先要进行基准测试的领域。质量认证经理/组织卓越手册》(Westcott 2006)说,"如何选择基准的例子包括系统、流程或做法,这些系统、流程或做法。

第二步:标杆管理过程的第二步是建立进行标杆管理研究的基础设施。这包括确定一个提供必要资源的赞助者,并在组织内倡导标杆管理的活动。这还包括确定将实际执行基准测试活动的基准测试小组成员。这个团队的成员应该包括对被设定基准的领域有了解和参与的人,以及熟悉基准设定做法的人。

第3步:为了进行准确的比较,标杆管理小组必须对所选领域的现行做法有一个全面、深入的了解。确定被设定基准的领域的关键绩效因素,并对这些关键因素的当前值进行测量。对选定领域的现行做法进行研究,必要时绘制地图,并进行分析。

第4步:确定标杆良好做法的信息来源。请注意,标杆管理的信息收集步骤主要集中在良好实践上。在软件行业有许多良好的实践。当良好的实践被采用和调整以满足进行标杆管理的组织的确切要求、文化、基础设施、系统和产品时,它们就成为最佳实践。在这第四步中,要进行搜索和分析,以确定所选研究领域中的良好实践领导者。有几种选择可以考虑,包括。

第5步:收集和分析标杆性的良好实践信息。执行这一步骤的机制有很多,包括对目标标杆组织的实地考察,标杆组织提供辅导和指导的伙伴关系,对行业标准或文献的研究,对良好实践数据库的评估,互联网搜索,参加贸易展览,聘请顾问,利益相关者调查,以及其他活动。这一步骤的目标是。

第6步:为了使标杆管理发挥作用,从良好实践分析中获得的经验必须被用来实际改善组织的现行实践。要完成标杆管理过程的最后一步。

计划-执行-检查-行动(PDCA)模式

有许多不同的模型来描述流程改进的步骤。最简单的模型之一是经典的计划--执行--检查--行动(PDCA plan-do-check-act)模型,也叫戴明环,或谢沃特循环。

六西格玛

希腊字母sigma(σ)是标准偏差的统计符号。如图所示,假设是正态分布,与平均值(平均数)相加或减去六个标准差,将包括样本中所有项目的99.99999966%。这就引出了六西格玛质量衡量标准这一概念的起源,即每百万次机会中不超过3.4个缺陷的近乎完美的目标。

DMAIC模型

六西格玛DMAIC模型(定义、测量、分析、改进、控制)是用来改进那些没有达到要求水平的现有流程,这些流程是根据对x的关键要求(x是关键的客户/利益相关者要求,包括质量、成本、流程、安全、交付等)来衡量的,通过渐进式改进。

在DMAIC模型的测量步骤中,当前的过程被绘制出来(如果过程图还不存在的话)。被改进的过程的CTx特征被确定。选择、设计并同意测量这些CTx特性的指标。确定数据收集计划,并从当前过程中收集数据,以确定每个选定指标的基线和变化水平。这些信息被用来确定当前的工艺能力和定义当前工艺的基准性能水平。

在DMAIC模型的分析步骤中,统计工具被用来分析测量步骤中的数据,以充分了解每个输入变量对过程及其结果输出的影响。进行差距分析以确定过程的当前性能和所需性能之间的差异。基于这些评估,问题和/或过程中的变异的根本原因被确定和验证。分析步骤的目的是充分了解过程,以便有可能在改进步骤中确定替代的改进行动。
在DMAIC模型的改进步骤中,要考虑解决问题和/或减少过程变化的替代方法(改进行动)。然后,团队评估每个备选方案的成本和效益、影响和风险,并进行权衡研究。团队就最佳方法达成共识,并制定出实施改进的计划。该计划包括满足利益相关者要求所需的适当行动。对实施计划进行适当的批准。进行试点以测试解决方案,并收集和分析试点中针对CTx要求的措施。如果试点成功,该解决方案将被推广到整个组织,并再次收集和分析针对CTx要求的措施。如果试点不成功,必要时要重复适当的DMAIC步骤。

在DMAIC模型的控制步骤中,新改进的流程被标准化和制度化了。控制措施要到位,以确保改进的成果能够持续到未来。这包括选择、定义和实施关键指标,以监测过程和/或产品,以确定任何未来的 "失控 "情况。团队制定一个项目移交给过程所有者的策略。这个策略包括传播所学到的经验,建立文件化的程序、培训材料和任何其他必要的机制,以保证改进方案的持续维护。目前的六西格玛项目已经结束,团队为未来的流程改进机会确定了下一步。

DMADV模型

六西格玛DMADV模型(定义、测量、分析、设计、验证),也被称为六西格玛设计(DFSS),用于定义六西格玛质量水平的新流程和产品。当现有的过程或产品已经被优化,但仍未达到要求的质量水平时,也可以使用DMADV模型。换句话说,DMADV模型是在需要进化变化(彻底重新设计),而不是增量变化时使用的。

在DMADV模型的定义步骤中,设计活动的目标是根据利益相关者的需求来确定的,并与组织的战略相一致。这个步骤反映了DMAIC模型的定义步骤。

在DMADV模型的测量步骤中,新产品或流程的CTx特性被确定。然后,选择、设计并同意测量这些CTx特性的指标。为每个选定的指标定义一个数据收集计划。

在DMADV模型的分析步骤中,要考虑设计新产品或过程的替代方法。然后,团队评估每个备选方案的成本和收益、影响和风险,并进行权衡研究。团队就最佳方法达成共识。

在DMADV模型的设计步骤中,高层和详细设计被开发出来,这些设计被实施和优化。还制定了计划来验证设计。

在DMADV模型的验证步骤中,新的流程/产品被验证,以确保它满足利益相关者的要求。这可能包括模拟、试验或测试。然后,新的流程或产品设计被实施到运营中。团队制定一个项目移交给流程所有者的策略。当前的六西格玛项目已经结束,团队为未来的项目确定了下一步的行动。

精益技术

虽然精益原则起源于制造过程的持续改进,但这些精益技术现在已被应用于软件开发。Poppendiecks将七项精益原则改编为软件,具体如下(Poppendieck 2007)。

浪费是指在利益相关者看来不增加价值,或妨碍增加价值的任何东西。组织必须评估软件开发和维护的时间表,并通过消除不增值的浪费来缩短这些时间表。软件开发中浪费的例子包括。

为了消除浪费,可以使用的一种技术是价值流图,它可以追踪一个产品从原材料到使用的过程。通过识别开发和提供产品或服务所需的所有输入、步骤和信息流,绘制出产品或服务的当前价值流。对当前的价值流进行分析,以确定可以消除废物的领域。然后为优化后的流程绘制价值流图,并实施新的流程。
构建质量要求必须在软件中构建质量,而不是试图在以后测试它(这永远不会成功)。这意味着,开发人员要关注。

通过提供反馈机制,知识被创造,学习被放大。例如,使用短的迭代开发一个大的产品,允许多个反馈周期,因为迭代是与客户、用户和其他利益相关者一起审查的。在整个项目和流程实施过程中,持续使用指标和反思/回顾,可以创造更多的反馈机会。应该教会团队使用科学方法来建立假设,进行快速实验,并实施最佳的替代方案。

推迟承诺意味着尽可能晚地做出不可撤销的决定。这有助于解决在存在不确定性的情况下做出这些决定可能带来的困难。当然,"首先,我们应该尽量使大多数的决定是可逆的,所以它们可以被做出,然后很容易被改变(Poppendieck 2007)。在 "最后负责任的时刻 "做出决定,意味着将决定推迟到不做决定会消除一个重要的替代方案,并导致决定被默认的时候。随着进程的推进,收集尽可能多的信息,可以做出更好、更明智的决定。

快速交付意味着尽可能快地将产品送到客户/用户手中。产品越早交付,就能越早得到客户和/或用户的反馈。快速交付也意味着利益相关者在交付前有更少的时间来改变他们的想法,这可以帮助消除因需求不稳定而造成的返工浪费。

组织和领导者必须尊重人,以改善系统。这意味着创建由参与、思考、技术能力强的人组成的团队,这些人有动力去设计自己的工作,而不是仅仅等待别人命令他们去做事情。这需要强大的、具有企业家精神的领导者,为人们提供一个明确的、令人信服的、可实现的目标;让这些人接触到利益相关者;并允许他们做出自己的承诺。领导者为团队提供愿景和资源,并在需要时帮助他们,而不是接管。

优化整体是关于系统思维。胜利不是在每个阶段都领先(优化/测量每项任务)。有可能优化一个单独的过程,但实际上是对整个系统的次优化。所有的决定和改变都要考虑到它们对整个系统的影响,以及它们与组织目标和关键客户/利益相关者要求的一致性。

纠正行动程序

评估与软件缺陷、过程不合格和其他质量体系缺陷有关的纠正行动程序。

纠正措施是指为消除问题(不合格、不符合要求、缺陷或其他问题)的根本原因,以防止其今后再次发生而采取的行动。能力成熟度模型集成(CMMI)模型的通用目标之一是监测和控制每个过程,这包括 "测量过程或过程产生的工作产品的适当属性......",并采取适的"......纠正措施,当要求和目标没有得到满足,当发现问题,或当进展与执行过程的计划有很大差异"(SEI 2010, SEI 2010a, SEI 2010b)。本章之前讨论的计划-执行-检查-行动、六西格玛和精益改进模型都是可以用于纠正行动以及流程改进的模型实例。
一旦问题被报告,纠正行动就开始了。然而,纠正行动不仅仅是采取必要的补救措施来解决这个问题。纠正行动还包括。

如图,纠正措施过程始于对问题的识别。当前产品、过程或系统中的问题可以通过各种来源来识别。例如,它们可以被发现。

纠正措施过程的第二步是为纠正措施指定一个倡导者和/或赞助者,并组建一个纠正措施规划小组。这个小组决定是否有必要采取补救措施,以阻止问题影响组织的产品和服务质量,直到可以实施长期的解决方案。如果是这样,就指派一个补救行动小组来进行必要的纠正。例如,如果正在生产的源代码模块不符合编码标准,补救措施可能是由团队领导根据编码标准审查所有新编写或修改的代码,然后再进行基线化。虽然这不是一个永久的解决方案,事实上可能会导致流程中的瓶颈,但它有助于防止任何更多的发生,直到可以达成长期的解决方案。如果需要采取补救措施,则要适当地实施。对于一个软件产品问题,补救措施通常是纠正直接导致问题的潜在缺陷。补救措施通过消除缺陷对软件过程或产品的质量有直接的影响。典型的补救行动包括

所有纠正措施应与问题的风险和影响相称。因此,可以确定修复问题比不修复问题风险更大,在这种情况下,问题得到解决,不采取任何行动,纠正行动过程就结束了。

纠正行动过程中的第三步是启动长期纠正。如果问题被确定为一个影响最小的孤立事件,那么补救行动可能就是所需的全部。然而,这可能只是消除了问题的症状,并允许问题在未来再次发生。对于一个问题的多次发生,一组问题或影响较大的问题,需要进行更广泛的分析,以实施长期的纠正行动,以减少未来问题再次发生的可能性。如果纠正行动规划小组确定需要长期纠正行动,该小组通过使用统计技术、数据收集指标、分析工具和/或其他手段研究问题并确定其根本原因。对于编码标准的例子,根本原因可能是:。

一旦确定了根本原因,团队就会根据他们的研究,开发出解决所确定的根本原因的替代方法。团队分析了每个替代解决方案的成本和效益、风险和影响,并进行了权衡研究,以就最佳方法达成共识。纠正行动计划涉及对控制系统的改进,以避免问题的潜在复发。如果团队确定根本原因是缺乏培训,不仅必须对现有员工进行培训,而且必须建立控制措施,以确保所有未来的员工(新员工、调职人员、外包人员)也能接受适当的编码标准培训。

纠正行动小组还必须分析问题对过去产品的影响。是否有类似的软件产品可能出现类似的产品问题?组织是否需要采取任何行动来纠正在过程问题存在时创建的产品/服务?例如,假设培训是不遵循编码标准的根本原因,所有由未经培训的编码员编写的模块都需要对照编码标准进行审查,以了解问题的程度。然后需要决定是否纠正这些模块或简单地接受它们,并给予豁免。
这一步的产出是一个或多个纠正行动计划,由纠正行动规划小组制定,这些计划。

在评估纠正措施过程本身的效率时,需要考虑的因素包括:。

那么,纠正措施与其他软件过程的关系如何?每个组织都有正式和/或非正式的软件过程,这些过程被实施来生产软件产品。这些软件产品既包括客户/用户使用的最终产品(例如,可执行软件、用户文档),也包括组织内部使用的临时产品(例如,需求、设计、源代码/目标代码、计划、测试案例)。产品和过程的纠正行动配合如下。
产品修复/纠正。在软件开发过程中,各种V&V过程被用来为这些产品的质量提供信心,并确定这些产品的任何缺陷。一旦产品被发布到运营中,可能会有更多的问题被报告,包括软件运行故障、可用性问题、利益相关者的投诉和其他问题。对这些现场报告的问题进行分析可能会发现更多的软件缺陷。补救性的纠正行动活动采取返工的形式,以修复/纠正软件产品中这些被发现的缺陷。

产品纠正行动。可以对一个或多个已确定的产品缺陷进行根本原因分析。根据从这个分析中得到的教训,一个或多个产品或过程被改进。一个产品改进的例子是重新设计软件结构,以提供更多的解耦,如果问题是由软件的一个部分的变化导致的,对软件的其他部分有不利影响。过程改进的一个例子是改进单元测试过程,因为太多的逻辑和数据初始化类型的缺陷逃到了后面的测试周期或操作中。

过程修复/纠正。在软件开发过程中,各种过程问题也可能被发现,因为这些过程被实施来生产产品。例如,可能会发现额外的、不增值的过程步骤,可能会发现过程无效或低效的地方,或者发现过程文件中的缺陷。系统和过程审计和评估也可能发现过程中的不符合要求。补救措施活动修复/纠正软件过程中的这些个别的、已确定的问题。
过程纠正行动。可以对一个或多个过程缺陷进行根本原因分析。基于从该分析中获得的经验,可以对一个或多个产品或过程实施长期的纠正行动。

缺陷预防

设计和使用缺陷预防流程,如技术评审、软件工具和技术、特殊培训。

与纠正措施不同,纠正措施是为了消除已经发生的问题在未来的重复,而预防措施是为了防止尚未发生的问题。例如,一个组织的供应商Acme遇到了一个问题,因为他们没有被告知组织不断变化的要求。因此,该组织设立了一个供应商联络员,其职责是及时向Acme传达所有未来的需求变化。这是纠正措施,因为问题已经发生。然而,该组织还为其所有其他关键供应商建立了供应商联络员。这是预防措施,因为这些供应商还没有遇到任何问题。促进发展的CMMI在其因果分析和解决过程领域中专门讨论了纠正和预防行动(SEI 2010)。

预防性行动在本质上是主动的。根据ISO 9001和IEEE软件工程标准等标准或能力成熟度模型集成(CMMI)等模型的规定,建立基于行业良好实践的标准化流程,可以通过在整个组织内传播已知的最佳实践来帮助预防缺陷。标准化的过程方法致力于控制和改善组织的结果,包括产品质量,以及过程的效率和效果。创造一种关注员工参与的组织文化,创造利益相关者的价值,以及在组织的各个层面进行持续改进,可以帮助确保人们不仅做他们的工作,而且思考他们如何做他们的工作以及如何做得更好。

诸如风险管理、故障模式效果分析(FMEA)、统计过程控制、数据分析(例如,分析有问题方向的数据趋势)和审计/评估等技术可以用来识别潜在的问题,并在这些问题实际发生之前解决它们。一旦确定了一个潜在的问题,预防行动过程与上面讨论的纠正行动过程非常相似。主要的区别是,行动小组不是识别和分析现有问题的根本原因,而是研究潜在问题的潜在原因。行业标准、流程改进模型、良好实践和行业研究都强调了预防缺陷比检测和纠正缺陷的好处。
由于软件是知识性工作,最有效的预防行动形式之一就是为从业人员提供他们所需的知识和技能,使他们在工作中减少错误。如果人们没有知识和技能来发现自己的错误,这些错误就会导致工作产品的缺陷。培训和在职指导/辅导是传播必要知识和技能的非常有效的技术。这包括以下方面的培训或指导/辅导。

技术评审,包括同行评审和检查,是用来识别缺陷的,但也可以作为一种机制,促进对被评审工作产品的共同理解。比如说。

问题预防技术的其他例子包括。

预防还来自于对组织内部和其他组织的良好做法进行标杆管理和识别,并将其调整和采纳为组织内部的改进做法。这包括制定基准和举行经验教训会议,也称为项目后审查、回顾或反思。这些技术使组织及其团队能够从别人遇到的问题中吸取经验教训,而不必自己去犯错误和解决问题。

评估预防行动实施的成功,或验证其在一段时间内的持续成功,需要确定被改进的过程的CTx特征。衡量这些CTx特征的指标是作为预防行动计划的一部分来选择、设计和商定的。作为预防行动的一部分,可能被评估的CTx特征的例子包括。

上一篇下一篇

猜你喜欢

热点阅读