测试如何处理好和开发的合作关系

日常的工作中,每天都会与开发工程师打交道。我们服务的核心对象也是开发同学,和开发同学保持较好的合作关系,很大程度上影响了测试工作的好坏。

  谈谈自己的一点看法:

  1、加强开发团队对缺陷和测试人员的重视程度,规范开发测试流程,从根源上解决问题。 开发和测试的矛盾来自于缺陷,也终止于缺陷。 开发团队的领导技术觉悟,可能会直接影响到成员和测试人员的合作,如果开发团队领导对缺陷都视而不见,对测试认知度有限,开发同学就可能会对bug产生抵触情绪。 采用适当的培训来提高开发团队对测试工作的认识,可以使开发同学提高代码质量意识,更加尊重测试的工作。如果可以有一个非常明确的开发测试流程,并能够将代码质量计算 到每个人的能力考核范围内,那么测试的工作会好做很多。目前公司很多的需求跟进、代码review工作都理所当然的由测试来负责推进,这种现状其实不利于测试人员解脱出来,专注于测试 本身。

  2、引入缺陷统计工具 缺陷解决周期及质量可以一目了然,提供给开发和测试同学一个渠道去查看团队成员的代码质量、缺陷频率、线上代码存在的隐患等等。 同时,对于某一个项目来说,缺陷统计工具提供的数据可以做为一个数据仓库以提供各位老大们做各种数据挖掘,比如某一个项目在引入自动化测试框架后,bug频度和数量是否了 下降,某开发团队引入code coverage工具后,首版本严重级别相同的bug数量是否有降低。

  3、简化开发测试间的缺陷沟通渠道,避免无效bug。 我们可以先来个换位思考,如果我们来做开发,什么样的bug我们乐意改,什么样的bug我们最讨厌?

  我大概想了想,有几下几种:

  最喜欢的bug:

  1)容易改的;
  2)可以让代码更简洁的;
  3)不需要重构的;
  4)改完了有种成就感的;
  5)这个bug不被发现可能影响重大的;
  6)可以让我有技术成长的;

  ......

  最讨厌的bug:

  1)费了半天劲但发现是个无效bug,测试根本没搞清楚需求是什么;
  2)吹毛求疵的小问题,而且很费时间的问题;
  3)可能是个问题,但我从bug描述上根本看不出是什么地方出了问题;
  4)我只是遗忘了一个sql脚本,结果QA给我提个P0级别bug,至于么?
  5)测试库都是垃圾数据,你们为什么不清一下就总说程序有问题?

  ......

  综上,应该尽量做到以下几点:

  1)前期的需求明确,达到开发和测试认识一致是前提;

  2)bug的描述尽可能清晰,优先级尽可能准确,尽可能深刻,最好深入到代码级,避免重复的bug;

  3)减少随机测试带来不可重现的bug,如有可能,尽量所提bug都是可以重现的;

  4)能够和开发同学说明bug的严重性和可能带来的具体风险;

  5)减少对开发同学的技术依赖,建立技术尊重。比如自动化部署、独立掌握测试环境、了解一定的代码逻辑等等。

  4、引用台企的一句话“Work Smart”

  1)注意bug提交的时机。严重的bug如果在上线前才提出来,大家都会很窝火,开发即使不埋怨心里对测试的信任度也会打折。同时,目标对象的心情也很重要,即使你很资深,开 发人员关机了准备走,或者和女朋友约了吃饭,这个bug被处理的可能性肯定很小的。

  2)对事不对人。一个标题鲜明的严重bug列表也许会让pm觉得项目问题很多,同时也会让开发很“没面子”,特别是一堆无关紧要的问题被标红和罗列成一屏幕的时候,会引起很 大的反感。这种情况应该尽量避免发生。同时,测试应该尽可能只就事论事,讨论bug尽可能理智和克制,有耐心,避免和开发同学因为bug争吵。这样才能够很好的说服开发修改 缺陷。

  3)和开发搞好私人关系,做开发的朋友: 尽可能站在开发角度考虑问题,特别是开发同学遇到困难的时候,使开发同学认识到测试不仅仅是找茬,而是在协助他完成他的工作。这样既能够解决问题,又能够交个朋友, 何乐而不为?

  以上仅是个人一点想法,欢迎拍砖!谢谢!

本文出自seven的测试人生公众号最新内容请见作者的GitHub页:http://qaseven.github.io/

<think>好的,我现在需要回答用户关于K230与STM32交互的开发环境推荐配置教程的问题。首先,我需要回顾用户之前的问题引用内容,确保回答符合他们的需求。用户提到的引用[1]是关于K230使用USB转串口连接电脑调试的步骤,包括硬件连接驱动安装。引用[2][3]涉及OpenMV与STM32的通信,特别是视觉识别项目中的问题。用户现在想寻找适合K230与STM32交互的开发环境,所以需要结合这两个部分的信息。 首先,K230的开发环境可能涉及CanMV或类似OpenMV的框架,因为用户之前在做视觉项目。CanMV是基于MicroPython的,适合图像处理,可能与OpenMV有相似之处。需要确认K230是否支持CanMV或需要特定的SDK。 其次,STM32通常使用Keil、STM32CubeIDE或PlatformIO等开发环境。交互方面,串口通信是最常见的,所以需要配置两边的UART模块。用户可能需要设置正确的波特率、数据位、停止位等参数。然后,硬件连接方面,K230STM32之间需要串口连接,可能使用USB转TTL模块,如引用[1]提到的。需要确保TX、RX交叉连接,并共地。此外,可能需要电平转换,如果两者的电压不同(比如3.3V5V)。 软件配置部分,K230可能需要编写Python脚本使用UART库发送数据,而STM32则用HAL库或标准库接收。用户可能需要示例代码,比如在K230端发送数据包,STM32端解析数据。另外,用户之前提到OpenMV识别红色小球不稳定,可能需要注意在K230上优化图像处理的代码,比如调整颜色阈值、使用滤波算法或增加帧率,但这个问题可能属于另一个项目,当前问题集中在开发环境配置,所以暂时不需要深入。需要确保推荐的开发工具兼容K230的架构,比如RISC-V或ARM,以及是否有必要的库支持。K230可能有自己的SDK或推荐的工具链,需要查阅官方文档。最后,生成相关问题,帮助用户深入可能遇到的挑战,比如调试工具的选择、通信协议的设计、错误处理等。</think>### K230与STM32交互开发环境配置指南 #### 一、开发环境推荐 1. **K230开发环境** - **CanMV开发框架**:基于MicroPython的视觉开发框架,支持K230的AI加速摄像头接口[^2]。适合需要图像处理或AI推理的场景。 - **Kendryte IDE**:官方推荐的集成开发环境,支持C/C++开发,提供硬件驱动AI模型部署工具。 - **VSCode + PlatformIO**:通过插件配置RISC-V工具链,适合习惯开源工具链的开发者。 2. **STM32开发环境** - **STM32CubeIDE**:官方集成工具,支持HAL库代码生成,简化外设配置。 - **Keil MDK**:传统嵌入式开发工具,适合对实时性要求高的场景。 - **PlatformIO**:跨平台开发环境,支持多款STM32型号,适合与K230统一开发流程。 #### 二、硬件连接配置 1. **通信接口选择** - **UART串口通信**:最常用的交互方式,需连接`TX->RX`、`RX->TX`、`GND->GND`。 - **USB转TTL模块**:若开发板无直接串口,需使用FTDI/CH340模块(参考引用[1])。 - **电平匹配**:K230为3.3V电平,STM32需配置为3.3V UART模式。 2. **接线示例** ``` K230 ↔ STM32 UART0_TX → PA10 (RX) UART0_RX ← PA9 (TX) GND → GND ``` #### 三、软件配置教程 1. **K230端代码(CanMV示例)** ```python from machine import UART import time # 初始化UART,波特率115200,8N1 uart = UART(0, baudrate=115200, tx=4, rx=5) def send_data(data): uart.write(data.encode() + b'\n') # 添加换行符作为帧结束 while True: send_data("Hello STM32") time.sleep_ms(500) ``` 2. **STM32端代码(HAL库示例)** ```c // 在CubeMX中启用USART1,配置波特率115200 uint8_t rx_buffer[64]; void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) { if (huart->Instance == USART1) { // 处理接收到的数据 HAL_UART_Transmit(&huart1, rx_buffer, sizeof(rx_buffer), 100); HAL_UART_Receive_IT(&huart1, rx_buffer, sizeof(rx_buffer)); } } ``` #### 四、调试工具推荐 - **串口调试助手**:Windows可用Putty/XCOM,Linux可用Minicom。 - **逻辑分析仪**:抓取UART波形验证数据完整性(如Saleae)。 - **J-Link/ST-Link**:STM32单步调试工具。 #### 五、关键注意事项 1. **波特率同步**:双方必须使用相同波特率(如115200、9600)。 2. **数据帧设计**:建议添加帧头(如`0xAA`)、校验(CRC8)及帧尾(`\n`)。 3. **超时机制**:STM32需设置接收超时,避免死等数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值