今天我们来聊聊测试。
测试的本质是检测软件的质量,寻找潜在的 bug。
测试不应仅仅是测试团队的职责,开发团队也应具有测试思维并自行写测试,对生产环境怀抱敬畏之心。
测试团队也不应满足于前端人工测试,而是应该在自动化、覆盖率和深入理解需求上下功夫。
下图中展示了 9 种常用的测试方法。
图片
烟雾测试
在 API 开发完成后进行。只需验证 API 是否正常工作,没有任何调用不通的故障。
功能测试
根据功能需求创建测试计划,并将结果与预期结果进行比较。一般来说,功能测试覆盖一些细粒度的功能模块,可以是一个 API 调用或几个 API 调用。
集成测试
该测试联合多个 API 调用来执行端到端测试。这种测试包含了服务内通信和数据传输,以及各个模块间的互动,很容易暴露在并发下的设计问题。
回归测试
此测试确保修复错误或上线新功能不会破坏其他 API 的现有行为。
负载测试
通过模拟不同的负载来测试应用程序的性能。然后我们可以计算该应用程序的容量。
压力测试
我们故意为 API 创建高负载,测试 API 是否能够正常运行。
安全测试
针对所有可能的外部威胁测试 API。比如,服务是否可以承受 DDoS 攻击,前端输入框是否可以进行 SQL 注入攻击。这个方面有不少安全扫描工具可以用。也可以定期关注 OWASP (Open Web Application Security Project) 发布的文档来有针对性地进行测试。
用户界面测试
此测试用户界面与 API 的交互,以确保数据能够正常显示。
模糊测试
将无效或意外输入数据注入 API,并尝试使 API 崩溃。通过这种方式,可以识别 API 漏洞。