《Web测试囧事》——2.4 基础代码的改动影响到了其他相关产品,造成程序出错

简介:

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

2.4 基础代码的改动影响到了其他相关产品,造成程序出错

小蔡所在的项目组收到代理商a和代理商c的投诉:最近的一次版本上线后,这些代理商的官网持续崩溃无法访问。现已将新版本回退,等待解决问题后重新上线。另外一家代理商b并没有反馈说碰到这个问题。

收到投诉后,小蔡第一时间想到的就是尝试在生产环境中复现问题。然而经过多次尝试,她并没有能够复现出问题来, 测试环境中一切正常。

既然测试环境中不能重现出来,那我们就只有通过查看日志定位问题了。小蔡找运维同事拿到生产环境监控日志,发现日志内容的异常提示信息为:找不到文件“在线聊天xxx……”。

从日志信息上看,这个异常内容跟前几天代理商b提出来的定制需求“在官网上增加一个在线咨询客服的功能”有关系。可是这个需求只是代理商b提出来的,代理商a和c又不会去用,怎么会在他们的网站上也报这样的错误呢?

小蔡一拍脑门,回想起公司使用的是同一套基础代码+不同代理商定制化的方式来制作和运营网站(见图2-5)。

image

从这个特点来看,如果三个代理商子网站都出现了相同的功能,那么很可能是开发人员把代理商b的需求写到了父网站中,然后所有的子网站都继承了这个特性。

按照这个思路想下去,小蔡找到开发人员以查看代码,发现问题的原因果然如此:开发人员在开发这个功能的时候因为考虑到将来代理商a和c都可能提出相同的需求,所以就把这个功能的代码写到了父网站中,并且没有加上控制器来控制这个功能只会出现在代理商b的网站上。

同时小蔡也总结了下, 之所以把这个Bug流出到生产环境,第一是测试策略中测试环境搭建的标准不对,应该和生产环境保持一致,每次发布基础代码后对三个代理商官网都进行部署;第二是没有对代理商a和c的官网做回归测试,测试覆盖率不够。

改进这两点的同时,小蔡建议开发人员对为代理商b开发的在线咨询客服功能增加特性开关(feature toggle),并且默认为关闭状态。这样默认情况下,a、b、c三个代理商都看不到该功能模块,但是代理商b可以通过修改开关状态后使用该功能模块,如果以后其他两个代理商也想使用这个功能,直接打开这个开关就可以了。

image
image
image

相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
Java 关系型数据库 数据库连接
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
Mybatis+MySQL动态分页查询数据经典案例(含代码以及测试)
26 1
|
1月前
|
缓存 关系型数据库 API
后端开发:构建高效、可扩展的Web应用程序的关键
后端开发:构建高效、可扩展的Web应用程序的关键
21 0
|
3天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
11 6
|
7天前
|
SQL 安全 Go
如何在 Python 中进行 Web 应用程序的安全性管理,例如防止 SQL 注入?
在Python Web开发中,确保应用安全至关重要,主要防范SQL注入、XSS和CSRF攻击。措施包括:使用参数化查询或ORM防止SQL注入;过滤与转义用户输入抵御XSS;添加CSRF令牌抵挡CSRF;启用HTTPS保障数据传输安全;实现强身份验证和授权系统;智能处理错误信息;定期更新及审计以修复漏洞;严格输入验证;并培训开发者提升安全意识。持续关注和改进是保证安全的关键。
16 0
|
14天前
|
云安全 数据采集 安全
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
阿里云提供两种关键安全产品:Web应用防火墙和云防火墙。Web应用防火墙专注网站安全,防护Web攻击、CC攻击和Bot防御,具备流量管理、大数据防御能力和简易部署。云防火墙是SaaS化的网络边界防护,管理南北向和东西向流量,提供访问控制、入侵防御和流量可视化。两者结合可实现全面的网络和应用安全。
阿里云安全产品,Web应用防火墙与云防火墙产品各自作用简介
|
16天前
|
算法 安全 Java
java代码 实现AES_CMAC 算法测试
该代码实现了一个AES-CMAC算法的简单测试,使用Bouncy Castle作为安全提供者。静态变量K定义了固定密钥。`Aes_Cmac`函数接受密钥和消息,返回AES-CMAC生成的MAC值。在`main`方法中,程序对给定的消息进行AES-CMAC加密,然后模拟接收ECU的加密结果并进行比较。如果两者匹配,输出"验证成功",否则输出"验证失败"。辅助方法包括将字节转为16进制字符串和将16进制字符串转为字节。
|
26天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
14 4
|
1月前
|
缓存 运维 Serverless
应用研发平台EMAS产品常见问题之测试检查更新没有反应如何解决
应用研发平台EMAS(Enterprise Mobile Application Service)是阿里云提供的一个全栈移动应用开发平台,集成了应用开发、测试、部署、监控和运营服务;本合集旨在总结EMAS产品在应用开发和运维过程中的常见问题及解决方案,助力开发者和企业高效解决技术难题,加速移动应用的上线和稳定运行。
|
1月前
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
javaWeb服务详解(含源代码,测试通过,注释) ——web.xml
7 0
|
1月前
|
测试技术 数据库 Python
python测试代码(二)
python测试代码(二)
19 0

热门文章

最新文章