为什么测试环境测试通过,线上还会有bug?

1.不同版本的数据兼容

一般新版本的迭代不仅仅是代码层面的,还有数据库的改动,而对于线上的数据来说,数据库结构改动,会导致线上数据在新版本的代码不兼容;

解决办法:测试阶段尽可能分析受影响的数据和要回归的功能点,对于新增字段等,需要提醒研发批量订正线上数据或在代码里加异常处理逻辑

2.测试环境和正式环境的不同

硬件方面的,一般正式环境的服务器都比测试环境来的好,所以硬件上不太可能一致,虽然这个差异影响比较小,但也不排除会影响程序的运行。eg:测试环境资源有限,运行慢,程序A执行完,正好程序B可以run;正式环境,资源相对好,运行很快,程序A处理2的时候,程序B才处理完1,导致运行有问题;  

软件方面的,包括程序语言的版本,服务器系统的版本,甚至服务器的权限控制都会影响到程序的运行。 

解决办法:硬件考虑代码依赖关系;软件考虑测试和生产的版本等尽可能保持一致; 

3.服务器的配置

配置信息:路径啥的;某个功能的开关:又或者是服务器ip的配置等等

而这些都是相对于测试环境配置的,如果发布的时候将配置文件覆盖也会导致正式环境出问题。

解决办法:配置信息走审批流,测试人员可以做上线前的check

4.其他

正式环境多台服务器有一台服务器代码未更新,导致问题时隐时现。   

数据库的主备数据不一致,当切换主备数据库后会出问题。 

 

猜你喜欢

转载自blog.csdn.net/Strive_0902/article/details/129264181