小编热衷于收集整理资源,记录踩坑到爬坑的过程。希望能把自己所学,实际工作中使用的技术、学习方法、心得及踩过的一些坑,记录下来。也希望想做软件测试的你一样,通过我的分享可以少走一些弯路,可以形成一套自己的方法,并应用到实际中。

目录

前言

01开发人员使用java框架错误

02开发人员上线时合并代码有遗漏

03测试人员回归测试不全==漏测

04多系统一起上线,缺少联调或联调不全

结语


前言

对金融软件来说,每一次的线上事故都有可能给公司带来重大的损失,少扣了用户的钱,为公司带来资金方面的亏损;多扣了用户的钱,则为带来不必要的合约或法律纠纷,故测试金融软件不比其他行业的软件,后者线上bug大多不会直接引起资金方面损失,最多就是用户体验不好,功能没有实现,导致用户量的流失。

对金融软件来说没有小bug,一旦出现bug那就是重大的bug,必须引起高度重视。

俗话说”人非圣贤,孰能无过“,软件是由人编写的,所以再所难免都会有问题,而我们所要做就是尽量避免出现问题,或者是避免出现重复的问题

对于软件测试人员来说分析线上BUG是非常好的一个措施,这样可以检测到测试人员在测试过程中哪些地方考虑不周,或没有考虑到,从而可以提醒测试人员下次思考的范围扩大,尽可能地完全覆盖测试范围。

从分析结果的角度出发,线上bug大多都是开发人员和测试人员麻痹大意所导致的,并不是不可避免的。

经过分析得出线上的bug出现的原因基本有以下几类:

1.开发人员使用java框架错误

2.开发人员上线时合并代码不仔细,导致代码有遗漏

3.测试人员回归测试流程不全

4.多系统一起上线,缺少联调或者联调不全

01开发人员使用java框架错误

这个问题已经出现了两次,在8月份就出现过一次,原因就是开发人在使用多线程时,将多例使用成单例,导致系统在高并发进出现了串数据的现象,导致系统在处理时放错款,将A的钱放到B的账户中去了。

虽然使用单例能节省资源,降低系统的占用率,但这种情况并不合适目前的系统。

而此中情况在测试过程中并不一定能测试出来,这种出现的机率不定,必须在数据高并发时才有可能出现。

解决方案:技术问题,将单例修改成多例。

02开发人员上线时合并代码有遗漏

开发人员上线时删除了master中的某行代码,引起有个变量没有定义,导致上线之后某功能失效。

开发人员将git分支上的代码合并到master时,master提示某一行代码没有,开发人员就将分支上的代码删除再合并到master,等将代码上线之后,导致某个功能失效。

解决方案1:开发人员将代码合并到master时,先将master上的代码拉到一个新分支上,然后再将要合并的代码合到新分支上,最终将新分支上的代码合并到master上。

解决方案2:开发人员建立良好的习惯,在开发某个项目时,每天(固定频率)都将master上的代码合并到自己代码的分支上

03测试人员回归测试不全==漏测

说是回归测试不全,其实就是相当于一定程度上的漏测,漏测应该是软件测试人员尽量避免,一般漏测是因为测试人员思考不全,导致某个方面没有测试到。

这次线上bug分析有以下几个问题:

回归测试时,验证某个流程,但只验证到任务创建,就没有执行任务,上线后,该任务创建后执行会报错。

未测试幂等性,上线后,导致两次返回的结果不一样。

开发修改某一个bug,回归测试未回归以前的流程,导致上线后,原来正常的流程执行不通过。

解决方案:

1.回归测试时,主流程必须回归,并且有完整的回归步骤。

2.一个业务流程测试必须跑完一个完整流程。

3.测试过程中一定要细致,不能遗漏重要的点。

软件中的bug不可能完全测试出来,但最不应该出现的就是原本是正确的流程或功能,经过版本改动,在后期又出现,但测试人员再次测试时竟然没有发现,像这种情况是软件测试人员最应该避免的,所以回归测试很重要,不仅要回归主要流程,还需要回归修改bug相关的代码部分。

解决回归测试流程测试不全最好的解决方案就是引入自动化,就目前我们的系统不够成熟,改动太多,业务流程或需求都不稳定,所以自动化测试还未正式引入。

04多系统一起上线,缺少联调或联调不全

因为联调出现问题也不再是一次二次了,为什么联调会出现问题呢?

公司业务是由有多个系统组成的,同时还需要调用其他公司业务接口,测试人员在测试时调用相关系统接口时模拟返回或回调,基本都是使用的mock,mock返回的值并不是真的从相应系统的返回值,所以如果联调测试时没有把握好,就非常容易出现问题。

在测试过程中联调就非常重要,但由于联调测试人员的放松,对联调内容的遗漏,导致业务上线之后:

1.调用某查询任务,对方会一直返回处理中,导致流程卡住。

2.A系统回调B系统失败,原因是编码方式不一样。

3.某系统功能失败后,调用查询接口报错。

4.调用某系统,应返回code=1,结果返回code=0,导致业务处理错误。

以上问题都是由于系统之间的调用或回调导致的线上bug。

解决方案:

1.在联调之前先将自己系统中本次项目所有用例测试完全。

2.编写联调用例,并且与多方测试人员沟通,确保联调用例能全面覆盖业务流程和任务。

3.在联调时,确保所有业务流程是全部走通,且返回的值正确。

联调测试与平时的功能测试重点和关注点都不同:

1.联调测试保证业务流程是通的。

2.联调测试时要检查其他系统返回来的数据是否正确?检查相同数据在各个系统存的值是否相同?

3.检查推送的报文mapping与其他系统接口文档中的mapping是否一致(映射)。

此次线上BUG分析再次验证程序中的bug就是人为的,避免这些情况就需要开发人员在开发过程中多注意,培养良好的编程习惯,而测试人员在测试过程中需要将测试范围考虑完全,尽量避免遗漏测试点,对于不清楚的点,不管是开发还是测试人员,都应该拿出来讨论,切忌闭门造车,不懂装懂。

结语

感谢每一个认真阅读我文章的人!!!

如果下面这些资料用得到的话可以直接拿走:

1、自学开发或者测试必备的完整项目源码与环境

2、测试工作中所有模板(测试计划、测试用例、测试报告等)

3、软件测试经典面试题

4、Python/Java自动化测试实战.pdf

5、Jmeter/postman接口测试全套视频获取

6、Python学习路线图

​重点:配套学习资料和视频教学

那么在这里我也精心准备了上述大纲的详细资料包含:电子书,简历模块,各种工作模板,面试宝典,自学项目等。以上软件测试资料需要的可以斯❤我都可以免费获取

测试金融软件出现线上bug的原因及解决方法相关推荐

  1. xp路由器播放服务器无响应,xp系统连不上路由器的原因及解决方法

    路由器是互联网络的枢纽,"交通警察,在生活和办公中都随处可见了.在笔记本xp系统中遇到连不上路由器的问题,这样就没办法上网了,怎么回事呢?一是软件原因,二是硬件原因,遇到xp系统连不上路由器 ...

  2. php 绝对刷新,vue项目线上页面刷新报404 解决方法(绝对有用)

    在上线vue开发的前端网页上线后,刷新页面报404错误,因为网页上显示的是静态绝对路径,实际上服务器上是没有改路径的所以刷新汇报错误. 1.vue框架中解决404 vue router  mode 默 ...

  3. 无法定位程序输入点,于动态链接库xxx上的可能原因及解决方法

      启动自己编译生成的cloudcompare.exe的时候,报错说无法定位程序输入点,如下图所示:   其原因可能有两个,一个是找不到依赖的某些dll,另一个是有些依赖库存在版本冲突.在我这里是由于 ...

  4. 苹果11蓝牙配对不成功怎么办_iphone11连接不上蓝牙的原因及解决方法

    有网友反映新买的iphone11手机蓝牙连接设备后播放音乐信号断断续续,相信很多iPhone 11用户都出现了蓝牙连接不稳定的问题,其中包括拒绝配对.来电自动断开等问题,那么遇到这些问题该怎么解决呢? ...

  5. 线上BUG 处理并分析原因

    昨天下午大神把组内几十号人召集在一起开Online bug分析大会,主要是针对近期线上事故从事故原因和解决方案两个维度来分析 对金融软件来说,每一次的线上事故都有可能给公司带来重大的损失,少扣了用户的 ...

  6. 软件测试面试中关于线上bug,线上出现bug测试人员怎么办

    常在河边走,哪能不湿鞋,即使测试在工作中已经小心再小心了,但有时还是可能会出现线上问题,真是个悲伤的故事,然而纵然悲伤也需要有个结局,那么项目上线出现bug,测试人员该肿么办呢? 首先要做的是重现这个 ...

  7. 走完线上 BUG 定位最后一公里

    简介:因为线上线下环境隔离的问题,线上的输入很多时候难以在日常环境中构造,定位 bug 效率低下.是否有简单快捷的办法呢? 一个小故事 周末12点的闹钟在回龙观均价3000的出租屋急促的响起,程序员小 ...

  8. 听说”双11”是这么解决线上bug的

    听说"双11"是这么解决线上bug的 --Android线上热修复的使用与原理 预备知识和开发环境 Android NDK编程 AndFix浅析 Android线上热修复的原理大同 ...

  9. app线上推广的四种主流方法

    app推广渠道从形式上分为:线上推广和线下推广.关于线下推广,只要大家用心观察周围,就能发现.这里,小编根据自己的经验,分析总结了4种主流的线上推广的渠道平台及方法. 一.应用市场推广 1.app应用 ...

最新文章

  1. sqlserver2000分页存储过程(原创)
  2. 并查集(Union-Find-Set)简洁而高效地处理连通分量的查询与合并
  3. C++阶段01笔记01【C++初识(第一个C++程序、注释、变量、常量、关键字、标识符命名规则)】
  4. 单点登录原理与简单实现【转载】
  5. 配置svn支持http协议访问
  6. spring+hibernate中clob、blob字段的处理方法
  7. centos6.5 安装svn可视化管理工具 if.svnadmin
  8. 苹果Macbook快捷键使用大全
  9. fseek函数c语言_使用示例的C语言中的fseek()函数
  10. 【Excel】数据的输入
  11. 三月的雨季给我带来了希望
  12. Elasticsearch:创建属于自己的 Ingest processor
  13. bat写暴力破解系统密码
  14. C语言实现总体方差,总体标准差,样本方差,样本标准差
  15. 从今日头条抄袭到京东水逆,为何互联网公司人设会接连崩塌?
  16. 图的最小生成树算法实现(Prim + Kruskal)
  17. 漏洞深度分析|Thinkphp 多语言 RCE
  18. 快速获取容器VIPs,解决集群自动化测试难题
  19. 博聊论坛:每日会员免费体育竞猜有奖活动(7月20日第八十四期)
  20. solidworks正版软件价格是多少呢?2020年获得solidworks正版软件报价的方法

热门文章

  1. NBA不拘一格,花大虫入选名人堂
  2. 同方威视与清华大学联合开展人才交流与培养系列活动
  3. 网站seo优化方法有哪些?
  4. arduino 休眠 节能_认识与实验Arduino的睡眠模式
  5. Java中的poi是什么_java poi介绍
  6. 树莓派控制局域网内笔记本电脑开关机
  7. 漫画 | 为什么中国没有搞出浏览器引擎?
  8. 该怎么入门学习粤嵌单片机培训?
  9. android app中如何获取电源锁保持屏幕常亮
  10. YonBuilder前端框架MDF介绍