0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Squore对软件项目实现多维度的全面质量评估

Vector维克多 来源:Vector维克多 作者:Vector维克多 2021-11-16 17:59 次阅读

随着软件工程的规模逐步扩大、复杂程度逐渐提升,以及敏捷开发对效率和协作有了更高的要求,项目干系人如何及时全面发现软件开发过程中的问题,又如何快速高效地处理和反馈呢?

这些疑问对项目管理人员、质量人员以及开发、测试人员都带来了更大的挑战。基于此,对于一款看板工具而言,能否从更加全面的维度对软件质量进行实时客观衡量和趋势分析,并给出相关干系人明确的质量评级、清晰的问题指示和相应的建议方案,将使得管理和决策形成正反馈的闭环、达到流程持续优化的落地。

质量如何把控?

—工欲善其事,必先利其器

Squore是高效的看板管理工具,更是软件分析平台,能够支持众多第三方工具数据的导入并依据自身高效的数据挖掘能力对数据进行分类汇总,形成看板视图。Squore依托其强大的KPI评析引擎,将导入的各类数据(如源代码、需求、票据、动态测试覆盖率信息、静态代码扫描结果等)从克隆代码、代码复杂程度、标准合规性、代码覆盖率、问题密度、测试效率等多个维度中选取关联项进行衡量,最终确定当前软件工程的质量评级(见图2),从而使项目团队可以时刻掌握软件质量状态。

Squore关键绩效指标(KPI)

—海纳百川,有容乃大

1. 可自定义的测试策略

测试策略旨在帮助开发团队提高其软件项目的可靠性信心。Squore充分考虑到随着代码的体量和复杂度的增长,执行详尽的测试活动越来越困难。使用测试策略(见图3),可以降低代码的被测范围,并结合项目实际需求定义代码覆盖率期望。例如,通过圈复杂度 (VG)、嵌套级别 (LEVL)、非循环路径数 (NPAT)、词汇频率 (VOCF)、代码稳定性指数(SI)的阈值来确定被测函数,低于阈值的函数会被排除监测范围并且不影响KPI评级;通过自定义测试策略,可以使项目团队关注重点功能函数。

2. 技术债务评估

技术负债(Technical debt)于1992年由沃德·坎宁安首次提出,是指因为加速当前软件开发效率而忽视可维护性等质量特性,从而造成未来的额外开发负担。Squore依据ISO质量模型从可维护性、可靠性、效率、可测试性、易变性对软件进行度量并依据内置算法,对项目中发现的所有违约的修复成本以时间单位(人日)进行评估(见图4),同时依据迭代版本形成趋势分析图。项目干系人可通过技术债务的发展趋势进行指导干预,避免未来代码复用时出现高额的重构成本。

3. 代码规则合规性评估

规则合规性,表明项目开发团队遵循编码指南的程度。用户可以选用第三方静态代码分析工具(如德国的Axivion,或美国的QAC等),将测试结果导入Squore进行统计和报告。Squore考虑用户实际需求,为用户提供“放宽功能”:在Findings列表(见图5),选择相关违规具体问题进行备注说明、放宽该违规行为,同时该放宽条目将不再影响规则合规性KPI。

4. 代码复杂度评估

复杂度评估,旨在根据代码复杂性指标评估项目的风险。Squore依托HIS指标中如下标准(见图6),进行函数的复杂度判定。如果这些指标中至少有一半不符合预期阈值,则类或函数将被Squore判定是复杂的;同时,Squore也为用户开放HIS指标的阈值配置接口,便于用户根据项目实际情况进行复杂度判读。

在项目层面,Squore通过热点图的方式来区分函数的复杂程度便于用户的高效识别(见图7)。自上而下贯穿软件项目管理至函数代码实现层面,Squore提供该函数复杂程度的检测蛛网图以及函数控制流图,便于发现关键复杂点。

结合ISO 25010质量分解图,Squore还可以提高项目团队对自下而上、从单个函数至整体工程项目质量的把握程度(见图8)。

5. 覆盖率评估

覆盖率评估可以有效监督当前代码的覆盖测试情况。用户可以通过导入动态代码测试工具如VectorCAST覆盖率测试结果获得覆盖率统计视图(见图9),而Squore则会依据覆盖率完成的百分比来进行该项KPI评级。Squore可以给出项目层级的覆盖率统计结果,绿色为实现预期值的有效覆盖测试的函数占比,红色为覆盖率还未达到预期值的函数占比,灰色意味着该函数尚未开启任何类型的覆盖率测试。与此同时,Squore在函数层面根据具体覆盖率类型展示覆盖率测试情况,可有助于用户快速发现不足方面采取相应措施。ISO 26262对不同安全等级提出了不同类型覆盖率的测试要求,因此Squore也提供用户配置接口,可以自定义选择覆盖类型(如Statement、Branch或MCDC覆盖)并设置期望值。

6. 克隆代码评估

该指标旨在关注应该返工的代码,主要涉及架构设计和实现,其计算指标突出显示重复块和类似算法。

Squore的克隆代码评估汇总了有关文本复制和算法克隆的信息(基于控制流分析), 会区分克隆是来自程序代码组件内部还是外部(类似于其他组件)。内部克隆会关注组件本身是否设计良好,外部克隆关注组件之间的相似冗余性。

7. 函数违规密度评估

违规密度旨在突出代码中最违反规则的函数,密度由Squore内置严重性加权算法处理检测到的违规问题而获得。通过该指标可以优先发现具有关键问题的函数,或者有很多次要/主要问题的函数;而对于这些问题函数,项目团队应该重点关注,进行及时补救以提高代码质量。

Squore基于函数技术债务和它们的违规密度(按严重程度加权的问题密度)通过图形化的视图,突出显示所有函数的分布(见图11)。顶部区域的模块具有更高的技术债务,这意味着它们更难以维护;更大的模块意味着函数具有较多的问题,同时问题的严重程度通过颜色进行区分,气泡颜色的深浅显示组件内部问题的严重程度。

总 结

本文对Squore进行质量管理的部分关键绩效指标(KPI引擎)进行了介绍。如前文所述,Squore不仅可以通过强大的API接口与数据挖掘能力实现与众多主流测试、项目管理和需求工具的无缝衔接,呈现多样且直观的视图看板和报告,更能依托自带的KPI评析引擎对软件项目实现多维度的全面质量评估,确保软件在开发过程中能够满足相关质量标准和行业规范,实现产品最终的成功交付。

原文标题:基于KPI评析引擎的Squore软件质量管理

文章出处:【微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。
责任编辑:pj

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 软件
    +关注

    关注

    67

    文章

    4322

    浏览量

    85412
  • 函数
    +关注

    关注

    3

    文章

    3846

    浏览量

    61228
  • 代码
    +关注

    关注

    30

    文章

    4536

    浏览量

    66498

原文标题:基于KPI评析引擎的Squore软件质量管理

文章出处:【微信号:VectorChina,微信公众号:Vector维克多】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    采用端到端的逆设计方法实现多维度多通道超构表面全息设计

    近日,北京理工大学光电学院黄玲玲教授团队采用端到端的逆设计方法实现多维度多通道超构表面全息设计。
    的头像 发表于 03-11 11:35 290次阅读
    采用端到端的逆设计方法<b class='flag-5'>实现</b><b class='flag-5'>多维度</b>多通道超构表面全息设计

    知语云全景监测技术:现代安全防护的全面解决方案

    可以帮助实现政务数据的安全保护,防止敏感信息泄露;对于个人用户而言,知语云全景监测技术可以提供更加全面的网络安全保护,防范网络钓鱼、恶意软件等安全威胁。 总之,知语云全景监测技术作为现代安全
    发表于 02-23 16:40

    芯驰科技通过ASPICE CL2评估,提升软件开发流程达到国际水准

    ASPICE(汽车软件过程改进及能力评定)作为汽车产业评定软件团队研发能力的基准框架,被誉为“软件解决方案前装生产市场通行证”。通过本次评估,证明芯驰科技不仅能高效完成研发任务,更有能
    的头像 发表于 02-19 16:32 391次阅读

    软件测试活动有哪些?

    第三方软件测试是一种软件测试活动,旨在确保软件质量、功能、性能和安全性等方面符合预期要求。 一、以下是一些常见的第三方软件测试类型: 1、
    发表于 01-08 11:11

    1400亿巨资投入!2023传感大项目全景图来了

    2023年接近尾声,感知芯视界编辑部正在策划多维度观察年度产业发展专题。本期为大家带来2023年传感大项目全景图。
    的头像 发表于 12-26 10:16 416次阅读

    c语言中多维数组可以嵌套定义

    。一个多维数组可以看作是一个矩阵,其中每个元素都有一个唯一的索引来定位它。多维数组的维数决定了它的形状,即它有多少行和列,以及可能的更高维度。 以二维数组为例,它是最基本的多维数组类型
    的头像 发表于 11-24 10:18 365次阅读

    按键荷重测试仪的多维度分析

    按键荷重测试仪的多维度分析
    的头像 发表于 10-18 09:16 576次阅读
    按键荷重测试仪的<b class='flag-5'>多维度</b>分析

    千人千面的数据分析有没可能?奥威BI数据可视化工具告诉你

    。 ①可通过多维度动态分析+智能钻取,帮助用户突破分析模型限制,实现多维度自助分析。 ②无边界智能钻取分析,双击即可钻取所有相关的数据分析报表供浏览者选择打开,该功能可帮助商品/运营部门以数据驱动运营
    发表于 08-29 14:45

    紧跟老板思维,这款数据可视化工具神了

    动态分析功能实现自助分析。 2、跳出预设维度限制。使得报表浏览者能够根据自己的实际需求去灵活自助分析数据,收集更全面的数据信息。 3、操作简单。这种可以随时在任意终端切换分析维度自助分
    发表于 08-22 13:46

    如何评估音频软件以提高音质

    测试是软件开发不可或缺的一部分。软件工程师了解在开发过程中测试代码的重要性,并在代码成为整个产品的一部分时测试结果。但音频的独特性意味着它给工程师带来了特殊的测试挑战。 代码行可以并排比较,并评估
    发表于 08-01 20:33

    航天产品跨地域多维度一体化控制技术改进研究与应用

    随着企业业务的快速增长,数字化转型步伐加快, 基于MBD 的三维数字化研制模式的逐步推广,当前的系统平台及网络现状已经不能满足型号产品多维度设计制造一体化的控制需求,尤其是生产进度数据及制造过程质量数据一直以来未实现在研究所与制
    的头像 发表于 07-12 15:49 410次阅读
    航天产品跨地域<b class='flag-5'>多维度</b>一体化控制技术改进研究与应用

    点云标注的质量评估与优化

    点云标注的质量对于自动驾驶汽车的感知和决策能力有着重要影响。因此,对于点云标注的质量评估和优化是非常重要的。 首先,质量评估包括点云数据的清
    的头像 发表于 07-10 15:47 452次阅读

    Synergy 软件质量手册

    Synergy 软件质量手册
    发表于 07-06 18:39 0次下载
    Synergy <b class='flag-5'>软件</b><b class='flag-5'>质量</b>手册

    确保软件项目成功——验收测试指南

    政性资金采购政府集中采购目录以内或者限额标准以上的货物、工程和服务项目的履约验收管理,适用本办法 文件中规定:重大民生、金额较大或者技术复杂的政府采购项目,应当邀请国家认可的质量检测机构、评估
    的头像 发表于 04-24 19:49 311次阅读
    确保<b class='flag-5'>软件</b><b class='flag-5'>项目</b>成功——验收测试指南

    全面详解锂离子电池寿命预测模型

    锂离子电池寿命预估是个复杂的系统,文中通过多尺度、多维度(粒子维度、极片维度、电池维度)考虑预测电池寿命。
    发表于 04-07 16:18 1098次阅读