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

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

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

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

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

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

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

相关文章
|
13天前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
10天前
|
Web App开发 设计模式 测试技术
自动化测试框架的搭建与实践
【10月更文挑战第5天】本文将引导你理解自动化测试框架的重要性,并通过实际操作案例,展示如何从零开始搭建一个自动化测试框架。文章不仅涵盖理论,还提供具体的代码示例和操作步骤,确保读者能够获得实用技能,提升软件质量保障的效率和效果。
|
10天前
|
机器学习/深度学习 供应链 搜索推荐
机器学习驱动的工厂自动化
机器学习驱动的工厂自动化是一种利用先进的机器学习技术来提升生产效率、降低成本和提高产品质量的智能制造方法。
24 2
|
11天前
|
Web App开发 敏捷开发 Java
自动化测试框架的选择与应用
【10月更文挑战第4天】在软件开发的海洋中,自动化测试如同一艘航船,帮助开发者们快速穿越测试的波涛。选择适合项目的自动化测试框架,是确保航行顺利的关键。本文将探讨如何根据项目需求选择合适的自动化测试框架,并分享一些实用的代码示例,助你启航。
|
12天前
|
测试技术 持续交付 数据安全/隐私保护
软件测试的艺术与科学:探索自动化测试框架
【10月更文挑战第3天】在软件开发的海洋里,自动化测试犹如一艘航船,引领着项目向着质量的彼岸航行。本文将揭开自动化测试框架的神秘面纱,从理论到实践,深入浅出地探讨如何构建和运用这一工具,确保软件产品的稳定性和可靠性。我们将通过一个实际案例,展示自动化测试框架的搭建过程,以及它如何在提高测试效率、减少人力成本等方面发挥巨大作用。无论你是测试新手还是资深开发者,这篇文章都将为你提供宝贵的知识和启示。
|
13天前
|
敏捷开发 jenkins 测试技术
自动化测试框架的设计与实践
【10月更文挑战第2天】在软件开发周期中,测试阶段扮演着至关重要的角色。随着敏捷开发和持续集成的流行,自动化测试已成为确保软件质量和加快交付速度的关键工具。本文将深入探讨自动化测试框架的设计原则、组件选择、以及实现过程。通过实际案例分析,我们不仅展示了如何构建一个健壮的自动化测试框架,还讨论了如何克服常见问题,并提出了优化策略,以帮助读者更好地理解自动化测试的价值和实施细节。
|
14天前
|
敏捷开发 测试技术 持续交付
自动化测试框架的选择与应用
在软件开发的海洋中,自动化测试犹如一座灯塔,指引着质量保证的方向。本文将探讨如何根据项目需求选择适合的自动化测试框架,以及在实际工作中如何有效应用这些框架来提升软件质量和开发效率。我们将从框架的基本概念出发,逐步深入到框架选择的标准,最后通过实际案例分析,展示自动化测试框架的应用效果。
|
17天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的设计与实现
【9月更文挑战第36天】在软件开发的海洋中,自动化测试如同一艘能够带领我们高效航行的帆船。本文将引导你理解自动化测试框架的核心概念,并通过一个简化的例子展示如何搭建自己的测试框架。我们将一同揭开自动化测试的神秘面纱,让你从新手成长为能够独立设计和实现测试框架的高手。
|
22天前
|
Web App开发 敏捷开发 数据管理
自动化测试框架的设计与实现
【9月更文挑战第32天】在软件开发的海洋中,自动化测试如同一艘精确导航的船只,确保我们的应用程序能够在波涛汹涌的技术潮流中稳健航行。本文将带你领略自动化测试框架的设计之美,从搭建基础到功能扩展,再到维护实践,我们将一起探索如何打造一个既高效又灵活的自动化测试体系。
24 3
|
28天前
|
敏捷开发 Java 测试技术
自动化测试框架的选择与应用
【9月更文挑战第26天】在软件开发的海洋里,自动化测试是那一盏指路明灯。它不仅加快了开发周期,还提升了软件质量。本文将带你探索自动化测试框架的世界,了解它们的核心特性、适用场景及如何根据项目需求做出明智选择。让我们一起启航,找到那把打开高效、稳定软件生产大门的钥匙。