端到端测试
可以说最有价值的测试是端到端 (E2E) 测试。E2E 测试模拟整个软件产品堆栈中的用户级体验。E2E 测试计划通常涵盖用户级别的故事,例如:“用户可以登录”“用户可以存款”“用户可以更改电子邮件设置”。这些测试对于实施非常有价值,因为它们可以保证真实用户拥有流畅的无错误体验,即使在推送新提交时也是如此。
E2E 测试工具捕获并重放用户操作,因此 E2E 测试计划随后成为关键用户体验流程的记录。如果软件产品缺乏任何类型的自动化测试覆盖率,那么通过对最关键的业务流实施端到端测试,它将获得最大的价值。E2E 测试在捕获和记录用户流序列之前可能会很昂贵。如果软件产品没有进行快速的每日发布,那么让人工团队通过 E2E 测试计划手动执行会更经济。
单元测试
顾名思义,单元测试涵盖单个代码单元。代码单元最好在函数定义中度量。单元测试将涵盖单个功能。单元测试将断言函数的预期输入与预期输出匹配。具有敏感计算的代码(因为它可能与金融、医疗保健或航空航天有关)最好由单元测试覆盖。单元测试成本低、实施速度快,并提供高投资回报。
集成测试
很多时候,一个代码单元会对第三方服务进行外部调用。正在测试的主要代码库将无法访问此 3rd 方实用程序的代码。集成测试处理模拟这些 3rd 方依赖项并断言与它们交互的代码按预期运行。
集成测试在编写方式和工具方面类似于单元测试。集成测试可以作为 E2E 测试的廉价替代方案,但是,当单元测试和 E2E 的组合已经到位时,投资回报是有争议的。
性能测试
在软件开发的上下文中使用时,“性能”用于描述软件项目反应的速度和响应能力。性能指标的一些示例是:“页面加载时间”、“首次呈现时间”、“搜索结果响应时间”。软件性能测试为这些示例案例创建测量和断言。自动化性能测试将跨这些指标运行测试用例,然后提醒团队注意任何回归或速度损失。