测试:单元测试、性能测试、代码覆盖率、数据竞争、性能调优

本文介绍了测试的重要性和组成部分,包括单元测试、性能测试、代码覆盖率以及性能监控。详细阐述了Go语言中单元测试的命令、断言、子测试、并行测试和表驱动测试,以及性能测试的循环次数、执行时间、CPU 核数设定、计时器和内存开销。同时,讨论了代码覆盖率的概念和检查结果的输出,以及性能监控的目标和采集参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

测试是什么

一个完整的软件有两个方面组成,第一是面向普通用户的软件产品,第二是面向公司的代码产品。代码需要不停更新迭代,也是一个产品。测试用于监管代码质量,测试本身也是算法,测试代码也需要维护和升级,测试和代码是相辅相成的。

程序是算法加数据。简单的逻辑是一些算法指令,算法执行过程当中需要数据,这个数据可能在数据库里、也可能在文件里,算法和数据分离。

测试也是,测试逻辑和测试数据分离。测试数据是场景、上下文、状态,维护测试逻辑不用关心测试数据,在保证测试逻辑正确的情况下,调整测试数据形成更严密的测试。测试逻辑可能由编码人员编写,编码人员未必了解测试场景,他没有办法提供很完整的测试数据。测试数据可能由 PM 或者专职人员收集,可能来源于最早的设计文档,也可能来源于运营期间的数据。

单元测试

以单元测试确保逻辑正确,并持续跟踪。

  • 测试代码同样放在目标包内,以 _test.go 结尾。
  • 测试函数名为 TestName 格式。
  • 测试函数内用 testing.Error、Fail 等方法指示测试失败。
  • 编译命令(go build)会忽略测试源文件。

单元测试的主要目的是确保逻辑正确,对代码进行持续跟踪。一般开发人员编写单元测试,测试人员提供测试样本数据。

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值