测试分类
测试基本分为以下几个方面:
- 功能测试
- 性能测试
- 安全测试
- 数据质量
- 浏览器兼容
- 增量测试
- 回归测试
我们先了解测试金字塔:
- 最底层是单元测试,然后是业务逻辑(API)测试,最后是UI测试(端到端、GUI或CLI)。
- 越往上,测试的速度就越慢,开发成本越高。
1 功能测试
UI层测试:
- E2E(端到端)测试
- Component Test
- Unit Test
Service层测试
- API INT Test
- API Contract Test
- API(Component) Test
API测试分同步(Http)和异步(Message Queue)
Unit层测试
- Unit Test
功能测试除此之外,还有边界测试:每个HTTP接口/消息传递接口需要有边界要求 。
比如:在一个购物车里面最多能下几个订单?
2 性能测试
UI层测试
- Page Loading Test
Service层测试
- Backend Performance Test
3 安全测试
UI层测试:
- SAST-静态应用程序安全测试(开发阶段对源代码进行扫描从而发现安全漏洞)
Service层测试:
- DAST-动态应用程序安全测试(黑盒测试,测试Web应用程序的功能)
Unit 层测试:
- IAST-交互式应用程序安全测试
- SAST-静态应用程序安全测试
4 数据质量
- 验证数据流中的数据完整性
- 验证跨不同源同步的数据
- 代码前验证,纯数据验证需求
5 浏览器兼容
- 跨浏览器: Firefox, Chrome, Edge, Safari
- 跨浏览器版本
6 增量测试
测试新用户描述或缺陷修复
- 自动化Unit Test, Contract Test, API Test(Local env, TDD)
- 自动化INT, E2E Test(INT env)
- 手动探索性测试(INT env,测试未知)
7 回归测试
测试侧面的影响。系统的和强制的回归测试对于生产中的系统是至关重要的。
- 核心End2end回归测试用例(面向业务)
- 完全回归:所有的Unit Tests, API tests, Contract tests, INT Tests, E2E tests
- 基于手动影响的回归作为补充
测试可能会使用的工具
- Static Code Analysis: SonarQube
- E2E: Sahi + APIBOT, RobotFramework,
- API: APIBOT
- Contract: Pact / Spring Contract
- Unit Test:
- Java: Junit, Mockito, Jacoco, etc.
- JavaScript: Karma, Mocha, Istanbul, etc.
- Data Quality: DATABOT
- Security:
- SAST: SonarQube
- IAST: Contrast Access
- DAST: AppScan
- RASP: OpenRASP