《测试驱动的嵌入式C语言开发》——1.6节对于嵌入式开发的益处

简介: 本节书摘来自华章社区《测试驱动的嵌入式C语言开发》一书中的第1章,第1.6节对于嵌入式开发的益处,作者:(美)James W. Grenning,更多章节内容可以访问云栖社区“华章社区”公众号查看

1.6 对于嵌入式开发的益处
嵌入式软件开发面临所有“通常意义上”的软件开发的挑战。例如很难把进度计划做得好且可靠。但嵌入式软件开发也有其自身特有的更多挑战。这并不意味着嵌入式开发不能采用TDD。
嵌入式开发者最常引用的借口是嵌入式代码依赖于硬件。依赖关系对于非嵌入式代码也是个大问题。幸运的是,我们有办法来解决这些依赖问题。原则上讲,对硬件设备的依赖和对数据库的依赖没什么区别。
嵌入式开发者面临很多挑战,我们将展开讨论如何从TDD借力。嵌入式开发者不仅能收到前面讲过的那些非嵌入式开发者能享受到的好处,同时还将得到一些嵌入式特别的好处:
在硬件可用之前或者硬件很贵或者很稀少时,通过独立于硬件的方式校验产品代码,从而降低风险。
在开发环境中执行并移除bug,从而减少长时间的编译、链接和上传这样的循环的次数。
对于在目标硬件中既难发现又难修改的问题,可以减少调试的时间。
通过在测试中模型化硬件交互,使硬件/软件的交互彼此独立。
通过解开模块之间以及模块与硬件之间的耦合来改进软件设计。可测试的代码首先必须是模块化的。
本书的第一部分将重点帮助你开始进行TDD。在接下来两章的一个TDD编程示例之后,我们将在第5章中更多地讨论为嵌入式软件做TDD的技术。

相关文章
|
4月前
|
缓存 运维 数据库
【测试人员兼职指南】利用专业技能:如何从测试转向开发赚钱
本文分享了作者作为测试人员如何利用专业技能转向开发来兼职赚钱的经验,包括分析和解决登录页面跳转、避免重复账号注册、用户登录后首页显示用户名以及添加退出功能等问题,并提供了Django项目中使用sqlite3数据库和后台管理的扩展技巧。
133 1
【测试人员兼职指南】利用专业技能:如何从测试转向开发赚钱
|
4月前
|
Java 测试技术 开发者
在软件开发中,测试至关重要,尤以单元测试和集成测试为然
在软件开发中,测试至关重要,尤以单元测试和集成测试为然。单元测试聚焦于Java中的类或方法等最小单元,确保其独立功能正确无误,及早发现问题。集成测试则着眼于模块间的交互,验证整体协作效能。为实现高效测试,需编写可测性强的代码,并选用JUnit等合适框架。同时,合理规划测试场景与利用Spring等工具也必不可少。遵循最佳实践,可提升测试质量,保障Java应用稳健前行。
52 1
|
9天前
|
存储 安全 物联网
C语言物联网开发之设备安全与代码可靠性隐患
物联网设备的C语言代码安全与可靠性至关重要。一是防范代码安全漏洞,包括缓冲区溢出和代码注入风险,通过使用安全函数和严格输入验证来预防。二是提高代码跨平台兼容性,利用`stdint.h`定义统一的数据类型,并通过硬件接口抽象与适配减少平台间的差异,确保程序稳定运行。
|
1月前
|
机器学习/深度学习 数据采集 人工智能
探索AI驱动的自动化测试新纪元###
本文旨在探讨人工智能如何革新软件测试领域,通过AI技术提升测试效率、精准度和覆盖范围。在智能算法的支持下,自动化测试不再局限于简单的脚本回放,而是能够模拟复杂场景、预测潜在缺陷,并实现自我学习与优化。我们正步入一个测试更加主动、灵活且高效的新时代,本文将深入剖析这一变革的核心驱动力及其对未来软件开发的影响。 ###
|
2月前
|
测试技术 网络安全
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
文章全面介绍了软件测试的基本概念、目的、岗位分类、与开发和调试的区别,并阐述了成为优秀测试人员应具备的素质和技能。
211 1
什么是软件测试? 软件测试都有什么岗位 ?软件测试和调试的区别? 软件测试和开发的区别? 一位优秀的测试人员应该具备哪些素质? 软件测试等相关概念入门篇
|
16天前
|
安全 测试技术 持续交付
云计算时代的软件开发与测试:高效、灵活、可扩展
云计算时代的软件开发与测试:高效、灵活、可扩展
|
2月前
|
人工智能 监控 测试技术
云应用开发平台测试
云应用开发平台测试
63 2
|
2月前
|
存储 测试技术 数据库
数据驱动测试和关键词驱动测试的区别
数据驱动测试 数据驱动测试或 DDT 也被称为参数化测试。
|
2月前
|
C语言
【C语言的完结】:最后的测试题
【C语言的完结】:最后的测试题
22 3
|
2月前
|
敏捷开发 测试技术
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum
文章详细介绍了软件开发过程中的不同开发模型(瀑布、螺旋、Scrum)和测试模型(V模型、W模型),以及增量和迭代的概念,最后阐述了敏捷思想及其在敏捷开发(如Scrum)中的应用。
83 0
开发模型(瀑布、螺旋、scrum) 和 测试模型(V、W)、增量和迭代、敏捷(思想)及敏捷开发 scrum