《测试驱动的嵌入式C语言开发》——2.1节什么是自动化单元测试框架

简介: 本节书摘来自华章社区《测试驱动的嵌入式C语言开发》一书中的第2章,第2.1节什么是自动化单元测试框架,作者:(美)James W. Grenning,更多章节内容可以访问云栖社区“华章社区”公众号查看

2.1 什么是自动化单元测试框架
自动化单元测试框架就是一个软件包,它能让程序员表达产品代码应该有什么样的行为。自动化单元测试框架的工作就是要提供以下能力:

  • 用于表述测试用例的通用语言;
  • 用于表述期望结果的通用语言;
  • 能够使用产品代码所用编程语言的功能;
  • 能把所有的工程、系统或子系统中的单元测试用例收集到一起;
  • 一个能运行全部或者部分测试用例的机制;
  • 对于测试套件的成功和失败给出明确的报告;
  • 对于失败的测试给出详细的报告。
    本书中用到的两个单元测试框架在测试嵌入式C代码以及开源代码中都很流行,并且它们也很容易使用。这两个自动化测试框架都承袭自xUnit单元测试自动化框架系列。

为了方便阅读本书,这里介绍几个术语:

  • 被测代码,就是被测试的代码,不需要太多解释。
  • 产品代码,是指产品中(或者将要成为产品中)的代码,将来要出现在发布的产品中。
  • 测试代码,是指用来测试产品代码的代码。这些代码不会出现在发布的产品中。
  • 测试用例,是用来描述被测代码行为的一段测试代码。它会创建测试的先置条件并检验重要的后置条件是否满足。
    测试夹具,是用来为一系列的测试用例提供一个合适环境的代码,从而使这些测试用例能够运行被测代码。测试夹具会通过建立通用的设置以及用来运行产品代码的环境来辅助测试。

为了更好地理解这些术语,让我们来看一些示例测试,它们将测试我们大家都用过的一个函数:sprintf()。在这个例子中,sprintf()就是“被测代码”,同时它也是“产品代码”。
sprintf()作为第一个例子很合适,因为它是一个独立的函数,是测试起来最直接的一种函数。独立函数的输出完全由直接传给它的参数决定。它不会有可见的外部交互或者被保存起来的状态来妨碍我们。每次对这个函数的调用与之前的任意次调用之间都是不相关的。

相关文章
|
9月前
|
人工智能 自然语言处理 测试技术
从人工到AI驱动:天猫测试全流程自动化变革实践
天猫技术质量团队探索AI在测试全流程的落地应用,覆盖需求解析、用例生成、数据构造、执行验证等核心环节。通过AI+自然语言驱动,实现测试自动化、可溯化与可管理化,在用例生成、数据构造和执行校验中显著提效,推动测试体系从人工迈向AI全流程自动化,提升效率40%以上,用例覆盖超70%,并构建行业级知识资产沉淀平台。
从人工到AI驱动:天猫测试全流程自动化变革实践
|
11月前
|
Web App开发 人工智能 JavaScript
主流自动化测试框架的技术解析与实战指南
本内容深入解析主流测试框架Playwright、Selenium与Cypress的核心架构与适用场景,对比其在SPA测试、CI/CD、跨浏览器兼容性等方面的表现。同时探讨Playwright在AI增强测试、录制回放、企业部署等领域的实战优势,以及Selenium在老旧系统和IE兼容性中的坚守场景。结合六大典型场景,提供技术选型决策指南,并展望AI赋能下的未来测试体系。
|
9月前
|
SQL 安全 Linux
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
460 1
Metasploit Pro 4.22.8-20251014 (Linux, Windows) - 专业渗透测试框架
|
9月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
1055 1
Metasploit Framework 6.4.95 (macOS, Linux, Windows) - 开源渗透测试框架
|
10月前
|
安全 Linux 网络安全
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
532 2
Metasploit Pro 4.22.8-2025091701 (Linux, Windows) - 专业渗透测试框架
|
10月前
|
Linux 网络安全 iOS开发
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
599 1
Metasploit Framework 6.4.90 (macOS, Linux, Windows) - 开源渗透测试框架
|
10月前
|
安全 Linux 网络安全
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
Metasploit Framework 6.4.88 (macOS, Linux, Windows) - 开源渗透测试框架
706 0
|
10月前
|
缓存 安全 Linux
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
Metasploit Pro 4.22.8-2025082101 (Linux, Windows) - 专业渗透测试框架
337 0
|
测试技术 开发者 UED
探索软件测试的深度:从单元测试到自动化测试
【10月更文挑战第30天】在软件开发的世界中,测试是确保产品质量和用户满意度的关键步骤。本文将深入探讨软件测试的不同层次,从基本的单元测试到复杂的自动化测试,揭示它们如何共同构建一个坚实的质量保证体系。我们将通过实际代码示例,展示如何在开发过程中实施有效的测试策略,以确保软件的稳定性和可靠性。无论你是新手还是经验丰富的开发者,这篇文章都将为你提供宝贵的见解和实用技巧。
|
JSON Dubbo 测试技术
单元测试问题之增加JCode5插件生成的测试代码的可信度如何解决
单元测试问题之增加JCode5插件生成的测试代码的可信度如何解决
372 2
单元测试问题之增加JCode5插件生成的测试代码的可信度如何解决