谈项目管理和软件测试过程
上一篇 / 下一篇 2007-06-27 16:49:07 / 个人分类:02.软件测试管理
1. 软件测试在公司的组织保障是基础 3qS`.[!]-T&F(WB01.1 研发部组织结构介绍 )X*@\4]%w0 51Testing软件测试网%r%r!i2AAX8lV/r 51Testing软件测试网LjLw~T ?
51Testing软件测试网x*ja#ih$e1s z\E)sI'{y0 51Testing软件测试网h8T%Z2Q7e@CDpf
51Testing软件测试网dp*?8TlzW;[ }e
w'Kd NL~m:S)k0 1X%OaP#W5H}0 51Testing软件测试网2NB(Jwz+`(K N
[O,Qq
y%Y&P,?vk051Testing软件测试网3ldP g,z
oW #F
Bk:wB051Testing软件测试网1R&R&eh fj 0b"b-SJ7Vfg&o0 |
0Re,Q*z|m%nptg ?@P0
"R\?`K{0 51Testing软件测试网 T3Pymm]m(]
2.配置管理系统是项目经理的"眼睛",是软件测试有效实施的前提51Testing软件测试网q:`&G8v"^+z9?k4C(wD!}
51Testing软件测试网NE#^ m vm51Testing软件测试网sm0DD,RWG;Z_h9{
(VdX$}*UV5C w051Testing软件测试网8`x\&w.?t&}'[
在软件质量体系的诸多支持活动中,配置管理系统处在支持活动的中心位置,它有机地把其它支持活动结合起来,形成一个整体,相互促 进,相互影响,有力地保证了质量体系的实施。建立公司配置管理系统很容易得到公司领导层的支持,几乎没人反对。更重要的是建立配置管理系统后测试人员的工作有了系统保证,测试工作的"矿藏资源"有了明确的位置,可以主动积极开展测试工作。51Testing软件测试网6[['A`Gp4}&xJ
@8B l {Fk0
c5WZ}z|8r;]_Vw02.1 项目管理存在的主要问题
U$X?i;m0hvK2^0华友公司测试部门去年刚成立时,以建立、规范和推广使用配置管理系统CVS为突破口,同时建立缺陷跟踪系统Bugzilla提高测试流程的管理水平。我做为测试负责人首先分析华友公司几个软件项目在开发管理上的现状,。51Testing软件测试网*^-W!c0c;o2|oS%h0R
:_)b].F
n:[w)N*OZ0
+`LZ)t6XtD-z0存在问题一、公司几个核心项目仍然过分分依赖少数个人的作用,没有建立起协同作战的氛围,没有科学的软件配置管理流程; 技术上只重视系统和数据库、开发工具的选择,而忽视配置管理工具的选择,导致即使有些项目有配置管理的规程,也由于可操作性差而搁浅。以上种种原因导致开发过程中普遍存在如下一些问题: 调查说明华友研发成员的变动的比率达到30%,几乎每周都有新加入的员工或者辞职人员, 一个新成员熟悉项目的最佳途径就是通过配置管理系统阅读项目文档,甚至阅读同行代码,达到快速学习、共同提高的目的。一个辞职人员可以利用配置管理系统保留部分一段时间工作,最大程度减少对项目开发造成的损失。51Testing软件测试网vs]:T9~ |y}
51Testing软件测试网^6l?U k$k:_
K)k
存在问题二、开发管理松散。领导了解工作完成情况重视口头交流,忽视书面文档。有些部门主管无法确切得知项目的进展情况,项目经理也不知道各开发人员的具体工作,项目进展随意性很大,可"左"可"右"。"左"时按领导下达的"期限"进行,到期时,似乎一切已顺利完成,大家一阵胡弄,交差完成,反正领导看的是界面,至于里面是什么,留到施工时再说。施工时的工作因此变成了无法汇报、无法理清的无休止的维护。"右"时则项目工期无休止地延期。对我们软件工程来说,总的特点是先"左"后"右"。在领导面前表现"左",在用户面前表现"右"。有个测试人员经常利用上班时间学习英语,过了一个多月,看她依然如此,我做为项目领导进行批评教育,这名员工并不认为自己错了,她争辩,公司采取弹性工作时间,考核员工是分配的任务是否完成等理由。同时、我对她批评结果遭到她的恶意报复,她给有关领导报告新来的经理如何不懂公司业务,采取不适合公司的管理方式等,由于领导无法了解真相,使得我的工作在一段时间开展很困难,直到过去半年,这名员工辞职出国学习领导才明白发生了什么。51Testing软件测试网HT4W){u/s#eB
'Z
Y?Ygz0FSCH0
bkx Y?H
`~0存在问题三、项目之间沟通不够。各个开发人员各自为政,每个项目经理都像个"地主",编写的代码不仅风格各异,而且编码和设计脱节。每个项目组的人力资源和硬件资源成了"私有财产",自己人员即使暂时空闲,让他从事所谓的新技术研究,也不考虑友邻项目需要他们帮助的现状。本来开发中错误在所难免, 进展早一点的项目组或者人力资源强的项目组已经积累类似问题的解决经验,也不愿意分享给其它项目组。 开发大量重复, 留下大量难维护的代码。典型案例是有个短信项目D两年来在这个开发人员Y 的研发支持下运转效益很好,但是三个月之前,开发人员 Y因为待遇问题和公司领导谈判失败,提出辞职。项目D仍然在运行,但是最近移动公司规范修改、系统升级,需要修改程序,没人能看到及时更新的文档,尽管有一堆代码库,但是后来的程序员都没办法分析明白程序结构。公司领导出面请开发人员Y来协助,因为没有文档记录,Y忙于新公司的工作也不能解决修改。
A2}5X:a q
mcM-p1i0
1{;_!m
^0I g^0存在问题四、文档与程序严重脱节。软件产品是公司的宝贵财富,代码的重用率是相当高的,如何建好知识库,用好知识库对公司优质高效开发产品,具有重大的影响。但开发人员的一句名口号是:"叫我干什么都可以,但别叫我看别人的程序"。当然,开发人员的工作态度要转变,但客观上有一个很重要的原因是:前人留下的程序既无像样的文档(即使留下了文档 ,其与源程序也严重脱节),开发风格又不统一,就像一堆垃圾,要开发人员到垃圾中去捡破烂,从这个角度上看,开发人员的要求是合理的。
f0Z P&Y
j u0
s8EX e]:H0存在问题五、测试工作不规范。仍然停留在"小姑娘做测试"的底水平上,传统的开发方式中,测试工作只是人们的一种主观愿望,根本无法提出具体的测试要求,加之开发人员的遮丑,测试工作往往是走一走过场,测试结果既无法考核又无法量化,当然就无法对以后的开发工作起指导作用。51Testing软件测试网
Qzj$o:S I!\{
-B%Jg^)H6B@0存在问题六、虽然项目施工时间不长,但软件版本更新周期过短,几乎每天都修改在线运行系统,且开发人员必须亲自现场或远程登陆操作,全国十几个地点软件内容多少都有点差别,这些差别都记录在几个骨干人物的脑袋里。 由于应用软件的特点,各个不同的施工点有不同的要求,开发人员要手工地保持多份不同的拷贝,即使是相同的问题,但由于在不同地方提出,由不同人解决,其做法也不同,程序的可维护性越来越差。久而久之,最后连自已都分不清楚了,代码的相互覆盖现象时有发生,且这苦水还无法倾诉,因为怕别人笑话,甚至别人问起,还得想法搪塞,可谓费尽苦心。
1@~Tj(i6xE!?}"D"E0
3N;fR
n
Y5|02.2 建立配置管理系统,规范项目管理流程,建立知识库的同时节约项目费用51Testing软件测试网R4S }R/?
"v-p8fRBWx"mH051Testing软件测试网|4O LsI-Jk7Ug.[-e
针对以上问题, 利用自己在Beijing Precom Inc, 普天润汇等公司积累的经验,建立配置管理系统CVS, CVS 的全称是Current Version Control. CVS是一种GNU 软件包.由Intersolv公司开发,它明确的将源文件的存储和用户的工作空间独立开来, 并使其有利与并行开发.这个工具属于Open Source, ,CVS可以在intenet 上很方便的得到. 它的源码在ftp://202.113.29.4/pub1/unix/cvs 它的说明文档在ftp://202.113.29.4/doc/cvs.任何人可以很方便的下载.目前他的最新版本是2..10.8。 不需要花钱,很快建立,重点在于使用和推广。配合项目经理共同制定相应的配置管理策略,取得了很好的成效。51Testing软件测试网-i|5p
r?9lzR
_Pop$?&q0
efAby:mh02.2.1. 节约费用
7Sp$a NQ5e0
UmL r)t:@7e0(1) 缩短开发周期
nX0cD2XNR0利用CVS对程序资源进行版本管理和跟踪,建立公司的代码知识库,保存开发过程中每一过程版本,这样大大提高了代码的重用率,还便于同时维护多个版本和进行新版本的开发,防止系统崩溃,最大限度地共享代码。同时项目管理人员可以通过Version 系统查看项目开发日志,测试人员可以根据开发日志和不同版本对软件进行测试,工程人员可以从版本控制系统上得到不同的运行版本,并且可以安装在Web Server或在Unix操作系统上命令行方式存取供外地施工人员存取最新版本,无需开发人员亲临现场。51Testing软件测试网 i%I5K;`&HB'dP,Qs
51Testing软件测试网,AHW!y!F
l~G
利用CVS系统,可以大大提高开发效率,避免了代码覆盖、沟通不够、开发无序的混乱局面,如果利用了公司原有的知识库,则更能提高工作效率,缩短开发周期。51Testing软件测试网C*Q,i$i*r$s
x(I g3A Y9K0(2) 减少施工费用
t+K"b$v9E'A051Testing软件测试网9p K*pO/i&frg)xr
利用CVS进行软件配置管理后,建立开发管理规范,把版本管理档案挂接在公司内部的Web服务器上,工程人员可以通过远程进入内部网,获取所需的最新版本。开发人员无需下现场,现场工程人员通过对方系统管理员收集反馈意见,书面提交到公司内部开发组项目经理,开发组内部讨论决定是否修改,并作出书面答复。这样做,可以同时响应多个项目点,防止开发人员分配到各个项目点、分散力量、人员不够的毛病,同时节约大量的旅差费用。51Testing软件测试网!Z%_8RNu&^
51Testing软件测试网8Z/TR"m5v"dTr
2.2.2. 有利于知识库的建立
T0W#n%@| O0(1) 代码对象库
`mK6])L_UY0
{2rh6e7p0软件代码是软件开发人员脑力劳动的结晶,也是软件公司的宝贵财富,长期开发过程中形成的各种代码对象就像一个个零件坯一样,是快速生成系统的组成部分。长期的一个事实是:一旦某个开发人员离开工作岗位,其原来所作的代码便基本成为垃圾,无人过问。究其原因,就是没有专门对各人的有用对象进行管理,把其使用范围扩大到公司一级,进行规范化,加以说明和普及。CVS系统为开发管理提供了一个平台和仓库,有利于建立公司级的代码对象库。
]|jT!C%S0(2) 业务及经验库
,X/?q
|I2W0
%fd&yT]E)cW0通过CVS的注释,可形成完整的开发日志及问题集合,以文字方式伴随开发的整个过程,不依某个人的转移而消失,有利于公司积累业务经验,无论对版本整改或版本升级,都具有重要的指导作用。51Testing软件测试网uxLN8ZS
bP ckmHQV0f1~"Y!T0
nPn2}Dg%\Q _o02.2.3. 规范管理51Testing软件测试网$~ a
X
l9v
1F T$D!u[mE051Testing软件测试网d0r^x.Q
IB
(1) 量化工作量考核51Testing软件测试网.e9w*j+Ng[+Ni
51Testing软件测试网bw}
B8jf&Tv
传统的开发管理中,工作量一直是难以估量的指标,靠开发人员自已把握,随意性相当大;靠管理人员把握,主观性又太强。采用CVS管理后,开发人员每天下班前对修改的文件 Check In,其中记述当天修改细节描述,这些描述可以作为工作量的衡量指标。
"?4z,OS9ss``%R0(2) 规范测试
-Z`^o-U2j0
~/u
`~y&OL:}!F2x
e0采用CVS以后,测试有了实实在在的工作,测试工作人员根据每天的修改细节描述对每一天的工作做具体的测试,对测试人员也具有可考核性,这样环环相扣,大大减少了其工作的随意性。51Testing软件测试网
MP8[*a*w3CE&R,w
4dm-Z]uJ/XUT051Testing软件测试网RK7t|/z;t8bb6^
(3) 加强协调与沟通51Testing软件测试网/Rl~fpI
7jr
X*B@A3C`#f,b051Testing软件测试网B/O!vb5Tu
采用CVS后,通过VSS文档共享系统和 Bugzilla缺陷跟踪系统,大大加强了项目成员之间的沟通,做到有问题及时发现、及时修改、及时通知,但又不额外增加很多的工作量。51Testing软件测试网v` K,@Cd4e"~X;}
;CXzH:Q4O0
Rc6i^
Ru03.性能测试是软件测试专业化的核心所在
51Testing软件测试网@0~ \|i?D
从华友实践看,软件测试对于产品经理、开发经理和市场经理都有所认识,他们大部分人会认为功能测试工作他们能够很好的完成,产品经理是公司对于业务最熟悉的 一批人,他们对于测试工程师最急切的需求是你帮我实施产品的性能测试工作,他们听说过性能测试,我们的产品投入在线运行后碰到的最大故障是大用户量访问业务是机器凼机,或停止正常的服务,每次故障,几乎给公司的收入都造成很大损失。如果测试部门能有一套有效的性能测试手段,就确立了测试部门在项目开发过程中关键地位。51Testing软件测试网 fsw_1Z(jRe*\&Z9k
51Testing软件测试网%Pl#Iq4Bm \
性能测试在华友软件的质量保证中起着非常重要的作用,将性能测试概括为四个方面:Wap无线应用服务在手机用户端性能测试、 Web/Wap应用服务在客户端性能的测试、应用在网络上性能的测试和应用在服务器端性能的测试。通常情况下, 四方面有效、合理的结合,可以达到对系统性能全面的分析和瓶颈的预测。
As8qr*o2Au];E ^ D03.1 Wap无线应用服务在手机用户端性能测试51Testing软件测试网5a-I l't*wCp
6|
Pl&D0]m5cNc051Testing软件测试网-Ez}:_8rSt
如今人人用手机都追求时尚,时尚体现在款式, 品牌和功能。手机产品功能的日新月异,移动增值业务功能层出不穷,从最初的短信、彩信、铃声到GPRS,CDMA,K-Java, Brew手机,功能的多样性带来手机用户端软件系统测试的复杂性。众所周知, Java手机吸引人之处是能提供智能的, 个人化的互动服务, 例如: 动态产生个人化的股市服务, 显示图形, 动画, 实时路况, 气象报告, 数字照像, 玩游戏等, 部分服务能直接于用户端执行。51Testing软件测试网
kff1j6SE8r5\T$g
51Testing软件测试网t]3u9cK
为了提供如此生动的服务, 移动通信系统要能给终端用户在无线装置上提供接入互联网的功能, 要能储存、提取、管理、计算、结帐、下载软件服务, 并使内容提供商能提供丰富的声像多媒体内容, 形成广大的个人化交互式服务环境。 而作为移动用户, 可将手机视作虚拟机, 能随时、随地在适当的装置上存取应用, 享受服务。 这确是一种时尚。
o6^s8Fs0
0_-nj)NYNtuIH0?0当前, 对于不同品牌的手机, 它们所用的平台(指CPU和操作系统)各不相同, 由于采用不同的设计方案, 各设计之间缺乏兼容性, 操作系统和二进制代码都不兼容。 当手机运行需要大量内存时, 特别是随着接入互联网, 手机用户要求能使用个性化的 交互式应用软件, 应用程序运行在虚拟运行环境下时, 问题显得尤为突出。 所以, 有必要建立一种标准的通用运行平台, 达到在合适的成本下提供统一的交互式应用软件运行环境。 但是, 除非该平台是基于完全标准的器件, 否则是难以达到要求的。
c uR [6y0标准的通用的运行平台是满足运营商, 软件开发商, 和终端用户三者综合要求的解决办法。 理想的环境必须具备以下性质:51Testing软件测试网V@u }c
Zs$V9H[J3Wm{6w051Testing软件测试网+nj*h;CL4Rh
(1)、平台应提供二进制兼容性。 可执行软件是二进制目标码, 需要在处理器和应用软件目标码之间建立沟通;
7rQ$g.k&U0(2)、平台必须包括微处理器,或一个与微处理器机器代码相离的通用机器码仿真器;51Testing软件测试网3}Jf:R\
(3)、平台应包括带有应用程序接口API及支持一致性图形用户界面GUI相应功能的操作系统。 API 是执行典型操作功能的软件功能库, 例如打开文件, 读写数据, 配置和管理内存, 处理事件, 显示文档和图形等。 为使应用软件真正做到可移植, 装置上必须有公共功能集, 并让软件开发者能通过一致性API 扩展功能;
!e}2S ei z0(4)、平台不应要求过多的系统资源, 可移植性设备不应使成本上升太多;51Testing软件测试网}D'[LS3` t
(5)、平台应对功率有高效率, 尤其考虑用电池供电的设备;51Testing软件测试网i:V)qE(R;ci
(6)、由于要在互联网上应用, 安全性也是重要因素。