大家好,我是阿萨。昨天讲了软件质量度量维度。今天看看大家的项目质量度量指标都有哪些?
什么是软件质量?
软件质量衡量软件是否满足其功能性和非功能性需求。在敏捷框架中,需求被称为用户故事。
功能需求——软件需要做什么,可能包括面向用户的功能、后端计算、外部集成和数据库操作。
非功能性需求——系统如何工作,可能包括隐私、安全性、灾难恢复和可用性。
仅仅因为用户可以使用该软件执行任务——例如,登录或查看一些必需的信息——并不意味着该软件是高质量的。我们都使用过满足基本功能的软件,但我们仍然不满意。
如果用户能够实现他们期望的功能,那么功能需求就得到了满足。如果用户对满足这些需求的“方式”不满意,那么非功能性需求就有问题。
软件质量度量维度有哪些?
软件质量可以从四个维度来定义:
可靠性——软件发生故障的可能性和稳定性。
性能和效率——应用程序如何消耗资源,以及这与客户满意度、可伸缩性和响应时间的关系。
安全性—应用程序如何有效地保护信息不受软件破坏。安全性可能受到软件质量、代码质量和应用程序中包含的软件组件(尤其是开源软件)中的已知漏洞的影响。
可维护性和代码质量—可以轻松地更改、适应和重用软件代码。可以通过使用良好的编码实践和遵循适当的软件体系结构模式来确保软件是可维护的。
什么是软件质量度量?
软件质量度量与项目和过程参数对最终产品质量的影响有关。项目中发生了什么,使用了什么过程,它的度量标准是什么,所有这些对最终用户体验到的质量有什么贡献?
我们确定了五种类型的质量度量:在敏捷开发环境中使用的度量,用于度量生产软件所需的工作量以及在生产环境中如何运行的生产度量;安全响应度量;而且,最重要的是,直接衡量客户满意度。
1. 敏捷度量
敏捷过程度量特别关注敏捷团队如何计划和得出结论。这些度量提供了对软件开发过程标准的高层次理解。
前期准备-衡量团队将客户请求转化为工作软件所需的时间。当团队最小化交付时间时,开发过程将变得更加有效。
周期时间—度量修改软件和实际部署特定更改到生产所需的时间。
敏捷速度——衡量团队在冲刺或迭代中完成的软件单元数量。速度度量的目的是确定完成特定数量的故事点所需的时间,并规划出未来的项目。
缺陷解决速率—通过跟踪特定时间段内出现的生产问题以及解决问题的速度来衡量。
代码质量——有一些代码质量的定量度量,但它们并不被认为是准确的。衡量代码质量的最好方法是对代码进行定性的同行评审。代码质量很难衡量,但已被证明对软件质量有巨大的影响。
2. 生产指标
这些类型的度量标准可以度量完成了多少工作,并确定软件开发团队的效率。
活动天数——度量软件开发人员向软件开发项目添加代码所需的时间,不包括管理和计划时间。
分配范围——程序员在一年内能够支持的代码量。
效率——计算软件开发人员创建的净新代码量,考虑到用户流失率。
代码流失——指的是在给定时间内添加、更改或删除的代码行数。代码流失率传统上被认为是消极的,但是在像测试驱动开发(TDD)这样的新方法中,高流失率可能是积极的。
平均故障间隔时间(MTBF)和平均恢复/修复时间(MTTR)——衡量软件在生产环境中的功能。
应用程序崩溃率(ACR)——计算方法是应用程序失败的次数(F)除以应用程序使用的次数(U)。ACR = F/U
3.安全响应指标
安全度量也是软件质量的度量。随着时间的推移监控这些指标,以了解安全性、操作和开发团队如何响应每个受支持的应用程序的安全问题。具有较弱安全度量的应用程序可能存在潜在的质量问题。
端点事件—在特定时间段内有多少设备受到病毒或其他安全威胁的感染。
平均修复时间(MTTR)—从识别安全事件到修复之间的时间。
4. 客户满意度
顾客调查被用来确定产品的整体质量。衡量客户满意度的方法有很多;一个被广泛使用的指标是净推荐分数(NPS)。它使用的数字范围从-100(表示没有客户会把你推荐给其他人)到+100(所有客户都可能把你推荐给其他人)。
了解了别人度量软件质量的指标后;看看你们的项目软件度量指标都列举到里面了吗?