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

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

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

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

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

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

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

相关文章
|
1天前
|
测试技术 持续交付 容器
深入探索自动化测试框架的设计与实现
【7月更文挑战第15天】在软件质量保障的众多手段中,自动化测试以其高效、可靠和可重复性的特点,成为提升开发流程效率的重要环节。本文将深入探讨自动化测试框架的设计理念、核心组件以及实际搭建过程中的关键步骤和常见挑战。我们将通过实例分析,揭示如何构建一个灵活、可维护且易于扩展的自动化测试系统,确保它能够满足现代软件开发的需求。
|
2天前
|
存储 Web App开发 Java
《手把手教你》系列基础篇(九十五)-java+ selenium自动化测试-框架之设计篇-java实现自定义日志输出(详解教程)
【7月更文挑战第13天】这篇文章介绍了如何在Java中创建一个简单的自定义日志系统,以替代Log4j或logback。
13 5
|
2天前
|
敏捷开发 测试技术 持续交付
探索自动化测试框架的演进与实践
【7月更文挑战第14天】自动化测试框架在软件开发生命周期中扮演着越来越重要的角色。本文旨在探讨自动化测试框架从简单的脚本到复杂的系统级解决方案的演变过程,并分析其在不同阶段解决的关键问题。通过案例研究,我们将深入了解如何选择合适的自动化测试工具以及设计有效的测试策略,以提升软件质量保障的效率和效果。
|
5天前
|
设计模式 测试技术 Python
《手把手教你》系列基础篇(九十二)-java+ selenium自动化测试-框架设计基础-POM设计模式简介(详解教程)
【7月更文挑战第10天】Page Object Model (POM)是Selenium自动化测试中的设计模式,用于提高代码的可读性和维护性。POM将每个页面表示为一个类,封装元素定位和交互操作,使得测试脚本与页面元素分离。当页面元素改变时,只需更新对应页面类,减少了脚本的重复工作和维护复杂度,有利于团队协作。POM通过创建页面对象,管理页面元素集合,将业务逻辑与元素定位解耦合,增强了代码的复用性。示例展示了不使用POM时,脚本直接混杂了元素定位和业务逻辑,而POM则能解决这一问题。
24 6
|
3天前
|
敏捷开发 存储 数据管理
自动化测试框架设计:从理论到实践
【7月更文挑战第13天】本文将深入探讨自动化测试框架的设计原理与实现方法。通过分析自动化测试的必要性和框架设计的基本原则,结合具体案例,展示如何从零开始构建一个高效、可维护的自动化测试系统。文章不仅涵盖框架的结构设计,还包括最佳实践和常见问题的解决策略,为读者提供一套完整的解决方案和实操指南。
|
2天前
|
设计模式 Java 测试技术
《手把手教你》系列基础篇(九十四)-java+ selenium自动化测试-框架设计基础-POM设计模式实现-下篇(详解教程)
【7月更文挑战第12天】在本文中,作者宏哥介绍了如何在不使用PageFactory的情况下,用Java和Selenium实现Page Object Model (POM)。文章通过一个百度首页登录的实战例子来说明。首先,创建了一个名为`BaiduHomePage1`的页面对象类,其中包含了页面元素的定位和相关操作方法。接着,创建了测试类`TestWithPOM1`,在测试类中初始化WebDriver,设置驱动路径,最大化窗口,并调用页面对象类的方法进行登录操作。这样,测试脚本保持简洁,遵循了POM模式的高可读性和可维护性原则。
11 2
|
7天前
|
XML Java 测试技术
《手把手教你》系列基础篇(九十一)-java+ selenium自动化测试-框架设计基础-Logback实现日志输出-下篇(详解教程)
【7月更文挑战第9天】在Java项目中,使用Logback配置可以实现日志按照不同包名输出到不同的文件,并且根据日志级别分开记录。
22 4
|
5天前
|
敏捷开发 Devops 测试技术
自动化测试框架的演进与实践
【7月更文挑战第11天】在软件开发的历程中,自动化测试始终扮演着不可或缺的角色。本文将通过探讨自动化测试框架的发展脉络,揭示其在现代软件工程中的应用与挑战。从早期的线性脚本到今日的模块化框架,我们将一窥自动化测试技术的演进之路,并分享实践中的经验和策略,旨在为读者提供一套实用的自动化测试解决方案。
5 1
|
6天前
|
jenkins 测试技术 持续交付
探索自动化测试框架在软件开发中的应用
【7月更文挑战第10天】随着软件行业的快速发展,高效、可靠的软件产品成为企业竞争的核心。自动化测试框架作为提升软件质量与开发效率的关键技术,其在软件开发过程中扮演着越来越重要的角色。本文将深入探讨自动化测试框架的应用,从其定义、优势到具体实施策略,旨在为软件开发团队提供一套完整的自动化测试解决方案。通过实际案例分析,我们将展示如何有效整合自动化测试框架到软件开发生命周期中,以及如何克服实施过程中可能遇到的挑战。
|
9天前
|
监控 Java 测试技术
如何构建高效的自动化测试框架:策略与实践
【7月更文挑战第6天】构建高效的自动化测试框架是一个持续的过程,需要不断迭代和优化。通过遵循设计原则、选择合适的关键技术、并遵循科学的实施步骤,我们可以构建出稳定、可靠、易于维护的自动化测试框架,为软件质量的提升和交付周期的缩短提供有力支持。