1.常见问题TestAge 中国软件测试时代 lt8Q$W F
没有人愿意做测试TestAge 中国软件测试时代 k4M.z'c.c,n+j1n t
觉得养不起那么多测试人员TestAge 中国软件测试时代 | Y i j Y.U V W6V P!i _
开发人员不遵循规范,随心所欲TestAge 中国软件测试时代 o)| {-d [6l O5u
项目经理事必躬亲,分身乏术
(J O S)y k E j2.微软团队模型TestAge 中国软件测试时代 M]/G | l.~*A
TestAge 中国软件测试时代 l9Q `&l#{ uV
各角色的职责TestAge 中国软件测试时代$i/i U c O0R
角色 | 职责 |
项目经理 | 编写功能规范,协调各角色关系 |
产品经理 | 客户联系的桥梁,进行需求分析 |
用户教育 | 让产品容易使用 |
发布经理 | 保证产品顺利发布 |
二.项目管理
:@ [&G m.J
1.常见问题TestAge 中国软件测试时代 E j L ` t h ^ F&b
无法决定项目所需的资源(人力和预算)
#W k8F f E'o I q4`&b W无法决定项目的进度表TestAge 中国软件测试时代 Y;`$p*U$[ r c
无法控制外包项目的进度和质量
n"k ~ ~ a'de#e p2.微软项目管理-- 多里程碑式流程TestAge 中国软件测试时代 b ?-l9P m h D O
每个里程碑完成部分功能
!t.r/B | a } P J便于团队集中力量完成一个又一个功能TestAge 中国软件测试时代/l R h q J l
提供多个机会以适应需求的更改TestAge 中国软件测试时代 E ] B W j+{7A%I
如何完成一个里程碑TestAge 中国软件测试时代-f R&S(G H g
步骤一: 达成共识TestAge 中国软件测试时代 A y#f&b M /
基本完成需求调研和分析 (产品经理负责)TestAge 中国软件测试时代 j6T b1X4/ ~
确定大方向和长中短期目标TestAge 中国软件测试时代)n W F&P O Y
所有角色都参与讨论并真正认同结论
G M U W1i产生的文档:
5K Q [.| a T ?!k常见用户情景:覆盖80%以上功能TestAge 中国软件测试时代$H(p f Q"T2O)P G J
Vision:言简意赅地说明大方向,并有激励团队的作用
6h _&c.J9l步骤二: 完成项目计划TestAge 中国软件测试时代4C*g U9/ F B }!F
编写详细的功能规范(项目经理负责)
j Z f9V/P7k n在编程前想清楚所有功能流程,并引导用户明确需求TestAge 中国软件测试时代$N7B y D#` c
所有角色都参与审阅功能规范TestAge 中国软件测试时代)t B @ C j /2G K,_
制订开发计划和进度表(开发团队)TestAge 中国软件测试时代(z ] `;A2w.|
制订测试计划和进度表(测试团队)TestAge 中国软件测试时代;m y&F k-k
分配资源(人力和预算)
U b ^1i Z形成项目综合计划和综合进度表TestAge 中国软件测试时代 {/~9? v D ] X m6e
产生的文档:TestAge 中国软件测试时代 _ f i I K [ f c F+w+A
功能规范,开发计划,测试计划(用例),项目综合计划TestAge 中国软件测试时代 T5M k$U.Z6X'/ a0i
开发进度表,测试进度表,综合进度表
~ N%S J7A(_ o ~步骤三: 完成功能
/*[7};l&G B开发人员分别完成自己的功能TestAge 中国软件测试时代 q'd x'h c R$@ w
使用版本控制工具
:`!u [ /0M)@:c V I使程序员及时check out和check in,避免积累大量代码
A g f'F4h8f }:X x及时进行模块间的整合,及时发现问题(daily build)TestAge 中国软件测试时代 @(c / / a p A _ y
对每一项可测试的功能进行测试,无需等待TestAge 中国软件测试时代-O }-z C o S;f U:M n
使用测试用例工具,对功能进行完整和重复的检验TestAge 中国软件测试时代 B$D+h%^!d
使用BMS进行缺陷跟踪TestAge 中国软件测试时代4n d b { R"P)YP Z-Q
记录所有程序问题TestAge 中国软件测试时代:^%D w n R v;l [1~'/ o
实现解决Bug的自动流程
@ w E6g$yg$A9C按照综合进度表不断检查进度
D5o y J q A:o / TestAge 中国软件测试时代!F!v;k#i ||
使用的工具:TestAge 中国软件测试时代 f N u ]'h c-M.b R e
版本控制工具 VSSTestAge 中国软件测试时代 b N$O5_+K#H ] g:` B
缺陷跟踪工具 Raid/BMS
A c m2H,S,K s%S o2s#D测试用例管理工具
j-| o%P j F步骤四: 稳定与发布
w#i r5H Q:c5V u#M测试组全面地测试功能,包括性能和稳定性
s p j D0b开发组全力配合解决Bug
"` }#d E |5p"l'c4U o%@使用BMS进行
z K [ ~-U监测质量情况TestAge 中国软件测试时代&d#v ?9_ O8L W /
预测发布日期
"A O Z;n&Z8T Q专家会诊机制:TestAge 中国软件测试时代2V L q ~'} { c
决定Bug的优先度
w8n#P k ]+B q V9[ V决定哪些Bug可以等到下个里程碑或版本中解决
V ~+Q h%z Z r+l决定由谁解决某个Bug
9M5t"r9[ y f
O a j n PV o使用的工具:TestAge 中国软件测试时代&F ^!_$sR })Y y
版本控制工具 VSSTestAge 中国软件测试时代 R U A,Z.Q1[$J j P
缺陷跟踪工具 BMS
0K(a.X d'V$u t测试用例管理工具
? @ z V E'| l'n n {三. 微软的开发管理经验:100%以Bug为核心
4A)w p,^ W B Q8p8Z5r
TestAge 中国软件测试时代 O N } C t B9/ I9e p
1.Bug 及常见类型
y H Y A Q
功能未实现,和规格说明书不一致
d-b a v A N不能工作:死机,没反应
${ T4Q-E"s(?不兼容TestAge 中国软件测试时代.M ` A4` O
边界条件
j([ J c8@ } l ~界面、消息、提示不够准确,不友好
J w c(A5F%y F把尚未完成的工作也作为一个Bug
{ j7_ D*T P W文档与帮助信息中的缺陷也是BugTestAge 中国软件测试时代4o w | X#p$^
2.RAID/BMS的基本功能TestAge 中国软件测试时代 Z"s:r c n9t q
TestAge 中国软件测试时代2`;T!?8J&s _4|#B(z
完整的Bug数据库TestAge 中国软件测试时代#j X-e7H P e V
整个产品组的中央记录和控制
I.Q A x H强大的查询功能,有效地跟踪项目的状态TestAge 中国软件测试时代 O V(} I c+Z
所有的记录无法删除,对于每个记录只能一直添加内容
+}%u t-` /丰富的报表功能,为产品发布提供判断标准
M e5z U;W w9A `3.Bug 记录中的有效信息 状态
/l ] Q y$C } S负责人
1/%k3y'a8G T C3d问题种类TestAge 中国软件测试时代)G {0m m+h+k d
严重级TestAge 中国软件测试时代&H _ ~ Q ] z A h n x T:M
优先级
9o o6];W o Q"[(w,V C修改时间
,S#Q2d:s [ Y Z ]-s/S5c登记时间TestAge 中国软件测试时代*e ^;x w I&p;c
缺陷来源TestAge 中国软件测试时代9m5E h'|-?4w
解决方案
%H V B4^ e J4]9u d运行环境
g&D P6x n S9U1Q q*H+B缺陷关联TestAge 中国软件测试时代;A5g ` a T w,t
附件
N1x8M5B t1m l Q附图
1f J(^ _0M1C缺陷细节TestAge 中国软件测试时代 H(L } ^!o p:Z-l p T ?
;U T O4B W-}#c/X7A
1^ c T8Z&? { j v4.Bug 的严重程度TestAge 中国软件测试时代 o a9j z&P [ l X
死机,数据丢失,主要功能组完全丧失,系统悬挂TestAge 中国软件测试时代 R-m A:J / t1A
主要功能丧失,导致严重的问题,或致命的错误声明
z$H"C2j ` B)X次要功能丧失, 不太严重,如提示信息不太准确
I8y!C*@6A ~$X-g,?微小的问题,对功能几乎没有影响,产品及属性仍可使用. 如有个错别字
r z P$^ L5.激活的Bug数量的趋势
y x6H r6x r%t i A
代码完成前:很少TestAge 中国软件测试时代 k ` E @,m A
代码完成后:增长很快
.j H A5o u6/ T接近Beta: 下降
3b+O ~ H x N k接近RC: 奔向零
L e {H b+`!v)m R产品质量和里程碑的信号TestAge 中国软件测试时代 v,X%I,Pt,k(/ L-S
每天新建的Bug 与 修正的 Bug 相比较TestAge 中国软件测试时代 p"{ n u)N y w
Active 状态 Bug 的总数TestAge 中国软件测试时代 p A(C K Q }3p
四.微软的一天
%c#p#e Q2g//
1. 让我们看看项目中每个角色的一天是如何度过的
3X _&`&`0C+r [
开发TestAge 中国软件测试时代:z#x [/k H5l
测试
_ p a pt'Z z#y x项目经理
h i"S)g K } ]3j注:里程碑的每个阶段每个角色的工作有不同侧重点,我们以“完成功能”阶段为例
?6[9@5H%x4c i S
;M g })q e I6w B;T微软的一天从几点开始?TestAge 中国软件测试时代7k;_ N8u'l v
答案:半夜
x g S Q'E6o C
为什么?
,r,U u _ u M:{
因为Daily Build是所有工作的核心,而且是在半夜自动启动。
L D l.I*S o t(T1r _ `
每日构造Daily BuildTestAge 中国软件测试时代 p,t Y)Z1a0h%a(s D
你知道自己所用Windows的版本号吗?TestAge 中国软件测试时代 D F5]:~0{ V U
Daily Build的意义:
5u a u;ZQ Y.^#a模块得以及时整合
1V+J*Q*w e W s q%@要求程序员及时把最新代码放入代码库
^%F J*W)~.N ~%t用脚本语言和编译/链接工具实现
.^$D E T8x K P fBVT Build Verification TestTestAge 中国软件测试时代 f u @ Z K S t1B'C c
对Build进行验证TestAge 中国软件测试时代+]3a f u Y P C0y K+_
Blocking BugTestAge 中国软件测试时代 w+u / v K0m0C4V;D J
让Build无法完成的问题
,x!r A N c | C GeBVT中发现的问题
M T$k)i X f q Y1[+/2.程序员每天上班前最担心什么?
_ g l0Z6|1c4O Y-}
答案:因为自己昨天的代码check-in,造成Blocking Bug.TestAge 中国软件测试时代4L P*T7/.~ B2W
为什么?TestAge 中国软件测试时代x e j+~6w
因为每天的Build是所有人当天工作的基础:TestAge 中国软件测试时代 V-n2t w;R,w*u8u2@-[
程序员需要Build验证与其他模块的接口TestAge 中国软件测试时代&r j%j S9S n / I
测试需要Build发现新Bug,并验证新Build中已解决的Bug
K M.X:o E8I n v&`
有Blocking Bug怎么办?TestAge 中国软件测试时代 g5O%@ I+Q / V
解决问题,并对今天的Build打Patch。
a F ~#?'d(l {:w
开发人员的正事
{ }'~(z F J @)|+~6J U6S
经历对Build的提心吊胆和争分夺秒之后,第一件事做什么
W)@ E;_"G v*q0Y0I答案:打开缺陷跟踪工具,查看指定给自己的Bug,解决高优先度的Bug。因为质量重于新功能。TestAge 中国软件测试时代+V z J M9E D _;M
接下来,开发人员会…
D0Y8J.N V m G ] r)/4M
从版本控制工具中Check out代码
3l a t3^8?a修改代码(解决Bug或实现新功能)TestAge 中国软件测试时代 u I ` o a Y I
取得版本工具中最新变化,在本机Build和单元测试TestAge 中国软件测试时代)R3F y w U @ Y
请开发组同事作Code Review
&@;c H H ` /'n PCheck in代码
1U Q#] d D W F ~ @ g
3R#i;m D a:H z
3.测试人员第一件事做什么?
P%N |*j N M {
答案:打开Raid/BMS,查看指定给自己的Bug,验证已解决的Bug。TestAge 中国软件测试时代2c R!z o l!n
接下来,测试人员会…
"t1G.{1u } p M R
根据测试用例检验今天的Build
0a k R+t R在Raid/BMS中记录新发现的BugTestAge 中国软件测试时代 l y'F C E / h
4.专家会诊TestAge 中国软件测试时代%] I }$o(X6M v&f U
参加者:项目经理和开发组长、测试组长TestAge 中国软件测试时代 G v ` e,j Q
通过Raid/BMS评估每个未解决的Bug
4w;/ J X Y$u决定Bug优先度TestAge 中国软件测试时代 e/M S @ o
可否等到下个里程碑或版本解决?TestAge 中国软件测试时代 G&n3V f m J
谁来解决TestAge 中国软件测试时代 b | //V6N%T7k9wM/u i
预测项目实际进度和发布时间
&e"V J |&A k2W6x } s缺陷走势图
(z*E4? _ `,B p
TestAge 中国软件测试时代XQ0|:J6g5Z)|;^6f
5.回顾微软的一天
U&K5e:S T+s*j#e
构造: daily buildTestAge 中国软件测试时代 V h)E"` ]*d c6k o
开发: 解决blocking bugs, 实现功能, check-out, code review, check-in
9j$G e5{1A j o测试: BVT, 使用测试用例进行测试
1J | l/~ { D!t I5| k项目经理/组长: 专家会诊
4{ ? l$R7p/k q ?/s6.微软的做法解决了那些常见问题?TestAge 中国软件测试时代 ^/k F p Z Q
质量问题
:@ C R b w
以前解决过的问题发布时又出现了,需要返工
A#v"O Z2K5c F t A p无法预估发布时间 过早发布,带来质量和维护问题
.h$h w d Z测试发现的问题被忘却或不了了之TestAge 中国软件测试时代G y { E3` t#x
无法衡量测试员和开发员的工作
g)K | D7^程序中的问题往往在发布后才发现TestAge 中国软件测试时代 q6s/L/c U-y+z
文档管理问题
.m*J E*y Y2g
文档与程序脱节,文档成为程序结果的描述TestAge 中国软件测试时代 l(m X:d ~ T!l*e
项目组把写文档看成负担TestAge 中国软件测试时代 e q b J0` R4? B
团队协调问题TestAge 中国软件测试时代0v z k ["X { a6f
开发人员各自为战,进行整合时发现模块衔接中的严重问题 需要作大的改动TestAge 中国软件测试时代+d9n x'h;w
没有保管好公司以往的版本和代码,无法满足用户对旧版本的更改要求TestAge 中国软件测试时代 ~ r$` q+j&_ `
开发人员离职对项目带来很大冲击,没有人知道代码在哪,或无法读懂
Y ]0p0~ P0x$D z五.提高软件管理的步骤
!O$n N$u v5n z
1. 使用Raid/BMS,将流程管理自动化
y t-u"R g1}0G2. 使用测试用例管理工具
] Q W Y'o g h+|0w3. 使用文档管理工具TestAge 中国软件测试时代3D6s k N T&r
4. 使用版本控制工具,进行Daily BuildTestAge 中国软件测试时代 z p j e k6V J w
5. 建立代码标准TestAge 中国软件测试时代2q z*a3g5I8| q z"b"L W w
6. 建立Code Review机制TestAge 中国软件测试时代 m o8R _(|.C6?
7. 建立专家会诊机制TestAge 中国软件测试时代f A'h%C Z g k g2B
8. 建立团队沟通机制TestAge 中国软件测试时代 l K'w'u M1e
9. 根据需要调整团队结构TestAge 中国软件测试时代