《Web测试囧事》——3.3 前后台分离测试时需要注意测试隔离

简介:

本节书摘来自华章计算机《Web测试囧事》一书中的第3章,第3.3节,作者 黄勇 雷辉 徐潇 杨雪敏,更多章节内容可以访问云栖社区“华章计算机”公众号查看。

3.3 前后台分离测试时需要注意测试隔离

小蔡测试的产品最近需要更新前后台。对于前台来说,要从之前的JavaScript转换成Angular等新技术,显示样式也要从前几年的拟物化风格转换为扁平化风格;对于后台来说,要从之前和公司内部其他产品通用的6套后台模块系统架构,转换成只包含数据库和后端服务器的2套模块系统架构,而且后台技术要用Node.js重写,如图3-5所示。

基本上这个前后台替换的任务,把整个系统都进行了替换,只是仍然保留了之前的功能。进行前后台替换的任务时间紧,所以整个项目组的开发人员被分成了两个小组,分别负责前后台的替换,每个组又临时扩充了不少别的团队的人进行协助。而测试人员,包括小蔡,还是负责整个项目的测试工作。

image

在替换项目准备启动阶段,两个小组都认为只要自己做自己的部分,保证原有功能的正常就可以了,两个团队并不需要过多的交流和沟通,一切以之前的系统为准。

然而项目一开始,双方团队就遇到了不少问题。

首先,两个组对同一功能前后台开发的优先级不同,造成进度不一致,导致有些模块的前后台功能不能同一时间完成。这就阻碍了集成测试的实施,让进度一拖再拖。为了减少这种情况,项目组又搭建了单独的包含以前系统后台和替换项目中前台的环境。虽然这解决了部分测试延误的问题,但是开发人员花费了不少时间来搭建环境,而且在这个环境测试完成之后,还需要在整套替换前后台的环境上再次进行集成测试。

其次,测试人员在前台发现问题时,并不能准确定位是前台团队造成的,还是后台团队引入的。而且由于不熟悉对方团队编写代码,开发人员也需要花费不少时间才能定位问题真正的原因。

整个项目组发现这两个问题耗费的时间过长,所以讨论并执行了一套方案来解决这两个问题:使用Mock服务器进行测试。

前后台团队根据定义好的API,各自编写Mock服务器,便于开发人员进行开发,和测试人员测试相对独立的模块,也大大简化了测试环境和测试执行的复杂度。具体来说,就是前台团队根据API的定义,编写Mock服务器来模拟后台数据库和服务器的返回;而后台团队根据API的定义,编写Mock服务器来模拟前台服务器的请求和预期结果,如图3-6所示。

image

使用Mock服务器进行测试,大大简化了测试复杂度,从测试环境上也隔离了前后台的测试,加快了测试进度。

在进一步的使用中,小蔡发现有时API接口定义的修改在前后台没有及时同步,造成了单独测试前台或者后台时没有问题,但是在进行集成时,却发生了严重的不一致。

还好小蔡之前定期跟踪测试趋势时,从ThoughtWorks技术雷达(technology radar)上了解到契约测试就是针对这种场景的一种测试方法,而且还有不少进行契约测试的工具。

简单说来,契约测试就是同时对前后台都进行了Mock,使它们随时都使用的是一致的API接口定义,也只需要维护单一的API接口。使用契约测试的工具能快速实现前后台的分离,同时保证它们的一致性,如图3-7所示。

小蔡在项目组讨论改进时提出了这个测试实践,大家都很支持,并且马上制定计划进行试验。在整个项目组尝试了一周之后,整个项目组将契约测试作为团队内很重要的实践进行推广和执行。

image

image
image
image
image
image

相关文章
|
1月前
|
安全 测试技术 网络安全
如何在Python Web开发中进行安全测试?
如何在Python Web开发中进行安全测试?
|
1月前
|
安全 关系型数据库 测试技术
学习Python Web开发的安全测试需要具备哪些知识?
学习Python Web开发的安全测试需要具备哪些知识?
34 4
|
2月前
|
Web App开发 前端开发 JavaScript
探索Python科学计算的边界:利用Selenium进行Web应用性能测试与优化
【10月更文挑战第6天】随着互联网技术的发展,Web应用程序已经成为人们日常生活和工作中不可或缺的一部分。这些应用不仅需要提供丰富的功能,还必须具备良好的性能表现以保证用户体验。性能测试是确保Web应用能够快速响应用户请求并处理大量并发访问的关键步骤之一。本文将探讨如何使用Python结合Selenium来进行Web应用的性能测试,并通过实际代码示例展示如何识别瓶颈及优化应用。
150 5
|
19天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE:Web自动化测试的利器。作为开源工具,Selenium IDE支持录制与回放用户操作,适用于Chrome、Firefox等多浏览器,简化了测试流程,提升了效率,降低了自动化测试的门槛。它还支持导出多种编程语言的脚本,便于测试集成与复用。
71 19
Selenium IDE:Web自动化测试的得力助手
|
21天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
127 17
Selenium:强大的 Web 自动化测试工具
|
20天前
|
Web App开发 IDE JavaScript
Selenium IDE:Web自动化测试的得力助手
Selenium IDE是开源的Web自动化测试工具,适用于Chrome、Firefox等多款浏览器。它提供简单的录制与回放功能,用户可通过录制浏览器操作自动生成测试脚本,支持导出为多种编程语言,便于非专业测试人员快速上手,有效提升测试效率与质量。
157 6
Selenium IDE:Web自动化测试的得力助手
|
1月前
|
监控 安全 测试技术
如何在实际项目中应用Python Web开发的安全测试知识?
如何在实际项目中应用Python Web开发的安全测试知识?
32 4
|
1月前
|
Web App开发 测试技术 数据安全/隐私保护
自动化测试的魔法:使用Python进行Web应用测试
【10月更文挑战第32天】本文将带你走进自动化测试的世界,通过Python和Selenium库的力量,展示如何轻松对Web应用进行自动化测试。我们将一起探索编写简单而强大的测试脚本的秘诀,并理解如何利用这些脚本来确保我们的软件质量。无论你是测试新手还是希望提升自动化测试技能的开发者,这篇文章都将为你打开一扇门,让你看到自动化测试不仅可行,而且充满乐趣。
|
1月前
|
Web App开发 设计模式 JavaScript
自动化测试之美:如何利用Selenium实现Web应用的高效测试
【10月更文挑战第29天】在软件开发的世界中,测试是确保产品质量的关键步骤。本文将带你了解如何使用Selenium这一强大的自动化测试工具,提高Web应用测试的效率和准确性。通过实际案例,我们将探索Selenium的核心功能及其在现代软件开发中的应用,旨在帮助读者掌握自动化测试的精髓,从而提升软件测试工作的整体效能。
53 0
|
2月前
|
安全 Linux Shell
Kali渗透测试:使用Metasploit对Web应用的攻击
Kali渗透测试:使用Metasploit对Web应用的攻击
159 4