成为一个优秀的测试工程师需要具备哪些知识和经验?

本文阐述了成为优秀测试工程师所需的三项关键能力:从事项目质量保证工作,推动持续集成及自动化测试技术的应用,以及开发测试相关工具。此外还详细介绍了如何在项目的各个阶段实施这些策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

优秀的测试人员可以做的事情可以包括如下3点:
  1. 由单纯的测试变成项目质量保证工作
  2. 持续集成探索和推动和自动化测试技术研究
  3. 测试相关工具的开发

1、我们先来讲第一点,由单纯的测试变成项目质量保证工作

测试,从狭义的角度来讲,包括如下这些环节:
测试计划和测试用例编写-测试执行-质量报告书写
测试人员一般会在开发阶段就进行测试计划和测试用例的编写和准备工作;在测试阶段,我们一般先会做功能测试,等项目功能基本稳定,bug较少了,就开始做兼容性测试、性能测试、安全性测试。兼容性测试保证了产品在多浏览器、APP在产品在不同机型下的兼容性;性能测试保证了产品在海量用户大流量下的服务能力;安全测试能发现产品可能会被攻击的各个隐患。做完了这些测试以后,人员发布质量报告,产品上线。

不过,优秀的测试人员需要向上游和下游拓展测试的领域,把自己放在“质量保障”的角色上,推动整个项目组一起保证质量, 上游的工作包括:
  1. 在产品刚立项、进行需求确认的时候,测试人员就会参与进去,仔细地Review需求,看需求是不是完整、有没有漏洞,这个时候还没有进入正式开发,修改需求对于项目组来说代价是最少的。在这个环节,测试人员凭借缜密的推演、发散性的思维,往往能发现很多需求的漏洞,提高了项目的整体效率。
  2. 另外,测试人员在完成测试计划、测试用例以后,会邀请开发、策划一起来评审测试用例,在这个环节,由于测试人员把每个需求如何细化测试都体现在了用例里面,就相当于再次把需求分析了个透,往往还能发现很多需求的漏洞。这也是提早发现需求漏洞的有效环节。
  3. 我们知道,代码的质量归根结底是由开发保证的,测试做的工作,只是发现Bug让开发修复。如果一个花瓶,一开始就是很完美的;另一花瓶经过了各种修补,看起来比较完美,大家觉得哪个花瓶比较好?当然是第一个花瓶。所以,测试人员应该站在质量保障的立场,想办法跟项目组沟通、给开发提供工具,让开发自己把质量保障工作做好。比较可行的一些方式是:提供一些手工用例让开发自测;给一些自动化的接口和UI测试代码让开发自测;部署静态代码检查工具,并推动开发分析和修改发现的问题;有一些做得好的项目已经实现了持续集成,也可以尝试。
下游的工作包括:
  1. 在产品完成了测试以后,就是发布的环节了,测试人员在发布的环节也能发挥作用,首先,测试人员为了部署测试环境,研究自动化部署的技术,可以把上线部署的环节也自动化,以前需要2个小时的部署环节压缩到半个小时甚至更少,而且更加准确可靠。
  2. 如果有些版本修改比较多,上线的质量风险大,测试人员会跟产品一起制定灰度发布的方案并在技术上进行实现,让版本先面向一小部分用户开放,如果发现Bug了,影响的用户也比较小,Bug改掉以后,再逐渐扩大用户范围。

另外,优秀的测试人员还会发动项目组的其他人一起来保证项目质量,比如推动开发进行代码Review;引入冒烟自测流程,让开发先自测以后再提交给测试做冒烟测试;通过在项目组分析Bug,让开发提高自测,降低Bug数量等;引入策划、交互、视觉在测试阶段进行走查,等等各种措施。

2、持续集成探索和自动化测试技术研究

业界都在说持续集成,那持续集成究竟是个什么鬼呢?

持续集成原本的意思是让开发每提交一次代码就自动化测试一次,如果自动化测试发现问题了,测试用例就会失败,开发就会马上发现这个失败,并修改代码。

要做到持续集成可有很多工作要做。
  1. 首先就是编译环节,要把所有编译的环节都自动化起来,开发每次提交代码都能进行自动编译;
  2. 编译完成后,就是静态代码检查的环节,通过静态代码检查的工具检查代码的问题,比如,数据库连接池没有释放,参数不匹配等。
  3. 静态代码检查完成后,就是单元测试了,单元测试用例一般是开发人员或者测试人员编写,或者开发和测试合作编写,保证的是开发内部函数的正确性。一个健康的自动化测试方案中,单元测试用例的占比是最高的。
  4. 然后就是接口测试,一般保证的是后端开发提供给前端开发的HTTP接口,接口一般也比较稳定,用例比较容易维护,所以,接口测试的自动化占比也可以做到很高。
  5. 在接口测试的上层就是针对用户界面的UI测试了,就像测试人员手工执行一样,UI自动化测试能操作页面的元素,完成自动化。不过,由于用户界面常常要重构,所以我们常常会控制UI自动化测试的规模,只覆盖主干的用例。

优秀的测试人员可以把自己的工作尽量自动化,并用持续集成框架串起来,提高工作效率和质量。

3、测试相关工具的开发
优秀的测试人员会开发其他好用、趁手的工具来提高工作效率,比如数据自动生成、报表自动生成、报bug工具等。

其实归根结底就是一句话:测试人员最核心的工作就是保障项目的质量,各类测试流程、技术、工具和平台的发展让我们可以更好地保证项目的质量。
posted on 2017-03-08 16:24 V_arg 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/Wguang/p/6520005.html

<think>嗯,用户这次聚焦在嵌入式测试开发工程师所需的硬件知识上,看来ta对这个岗位的技术深度有明确认知。之前讨论过嵌入式测试与自动化测试的区别,其中硬件知识就是核心差异点,这次需要展开具体技术细节。 用户引用的材料很有价值:引用[1]提到嵌入式测试属于专业方向,引用[2]强调工具自主化(如ETest平台),引用[3]则点明测试开发需要开发能力问题解决能力。尤其值得注意的是引用[4]里提到的硬件实验——这暗示实操经验的重要性。 硬件知识体系可以分层构建: 底层硬件层面,必须理解MCU/SoC架构(如ARM Cortex-M系列的中断控制器NVIC),存储器映射(知道0x0000地址放中断向量表),时钟树(PLL倍频原理)。这些是嵌入式系统的骨架。 接口协议要分层次:物理层如RS232电平特性(为什么MAX232芯片要升压),数据链路层如CAN总线的仲裁机制(标识符优先级竞争),用层如Modbus RTU的CRC校验。工具使用上,示波器测量I2C的启动信号(SCL高电平时SDA下降沿)是基础技能。 特殊场景的硬件知识更关键:电源测试需要测量静态功耗(uA级)浪涌电流(示波器电流探头抓取ms级脉冲),EMC测试涉及频谱分析仪读辐射值。HIL测试则要掌握FPGA实时仿真(如Xilinx Vivado生成IP核)。 开发能力方面,C语言位操作(寄存器配置常用|=掩码)指针(直接访问内存映射IO)是生存技能。Python主要用于开发上位机工具(用pySerial解析传感器数据流)。 最后补充两个隐藏要点:一是硬件思维(理解上拉电阻防信号浮空),二是信号完整性(长导线导致的振铃现象)。这些往往要摔过跟头才能掌握。 用户可能是想评估自己是否具备转型条件,或是为团队招聘做准备。接下来可以讨论如何系统学习这些知识(比如从STM32开发板开始实践),或者深入某个技术点如CAN总线测试方法。</think>根据引用内容及行业实践,嵌入式测试开发工程师需掌握的硬件知识体系如下(按重要性分层): --- ### **一、核心硬件基础** 1. **微控制器/处理器架构** - 掌握ARM Cortex-M/A系列、RISC-V等主流架构的寄存器组织、内存映射、中断机制 - 理解哈佛架构与冯·诺依曼架构差异(如指令/数据总线分离对性能的影响) - 示例:调试STM32时需配置NVIC中断优先级寄存器[^4] 2. **数字电路与接口协议** | **协议类型** | **关键知识** | **测试场景** | |--------------|--------------|--------------| | 串行通信 | UART波特率/奇偶校验、SPI时钟极性、I²C地址冲突 | 信号时序分析、错误注入测试 | | 工业总线 | CAN总线仲裁机制、Modbus RTU/TCP帧结构 | 总线负载测试、容错测试 | | 高速接口 | USB协议层、Ethernet PHY寄存器配置 | 眼图测试、信号完整性验证 | 3. **硬件诊断工具** - **示波器**:捕获SPI的CLK与MOSI信号建立时间(需满足$t_{su} > 10ns$) - **逻辑分析仪**:解析I²C协议包(识别START/STOP位) - **万用表**:测量电源纹波(通常要求$<5\% V_{cc}$)[^2] --- ### **二、嵌入式系统特性** 1. **实时性(RTOS)验证** - 任务切换时间测量(如FreeRTOS的`vTaskDelayUntil()`精度) - 中断延迟测试(从触发到ISR第一条指令执行的时间) 2. **资源约束测试** - 内存泄漏检测:通过`free()`前后堆空间对比 - 功耗测试:休眠模式电流($\mu A$级)与运行模式峰值电流 ```c // 示例:测量函数执行功耗 start = read_power_meter(); critical_function(); end = read_power_meter(); delta = end - start; // 单位:mW ``` 3. **硬件依赖故障注入** - 强制电压跌落(测试看门狗复位功能) - 信号线短路/开路模拟(验证故障安全机制) --- ### **三、专用测试技术** 1. **硬件在环测试(HIL)** - 使用ETest等工具构建传感器/执行器仿真模型[^2] - 例:模拟发动机转速信号验证ECU响逻辑 2. **边界条件测试** - 温度极限:-40℃~85℃环境下的FLASH读写稳定性 - 电压容限:$V_{cc} \pm 10\%$时的ADC采样精度 3. **EMC/EMI防护验证** - 辐射抗扰度测试(如IEC 61000-4-3标准) - ESD静电放电测试(接触放电±8kV) --- ### **四、开发能力交叉点** - **C/C++底层开发**:直接操作寄存器控制GPIO ```c *((volatile uint32_t*)0x40020014) |= 0x01; // STM32 GPIO置位 ``` - **Python自动化脚本**:用pySerial解析串口数据 - **硬件描述语言**:基础Verilog理解FPGA测试逻辑 > 提示:根据引用[4],建议通过开发板实践(如STM32实验)巩固理论[^4],工具使用参考ETest等专业平台[^2]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值