当前位置:编程学习 > JAVA >>

定位问题的若干小方法

1.使用log打印感兴趣的相关信息。

 


2.打印方法的调用栈

 

[java]
package com.jue.test; 
 
public class TestMain { 
 
    public static void main(String[] args) { 
        test(); 
    } 
 
    private static void test() { 
        System.out.println("test start"); 
        new Exception().printStackTrace(); 
        System.out.println("test end"); 
    } 
 

package com.jue.test;

public class TestMain {

 public static void main(String[] args) {
  test();
 }

 private static void test() {
  System.out.println("test start");
  new Exception().printStackTrace();
  System.out.println("test end");
 }

}

3.折半查找

对于一个问题发生的以后,可以把认为可以的代码全部屏蔽掉,再进行测试,看是否正常,正常说明A,否则说明B


屏蔽的代码并不是问题产生的地方,需要考虑其他地方。

屏蔽的代码正是存在问题的地方,可以通过折半查找的方法,递归找到原因。

4.一个新的demo测试

在一个比较大的工程里,发现一个功能不好用的时候,可以单独写一个demo,demo的意义在于:


干净(这个demo中只有我们感兴趣的部分,减少了其他影响它的因素,能够更好更针对性的发现问题)

测试调试更方便(小的demo,处理起来更有效率)

5.历史回归

对于一个之前没有存在的问题,可以选择恢复历史版本,再进行查找测试,直到找到问题所在。

 


6.借助于工具

有很多很专业的不同的度量的工具,可以很方便的帮助查到问题。(如memory leak,可以使用mat帮助分析,可以通过debug工具进行debug调试)

 


7.出去走走

出去走走,放松一下也有助于问题的分析。

 


8.背景改变定位

对于一个 问题,诸如UI,当 发现对属性的更改总是没有效果的时候,可以考虑改变这个UI的背景颜色,首先需要具体确定下,这个UI是否是我们正在修改的对象,我们也可以对一些UI赋予不同的颜色,从而观测他们的存在与否,他们的大小尺寸,以及变化情况。

 


9.借助网络

专业社区,看有无雷同问题。

 


10.请教同事

同事可能:


遇到过类似问题,这个最好。

同事的技术不错,深入思考,得出结论,这个也很好。

同事局外人,思考的方式可能与自己长时间思考的不同,也许可以精确的定位到问题。

11.理清思路


这是什么东西

这个东西能干什么

这个东西是怎样干的

12.注意一些异常的场景

当问题的发生的时候,注意是否有一些其他的异常场景,这些异常场景也许就是问题的关键。

 

 

 

 

补充:软件开发 , Java ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,