致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论

浅谈同行评审

上一篇 / 下一篇  2008-07-10 19:18:01 / 个人分类:Test Process

51Testing软件测试网1b3WP)k6N`(p

1、什么是同行评审?

I M{&yb {5p+y7^0

同行评审是以发现和消除软件生存周期中产品错误为目的的过程中技术性评审。同行评审的对象可以是软件开发过程中任何输出或部分输出,包括计划、需求、设计、和代码等。同行评审嵌入在开发产品的过程中,并在每一输出的早期开发阶段开始进行。

8LTRb0f;Y#t2e,cd0

同行评审可以有多种方式,参加的人数和评审活动的正式程度不同,效果也不同。经验表明,越正式的同行评审效率越高,因此,应尽量采用较正式的同行评审方式。

M mMa3T;S3P0

正式的同行评审过程包括了如下五个方面的相互作用:

?)gvFF |6e&L0

a)明确定义的审查步骤51Testing软件测试网uS+U"o)? hd:}ZL

b) 明确定义的参与者角色51Testing软件测试网Qr0Y?m;i:C

c) 正式收集的过程和产品数据51Testing软件测试网$Bu d'@^*o)O

d)被审查的对象51Testing软件测试网)E%~3Y+P;H d%R@

e)支持性的基础设施,包括检查单、工作表等。

4zI2f)kq051Testing软件测试网$k9q S6Sk

设计同行评审过程的目的是协助生产出更好的产品。这一过程还能带来其他益处。软件的质量会随着错误的发现和更正而提高,新的开发阶段就可以有一个技术上更为坚实的基础。由于错误的及时发现和更为容易的解决,整个软件生存周期的成本会随之降低。测试的有效性得到提高,同时花费在软件产品测试上的时间减少。同行评审的另一个重要作用是开发人员可以及时得到其同行的评价和信息反馈,这将带来未来开发输出的质量的提高51Testing软件测试网Wdz zFU-hG f

51Testing软件测试网 T{$` h5cF]3E

2、同行评审的类型?

7h~Cw I;V c#o*q oW0

_(h_9M.f){r02-1)审查

.P1\j#H EAI D+axH0

审查(Inspection)是同行评审的一种,由经过审查技术培训的主持人领导,由一组职责定义明确的讲解员、作者、记录员、审查员等人员参加,通过一组明确定义的过程对软件工作产品进行静态检查来发现产品中的异常。

J$| Nt6q Z-_0

本文所描述的审查方法综合了目前软件界使用的多种正式审查(Formal Inspection,国内也常称为“正规检视”)方法。正式审查最初是由IBM公司的Michael Fagan为提高软件质量和提高程序员的生产力而开发的,因此也被称为“Fagan方法”。这种软件评审方法在业界被广泛采用并收到了很好的效果,被普遍认为是软件开发的最佳实践之一,因而IEEENASA等组织都为此编制了相应的标准,作为软件开发中进行技术评审的一种重要手段。51Testing软件测试网 s$gn{q

审查工作由一个主持人、讲解员、记录员、作者和其他审查员组成的小组来执行。一个审查组一般应有46名成员组成,特殊情况下3个成员也可以进行,建议不要超过7人。每个审查员有一个特定的角色。此外,找出并报告错误是整个审查组的责任,因此每个组员都是审查员。主持人的主要责任是保证审查过程顺利完成。此外主持人还负责选择小组成员、主持审查会并报告审查结果。讲解员的任务是引导审查组通读工作产品。记录员的责任是准确记录审查会中发现的每个异常。作者的责任是回答审查员的问题并在审查结束后修正发现的异常。此外项目数据库可以给审查提供有益的帮助,它可以帮助主持人记录审查的状态和统计数据。要了解每个角色的更详细资料请参考第4章。51Testing软件测试网 ?K@{1^

51Testing软件测试网A,{A[ L S&|

经验表明,审查比走查等同行评审要更严格、定义更明确而且更行之有效,但是操作难度也更大

n2B~2qu!jok/u051Testing软件测试网tW!Y&pS;H!p

2-2)走查51Testing软件测试网*Pj6L/Ubkz#@4[%X

走查(Walkthrough)是同行评审的一种,由一组职责明确的主持人、作者、记录员、审查员等人员通过一组明确定义的过程对软件工作产品进行静态检查来发现产品中的异常。

o4o'Rf:U*j p3|0

本文所描述的“走查”方法综合了目前软件界使用的多种结构化走查(Structured Walkthrough)方法。这类软件评审方法最初用于代码的检查,实践表明效果良好,并逐步发展为用以检查软件生存期内各种软件产品的结构化方法,在业界被广泛采用并收到了良好的效果,被普遍认为是软件开发的最佳实践之一,因而IEEE等组织都为此编制了相应的标准,作为软件开发中进行技术评审的一种重要手段。51Testing软件测试网0VGB9yJ;D)GG

本文所述的走查过程与非正式的走查过程不同。非正式走查通常仅是由作者导读软件产品,由听众提出意见,缺乏正规的会议计划、预审、会议控制与记录、数据收集等环节。经验表明这类非正式走查不仅发现异常的能力较弱,而且不利于后继的缺陷预防和过程改进。51Testing软件测试网#@#J%N'G5o+V?4R

51Testing软件测试网&A:iqS}7o p;_O^

走查近似于审查过程的简化,其目的和评审对象都基本一致,主要的区别在于不设讲解员而直接由作者进行讲解,时间控制等要求较低,不需要延续会议、第三小时和诸葛亮会等环节,走查速度也可以比审查更快些

.p/h.qo2_8G.w051Testing软件测试网n HM`kV h$\,aD

2-3)单人复审51Testing软件测试网y;O0D|0Y[0p@"^:T b

单人评审是同行评审的一种,由软件产品的作者选择某位同行对其产品进行静态检查,发现产品中的异常。51Testing软件测试网9AwJM.OE

51Testing软件测试网E{i;^e A q`#F3n8m

本文所述的单人复审可以被视为普遍采用的设计文件复核的正规化,类似于简化的只有两人参加的走查,有着明确的过程和数据记录要求

]tTe$Yi c!zV,Q7~0

BJ!t@Cp03、如何进行软件生命周期内的同行评审?

z]n0Z"zX:Fs051Testing软件测试网g'`0rJ8C J

3-1)项目立项阶段51Testing软件测试网%FS5a y9M~2p!FDX

51Testing软件测试网 YWGt+?Vr(^

本阶段确定了系统的概念,评估了系统的可行性,确定了系统的开发策略。本阶段工作一般在公司产品研制周期中的项目论证阶段完成,要审查的最重要的文档是可行性研究报告51Testing软件测试网LTe$X*M

51Testing软件测试网}CO%|5q.Gj6Pp'M

3-2)系统需求分析阶段51Testing软件测试网o9E8A$W6fg8Wq

本阶段确定了软件的概念,评估了软件的可行性,确定了软件的开发策略。本阶段工作一般在公司产品研制周期中的系统方案阶段完成,系统需求分析文档(独立成文或者包含在产品研制规范、总体方案中)是本阶段需要审查的最重要的文档。其他文档可能还包括系统规格说明、软件管理计划和软件质量保证计划(独立成文或者包含在研制任务书、项目手册中)等。51Testing软件测试网(d%@y B2JMza7|

系统需求审查的目的应为:51Testing软件测试网S5^q c+Rc;b

a)确保适当地将功能分配给了软件、固件、硬件和具体操作。

M%js zso&x|0

b)确认所有外部使用接口。51Testing软件测试网&jqQy?9g:c/i

c)验证所有的软件系统功能都已得到识别并分解到了配置项。51Testing软件测试网6^h7S.d;|Sd}"xs

d) 确保软件系统中的所有配置项都已经得到识别。51Testing软件测试网Dn;j)djz]vD~

e) 验证已识别的配置项提供了它们需要的功能。51Testing软件测试网Y1hI'\$I,d6{

f) 确保已经识别了软件系统中所有配置项之间的接口。51Testing软件测试网#?*JQbe[

g)验证软件系统结构的正确性。51Testing软件测试网bgNk#|)S`5G

h)确保已经说明了所有可量化的需求和需求属性。51Testing软件测试网riz/S+?#l ` w

i) 确保需求是可验证的。

|#U3p4A(_'^+iC\A0

 51Testing软件测试网%n.HH/YQ!H6BQGk3q

3-3)软件需求分析阶段51Testing软件测试网l&c)YMa4p

本阶段对软件的概念和分配给软件的系统需求进行分析,并生成文档形式的软件需求分析报告。同时开始起草包含软件需求验证方法的测试计划。此外还要进行风险分析,重新估计工程后续阶段的规模和范围并修订相关计划。软件开发的方法、标准、和程序将被细化并付诸实施。本阶段工作一般在产品研制周期中系统方案阶段完成。

"j ?&Lbb7Hbp0

为了给软件设计提供充分的依据,对软件需求分析及其与上级文档的可追溯性要进行完全的、准确的审查。其他文档如测试计划的初稿也可以在这个阶段进行审查。

X2T7]!J S%IV0

软件需求审查的目的应为:

i5o[|JV6N0

a) 验证下列各项得到了完整和精确的说明:

8TL*d S(y0

a-1)软件功能51Testing软件测试网8s1\},a6\`;O+id D

a-2)输入和输出51Testing软件测试网V2Is5cL

a-3) 状态和模式

U)F.THVz0

a-4) 响应时间需求51Testing软件测试网6NJw;_$\Z7P j

a-5) 接口

o6md a+l0

b)确保包含了错误探测和恢复、可靠性、可维护性、性能和准确性方面的说明。51Testing软件测试网3fQG+WV+_

c)确保与高层文档的需求可跟踪性。

:L@MvJ+w0

d) 验证需求为软件设计提供了足够的基础。

CYf8KWg H@0

e) 验证需求是可测量的、一致的和可测试的。51Testing软件测试网o W SKJ;h m4CU

 51Testing软件测试网C6N9z6M?U*M a

3-4)软件概要设计阶段

2c%y:P\'_a Y*\!](i0

本阶段进行软件的体系结构设计,将所有的需求分配给软件的各个部分。同时还应该修订细化软件测试计划,起草软件测试方案。本阶段工作一般在产品研制周期中系统方案阶段和系统设计阶段完成。

3K7l I qh C%V'o0

本阶段对设计的审查应包括与需求的可追溯性、正确性、明确性、可编程度、可测试性及一致性等。被审查的工作产品应当是软件子系统/模块设计方案、软件接口规范(初稿)、数据库设计说明(初稿)等。

uds+Zb R%O'S0

软件概要设计审查的目的应为:

V/p W8X6fz!]0

a) 确保设计满足已批准的需求。51Testing软件测试网 B"z LK9M:cX8m

b)  确认每个部件内模块间的所有接口。51Testing软件测试网L&q)`K9]1H\

c)复查模块清单和每个模块的概要功能。

2v(L)V3|9Tpw o0

d) 确认错误探测、识别和恢复需求。51Testing软件测试网t(FA;Z h c a

e) 验证部件结构满足需求。51Testing软件测试网(J` ]h4e

f) 确认可复用部件的选择。

2\'H s:I_%J6AK0

g)确保设计与已批准需求的可跟踪性。51Testing软件测试网4uv \J"\ H A8l3x9_

h) 确认输入和输出接口。

5B$A0O Tr\b0

 51Testing软件测试网~1p.q9p1d

3-5)软件详细设计阶段51Testing软件测试网/k d_'_#h h}-^5wE

本阶段将软件的体系结构设计扩展到单元水平。完成了接口控制文档并修改了测试计划。估计和分析约束和系统资源限制,确定测试小组和测试资源。本阶段工作通常在产品研制周期的详细设计阶段完成。

A+`S%M3W6b!Z0

本阶段需要审查的工作产品是软件部件和/或模块的详细设计。详细设计应该严格遵循上级设计的要求,审查时也要遵循这一原则。详细设计审查的目的应为:51Testing软件测试网N(N tG5\^]

a) 确保设计满足已批准的需求。51Testing软件测试网vIIx"h5cg Y%vA[

b) 确认每个模块内的所有逻辑算法、数据结构和调用。51Testing软件测试网'e)r/}3[S2Du:@

c) 验证每个模块的详细设计都是完整的。51Testing软件测试网(V*p,m] ~

d)确保设计与已批准需求的可跟踪性。51Testing软件测试网1p6V.d6r'pc:RL5f

e)确保详细设计符合需求并且可以跟踪到高层软件系统设计。

!b6Y$R*y!R1UP!^d0

 51Testing软件测试网]1`9K H)J`!i

3-6)软件编码和单元测试阶段51Testing软件测试网OwI#Z_

本阶段进行软件的编码和单元测试,通常在产品研制周期的详细设计阶段进行。

];IN3k VrS WZ K0

本阶段的审查对象可能包括所有代码和新文档。代码审查应该检查技术准确性和代码的完整性,确保代码实现了设计的要求并使用了好的方法和标准。代码审查应在代码没有语法错误且编译通过后,开始单元测试前进行。其他要进行审查的文档包括测试计划和规程及其他已完成的新文档。51Testing软件测试网7})F a@r:HzN

代码审查的目的应为:51Testing软件测试网];wGT0X9P8}N3t6^-|

a) 确保代码满足已批准的需求。51Testing软件测试网4};hp]NhM'v

b) 验证代码与需求相关的技术准确性和完整性。

&z&zW_C0

c) 验证代码贯彻了详细设计,并且满足了所有需要的/适用的标准。51Testing软件测试网4Tb1a%s?Y0`lx2z

d) 确保代码与已批准需求的可跟踪性。

HbK&LI ~-Z8C0

e) 确保代码符合需求并且可以跟踪到详细设计。51Testing软件测试网.TV_D(F4S

 

e3X[ q8R/c8h#oF"T0

3-7)软件集成测试阶段

)DE Jm r"a]S0

本阶段将软件各单元与模块集成为一个完整的系统,发现、记录并修正不一致的地方,并验证软件满足了需求。本阶段要实施集成测试计划,修改整理文档,为发布软件做好准备。本阶段主要工作在产品研制周期中样机评审前的制造联调阶段完成。

@z|k#el`)y0

本阶段应该对测试计划、测试用例与规程进行审查。审查应确保测试计划覆盖了所有需求的验证,测试案例和过程能够正确恰当地进行并且所有需要的材料都可以得到。51Testing软件测试网0@"Q~ Q F(~3as'|

测试计划审查的目的应为:

b&K+N/YP6}Snl0

a)发现测试计划的定义上的缺陷和误解。51Testing软件测试网 z5D$Nh!gE

b)确保所有新的和修改过的软件功能能够在预期的环境中按照已批准的需求正确运作。51Testing软件测试网fr m*T-q6C

c)确保将验证所有新的和修改过的接口。

&dR k\BU$M0

d)识别并消除无关的或过时的测试计划。

~+x^5B)o]M0

e)确保每项需求都将得到测试。51Testing软件测试网!z[!Z;o @

测试规程审查的目的应为:51Testing软件测试网#BOr\6y,D}8h3P

a) 确认测试规程的组合满足了测试计划的目标。

,]s+qH5C A0

b) 确认每项测试规程提供了:51Testing软件测试网.^*G [?L"UV%U

b-1) 关于其目的的完整而准确的描述。51Testing软件测试网rITI*H tP.uy%mm)VO l

b-2) 关于如何执行的描述。

M7E9UFo]0q \bv0

b-3)所有预期的结果。

z AZ6Pkg0

b-4) 测试通过的准则。51Testing软件测试网s;\3k3dJ)t8xG$M

c) 确保每项测试规程都指明了测试的是哪些需求并正确地测试了所列出的需求。51Testing软件测试网-V2ZP%ycI

d) 确保每项测试规程都指明了需要的硬件和软件配置。

#c;xl*_ _b T0

e) 确保每项测试规程都将无错地执行。51Testing软件测试网$`)[ w-k"gr;X

 

cr%t%g1{'~?0

3-8)系统测试阶段51Testing软件测试网0Q.gQ$?C g` N

本阶段将软件与硬件系统集成为一个完整的产品系统,发现、记录并修正不一致的地方,并验证系统满足了需求。本阶段要实施系统测试规程,修改整理文档,为发布产品做好准备。本阶段主要工作在产品研制周期中样机评审前的制造联调阶段完成。51Testing软件测试网&I-Y!]-D;n3o-TN5G B7a

本阶段应该对测试计划、测试用例与规程进行审查。审查应确保测试计划覆盖了所有需求的验证,测试案例和过程能够正确恰当的进行且所有需要的材料都可以得到。测试计划与测试规程的审查目的同上节。51Testing软件测试网V*h6@4U+^)T CGOd)PG

 

r!Lk#S*Bc0S0

TAG: 测试过程

1honglong1的个人空间 引用 删除 1honglong1   /   2009-02-15 09:34:45
5
 

评分:0

我来说两句

日历

« 2024-04-29  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 91112
  • 日志数: 79
  • 图片数: 1
  • 建立时间: 2008-05-18
  • 更新时间: 2009-06-04

RSS订阅

Open Toolbar