Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2454241
  • 博文数量: 328
  • 博客积分: 4302
  • 博客等级: 上校
  • 技术积分: 5486
  • 用 户 组: 普通用户
  • 注册时间: 2010-07-01 11:14
个人简介

悲剧,绝对的悲剧,悲剧中的悲剧。

文章分类

全部博文(328)

文章存档

2017年(6)

2016年(18)

2015年(28)

2014年(73)

2013年(62)

2012年(58)

2011年(55)

2010年(28)

分类: Python/Ruby

2013-06-11 18:18:11

网上有很多缺陷报告库可供开发者使用,如果我们需要针对这些缺陷进行深层次的分析,就需要把这些缺陷信息收集起来。Bicho就是一个这种工具,他是基于python语言开发的。

1. 安装Bicho

Bicho的安装是一个比较复杂的工作,一些依赖的工具在安装过程中可能会遇到很多麻烦。这里的环境是Ubuntu 10.04 LTS i686

1.1 安装Python

略,python的版本要高于2.4
# python --version
Python 2.6.5

1.2 安装Storm

  1. # ls storm-0.19
  2. build NEWS README storm.egg-info
  3. LICENSE PKG-INFO setup.cfg test
  4. Makefile python2.6-dev_2.6.5-1ubuntu6.1_i386.deb setup.py tests
  5. MANIFEST.in python-dev_2.6.5-0ubuntu1_all.deb storm TODO
  6. $ sudo apt-get install python-mysqldb python-psycopg2 mysql-server postgresql build-essential

  7. $ sudu python setup.py install
如果这里出现“gcc”错误以及“fatal error: Python.h: No such file or directory”,需要安装python-dev

1.3 安装BeautifulSoup

  1. # ls ../BeautifulSoup-3.2.1/
  2. BeautifulSoup.py BeautifulSoupTests.py build setup.py
  3. BeautifulSoup.pyc BeautifulSoupTests.pyc PKG-INFO

1.4 安装bicho

  1. # ls bicho-0.9/
  2. AUTHORS Bicho build config.sample doc README
  3. bicho bin ChangeLog COPYING NEWS setup.py

  4. # python setup.py install

2. 使用bicho

2.1 配置mysql数据库

mysql> CREATE DATABASE bicho_jboss CHARACTER SET utf8;

2.2 启动bicho

关于bicho的使用方法可以参考README,以及bicho --help。Bicho可以分析多种缺陷库,包括Bugzilla,sourceforge.net,JIRA等。
需要注意的是,要设置适当的延迟(-d 15),否则可能会被网站禁掉。
  1. # python -m pdb bicho --db-user-out=root --db-password-out=root --db-database-out=bicho_jboss -d 15 jira https://issues.jboss.org/browse/JBAS -g

  2. or

  3. # bicho --db-user-out=root --db-password-out=root --db-database-out=bicho_jboss -d 15 jira https://issues.jboss.org/browse/JBAS

3. 问题

在实验的过程中,问题总是不能避免的,最多的问题出在版本的不一致上。
在分析Jira缺陷库的时候,发现代码里面明确表明是"4.1.2",然而要分析的Jira是“5.2.9”的,然后分析的过程中就报出如下错误。
TypeError: "'NoneType' object is not callable"

在对代码进行跟踪调试后发现,问题出在一处html处理上:

  1. Num Type Disp Enb Where
  2. 1 breakpoint keep yes at /home/.ddt/ddt/workspace/bicho/bicho-0.9/Bicho/backends/jira.py:766
  3.         breakpoint already hit 4 times
  4. 2 breakpoint keep yes at /home/.ddt/ddt/workspace/bicho/bicho-0.9/Bicho/backends/jira.py:337
  5.         breakpoint already hit 4 times
  6. 3 breakpoint keep yes at /usr/lib/python2.6/xml/sax/xmlreader.py:107
  7. 4 breakpoint keep yes at /usr/lib/python2.6/xml/sax/expatreader.py:207

  8. # vi bicho-0.9/Bicho/backends/jira.py
  9.             if change_author == None:
  10.                 break
  11.             author = People(change_author.contents[2].contents[0].strip())
  12.             date = parse(change_author.contents[4].contents[0].contents[0]).replace(tzinfo=None)
在jira.py的337,338行,标签的嵌套层数发生了改变,导致代码执行错误,改了之后就好了。
阅读(2255) | 评论(3) | 转发(0) |
给主人留下些什么吧!~~

huaius2015-11-19 11:32:51

ncut_liu:你好~!
     很冒昧的打扰到你,想请教一下bicho这个软件怎么用,在哪里可以找到bicho这个软件的使用方法?

github 上面有较为系统的介绍,以及下载 https://github.com/MetricsGrimoire/Bicho

回复 | 举报

ncut_liu2015-11-12 10:41:27

你好~!
     很冒昧的打扰到你,想请教一下bicho这个软件怎么用,在哪里可以找到bicho这个软件的使用方法?