背景
1、互联网公司的角色
- 开发——RD
- 测试——QA
- 运维——OP
- 产品经理——PM
2、项目开发流程
- 背景调研——竞品调研
- 需求评审——MRD需求标准
- RD/QA反馈排期
- 项目设计——RD设计好如何进行设计
- 开发编码——RD搬砖
- QA测试
- 上线/发布
3、软件测试
(1)从开发周期:单元测试——集成测试——系统测试——验收测试——回归测试
(2)从测试形式:黑盒测试——白盒测试——灰盒测试
4、单元测试
(1)概念:RD/QA通过编写代码针对一个一个的函数进行测试
(2)意义:一个 bug 被发现的越早,解决成本越低 . ( 开发中 < 单元测试 < 集成测试 < 上线 ).;另一方面,充分的单元测试有助于加快项目的迭代速度,方便回归测试。
gtest简介
gtest的主要使用者是RD
gtest是业界广泛使用的单元测试框架
gtest的特点:
- gtest需要使用的头文件和宏函数更集中,并支持测试用例的自动注册。
- gtest不要求Python等外部工具。
- gtest更简洁容易上手。
测试宏TEST
1、TEST
- 使用TEST宏来创建一个测试
- TEST宏有两个参数,TEST(testcasename,test_name)
- TEST宏中可以写任何C++的合法语句
- 使用gtest提供的断言(ASSERT和EXPECT来判定测试结果)
2、测试宏
ASSERT_系列:如果检测失败,退出当前测试
EXPECT_系列:如果检测失败,继续往下跑
通过operator<<能够在失败时打印需要的日志
事件机制
“事件”的本质是框架给你提供了一个机会,让你能在这样的几个机会来执行你自定制的代码,来给测试用例准备/清除数据
“机会”分为三组:
- 每个test的开始/结束
- 每个test_case的开始/结束
- 全局的开始/结束