关于汽车软件测试的几点想法

如果你有过汽车行业的从业经验,你就应该知道,过去汽车行业只做测试,而不做开发。汽车制造商的主要任务(从工程角度看)是将来自数百家供应商的数千个零部件组装在一起。考虑到现代软件的复杂性和客户的“挑剔”,最终产品要达到高质量是非常困难的。

在本文中,我想谈谈作为汽车行业工程师可能会遇到的一些软件测试问题。

招聘软件测试工程师时背景重要吗?

既重要又不重要。

让我们考虑一下你的特定行业背景真的很重要吗?

如果你以前的经验只涉及一个特定领域,并且只包括手动测试程序,那么转到另一个行业将是非常痛苦的。很多做法对你来说都是全新的。就像APP的手动测试与汽车的手动测试完全不同。

如果一个人拥有很强的测试自动化技能和软件测试的基础知识,那么事情就会变得简单得多。测试自动化意味着掌握编程、逻辑、分析、故障追踪等技能。这反过来又带来了无限的可能性和应用经验的领域。此外,一个领域的经验还能为另一个领域带来一些新方法。

给职员的建议:学习测试自动化,即使你还没有发现在日常工作中实施它的方法,它迟早会到来的。

给雇主的建议:如果您想聘用一名测试自动化专家,不要过于关注其背景,而应更多地关注其基本技能。

自动化还是不自动化?

答案是肯定要的。但你必须始终牢记测试自动化的成本。无论你从事哪个行业,测试金字塔都是你必须遵循的黄金法则。

图片

如果可能,较低层次的测试都应完全自动化,而较高层次的测试则必须在自动化之前进行全面评估,因为自动化的成本可能会很高。也许你的工程师可以做得更快、更便宜或更有效。

另一种代表测试金字塔的方法称为“左移”。

图片

其目的是一样的--大部分测试必须尽早进行。

单元测试、单元集成测试、组件测试、系统测试--所有这些层次的测试都必须在汽车制造之前完成,当然,目标是尽可能实现高度自动化。

此外,有些测试必须保持手动,例如在生产中使用特殊工具的程序。因此,工程师必须验证这种特殊工具的使用方式是否与工厂员工在生产中使用的方式相同。

给职员的提示:不要等到有了成熟的软件才开始自动化测试。从交付第一个原型开始,然后随着软件包的增长,增加测试自动化的装备。

给雇主的建议:从一开始就将测试自动化纳入测试策略和思维模式。为测试自动化提供工具和支持,使其成为 "完成定义 "的一部分。

持续集成(CI)

这是测试自动化真正带来真正好处的地方,但没有什么是免费的。

要实现CI,至少需要三个先决条件:思维方式、测试自动化和基础设施。让我们逐一讨论:

  • 思维模式。汽车行业的许多工程师习惯于以传统方式工作,而不了解世界正在以几乎不可预测的方式快速发展。在这种混乱的环境中,没有持续的测试是绝对不可能的,我所说的 "持续 "是指每天或每次更改软件或从供应商处收到新版本时。这种方法必须是必不可少的,并得到组织的支持。在每一个时间点,你都应该能够知道软件集成的状态。这些信息将在项目交付过程中带来难以置信的好处。

  • 测试自动化是实现CI的第一步。因此,在决定全面进入 CI 之前,请确保至少在某种程度上已经实现了测试自动化。持续集成的目的是进行回归测试,提供软件的当前状态,确保向客户交付经过验证的产品。而只有测试自动化才能快速、持续地为您提供此类数据。

  • 基础设施。使CI价格昂贵的并不是昂贵的设备(各种类型的测试台和计算机,它们的功能仅限于你的想象力),而是开发和维护 CI 环境的人员。根据公司的特定需求开发和维护 CI 环境的人员,这才是关键。由于需求量大、可用性低,CI 开发人员(或 DevOps)在就业市场上相当有价值。CI 机器的规模越大,需要的 DevOps 工程师就越多。

但是,一旦你准备就绪并正确使用了所有部件,你就会比尚未准备好使用 CI 的竞争对手获得难以置信的优势。这些是 CI 最明显的优势:

  • 不仅在单元或组件层面,甚至在系统或车辆层面,都能获得有关软件状态的实时信息

  • 低质量(或失败)软件将不会发布到下一级集成中

  • 向测试人员和开发人员提供更快的反馈意味着更快的错误修复

  • 不间断测试。由于测试活动是自动化的,因此即使在非办公时间,测试过程也不会停止。

软件测试的后续步骤(ML、数据分析)

机器学习、数据分析、人工智能……这些流行词即使对于非 IT 人员来说也是众所周知的,但我还没有看到上述技术在软件测试中得到充分的使用。我预见的可能用途是在测试结果分析中使用机器学习/数据分析。基于特定逻辑(数据分析)或将测试结果连续反馈给系统(ML)。

这可能会减少故障追踪的工作量,但所有这些都是猜测,没有经过我这边证实的例子。

给职员的提示:密切关注实际情况,不要错过成为行业第一的机会,但也不要着急。

给雇主的提示:倾听员工的意见,他们可能最了解社区中流传的事情。

测试是职业生涯的死胡同吗?

我在软件测试社区多次看到有人提出这个问题。测试人员并不清楚如何才能实现自我价值。我认为这在很大程度上取决于公司的文化。如果测试人员得不到与其他员工同等的尊重,并将生产中的错误归咎于测试人员,那么这样的公司文化无疑是比较糟糕的。

在其他情况下,测试人员可以自由选择职业道路。他们可以是高度专业化的专业人员或开发人员(嵌入式 SW 开发人员、测试工具开发人员、DevOps 工程师)。测试人员也可以选择管理职业。但项目和产品管理需要一些额外的教育和对公司业务的了解。

给职员的建议:永远不要停止学习。走在你最感兴趣的领域的最前沿,多阅读学习。

给雇主的建议:不要低估软件测试人员,他们的批判性思维、对细节的关注和洞察全局的能力(软件测试人员的共同特点)是非常宝贵的技能,可以很好地运用到其他领域,培养你的团队伙伴。

如果你对上述主题有任何看法,请在评论中告诉我。

感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

 

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!有需要的小伙伴可以点击下方小卡片领取   

 

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

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

相关文章

【JavaWeb程序设计】Web基础-JavaScript

目录 一、函数与事件的使用 1. 编写一个html页面,使用Javascript完成数字的平方计算。 1.1 运行截图 1.2 JS代码 1.3 HTML代码 2. 要求文本框中只能输入字母 2.1 运行截图 2.2 下载jquery-3.4.1并引用 2.3 JS代码 2.4 HTML代码 3. 在文本框分别输入两个…

pytest-rerunfailures:优化测试稳定性的失败重试工具

笔者在执行自动化测试用例时,会发现有时候用例失败并非代码问题,而是由于服务正在发版,导致请求失败,从而降低了自动化用例的稳定性,最后还要花时间定位到底是自身case的原因还是业务逻辑问题,还是其他原因…

SKM Power*Tools 10.0

SKM Power*Tools 10.0是功能强大的电气电力系统分析设计解决方案!综合软件提供强大的功能和领先的技术,在检查、计算、负载分配、流量、瞬态稳定性等多个方面提供领先的支持,可对不同的安全设备、系统进行评估分析和比较,使用 Pow…

《安全行业大模型技术应用态势发展报告(2024)》

人工智能技术快速迭代发展,大模型应用场景不断拓展,随着安全行业对人工智能技术的应用程度日益加深,大模型在网络安全领域的应用潜力和挑战逐渐显现。安全行业大模型技术的应用实践不断涌现,其在威胁检测、风险评估和安全运营等方…

解决Vue3中路由页面跳转出现白屏,刷新页面之后展示正常的问题

遇到这个问题,首先需要检查根组件标签最外层是否包含了个最大的div盒子来包裹内容。如下图所示: 我的项目就是因为没有将两块内容放到一个大盒子里面,所以才会出现白屏的问题。然后我去查了相关的资料,了解到这个问题是Vue组件渲染…

improved-diffusion-main代码理解

目录 一、 TimestepEmbedSequential二、PyTorch之Checkpoint机制三、AttentionBlock四、use_scale_shift_norm 和nanoDiffusion-main相比,improved-diffusion-main代码是相似的,但有几个不是很好理解的地方记录一下。 一、 TimestepEmbedSequential 代码…

中国动物志(140卷)

中国动物志,共140卷,包括昆虫纲、鸟纲、兽纲、无脊椎动物、硬骨鱼纲等多类,是反映我国动物分类区系研究工作成果的系列专著,是研究物种多样性、探讨物种演化和系统发育的重要参考,是动物资源开发利用、有害物种控制、濒…

charles使用教程

安装与配置 下载链接:https://www.charlesproxy.com/download/ 进行移动端抓包: 电脑端配置: 关闭防火墙 Proxy–>勾选 macOS Proxy Proxy–>Proxy Setting–>填入代理端口8888–>勾选Enable transparent http proxying 安装c…

【pycharm】 Virtualenv创建venv报错

一、背景 在启动django项目时,需要创建venv环境,有时候能顺利创建成功,当python版本换成3.8时,会报错 ImportError: DLL load failed while importing _ssl: 找不到指定的模块。 二、原因和解决措施 之所以执行这个报错&#…

.NET下的开源OCR项目:解锁图片文字识别的新篇章

在数字化时代,从图片中高效准确地提取文字信息已成为众多应用场景的迫切需求。OCR(Optical Character Recognition,光学字符识别)技术正是满足这一需求的关键技术。对于.NET开发者而言,幸运的是,存在多个开…

SpringBoot的在线教育平台-计算机毕业设计源码68562

摘要 在数字化时代,随着信息技术的飞速发展,在线教育已成为教育领域的重要趋势。为了满足广大学习者对于灵活、高效学习方式的需求,基于Spring Boot的在线教育平台应运而生。Spring Boot以其快速开发、简便部署以及良好的可扩展性&#xff0c…

聚鼎科技:装饰画现在做晚不晚

在每一处光影交错的角落,墙上那一副副静默无言的装饰画,似乎总在诉说着不同的故事。如今,投身于装饰画的创作与收藏,仿佛是一场关于美和时间的赛跑,那么问题来了——现在开始,晚吗? 伴随着生活品质的提升和…

高薪程序员必修课-JVM的内存区域以及对象创建过程

JVM内存区域 在Java虚拟机(JVM)中,内存区域(Memory Areas)是对内存空间的逻辑划分,用于存储不同类型的数据和执行不同的操作。理解JVM的内存区域有助于优化程序性能、调优内存使用和排查内存相关的问题。下…

14-6 小型语言模型在商业应用中的使用指南

人工智能 (AI) 在商业领域的发展使众多工具和技术成为人们关注的焦点,其中之一就是语言模型。这些大小和复杂程度各异的模型为增强业务运营、客户互动和内容生成开辟了新途径。本指南重点介绍小型语言模型、它们的优势、实际用例以及企业如何有效利用它们。 基础知识…

RT-Thread和freeRTOS启动流程

一. freeRTOS启动流程 二. RT-Thread启动流程 因为RT-Thread中我们定义了补丁函数也叫做钩子函数--$Sub$$main()--作为一个新功能函数,可以将原有函数劫持下来,并在之后的程序运行中加上$Super $ $前缀来重新调用原始函数。 所以启动流程是$Sub$$main(…

谷粒商城笔记-04-项目微服务架构图简介

文章目录 一,网络二,网关1,网关选型2,认证鉴权3,动态路由4,限流5,负载均衡6,熔断降级 三,微服务四,存储层五,服务治理六,日志系统七&a…

【网络安全】Host碰撞漏洞原理+工具+脚本

文章目录 漏洞原理虚拟主机配置Host头部字段Host碰撞漏洞漏洞场景工具漏洞原理 Host 碰撞漏洞,也称为主机名冲突漏洞,是一种网络攻击手段。常见危害有:绕过访问控制,通过公网访问一些未经授权的资源等。 虚拟主机配置 在Web服务器(如Nginx或Apache)上,多个网站可以共…

软件测试面试题总结(超全的)

前面看到了一些面试题,总感觉会用得到,但是看一遍又记不住,所以我把面试题都整合在一起,都是来自各路大佬的分享,为了方便以后自己需要的时候刷一刷,不用再到处找题,今天把自己整理的这些面试题…

力扣热100 滑动窗口

这里写目录标题 3. 无重复字符的最长子串438. 找到字符串中所有字母异位词 3. 无重复字符的最长子串 左右指针left和right里面的字符串一直是没有重复的 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 左右指针leftright0ans0#初始化结果tablecolle…

ctfshow-web入门-文件包含(web82-web86)条件竞争实现session会话文件包含

目录 1、web82 2、web83 3、web84 4、web85 5、web86 1、web82 新增过滤点 . ,查看提示:利用 session 对话进行文件包含,通过条件竞争实现。 条件竞争这个知识点在文件上传、不死马利用与查杀这些里面也会涉及,如果大家不熟悉…