zoukankan      html  css  js  c++  java
  • Bug解决案例2

      最近测试人员反映项目中的调课管理功能出现了并发的问题,需要我解决一下。拿到问题,我先大致看了看代码,关键页面的后台代码竟然有1000+行。看来把代码熟悉一遍都得花费一天左右的时间。这时想要又快又好的解决问题,就必须动脑筋了,这是我这次解决问题的步骤,自己以后遇到类似问题也可以借鉴。

      1、观察问题。测试人员反映的问题也许并不全面,很多情况下是不专业的。把代码和页面功能大致看了一下,直觉告诉我不大可能是并发的问题。

      2、重现问题。我觉得这是解决方案中,最最重要的一个环节,如果一个问题能够在测试环境中重现,那么这个问题基本就算解决了。我用多浏览器模仿多用户操作,哪怕是先后操作,也会出现测试人员反映的问题。这就说明问题的产生不是由于并发,而是代码层面的问题。

      3、发现问题。如果省去前两步,漫无目的地去发现问题可能会非常耗时,碰对问题的纪律很小。而如果是带着问题去找问题,就快的多。结合前面两步,我有了一些判断:代码量大,而且功能的实现集中在一个后台页面中,也就说明功能的实现已经耦合性很高了,我最好不要改动任何代码;排除了并发问题,那是什么原因造成两个用户之间的数据互相影响呢,我开始搜索关键字,如Applacation、Session这些变量,但没有发现问题;最后,关注点集中在了页面中申明的几个static变量,觉得这个可能是解决问题的关键。百度了一下后,发现在BS中所有访问的用户都共用一个static变量的

      4、前车之鉴。当一个黄页报错,或者一处关键代码的问题,如果我们对提示的语句或者需要的技术并不是十分清楚,我们可以借助百度等搜索平台,输入错误提示语句,然后看看结果,因为大多情况我们不是第一吃螃蟹的人,我们遇到的问题网上早就有人遇到过了,看他们怎么说。根据他们的意见结合自己的认识,我相信问题很快就可以解决了,效率的确高了不少。

  • 相关阅读:
    二分排序之三行代码
    最短路径—Floyd算法
    最小生成树 Kruskal算法
    最小生成树-Prim算法
    最短路径之迪杰斯特拉(Dijkstra)算法
    C函数指针
    Linux进程的实际用户ID和有效用户ID
    C++ 之Boost 实用工具类及简单使用
    ELK之消息队列选择redis_kafka_rabbitmq
    Python文件操作
  • 原文地址:https://www.cnblogs.com/ccweb/p/2981964.html
Copyright © 2011-2022 走看看