TDD 测试驱动开发 软件测试入门

本文讨论了在C程序开发中遇到的bug问题,强调了测试驱动开发(TDD)的重要性,特别是对于芯片软件。作者分享了从arm64到x86的迁移经验,以及如何通过良好的编程习惯、单元测试等方法提高开发效率,减少bug定位时间,避免性能瓶颈和领导层质疑。
摘要由CSDN通过智能技术生成

前言:

最近写的一个C程序,bug比较多,影响较差;对比前面写基于libfdt的一个工具,将其从arm64移植到x86后,开发一个新功能就能用测试用例跑一把发现问题,确保没问题。
最初了解TDD 测试驱动开发是,《代码整洁之道》中提过一句,

芯片软件开发测试驱动开发【下简写为TDD】的必要性

  1. 定位bug的时间是代码编写时间的数倍。一天写bug,三天找bug,别干活了。
  2. 芯片回片前,使用qemu或FPGA模拟,运行速度慢。重启一把耗时很长。服务器负载高时,编译内核几分钟,FPGA起一把耗时十几分钟起步,一天干不了什么活,没什么成就感。
  3. debug麻烦。要么加一堆打印,尤其是驱动调试;要么基于命令行的gdb或kdb,交叉编译时还经常找不到对应源文件。P.S. 对于性能高的板子,可以直接vscode连上去,在上面进行。P.S. vscode kdb 插件和 vscode C调试环境配置也很重要。
  4. 出bug容易被leader diss,说不定背后又说能力不行orz。。。
  5. 被测试小姐姐抓到了,扣绩效加没面子。只有提前把测试的活干完才行。

方法

  1. 良好的编程习惯。
  2. 能否x86平台先验证基本逻辑?若可以,写一个makefile,再写一个shell脚本,编码后运行脚本能一键输出。
  3. 随机输入,结果会随机。给定简单输入比如000 111,结果会更可靠。
  4. 单元测试,冒烟测试,白盒测试etc

参考资料,借此较全面了解测试

比较全的: W3 school软件测试教程

  • 系统梳理一下

gtest框架

入门参考:这篇知乎文章

unity测试框架 比如MCU环境

unity测试

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值