鉴源论坛 · 观模丨软件单元测试真的有必要吗?(下)

作者 | 包丹珠 上海控安产品总监

版块 | 鉴源论坛 · 观模

社群 | 添加微信号“TICPShanghai”加入“上海控安51fusa安全社区”

“软件单元测试真的有必要吗?(上)”一文中,着重探讨了单元测试的重要性及其正面临的困境,并分享了功能安全标准中罗列的单元测试方法。承接上文,本篇将深入讨论单元测试过程中,如何在保质保量完成测试任务的同时,缩减时间成本、提高测试效率,并分享目前行业内的实践经验以及相关自动化测试工具。

04

单元测试可以做,但项目周期催得紧,怎么办?

图片

然而,在真正实施软件单元测试时,还需要考虑一个成本问题。

软件行业竞争相对比较激烈,在交付为王的时代,软件发布的市场Deadline是大家要面临的一个非生即死的残酷问题。如何能够保质又保量,即缩减因为引入单元测试而带来的时间成本呢?

工欲善其事,必先利其器。缩减成本的第一个方法是利用自动化测试工具。目前市面上有可供选择的自动化单元测试工具,包括开源的和商用的。

开源工具通常是提供针对特定语言的测试框架,单元测试人员使用框架进行测试代码的编写。用的较多的开源框架有GoogleTest、Junit等。开源工具由于是基于已有测试框架通过写代码的方式进行测试,因此对一般测试人员的编程能力要求相对较高。

图片

商用工具提供可视化的自动化测试工具,不需要大规模的测试编程,将测试人员的精力专注在测试用例的设计上,而非测试框架的执行上,因此对测试人员会更友好。商用工具市场占有率较高的是国外的工具。然而自从2019年以来,这些商业工具也陆续出现了国内禁售、服务停止续期的禁令。好在国内一些知名高校,在前期有相关的技术积累,目前也出现了为数不多的国产自动化单元测试工具,比如来源于华东师范大学软件学院可信实验室的SmartRocket等,这些工具在自动化执行的基础上,比国外工具更为领先的是提供了自动设计高覆盖率测试用例的核心功能,可以更大意义上降低测试人员的时间投入等。

图片

在使用自动化测试工具的基础之上,采用CI(Continuous Integration)持续集成方式,将单元测试很好地融合进入自动化持续集成的过程中,也可以进一步缩减时间成本,并且提升软件上线效率。通过借助Jenkins等持续集成工具,在模块代码提交时,自动触发代码自动化测试岗哨,当测试通过时代码提交成功,否则提交失败。自动化测试岗哨除了加入单元测试外,还可以加入像代码静态扫描等自动化Pipeline。软件持续集成在行业内有很多的成功案例可以借鉴,是软件质量保证和软件开发效率高的一种直观表现。

图片

05

结语:欲速则不达,耐心做单元测试是程序员的美德。

写到这里,想必大家对软件单元测试的重要意义,以及如何进行单元测试实践有了一定了解。如果您是软件行业的从业者的话,希望本文能够给您带来一些新的思考。总结一句话,欲速则不达,对于优秀的软件开发工程师来说,耐心做好单元测试是一项值得养成的基本美德。元宇宙未来的软件基础,靠你们铸就。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【LeetCode:2736. 最大和查询 | 贪心 + 二分 + 单调栈】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

一文带你了解ADC测试参数有哪些?

模数转换器(ADC)是数字电子系统中重要组成部分,用于捕获外部世界的模拟信号,如声音、图像、温度、压力等,并将它们转化为数字信号0\1, 以供计算机进行处理分析。ADC芯片在出厂交付之前,需要对产品的性能做各…

超详细的Monkey测试介绍

前言 Monkey 是Android SDK提供的一个命令行工具, 可以简单,方便地运行在任何版本的Android模拟器和实体设备上。 Monkey会发送伪随机的用户事件流,适合对app做压力测试 。 环境搭建 安装Android SDK 并配置环境变量 什么是Monkey 顾名…

PyTorch - 高效快速配置 Conda + PyTorch 环境 (解决 segment fault )

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://spike.blog.csdn.net/article/details/134463035 在配置算法项目时,因网络下载速度的原因,导致默认的 conda 与 pytorch 包安装缓慢,需要配置新的 co…

医美三季报内卷,华熙生物、爱美客、昊海生科混战双11

双十一落幕,据天猫大美妆数据统计,被称为“医美三剑客”的华熙生物(688363.SH)、爱美客(300896.SZ)、昊海生科(688366.SH)的医美产品均未进入天猫双11美容护肤类目TOP10榜单。 与此同时,其业绩承压困局也写在最新的三季报里。 「…

【教学类-36】八等分格子-A4竖版-4条(制作皇冠、戒指)

背景需求: 最近在大四班孩子中间普及铅画纸制作“方盒”的活动,目前进展到使用三条8等分的长条纸,制作一个“坚硬的、不漏底”的方盒。 实验后,我想试试如果缩小纸条长宽,是不是可以做“迷你”纸盒。 目的&#xff…

工业镜头中的远心镜头与普通镜头的光路

普通镜头: 主光线与镜头光轴有角度,工件上下移动时,像的大小有变化。 FOV>镜头前端直径。 物方远心镜头: 物方主光线平行于光轴,物距发生改变时,像高不会发生改变,测得的物体尺寸大…

使用Docker部署Python Flask应用的完整教程

一、引言 Docker是一种开源的容器化平台,可以将应用程序及其依赖项打包成一个独立的容器,实现快速部署和跨平台运行。本文将详细介绍如何使用Docker来部署Python Flask应用程序,帮助开发者更高效地构建和部署应用。 二、准备工作 在开始之前…

Unexpected WSL error错误处理备忘

运行docker时提示下图错误,看了下WSL好像没啥问题,看网上有人说需要重置下网络,命令是netsh winsock reset,重置完后果然好了

前端uniapp列表下拉到底部加载下一页列表【下拉加载页面/带源码/实战】

目录 一. 图片1.2. 二.list.vue三.uni-load-more.vue最后 一. 图片 1. 2. 二.list.vue <template><view><!--列表--><scroll-view scroll-y"true" class"scroll-Y" :style"height: scrollviewHigh px;" lower-threshol…

js 将多张图片合并成一张图片

其实就是将两张图片地址根据canvas组合在一起&#xff0c;我放到项目中因为会存在跨域问题&#xff0c;所以将图片转化成base64&#xff0c;后面还会带随机值&#xff0c;这样可避免图片跨域错误&#xff0c;正常情况下可以直接将图片放到canvas里面。 灵感来源&#xff1a;js…

SpringBoot-配置文件properties/yml分析+tomcat最大连接数及最大并发数

SpringBoot配置文件 yaml 中的数据是有序的&#xff0c;properties 中的数据是无序的&#xff0c;在一些需要路径匹配的配置中&#xff0c;顺序就显得尤为重要&#xff08;例如在 Spring Cloud Zuul 中的配置&#xff09;&#xff0c;此时一般采用 yaml。 Properties ①、位…

@各大高校|亚洲诚信TrustAsia接入CARSI,四大福利活动重磅来袭!

亚洲诚信TrustAsia EduPKI在CARSI平台正式上线&#xff0c;为广大CARSI成员校师生提供SSL证书和专业的技术服务支持&#xff0c;守卫高校安全&#xff01; 伴随着人工智能、大数据、物联网等新一代数字化技术的迅猛发展&#xff0c;教育信息化2.0和智慧校园建设得到快速推进。但…

日志存档及解析

网络中的每个设备都会生成大量日志数据&#xff0c;日志数据包含有关网络中发生的所有活动的关键信息&#xff0c;存储所有这些数据并对其进行管理对组织来说是一项挑战&#xff0c;因此&#xff0c;这些日志文件被压缩并存储在效率较低的存储介质中&#xff0c;无法轻松检索。…

将Agent技术的灵活性引入RPA,清华等发布自动化智能体ProAgent

近日&#xff0c;来自清华大学的研究人员联合面壁智能、中国人民大学、MIT、CMU 等机构共同发布了新一代流程自动化范式 “智能体流程自动化” Agentic Process Automation&#xff08;APA&#xff09;&#xff0c;结合大模型智能体帮助人类进行工作流构建&#xff0c;并让智能…

ZBrush 2024(三维数字雕刻软件)

ZBrush是一款Mac数字雕刻软件&#xff0c;它具有以下功能&#xff1a; 雕刻工具&#xff1a;ZBrush的雕刻工具非常强大&#xff0c;可以让用户在3D模型上进行雕刻&#xff0c;就像使用传统雕塑工具一样。高精度模型创建&#xff1a;ZBrush可以创建高精度的3D模型&#xff0c;适…

美创科技与南京大数据安全技术有限公司达成战略合作

近日&#xff0c;美创科技与南京大数据安全技术有限公司正式签署战略合作协议&#xff0c;优势力量共享、共拓共创共赢。 美创科技CEO柳遵梁、副总裁罗亮亮、副总裁王利强&#xff0c;南京大数据安全技术有限公司总经理潘杰、市场总监刘莉莎、销售总监王皓月、技术总监薛松等出…

基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现模数转换应用

基于STC12C5A60S2系列1T 8051单片的IIC总线器件数模芯片PCF8591实现模数转换应用 STC12C5A60S2系列1T 8051单片机管脚图STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式及配置STC12C5A60S2系列1T 8051单片机I/O口各种不同工作模式介绍IIC总线器件模数芯片PCF8591介绍通过I…

【Linux】Ubuntu16.04下安装python高版本--源码安装

Ubuntu16.04下完美安装python高版本及对应版本的pip 方法一:直接用命令安装python3.6&#xff08;但我没安装成功&#xff09; 好像是因为Ubuntu16.04的软件仓库&#xff08;源&#xff09;中python的最高版本就是python3.5&#xff0c;所以无法直接用apt来安装 #方法一 sudo…

在 el-table 中嵌入 el-checkbox el-input el-upload 多组件,实现复杂业务场景

由于业务场景的复杂性&#xff0c;需实现&#xff1a;在 el-table 表格中 嵌入 el-checkbox 多选框 及 el-input 输入框 及 el-upload 上传组件 &#xff0c;先附上实现效果图。 从图片可以看出其实就是一个规格可以带有多个属性的规格表&#xff0c;实现此效果需涉及到的知识点…