收藏到: Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网 QQ书签 更多 Bookmark and Share

2009年4月5日星期日

什么叫目大无光 --- Mylyn连接Bugzilla

yn连接Bugzilla这么简单的一回事,拖了2个礼拜(其实做得时间都是晚上业余时间,也就3、4个晚上)。

一开始下载一个最新的Bugzilla3.3.3版本,不行,换成2.22.7版本的bugzilla,可以了。

做软件的都有版本崇拜,都想用最新的版本 ---- 2.22.7和3版本比起来,不能自定义流程是比较大的缺陷,一直在研究为什么3.3.3版本不可使用。网上的资料也少,但是确实还是找到了一些,可能的意思是说3.3.3使用了服务器端推的技术(确切的忘了),现在Mylyn不支持。

今天又仔细的看了一下Mylyn创建Task Repositiory,上面已经明显的说了支持bugzilla 2.18 -- 3.2
当初还在自我得意,Mylyn支持 2.18.3.2版本,现在用bugzilla3.3.3,部分功能也是支持的,没有仔细看,人家说的不是一个版本,是一个版本范围,都是粗心惹的祸。






2009年4月2日星期四

测试 --- 背后的英雄,流程的改进

昨天又一次感受了测试人员的悲哀。

系统一有问题,领导第一个想到的就是测试人员。昨天领导关心的一个产品发现了一个bug(应该说是没有实现高农恩),就在追问:这个系统怎么测试的?测试人员平时都在干什么?当系统正常运行,甚至运行尚可的时候,都是业务设计人员、系统设计人员、开发人员的功劳,这个时候测试人员就退居2线了,甚至于退居N线了,在考评、奖励上都得不到倾斜,一旦有问题,测试人员就首当其冲,当然不让承担责任。--- 昨天的问题确实是测试中的失误,现在的问题不仅是测试的问题,昨天同样发生部署人员没有按照开发流程出的部署流程操作,造成系统的故障。这些问题累计起来,看上去问题不少,虽说都是可以避免的,但造成了对测试效果的下降,使领导对测试的成果带来怀疑。

还好昨天说了一句:有问题都是测试人员的问题,但测试人员已经发现、已经排除了多少个bug有谁知道。领导也默认接受,为测试人员稍微平反了一下。

但是从这句话中,也看到了自己工作中的失误。

测试人员排查了多少个bug,为什么不能让领导知道?如果领导知道每周测试人员测试了多少个系统、测试了多少个版本、发现了多少个bug,能够让测试的工作有一个具体的量化的数字,从一个侧面、一个系统的角度来体现测试人员的工作量,这个比口头的交流更有说服力 (这个不代表测试的工作不能改进)。

当领导不能发现某项工作的工作量时候:也是需要我们把问题和领导说明白,说清楚,领导也是需要交流、需要培训的,尤其是一项对于他看来很简单,当其实工作量非常非常大,或者涉及面很广、时间拖得很长的时候:

1.譬如目前网站的修改工作,一直以为也就几个页面,弄一下也就几个小时,工作量大一些的也就2,3天的时间; 其实修改牵涉到多个部门共同工作,弄一个会员专区,从开始到结束,用了1个多月,而整个过程中,开发人员开发的只有不到1周的时间,其他的时间都用在业务部门设计、美工美化、外网系统人员部署上面,不把这些时间统计清楚,清一色的算在开发上,说开发人员的工作效率低下,实在是真不知道怎么说了;

2.譬如目前开发的信息流项目:这个正在让测试人员把信息流的功能点用脑图的方式全部列出来---本来测试就要对这么多功能点进行测试的,做一个脑图,将功能精简一下给领导看,说明说明工作量。主要使用到这个系统的其他部门的人员目前也已经参与到培训、客户化测试阶段了,他们看到这个图都吓一跳,简单的几个字已经说明了一切:这么复杂啊,这么多功能。如果只有底下的人知道,领导不知道,干活的人又白辛苦了。

改进措施:
  1. 完善测试流程:
    主要对测试的功能点、测试的覆盖面再做一次整理;尤其是经常用的功能、领导关心的功能(是不是有点太功利了,谁让领导具有一票否决权)
  2. 测试人员的测试工作进行量化:
    将测试人员每周测试了多少系统、测试了多少版本、发现了多少bug进行统计,这样一来可以监督测试人员的工作,二来也让领导知道一下测试的工作进展、测试的工作量,要知道测试人员不是只对某个产品进行测试,公司目前可以算上产品的数量是测试人员数倍都不止,不把这个列出来,领导只看到有问题的产品,而完好的产品看不到(运行正常没有事情,没有人反映问题,领导甚至把这个产品给忘了),对整个部门的工作评价也是不利的;
  3. 对每个产品进行错误统计:
    由于开发人员的因素,有些产品质量一直很好,有些产品反反复复的次数占多数,不仅占用测试人员的时间,而且开发小组本身的工作效率也提不高。通过这个统计,把每个产品的质量进行统计,作为对产品组的一个考评依据。
  4. 对测试要树立一个评价体系:
    这个是最难的,如果按照bug率来进行统计,如何统计bug率?按照功能模块来限定bug数量,大功能点和小功能点包含的强度不一样的,按照代码行bug数量来统计,现在的系统泥中有我,我中有你,还真是一件麻烦事。上网看一下测试理论是怎么养的,别人是如何进行评价的。

2009年4月1日星期三

Bugzilla的workflow

bugzilla3.X版本开始有了workflow,可以自己设定工作流程,按照自己的理解,把原来bugzilla的几个工作状态给删除,添加了一些工作状态,感觉还可以。

有一个问题还是没有解决:从需求到开发,一个需求要分解成许多个功能点,或者涉及到不同的程序,每个功能点再分配给不同的人、小组完成,等他们这些功能点都完成了,拼起来才算完成一个需求,不知道在bugfree中如何将一个任务分解成多个任务(主要能看出任务之间的关系,否则和自己手工写几个任务没有什么差别)。如果有了这个功能,简单的开发流程就可以通过bugzilla的workflow的方式进行了

2009年3月31日星期二

Bugzilla(3.2的文档)管理--必须的参数设置

参数分成几类,有左边的菜单管理。

必须要设置的:
 有一些核心需要的参数在bugzilla安装时就要求。这些参数在一个新的bugzilla能够使用之前必须被设置。

maintainer:安装时就需要的,维护bugzilla的人员email地址。这个地址不需要是bugzilla的账号
urlbase:定义full qualified domain name以及bugzilla安装的web server path
docs_urlbase:定义bugzilla文档的路径
sslbase: 定义通过HTTPS方式访问bugzilla的路径
ssl: 定义档bugzilla强制HTTPS连接。选项包括:always、never、authenticated session
cookiedomain:定义bugzilla cookies的域名。典型的留空白。如果使用多个主机名连到同一个            webserver,这个参数就有用了。
cookiepath: 定义路径,和web server root关联的,bugzilla cookies将被限制的。
   如:如果urlbase位:http://www.foo.com/bugzilla/,cookiepath将被设置成/bugzilla/.
           如果设置成'/', 这个服务器上或虚拟主机上的所有的站点都可以独到bugzilla的cookie
timezone: 服务器的timezone。the timezone isdisplayed with timestamps。if this parameter is       left blank, the timezone is not display.
utf8: 确定是否使用UTF-8编码。新安装的bugzilla应该都选择true,避免编码问题。
     已经存在的database可以设置成true,当运行脚本contrib/recode.pl后
      如果将这个参数从off设置成on,必须立刻重新运行 checksetup.pl
shutdownhtml:
announcehtml:将在bugzilla的每个html页面的顶部显示。文字不需要被任何tag包装。最好的方式是用div tag将文字包装起来。CSS中的任何属性都可以使用。
proxy_url: 如果bugzilla安装在proxy后面,输入proxy信息,使得bugzilla能够通过internet被获取。如果proxy要求认证,使用:http://user:pass@proxy_url/方式访问
upgrade_notification:如果一个新版本的bugzilla可用,确定zaibugzilla首页是否通知


bugzilla2&3一个差别

同时安装了Bugzilla2&3,发现在管理员,bugZilla3多了一个Bug Status Workflow的功能,定义各个流程。

20090331 孩子感冒了

彤彤咳嗽有一个礼拜了,周6下午、晚上整整上了将近一天的课,回来人就不对了。她妈妈也是如此。第二天两个人都有些发热,去了社区诊所看了一下。孩子扁桃体发炎,妈妈就是普通的感冒。

晚上睡觉前,彤彤感觉好了些,想吃些东西,给她2片橙子补充一点VC,刚吃下去没事情,过了一会不行了,吐了一大堆,把床上搞得脏兮兮的。把枕套、被单全部换掉了,妈妈晚上还把这些脏的枕套、被单全部洗掉了。

晚上睡了一觉,第二天还是没有很精神,不过还行,叫肚子饿了。周一孩子没有去学校,在家里呆着。妈妈孩子都生病,我也没有去上班,在家里做些清淡的饭菜给他们好好养养身体。

2009年3月30日星期一

Mylyn+tasktop+Bugzilla+php+MySQL+Apache安装的一些技术点

1. Eclipse中安装插件:

a)可以通过Update的方式,从网上下载,直接安装在Eclipse的plugins和features目录中
b)下载插件的安装包,自己copy到plugins和features目录中
c)通过links方式安装:
在Eclipse目录中,创建一个links目录,里面的所有文件Eclipse都视为插件链接文件,不区分后缀。
文件内容格式: path=插件的目录
插件的目录格式:包含eclipse目录,eclipse目录再包含plugin和features目录

plugins目录:包含插件的jar文件
features目录:插件的加载和升级说明目录

d)分析从网上的升级目录:
目录中包含site.xml,升级首先读取这个文件,这个文件中说明了这个插件使用到多少features。
下载每个features的jar文件,分析其中的feature.xml文件,说明了feature使用到什么jar文件、以及相关联的jar文件,包括下载的目录。
如果不多自己手工下载一下就可以了,
如果关联的较多,可以在可以联网的机器上下载后,将下载的内容复制到不能上网的机器上

2.MySQL
在windows机器上安装的,没有什么好说的
用到了创建数据库:create database dbname
创建用户授权:一次性完成的:
grant all privileges on bugs.* to 'bugs'@'*' identified by 'bugs'
一直没有好好去看的:
创建用户后,还要用 grant all privileges on bugs.* to 'bugs' identified by 'bugs'重新创建一次
不知道bugs用户和bugs@localhost有什么不同,还是我什么地方理解有问题

3. Perl的安装
  从ActiveState下载Perl,有些bugzilla需要的包还需要进行perl升级,通过
  ppm install package的方式从网上进行升级
  有些package在activestate上没有,还需要加入其他的repository,如:
  ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/

  如果连不到网,可以将已经升级好的perl目录直接复制过去,
  或者下载package包,按照文件方式升级(主要的问题是关联的包太多的话,很麻烦)

4. Apache + Perl
   apache连接perl,需要mod_perl
   缺省下载的bugzilla文件都是按照linux/unix下的方式生成的文件,在cgi和pl文件头部,都是指定#!/usr/bin/perl,放在windows下apache运行有问题,会生成权限错误。
  需要把cgi和pl文件头部的这一句话修改成本机上perl.exe的绝对路径,使用批量替换就可以了,替换好后apache执行perl没有问题
  --- 问题发现: apache安装后,自带的cgi-bin下的perl样例是好的,但是bugzilla的不可以访问,发现就是这个问题照成的

5.Apache2.2的目录配置
   不知道是否所有的apache都是这样(已经很长时间没有修改过apache配置了),在配置Directory中,要把配置的目录最后带上'/',apache在寻找文件是,是将配置的Directory直接加上URL中的文件名,如果配置的时候最后不带'/',则访问不到文件,出错

6.Bugzilla:
   用3.3.3版本的bugzilla,Mylyn+tasktop能够将配置的工程、模块导入,但是查询buglist无法完成,出错 --- 用2.22.7的bugzilla好的
   bugzilla安装,通过checksetup.pl --check-modules方式先检查一下安装的环境。
   再使用checksetup.pl生成localconfig文件
   手工修改localconfig文件后,再运行checksetup.pl在数据库中生成对应的表。





2009年3月26日星期四

解决无法连接到本地MySQL的问题

本机上把MySQL打开,

操作系统:windows xp
MySQL:5.0

通过MySQL Administrator连接到MySQL,连接不上,连接的时候,听到机器响一声,但是没有什么显示出来。
过了很长时间,Administrator报 MySQL 2003错误。

查了资料,发现是连接不上的问题。

检查金山网镖,发现没有对MySQL进行阻止

还有windows的防火墙,防火墙中没有mysql作为可信任的程序清单,增加上去,问题解决

2009年3月25日星期三

20090326 幸福的牵手

女儿这几天咳嗽的厉害,可能着凉了,还好没有热度,晚上就和我们一起睡觉。

昨天晚上作业做完了,也9点多了,当时我在用电脑,妈妈走过来说她要用一会电脑。还没有答应妈妈,彤彤走过来了,一脸的严肃?肃然?(或者可以用洋洋得意?),反正不知道怎么描述,伸过手来牵我的手,表情那么的不可抗拒,自己也自然而然的去牵她的手,一起去洗脸刷眼睡觉。心里特别美滋滋的。

Bugizlla3.3.3安装

Bugizlla3.3.3安装

安装过程:
1. Perl5.8.1或以上
2.安装数据库引擎
3.Web Server
4.安装bugzilla
5.安装Perl模块
6.安装邮件发送引擎(Sendmail8.7或以上,或者至少和这个版本兼容的MTA)
7.上述的所有项配置

1. 安装Perl
从 http://www.activestate.com/activeperl 下载activePerl,5.10的版本

2. 安装数据库引擎:
安装MySQL5.1,内部本来也有Oracle9i的数据库
MySQL要4.1.2或以上的版本,5.1可用了
Oracle要10.02.0或以上的版本,内部的Oracle9i不可用

3. Web Server
在Linux下使用Apache,Windows下使用IIS,为了统一,在Windows下也使用Apache。
Apache采用2.2.11-openssl-0.9.8i版本

4.安装Bugzilla
配置的时候有以下问题:
a).配置的目录中,不能带有中文名称,有中文名称apache启动发生问题
b).配置的目录,必须后面要带有'/' -- Directory配置和Alais配置, 否则Apache在访问的时候,会直接在目录后面加上访问的页面名字,如果不带'/‘,造成目录和文件名中的分隔符没有了

5.安装Perl模块
通过./checksetup.pl --check-modules 检查Perl安装情况 --- windows上运行情况会所有不同,看Perl安装的情况如何。
这个会把bugzilla需要的perl module全部打出来,以及机器上的安装情况
如果缺少的模块,需要安装:
在Linux中: perl -MCPAN -e ’install ""’
在Windows中: ppm install ""

安装好ActivePerl,还需要几个必须的更新:
ppm install TimeDate
ppm install DateTime
ppm install DateTime-TimeZone
ppm install Template-Toolkit
ppm install Email-Send
ppm install Email-MIME
ppm install Email-MIME-Modifier

在外部机器上,可以直接通过上述的方式进行更新,内部的网络不能连接出去,只有把升级程序拿进来才可以:
在网址: http://ppm4.activestate.com/ 上面选择ActivePerl5.10 on windows(用的是XP机器)
进入:http://ppm4.activestate.com/MSWin32-x86/5.10/1000/
这个上面有一个package-all.xml文件,记录了所有的package,拿下来分析一下:
譬如需要TimeDate

Graham Barr AUTHOR>
Parsing of date stringsABSTRACT>



........

TimeDate的版本是1.16,下载的目录是:当前URL(http://ppm4.activestate.com/MSWin32-x86/5.10/1000/)/G/GB/GBARR/TimeDate-1.16.tar.gz

东西还是太多,而且有相互关联的,既然是Perl,老规矩,从外部更新好,把更新的目录整个端到内部来,一样可用。---- 更新的时候,有几项在网上报:“ppm install failed: Can't find any package that provides Template-GD”,暂且不管。

基本必须的更新库在ActiveState上都有,很快的更新完了,
有几项可选的更新在ActiveState上没有,需要加上 ppm repo add theory58S http://cpan.uwinnipeg.ca/PPMPackages/10xx/ (ppm说的)
加好后,大多数都能更新安装了,最后还是有3项没有 ,看来得找另外的更更新库了。

7. 配置:
perl库更新好了以后,再次检查,这次通过 checksetup.pl,不带参数了,会生成localconfig文件,包含bugzilla的一些基本的参数。这个文件还需要手工修改,譬如:
The following variables are new to ./localconfig since you last ran
checksetup.pl: create_htaccess, webservergroup, db_driver, db_host, db_name, db_user, db_pass, db_port, db_sock, db_check, index_html, cvsbin, interdiffbin, diffpath, site_wide_secret

主要是将数据库修改成正确的配置,在Mysql上创建对应的用户和库
如:
create database bugs;
grant all privileges on bugs.* to 'bugs'@'%' identified by 'bugs' ;
不仅创建用户test,而且创建了scehma : test

配置MySQL:

*设置附件的尺寸:
[mysqld]
# Allow packets up to 4MB
max_allowed_packet=4M #这个大小自己根据实际环境确定

*允许小单词的全文搜索
By default, words must be at least four characters in length in order to be indexed by MySQL’s full-text indexes
[mysqld]
# Allow small words in full-text indexes
ft_min_word_len=2

*Permit attachments table to grow beyond 4GB
By default, MySQL will limit the size of a table to 4GB. This limit is present even if the underlying filesystem has no such limit.
you should run the MySQL
command-line client and enter the following, replacing $bugs_db with your Bugzilla database name (bugs by default):

mysql> use $bugs_db
mysql>
ALTER TABLE attachments
AVG_ROW_LENGTH=1000000, MAX_ROWS=20000;

The above command will change the limit to 20GB. Mysql will have to make a temporary copy of your entire table to
do this. Ideally, you should do this when your attachments table is still small.
Note: This does not affect Big Files, attachments that are stored directly on disk instead of in the database.


数据库配置好了,再次运行 checksetup.pl,会往数据库中建表,检查等工作,以及大量的配置工作。
You may rerun checksetup.pl at any time if you wish.


配置Apache:
To check whether your web server is correctly configured, try to access testagent.cgi from your web server. If "OK" is displayed, then your configuration is successful.

You can run testserver.pl to check if your web server serves Bugzilla files as expected.

1. 增加bugzilla目录:

AddHandler cgi-script .cgi
Options +Indexes +ExecCGI
DirectoryIndex index.cgi
AllowOverride Limit


2.配置mod_perl
PerlSwitches -I/var/www/html/bugzilla -I/var/www/html/bugzilla/lib -w -T
PerlConfigRequire /var/www/html/bugzilla/mod_perl.pl