美文网首页
软件质量目标制定4步法及指导作用

软件质量目标制定4步法及指导作用

作者: 质量与创新 | 来源:发表于2021-08-01 12:54 被阅读0次

    之前给大家介绍过如何制定质量目标,但是很多同学说,哪些理论和方法适用于硬件,但最近发现有很多质量同学都从原有硬件或运营质量转型到软件质量,于是就问宋老师很多关于如何制定软件质量目标的问题,在与同学交流中发现大家还是存在一些误区或者理解不到位的地方,有必要再专门谈谈软件质量目标的问题。

    首先我们回顾一下关于质量的定义:

    一组固有特性满足要求的程度

    因此,我们好理解,软件质量,就是软件的一组固有特性满足要求的程度。

    国际上对软件产品质量模型有相关的标准予以明确,最早是ISO/IEC9126,提出软件产品质量六特性:功能性、可靠性、易用性、效率、可维护和可移植性,每个特性下面又有子特性。在后面的ISO/IEC 25010标准又进行了更新如下:

    从6大特性,变成8大特性,其中安全性之前是归在功能性中的,目前已经调整为主要特性了。

    在软件产品发布前,我们通常会检查是否满足产品质量目标要求,如果达成就可以发布,如果没有就走异常决策流程。

    但是,我看了很多同学给我的质量目标或标准,基本都是:缺陷修复率、遗留缺陷、获取需求功能达成率、测试覆盖率,之类的指标。

    其实这些指标中,还是容易被绕过的。有一次,在与一家公司的质量人员交流时,他们觉得很诧异,为什么会被绕过呢。我举了个例子,比如,经常用的关键评价指标,代码覆盖度,还有 遗留缺陷数。比如,我们定义 代码测试覆盖度>90%,大家可能会选择容易测试的地方进行测试,特别做单元测试时,本来最好是路径或逻辑覆盖,但为容易达到目标,就直接采用语句覆盖的方式。轻松达到覆盖率100%,很多质量人员,如果不懂得软件开发或者测试的技术,很容易就被糊弄过去,还会疑惑,测试覆盖率都这么高了,为啥质量还这么差呢?

    对于遗留缺陷数指标,也是同样道理。如果,我们只做了系统黑盒测试,遗留3个缺陷,看起来很少对吧。但如果,你要求除了 系统黑盒,还要求集成灰盒、代码白盒测试,同样遗留3个缺陷,但他们的质量水平是完全不同的。

    显然,如果只看定量的遗留缺陷指标,根本没法有效判定产品的质量状况。

    那么,我们该如何建立质量目标体系呢?这里给大家介绍一个简单可操作的4步法。

    1.

    识别质量特性

    产品在设计时,通常会研究客户需求,针对客户需求,形成产品特性,这些特性就是我们质量定义中的所谓“固有特性”。因此,我们时刻牢记,质量目标来源于客户,是满足客户需求为目的的。

    但有同学问,那我如何知道应该有什么质量特性呢?

    很简单,还记得上面宋老师给大家的软件产品质量模型么?把所有这些特性都列出来,然后让产品经理或者设计产品的同事,选出来即可。模型里面的特性,基本涵盖了软件产品质量的所有特性。

    2.

    特性进行量化

    既然是质量目标,除了识别特性外,还需要针对各项软件特性时必须给出定量的指标,下面举几个例子:

    ·功能数:指明软件必要的功能及数量和软件想要的功能及数量。该指标可以用来衡量软件的功能性这一特性。

    ·正常运行率:指明软件在用户环境下,正常运行时间占全部运行时间的百分比。该指标可以用来衡量软件的可靠性这一特性。

    ·培训时间:指明在用户的技术水平下,达到正常使用状态。所需要的学习时间。该指标可以用来衡量软件的易用性这一特性。

    ·响应时问:指明每个用户命令的响应时间。该指标可以用来衡量软件的效率这一特性。

    ·代码注释行率:指明有注释行的代码行数占所有代码行数的比率。该指标可以用来衡量软件的可维护性这一特性。还有常用的圈复杂度,也可以来衡量可维护性。

    ·运行环境:指明软件所要使用的软硬件环境。该指标可以用来衡量软件的可移植性。

    ·测试反馈周期:指明软件测试的效率和周期,可以反应软件的可测试性

    还有其他特性也都可以选择一个指标来衡量具体特性。

    但是,要注意,各特性之间是有冲突的,比如,效率与安全性,另外从经济性考虑,也不可能把每个特性都做到最好,因此,需要做些成本平衡,还有特性冲突的平衡。

    3.

    建立全面产品质量评估体系

    宋老师认为,全面评估,应该涵盖:定量+定性、过程+结果。

    宋老师常用的评估方法:

    1、覆盖度:包括 广度覆盖,比如,需求测试覆盖率。还包括,路径覆盖。从需求与实现两个维度来评估,是定量的指标;

    2、开发过程:包括, 测试方法,还有软件质量保证的工程方法,比如,单元测试,软件可增长测试、代码评审,设计模式,TDD,在过程中要明确需要采用的方法,这属于定性类类的;

    3、缺陷:包括,遗留缺陷数、缺陷密度、缺陷修复曲线、缺陷生存期、缺陷的ODC分析。

    4.

    开发过程适配

    上述是比较典型的V模型,我们目前很多的软件开发流程就是基于此流程构建的。通过流程将整个开发过程进行了分段的管理。因此,原有过程级别的质量目标就出现问题了。比如,缺陷分析这里,集成测试,系统测试,验收测试,显然也应该是不同的质量目标,因此,在之前基础上,把质量目标再按开发过程阶段进行分阶段的过程质量目标。

    形成如下图所示类似的质量目标分解表:

    OK,经过上述4个步骤,基本一个产品开发项目的质量目标就基本确定下来了。

    产品质量目标确定下来后,如何保证产品开发质量目标的达成,就需要进行制定对应的QC与QA计划了。

    对软件而言其中QC计划,实际是在质量目标指导下,对软件执行的测试。

    但是大家要认识到,测试本身并不能证明软件没缺陷,而且软件测试的全覆盖,会消耗及其巨大的成本,因此,通常是基于风险的测试,符合 good-engouth 原则。

    在选择测试内容时,通常根据:质量等级*风险 为权重,来对测试用例排序,再依据资源约束来确定测试方案。

    质量等级越高,质量指标设定就会越高;

    越是新的特性,或者有变化的特性,风险相对就越高;

    QC计划要很好的执行下去,也需要识别风险,同时,在质量评估模型中确定的质量预防活动,风险应对措施与预防措施整合在一起,就形成我们的质量保证计划,通过审计确保这些措施的执行。

    关于质量目标到测试策略、测试方案、测试用例,到质量保证计划,是一个系统化分解的过程,这篇文章就不细谈了。

    如果在实际应用中有什么疑问,加我下面二维码,继续探讨。

    -End-


    如果觉得文章还行,别忘记点在看

    相关文章

      网友评论

          本文标题:软件质量目标制定4步法及指导作用

          本文链接:https://www.haomeiwen.com/subject/tvnlvltx.html