软件测试的当下分析

news2025/1/25 4:47:10

在没有清晰能见度的情况下驾驶汽车不仅非常危险,也十分鲁莽。这会让我们和我们周边的人随时面临着碰撞、受伤、甚至死亡的风险。如果不能看到前方的道路,我们就无法预测潜在的危险或障碍,从而无法做出明智的决定并采取适当的行动。

同样,在开发软件的过程中不增加可视性,就像盲目驾驶。而软件指标提供了所需的可视性,能够帮助我们识别需要立即关注的潜在质量和安全问题,以便您可以决定何时加快项目进度,何时放缓速度进行调整。

可以提供分析的智能软件能够帮助我们:

  • 理解指标
  • 评估风险
  • 衡量质量
  • 预测结果
  • 与团队有效协作

而所有这些都有助于团队:

  • 遵守截止日期
  • 交付高质量产品
  • 满足客户需求

如何规划现代软件

现代软件项目通常是通过权衡用户现状成本和团队能力来规划的。通常,这些现状被记录在JiraGitHubAzure DevOps等工具中。

产品经理与开发经理会经过协商,以确定在当前的发布周期内实际能完成哪些工作。接下来,开发经理可以根据以下情况进行计划:

  • 新的需求。
  • 需要修复的现有问题
  • 要解决的潜在技术债务

当然,计划可能会发生改变。大多数软件项目都会遇到问题或者障碍,从而改变计划的结果。特别是安全漏洞,可能会是一个非常重大的问题。项目中断是不可避免的,但如果无法衡量安全漏洞的影响,就很难控制项目的最终发展。

快速访问的可视性

可视性对于开发软件是至关重要的。监测工具和分析结果可以为做出安全有效的决策提供非常大的帮助。

在一个易于使用的仪表盘中快速访问软件开发指标,对于了解软件开发的状态和进展非常重要。通过仪表盘等可视化工具的快速访问,使敏捷开发团队能够:

通过对关键指标的单一、综合视图,识别可能需要注意的趋势、模式和问题

通过对软件开发指标的实时更新,及时做出明智的决定

以更直观、更有视觉吸引力的方式理解复杂的数据

跟踪哪些指标很重要?

指标通常在软件测试自动化工具 "接触" 代码的地方收集。通常情况下,收集行为发生在静态分析测试执行期间。收集的详细信息可以交叉引用,例如文件、特定的测试、已知的安全漏洞或软件弱点以及要求。

静态分析结果

当我刚开始做开发时,我对静态分析带来的好处还是持怀疑态度。我这样做只是因为这是公司的规定。而多年来,我开始受益于此。静态分析能够持续地检测出某些原本不会被发现的问题,并表现为代码缺陷。相比于静态分析带来的好处,抑制掉静态分析过程中不可避免的误报真的不算什么大事。

静态分析有助于将安全性代码质量的考虑转移到软件开发生命周期的早期,使开发人员能够在问题变得更加棘手和耗时之前解决它们。

通过将静态分析集成到开发过程中,开发人员可以在安全问题影响到最终用户之前识别和修复。对于某些安全关键行业,静态分析是保持代码库符合编码和行业指南要求的必要条件

静态分析的指标可以为应用程序的质量安全状况提供有价值的见解,帮助团队更好地规划他们的软件开发工作。像缺陷数量严重程度以及它们在代码库中的位置等指标,可以帮助团队确定问题的优先次序并相应地分配资源。您可以跟踪一段时间的进展,并确定需要改进的地方。

静态分析也有助于遵守标准。收集的指标为团队提供他们所需的数据,以证明符合行业或监管标准。—市场经理Ricardo Camacho

测试结果

测试结果是软件开发团队最重要的指标。如果测试失败了,就说明出了问题,需要立即关注。由于测试类型多种多样,团队应该每天收集审查每种类型的指标。

单元测试

单元测试是测试套件的基本组成部分,

主要好处有:

  • 确保代码单元正常工作
  • 一旦新的代码提交,与代码的每个构建一起运行,并确保设备继续工作
  • 快速运行意味着它们可以在编写新代码或变更现有代码时频繁运行
  • 能够自信地重构代码
  • 强制编写可测试的代码
  • 使您能够轻松地测量代码覆盖率,大多数框架都让这个工作变得非常简单

​​API集成测试

集成测试的目的是确定独立开发的软件单元在相互连接时是否正常工作。API测试是集成测试的一种。

在软件开发中,有一句话很流行:尽早集成,经常集成。

集成测试使开发团队受益良多,因此它是必不可少的。集成测试用例比单元测试用例更难编写,但使用一个好的测试工具或框架会大有帮助。在运行集成或API测试时,我们需要花费更多的时间来测量代码覆盖率。

UI测试

UI测试是另一种类型的测试,它通过用户界面驱动应用程序。这些不同种类的测试都是有价值的,如果我们能将UI测试自动化,那么团队就没有必要一次又一次地运行手动测试。

但这些测试是最难编写的,而且维护成本很高。想要运行这些测试开发团队还需要对测试基础设施投入成本,用户可以在某些浏览器或Headless模式下运行它们,当然了,测量代码覆盖率也是需要成本投入的。

幸运的是,Parasoft为每种测试类型都提供了工具和框架,以便用户更容易编写和维护这些测试,并能够在运行时测量代码覆盖率。

手工测试

手工测试要求质量保证(QA)团队从最终用户的角度手动验证软件的功能。团队可以从手工测试的结果深入了解软件的可用性用户体验,突出可能需要改进的地方。

什么是代码覆盖率?

代码覆盖率是一个与用户测试结果相辅相成的指标。有时候,您的代码可能有100%的测试用例通过率,但如果您的代码只有5%被覆盖,那您仍然是在“盲目驾驶”。

在一次旅行之前,相比仅通过10%的汽车检查,若您的汽车能通过100%的汽车检查,您肯定会更安心。同样,代码覆盖率是一个有用的度量指标,它与您的测试套件的深度质量相关联。
​什么是优质覆盖率?这视情况而定。

如果您正在启动一个新的项目,从一开始就以80%或更高的代码覆盖率为目标,这是合理的,这意味着您代码的80%都被测试了。如果您的代码库是新代码和一些遗留代码的混合体,那么可能很难达到80%的代码覆盖率。在这种情况下,您可以跟踪另外两个指标:

1. 代码覆盖率趋势

2. 变更后的代码覆盖率

覆盖率趋势&变更后的代码覆盖率

如果您的整体代码覆盖率在一开始就很低,比如10%,那么试图将覆盖率提升到80%,将会非常困难。但是,确保代码的覆盖率始终保持稳定上升却是个可行的方案。

随着时间推移,您可以通过跟踪趋势来提高代码覆盖率。除此之外,Parasoft建议的做法是测量变更后的代码覆盖率。这是您整体代码覆盖率的一个子集--是从您开始测量代码覆盖率以来发生变更的代码覆盖率。

Parasoft建议将80%作为变更代码覆盖率的目标。通过这种做法,即使一开始的整体代码覆盖率很低,也可以确保整体代码覆盖率不断提高,逐步达到80%的目标。

不同类型的覆盖率测试

对于许多团队来说,测量代码行覆盖率可能就已经足够。但对于某些安全关键行业,测量行覆盖率是远远不够的。安全标准,如ISO 26262,IEC 62304和DO-178C,需要足够的代码覆盖率指标作为相关证据,如语句分支MC/DC和其他覆盖率。而获得这些标准认证的TÜV SÜD工具,如Parasoft C/C++test,能够提供多达九种覆盖率指标,可以覆盖上述提及的各种覆盖率指标。

整合方案

既然现在已经了解哪些指标是需要跟踪的,那您肯定想更轻松快速地了解这些指标。这个时候您就需要用到DTP平台了。Parasoft DTP是一个软件质量控制管理平台,它通过仪表盘和报告工具,让用户能够一目了然地看到所有这些指标,而不必再花费更多的时间去整理这些指标。

开发团队可以在日常工作会议中使用这样的仪表盘,并在冲刺审查期间向相关人员展示项目的质量状态。

质量和合规团队可以使用仪表盘来持续监控他们对某些行业标准的合规性工作。

更好的代码质量带来价值

当我们关键的质量指标有可视性时,我们就不会在”盲目驾驶”。相反,在每一个步骤中,我们都可以做出明智的决定,从而得到更好的结果。

  • 按时保质地交付
  • 更少的技术支持问题
  • 提高客户满意度
  • 提高品牌声誉

如果我们可以“看清远方”,为什么我们还要“盲目驾驶”呢?

想了解您的开发和测试团队如何通过关键指标做出明智的决策吗?赶紧联系我们吧!​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/433715.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

什么是ddos攻击?ddos攻击有哪些危害?

一、什么是 DDoS 攻击? DDoS 是 Distributed Denial of Service 的缩写,翻译成中文就是 “分布式拒绝服务”。DDoS 攻击将处于不同位置的多个计算机联合起来作为攻击平台,对一个和多个目标发动 DDoS 攻击,从而成倍提高攻击威力。…

分布式系统概念和设计-进程通信中的(网络API设计)

分布式系统概念和设计 进程间通信 中间件层 请求-应答协议 编码和外部数据表示 因特网协议的API 进程间通信的特征 一对进程间进行消息传递需要两个消息通信操作的支持(send和receive),用于定义目的地和消息的定义。 为了能够使一个进程能…

煤化工废水除总氮除硬度,矿井水除砷除氟解决方案

随着环保标准的提升,大部分煤矿企业对矿井水要求执行地表三类水标准,氟化物要求小于1mg/l,这类项目存在体量大、氟含量低、水质偏差等特点。 RO工艺制备纯水是煤化工行业生产的一个辅助环节,会产生大量的浓盐水,由于浓…

十五分钟带你学会 Electron

文章目录 什么是 Electron为什么要选择 Electron安装 Electron桌面CSDN实战Electron 基础配置Electron 进程主进程渲染进程主进程与渲染进程的区别主进程与渲染进程的通信 Electron 跨平台问题Electron 部署打包应用程序发布应用程序 Electron 跨端原理总结 什么是 Electron E…

NE555 Motor LED Chaser

文章目录 1.前言2.资料下载 1.前言 这个是从YouTube上搬运来的,如图所示 2.资料下载 所需材料 #1# 10k resistor 1 #2# 10k variable resistor 1 #3# 10uf capacitor 1 #4# 3mm blue led 4 #5# 3mm yellow led 4 #6# 3mm red led 4 #7# 3mm green led 4 #8# 3mm…

【Linux网络】网络基础(TCP/IP协议栈、局域网通信原理、封装与解包、有效载荷分用)

文章目录 1、认识网络1.1 重新看待计算机结构1.2 网络的问题1.3 初识网络协议1.4 TCP/IP五层结构 2、网络与操作系统2.1 网络和OS的关系2.2 局域网(以太网)通信原理和MAC地址2.3 主机的跨网络2.4 有效载荷的分用 1、认识网络 在早年计算机之间是相互独立…

关于自身存在的严重问题总结_4/19

今早二次面试喜马拉雅,面试官给我的评价是: 1.经验不足; 2.实用方面生疏、理解不到位; 原因很正常,我项目自己亲手实操的太少了,一直在背,但是背 不是去读源码 去理解; 项目也大…

基于springboot的班级综合测评管理系统源码数据库论文

目录 1 绪论 1.1课题研究的背景 1.2 课题研究的内容 1.3 系统开发的意义 1.4初步设计方法与实施方案 1.5 本文研究内容 2相关技术介绍 2.1 Java技术 2.2B/S架构 2.3 MySQL介绍 2.4 Springboot框架 3系统需求分析 3.1 可行性分析 3.1.1 经济可行性分…

AI大模型在各行业肆虐,打工人该如何保住自己的饭碗?

开篇我先下个结论,那就是:人类在科技领域的高效率竞争,正在把我们生活的这个商业世界一步步地数字化。而数字化,不单单是AI智能的发展成果,更会成为它所热衷的生长温床,为后续人工智能的一路狂飙奠定了绝佳…

2、picodet转onnx裁剪及python onnxruntime推理

文章目录 1 对picodet xs1.1 动态图转静态图1.2 静态图转onnx1.3 paddle 含后处理 all 版本的推理1.4 onnx 含后处理 all 进行推理1.5 onnx 不含后处量 base模型推理1.5.1 获取onnx模型任一节点的输出1.5.2 base模型的推理 1.6、对picodet-xs模型进行优化1.6.1 picodet-xs base…

项目文档规范及总体布局

软件文档可以分为开发文档和产品文档两大类,交付用户还有用户文档。 1|1开发文档 软件开发计划需求规格说明书软件概要设计说明数据库设计说明软件详细设计说明可执行程序生成说明软件测试计划软件测试说明软件测试报告安装部署手册源代码交付说明上线部署方案上线…

spark读写时序数据库 TDengine 错误总结

最近在用spark读取、写入TDengine 数据库遇到了这样一个问题: JDBCDriver找不到动态链接库(no taos in java.library.path) 我本地都好好的,但是一上服务器写入就会报这个错误,看了很久没有排查出问题,后…

图像分割领域的GPT-4.0,分割一切的AI算法:Segment Anything

一、图像分割领域的GPT-4.0 大家好,我是千与千寻,今天给大家介绍的AI算法可以称得上是图像分割领域的GPT-4.0,号称可以分割一切的AI图像分割算法——Segment Anything。 提到GPT-4.0模型,相信不必我多说,大家都不会陌生…

C++笔记——第十三篇 种一颗 AVL树,长大变成 红黑树,开出了 map和set

目录 一、引入 1. 关联式容器 二、键值对 三、树形结构的关联式容器 3.1 set 3.1.1 set的介绍 3.1.2 set的使用 3.2 map3.2.1 map的介绍 3.2.2 map的使用 3.3 multiset 3.3.1 multiset的介绍 3.4 multimap 3.4.1 multimap的介绍 四、底层结构 4.1 AVL 树 4.1.1 AVL树的概念…

实验进行套路【1】

实验是用来证明猜想正确与否的关键方法,做好实验对提升论文发表效率至关重要。本篇博客结合自身经历总结做实验的方法论,希望能对读者有用。本篇不会从技术实现角度来介绍做实验的方法,而会从指导思想角度入手。如果你是一个科研工作者的话&a…

AIPRM for ChatGPT插件让ChatGPT如虎添翼

ChatGPT大热,家人们都申请到了账号,可是总是在一问一答的基础上来完成基本的应用,而不能很好的使用「咒语」(Prompt),收获的答案不是通过很多次的反复问获取答案,就是获取的不是想要的答案。所以…

最重要的 JVM 参数总结

1.概述 在本篇文章中,你将掌握最常用的 JVM 参数配置。 2.堆内存相关 Java 虚拟机所管理的内存中最大的一块,Java 堆是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实…

Auto-GPT来啦,手把手教你安装更稳定的stable的Auto-GPT,实现两个AutoGPT合作执行任务,AutoGPT代理同时执行任务

进入Auto-GPT项目 https://github.com/Significant-Gravitas/Auto-GPT 应该在git bash还是git cmd命令窗口敲以上命令 应该在git bash窗口中敲git命令。 Git Bash是Windows上的一个搭载了Git的终端仿真器,提供了类似Unix的命令行环境,使得在Windows上…

深入浅出剖析JAVA多线程原理

1. 线程基础知识 1.1 线程与进程 1.1.1 进程 ●程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至 CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理…

nacos登录 提示权限认证失败 没有命名空间的访问权限

前言 环境:centos7.9 nacos-2.2.2 问题描述 最近在部署nacos-2.2.2版本的时候,这是目前2023年4月份最新版本,发现按照start.out日志给出的登录地址,http://192.168.158.128:8848/nacos/index.html登录,发现总是提示…