寿司师
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
26、嵌入式软件开发中的线程管理与设计原则
本文深入探讨了嵌入式软件开发中的线程管理机制与核心设计原则,涵盖线程的创建、启动、销毁在不同平台(如Win32、Micrium)的实现方式,并结合设计模式与SOLID原则提升系统可维护性。文章还介绍了测试驱动开发(TDD)、自动化测试、代码重构及遗留代码处理等关键实践,强调通过抽象、解耦和测试保障提升软件质量,适用于面对硬件限制与复杂系统集成的嵌入式开发场景。原创 2025-11-30 09:41:40 · 17 阅读 · 0 评论 -
25、测试框架与操作系统隔离层技术详解
本文详细介绍了Unity和CppUTest两种主流测试框架的使用方法,涵盖命令行选项、断言机制、测试结构及在嵌入式环境中的应用。同时深入探讨了操作系统隔离层(MyOS)的设计与实现,通过POSIX和Micrium RTOS的线程管理对比,展示了如何构建可移植的跨平台接口。结合测试框架与隔离层的综合应用,确保代码在不同环境下的稳定性与可靠性,提升软件的可测试性和可维护性。原创 2025-11-29 14:26:32 · 12 阅读 · 0 评论 -
24、测试驱动开发:从理论到实践的全面指南
本文深入探讨了测试驱动开发(TDD)从理论到实践的全过程,涵盖BDD风格测试、测试质量维护、TDD的价值与挑战、测试环境搭建、Makefile配置、小范围测试构建、Unity测试框架使用等内容。文章还介绍了TDD的实际应用流程、不同测试风格的比较、测试环境优化策略以及常见挑战的应对方法,旨在为开发者提供一份全面的TDD实施指南,帮助提升代码质量与开发效率。原创 2025-11-28 12:54:41 · 16 阅读 · 0 评论 -
23、测试驱动开发:第三方代码学习测试、Bug修复与常见模式解析
本文深入探讨了测试驱动开发(TDD)在实际项目中的应用,涵盖对第三方代码的学习测试、Bug修复流程、主动添加战略测试以及遗留代码的处理策略。文章详细分析了常见的测试反模式,如冗长测试、复制粘贴修改、突兀测试用例等,并提供相应的解决方案。同时介绍了行为驱动开发(BDD)的测试模式及其优势,结合流程图和应用场景分析,帮助团队优化TDD实践。最后展望了TDD未来的发展趋势,并分享了提升团队测试能力的实践经验,旨在提高代码质量与开发效率。原创 2025-11-27 13:05:35 · 15 阅读 · 0 评论 -
22、遗留代码测试:从初始化到特征测试
本文深入探讨了遗留代码测试的多种有效方法,涵盖监控循环测试以防止测试挂起、两级结构体初始化以支持灵活测试场景、崩溃通过法帮助逐步构建可运行的测试框架,以及特征测试结合模拟对象来揭示和固化代码行为。通过实际代码示例和流程图,系统性地展示了如何为难以测试的遗留C/C++代码添加可靠测试,提升代码的可维护性和团队协作效率。原创 2025-11-26 09:40:23 · 28 阅读 · 0 评论 -
21、代码性能、规模优化与遗留代码测试策略
本文探讨了代码性能与规模优化的基本原则,强调在确保代码结构清晰的基础上,依据数据进行合理优化。介绍了Kent Beck的开发三步法和Dr. Joseph M. Newcomer的专家观点,提倡宏观优化优先。针对遗留代码,提出了测试驱动的更改策略、童子军原则和Michael的更改算法,并详细说明了接缝、全局变量、传感变量、调试输出和内联监视器等多种测试点的应用场景与实践方法。最后总结了遗留代码测试的注意事项、最佳实践及未来展望,旨在帮助开发者安全、高效地改进代码质量与可维护性。原创 2025-11-25 11:13:48 · 22 阅读 · 0 评论 -
20、代码转换:优化与重构的实用指南
本文深入探讨了代码优化与重构的实用方法,涵盖处理注释代码、避免条件编译滥用、重构长函数、消除重复逻辑等关键实践。通过真实代码示例,详细展示了从识别代码异味到应用提取函数、快速交换、移动函数、拆分源文件等一系列重构技巧的完整流程。强调测试保障、抽象一致性与模块化设计,帮助开发者提升代码可读性、可维护性和可扩展性,建立持续改进的高质量代码体系。原创 2025-11-24 11:31:16 · 15 阅读 · 0 评论 -
19、C 代码中的坏味道及改进方法
本文深入探讨了C语言中常见的代码坏味道及其改进方法,涵盖重复代码、糟糕命名、长函数、深度嵌套、全局变量滥用等问题。通过重构和设计变更的对比,提出了一系列可操作的优化策略,如提取函数、统一抽象级别、封装全局变量等,并结合实例展示了如何逐步改善代码质量。文章还提供了总结表格和流程图,帮助开发者系统化地识别与修复代码问题,提升代码的可读性、可维护性和可测试性。原创 2025-11-23 11:00:11 · 22 阅读 · 0 评论 -
18、提升C模块灵活性:动态接口设计与重构实践
本文探讨了如何通过动态接口设计和重构提升C语言模块的灵活性与可维护性。文章以实际案例出发,介绍了使用vtable机制实现多态行为的方法,并展示了测试驱动开发在接口演进中的应用。同时,强调了简单设计原则和重构的重要性,分析了常见的代码气味及其改进策略,帮助开发者在需求变化中持续优化代码结构,提升软件的可扩展性和健壮性。原创 2025-11-22 12:51:20 · 20 阅读 · 0 评论 -
17、智能家居系统灯光控制设计的演进与优化
本文探讨了智能家居系统中灯光控制模块的设计演进过程,分析了早期设计中因使用重复switch语句导致的可维护性差、扩展困难等问题。通过引入函数指针实现动态接口,应用开闭原则和里氏替换原则,重构了LightController与LightDriver之间的交互方式,消除了条件逻辑冗余,实现了生产代码与测试代码的分离,显著提升了系统的灵活性与可扩展性。文章结合测试驱动开发思路,详细展示了从问题识别到设计优化的完整流程。原创 2025-11-21 12:47:53 · 24 阅读 · 0 评论 -
16、模拟生成与SOLID设计原则解析
本文深入解析了模拟生成工具CppUMock和CMock在C/C++单元测试中的应用,结合实际代码示例说明其生成机制与使用场景。同时系统介绍了SOLID五大设计原则及其在C语言中的实践方式,并通过单实例、多实例、动态接口等设计模型展示如何构建高内聚、低耦合、可测试的模块。文章还提供了mermaid流程图辅助理解设计流程与测试策略,最后总结了工具选择与设计原则融合的最佳实践,帮助开发者提升软件的灵活性、可维护性和测试可靠性。原创 2025-11-20 09:04:36 · 14 阅读 · 0 评论 -
15、模拟I/O与驱动测试全解析
本文深入解析了使用MockIO和CppUMock进行闪存驱动程序的模拟I/O与测试的方法。涵盖了从基本的读写期望设置、错误场景模拟、超时处理到时钟溢出等复杂情况的测试用例设计。通过测试驱动开发的方式,逐步完善Flash_Write函数的健壮性,并展示了测试代码与生产代码的交互流程。文章还提供了流程图、对比表格及优化建议,系统性地阐述了高质量驱动测试的实践路径,适用于嵌入式系统、物联网等领域的开发者参考。原创 2025-11-19 11:59:33 · 36 阅读 · 0 评论 -
14、使用间谍和模拟对象进行测试
本文介绍了如何使用间谍(Spy)和模拟对象(Mock Object)进行C语言单元测试,重点应用于循环缓冲区输出验证和闪存驱动的复杂硬件交互测试。通过具体代码示例,展示了间谍在记录函数输出、模拟对象在验证调用顺序与参数方面的优势,并深入解析了MockIO的实现机制。文章还提供了测试设计的最佳实践建议,如合理覆盖边界条件、消除魔法数字、重构测试代码等,帮助开发者提升代码质量与可维护性。原创 2025-11-18 16:08:09 · 35 阅读 · 0 评论 -
13、测试驱动开发:从多事件调度到运行时测试替身
本文深入探讨了测试驱动开发(TDD)在实现多事件调度和运行时测试替身中的应用。通过扩展LightControllerSpy支持多灯状态记录,采用“不烧桥”原则逐步实现多事件调度,并处理边界条件与无效输入,确保系统稳定性。随后引入运行时测试替身技术,利用函数指针替换和间谍模式实现对随机分钟生成器和打印输出的可控测试。文章结合具体代码示例、测试用例设计与流程图,展示了如何通过TDD提升代码质量与可维护性,为复杂嵌入式系统的测试提供了实用解决方案。原创 2025-11-17 12:38:58 · 33 阅读 · 0 评论 -
12、灯光调度器测试与实现详解
本文详细介绍了如何通过测试驱动开发(TDD)实现一个嵌入式灯光调度器。从使用间谍模式和测试替身开始,逐步完成调度器的核心功能,涵盖时间控制、0-1-N模式设计、代码重构、复杂条件逻辑处理、系统连接测试、多事件调度支持,并进一步讨论了错误处理、边界条件、性能优化与可扩展性。整个过程展示了如何通过小步迭代、测试先行的方式构建高可靠性、易维护的嵌入式软件系统。原创 2025-11-16 16:12:49 · 41 阅读 · 0 评论 -
11、测试替身的使用与实现
本文深入探讨了测试替身的概念、作用及在C语言中的实现方式,涵盖测试哑元、存根、间谍、模拟对象和虚假对象等变体,并分析了链接时替换、函数指针替换和预处理器替换等多种机制的适用场景与优缺点。通过灯光调度器的实际案例,展示了如何利用测试替身打破对硬件和操作系统的依赖,提升测试效率与独立性。文章还提供了测试替身的选择策略与应用建议,帮助开发者更高效地构建可维护、可重复的单元测试体系。原创 2025-11-15 09:15:23 · 31 阅读 · 0 评论 -
10、测试驱动开发(TDD)的挑战与解决方案
本文深入探讨了测试驱动开发(TDD)在实际应用中面临的挑战及其解决方案。从单元测试的成本与价值、后测试开发的局限性,到长构建时间、内存受限、与硬件交互等嵌入式场景下的应对策略,全面解析了TDD的实践难点。文章还介绍了测试替身的应用案例、如何逐步引入TDD到现有项目,以及TDD与DevOps、AI结合的未来发展趋势,为开发者提供了一套系统性的TDD落地指南。原创 2025-11-14 16:56:03 · 20 阅读 · 0 评论 -
9、嵌入式硬件测试与TDD的应用及优势
本文探讨了嵌入式硬件测试的三种主要类型:自动化硬件测试、部分自动化硬件测试和带外部仪器的自动化测试,并结合测试驱动开发(TDD)的应用,分析了其在提升代码质量、减少调试时间方面的优势。文章还通过实际案例说明了如何利用适配器模式解决跨平台兼容性问题,并对比了传统单元测试方法的局限性,提出了向TDD转型的实践路径。最后给出了在嵌入式环境中应用TDD的具体建议,帮助开发者构建更可靠、可维护的系统。原创 2025-11-13 15:53:14 · 30 阅读 · 0 评论 -
8、嵌入式 TDD 策略:应对目标硬件瓶颈
本文深入探讨了嵌入式软件开发中的TDD(测试驱动开发)策略,重点分析了如何通过双目标策略应对目标硬件交付延迟、资源稀缺和调试困难等瓶颈问题。文章详细介绍了嵌入式TDD周期的五个阶段,包括在开发系统上的微周期测试、编译器兼容性检查、评估板与目标硬件上的单元测试,以及最终的验收测试。同时,针对双目标开发中可能出现的运行时库bug和头文件不兼容等问题,提出了隔离平台特定代码、使用统一接口和平台无关测试用例的最佳实践。结合持续集成,确保代码质量与高效集成,帮助开发团队提升效率、降低风险,实现高质量的嵌入式软件交付。原创 2025-11-12 15:31:09 · 13 阅读 · 0 评论 -
7、嵌入式开发中的TDD实践:LED驱动开发全流程解析
本文详细解析了在嵌入式开发中应用测试驱动开发(TDD)方法实现LED驱动的全流程。从编写测试用例、处理边界与越界情况,到持续重构代码、消除重复逻辑,展示了如何通过小步迭代和测试先行的方式构建高质量的驱动代码。文章还涵盖了测试策略演变、应对不同硬件场景的思考,并总结了TDD实践中的关键要点,为后续嵌入式系统开发提供了可复用的方法论和优化方向。原创 2025-11-11 09:45:46 · 13 阅读 · 0 评论 -
6、测试驱动开发:从 LED 驱动示例看 TDD 实践
本文通过一个LED驱动的开发实例,深入讲解了测试驱动开发(TDD)的实践过程。从最简单的伪造实现开始,逐步通过增量式测试推动代码完善,涵盖测试编写、编译链接、重构优化、边界条件处理及运行时错误管理等关键环节。文章还介绍了TDD状态机流程和单元测试的FIRST属性,强调测试的快速、隔离、可重复、自我验证和及时性,帮助开发者在C语言环境下构建高质量、可维护的模块化代码。原创 2025-11-10 14:36:18 · 29 阅读 · 0 评论 -
5、测试驱动开发:从编写第一个测试开始
本文介绍了测试驱动开发(TDD)的实践过程,从编写第一个测试开始,逐步构建可测试、可维护的LED驱动程序。通过创建测试用例、解决编译链接问题、实现生产代码并持续迭代,展示了TDD的核心流程与优势。文章还涵盖了依赖注入、接口设计、边界测试、重构、性能测试及集成测试等关键环节,帮助开发者理解如何通过测试推动代码设计,提升软件质量与开发效率。原创 2025-11-09 16:09:19 · 32 阅读 · 0 评论 -
4、单元测试工具与C模块开发入门
本文介绍了C语言开发中的单元测试工具Unity和CppUTest的使用方法,涵盖测试用例编写、测试输出解析及常见问题处理。文章深入探讨了测试驱动开发(TDD)流程、四阶段测试模式以及可测试C模块的设计原则,并通过LED驱动模块的实例演示了从需求到测试再到实现的完整开发过程,帮助开发者提升代码质量与可维护性。原创 2025-11-08 09:44:50 · 15 阅读 · 0 评论 -
3、测试驱动开发(TDD):原理、工具与实践
本文深入探讨了测试驱动开发(TDD)的原理、工具与实践。从传统调试与TDD的对比入手,详细介绍了TDD微循环、红-绿-重构节奏及其在提升代码质量、减少bug和改进设计方面的显著优势,特别分析了TDD在嵌入式开发中的应用价值。文章还对比了Unity和CppUTest两种主流C语言单元测试框架,通过计算器开发案例展示了TDD的实际操作流程,帮助开发者理解如何通过测试先行的方式实现可维护、高可靠性的软件系统。原创 2025-11-07 13:20:26 · 14 阅读 · 0 评论 -
2、嵌入式C语言的测试驱动开发指南
本文介绍了测试驱动开发(TDD)在嵌入式C语言中的应用,从TDD的起源、核心理念到实际操作步骤,涵盖测试框架选择、依赖处理、有效测试编写技巧以及设计原则和重构实践。通过真实案例(如Zune bug)说明TDD的必要性,并对比传统开发模式,突出TDD在提升软件质量、减少调试时间方面的优势。适合嵌入式C开发者学习如何通过TDD构建健壮、可维护的系统。原创 2025-11-06 13:36:54 · 18 阅读 · 0 评论 -
1、嵌入式C语言的测试驱动开发全解析
本文全面解析了嵌入式C语言中的测试驱动开发(TDD)方法,涵盖TDD的基本概念、核心优势、开发流程及常用工具如Unity和CppUTest。深入探讨了TDD在嵌入式系统中的应用策略,包括双目标测试、测试替身使用、边界条件测试、代码重构与SOLID设计原则。通过LED驱动、闪存模拟等实例,展示了TDD从测试用例编写到代码实现的完整循环,并提供了构建测试环境、处理遗留代码和团队协作的实用建议,帮助开发者提升代码质量、减少调试时间、增强系统可靠性。原创 2025-11-05 10:49:53 · 39 阅读 · 0 评论
分享