深入 C 语言和程序运行原理
于航
PayPal 技术专家
21121 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 49 讲
深入 C 语言和程序运行原理
15
15
1.0x
00:00/00:00
登录|注册

21|生产加速:如何使用自动化测试确保 C 项目质量?

函数、指令、判断覆盖率
测试用例完备性指标
自动生成测试数据
测试环境准备和清理
独立于编程语言的测试结果格式
Linux 系统性能调试
使用 Perf 工具
测量运行性能(时间、内存)
涉及真实外部依赖
严格结果正确性
测试多个单元满足业务需求
Fixture 功能配置环境
使用真实外部资源
测试不同单元整合协同工作
断言验证输出
编写测试用例
使用 CUnit 框架
测试基本单元(函数)功能正确性
测试覆盖率要求
遇到的困难
项目测试实践
端到端测试
无障碍测试
安全性测试
兼容性测试
持续编译、测试、部署、发布
集成 DevOps 流程
使用脚本或框架代替人工测试
Code Coverage
Generator
Fixture
TAP (Test Anything Protocol)
性能测试
功能测试
集成测试
单元测试
确保预期工作
及时修正偏差
验证软件功能表现
资源链接
思考题
其他测试类型
测试自动化
测试框架的能力
常用测试类型
测试的重要性
C 项目质量保证

该思维导图由 AI 生成,仅供参考

你好,我是于航。
“测试”是每个软件在其开发生命周期(SDLC)中都不可或缺的一个重要阶段。通过对软件进行各种不同类型的测试,我们能够从多个维度验证软件的功能表现,并在出现偏差时及时修正,以确保它们可以按照预期工作。根据实施方式、深入粒度、应用场景及目的等因素的不同,测试可以被分为多种类型。其中,有些测试较为基础和通用,甚至被作为软件开发流程中的必备一环;而有些测试则仅适用于某些特定情况。
因此,为了尽量保证本讲内容的通用性,这里我挑选了 C 项目中最为常用的几种测试类型,主要包括单元测试、集成测试、功能测试与性能测试。接下来,我将为你分别介绍它们的作用,以及它们之间的区别和联系,还有如何进行这些测试。在这一讲的最后,我还会介绍什么是自动化测试,以及如何更进一步地做到“真正”的测试自动化。

单元测试

我们先来看通常会最先接触到的一种测试类型,单元测试(Unit Testing)。顾名思义,单元测试就是对组成程序整体结构的基本单元(也可称为模块)进行功能正确性验证的过程。它的目标是,隔离程序的每个部分,并单独验证这些部分能否按照预期正常工作。对于 C 程序来说,这里的单元通常为程序使用到的各个函数
既然要对这些基本单元的功能进行测试,那便需要编写一些代码来使用这些单元,并为它们提供多种不同输入,来验证相应的输出或副作用变化是否符合单元的正常功能实现。而为了让目标单元在测试过程中正常运作,我们通常还需要为它准备特定的配套测试环境,比如用于替换真实代码(如外部函数调用)的桩(Stub)代码,以及各类 Mock 资源(如 DB 访问层、外部 API 接口)等。这样做的目的在于,隔离单元需要依赖的外部环境,使测试范围可以尽量集中在单元的内部逻辑上。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了如何使用自动化测试来确保 C 项目的质量。首先介绍了单元测试的概念和作用,以及使用 CUnit 进行 C 语言单元测试的基本方法。然后,作者提到了测试框架的其他重要能力,包括 TAP、Fixture、Generator 和 Code Coverage。接着,文章介绍了集成测试的概念和重要性,以及如何使用支持 Fixture 功能的测试框架来实现 C 项目的集成测试。除了单元测试和集成测试,还介绍了功能测试和性能测试的重要性。功能测试对测试结果的正确性要求更严格,需要满足业务需求中的规定;而性能测试则是确保软件运行性能的重要环节。此外,还提到了其他测试类型如兼容性测试、安全性测试等。最后,文章介绍了自动化测试的概念,以及如何将自动化测试融入到日常开发和功能迭代中,使整个 DevOps 过程更加自动化。整体而言,本文详细介绍了 C 项目中常用的几种测试类型,以及如何利用测试框架和自动化测试来确保项目质量。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《深入 C 语言和程序运行原理》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(4)

  • 最新
  • 精选
  • 科富
    推荐一个单元测试框架,cmocka,支持fixture,官方文档也比较详细

    作者回复: 感谢推荐,看了下确实不错!

    2022-02-07
    2
    4
  • 功夫熊猫
    老师,除了gdb,c语言还有没有其他的可以调试的工具。另外这几年Python的自动化测试很火,那个能用来测试c语言的程序吗?

    作者回复: 其他的调试工具基本都不如 GDB、LLDB 功能强大,虽然有其他可选项,但我不太推荐。第二个问题主要看你要进行的测试类型,部分黑盒测试的用例是可以用的,但只能检测程序运行时产生的可观察副作用是否正确。比如写入的文件内容,产生的各类输出之类的。

    2022-06-28归属地:上海
    1
  • 功夫熊猫
    老师,c语言里有没有可以查看内存分配的工具

    作者回复: 抱歉,回复晚了。这类工具一般也都不仅仅针对 C 程序,大多数需求通过 GDB 或 LLDB 就能解决。如果需要图形化界面也可以考虑 VSC 或者 Visual Studio、XCode 自带的调试器,也很好用的。

    2022-06-28归属地:上海
    1
  • coming
    老师能讲一下,stub和mock吗

    作者回复: 好的,我来看看哈。

    2022-02-13
收起评论
显示
设置
留言
4
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部