大家好,我是陈哥。
不知道大家有没有听过端到端测试?
每个软件都应该进行端到端测试,以确保其按规定运行。这种测试方法建立了对系统的信心,并帮助开发团队确定软件是否已准备好进行生产部署。
在本文,我给大家简单分享一下端到端测试是什么,为什么它很重要,以及如何在软件项目中有效地实现它。
1.先搞懂,什么是端到端测试?
端到端测试的核心,是从最终用户视角出发,验证软件各模块在真实场景下能够正常运行,确保整体功能符合用户使用预期。
举个大家都熟悉的例子,线上订电影票。你打开小程序/APP搜电影,选影院、选位置,点提交订单,最后付款拿到预订凭证。这一套流程走下来,就是一次端到端测试要覆盖的。
这么测不仅能看出来订影票这个功能全不全,还能直观感受到用户体验怎么样。比如填信息时会不会老跳转,支付页面会不会加载半天,后续也有优化的方向。
在实际操作时,大家可以在禅道软件中先设计测试用例,这些用例就得照着真实用户的操作流程来做。
跑一遍全流程测试,既能精准找到软件哪里出了岔子,还能在上线前把那些藏得深的问题揪出来解决掉,避免软件真推到生产环境了,用户用的时候出麻烦。
一般情况下,端到端测试会在功能测试、系统测试之后,软件的主要版本发布前完成。
大家可以按照70/20/10来划分,也就是70%的单元测试、20%的集成测试和10%的端到端测试。具体的组合可能因每个团队而异,但通常应保持金字塔的形状。
2.端到端测试的不同阶段
我把端到端测试拆为三个阶段:规划、测试、收尾,接下来我们会逐一了解这些阶段。
(1)规划:把测什么想明白
规划没做好,后面测试很容易“东一榔头、西一棒槌”,我们要考虑以下3点:
- 了解业务和功能需求
一个网购APP,用户从搜商品到确认收获的全流程里,我们不仅要知道哪些步骤是关键、哪些环节容易出问题,还要明白优惠券怎么叠加、退款流程怎么走等。后续,设计用例才不会偏。
- 根据需求制定测试计划
这里可以写清楚测试目标、测试节点、所需资源等,有了计划,大家做事才有方向。
- 设计贴合用户场景的测试用例
设计用例时,一定要站在用户角度想:“如果我是用户,这一步我会怎么操作?我关心什么?”
给大家看一个例子,这就是一个个典型的测试网购APP软件的全流程:
(2)测试:先准备再执行
测试阶段可分两步走:先决条件和测试执行。
【先决条件】
在此阶段,我们要确保:
- 所有功能开发都应该完成;
- 应用程序的所有子模块和组件都应该集成在一起,并作为一个系统正常工作;
- 应用程序中所有相关子系统的系统测试都已经完成;
- 设计用于复制生产设置的暂存环境应完全可操作。这种环境使我们能够模拟现实世界的场景,并有效地再现类似生产的条件。
完成先决条件后,我们可以继续进行测试执行阶段。
【测试执行】
在这个阶段,测试团队应该:
- 执行测试用例;
- 测试失败时报告错误;
- 修复错误后重新测试;
- 重新运行所有端到端测试,以确保所有测试都按预期工作。
端到端测试可以手动执行,也可以在CI/CD中使用自动化执行。比较推荐自动化执行端到端测试,因为这会为测试团队节省了时间和精力,同时确保在最短的时间内获得高质量的结果。
(3)收尾:做好总结
测试执行完并不意味着结束,收尾阶段也很重要。测试人员在测试完成后,可以在禅道中生成测试报告,包含报告详情、测试范围、测试轮次、关联的用例等。
通过测试报告,项目团队可以分析测试结果,识别潜在的质量问题和风险,为后续的开发和测试提供依据。
有些团队觉得:“单元测试和集成测试都做过了,没必要再做端到端测试了吧。”
这其实是一个误区。单元测试和集成测试解决的是局部问题,而端到端测试解决的是用户实际使用时的问题。
所以说,端到端测试不是多此一举,而是一种全面把关的测试方法。
希望我的分享可以帮助到你,也欢迎给我留言与我讨论。
*参考文章:Faisal Khatri,What Is End-to-End Testing?
