【2007】知识是需要沉淀的; 思想是在不断学习,磨练中成熟的; 技术是在创新中开拓的…………… 【2007】不经历风雨,怎能见彩虹,没有人能随随便便成功。加油!

软件质量与软件度量

上一篇 / 下一篇  2006-12-10 17:33:27 / 个人分类:软件质量保证

1         质量、质量特性与质量职能

现代质量管理认为,质量是客户要求或者期望的有关产品或者服务的一组特性,落实到软件上,这些特性可以是软件的功能和安全性等。软件产品质量是最终的检验标准,而最终的检验者是客户,从这个意义上说,软件质量就是客户的满意度。51Testing软件测试网"M5Rj C%}!Y#k

1.1      质量的重要性

质量是企业的生命,没有质量,企业就不能生存和发展。以质量求生存、求发展,是现代企业经营管理的质量理念。51Testing软件测试网 M;f3T9aj

产品质量。产品质量是指产品能够满足使用需求所具备的特性。一般包括性能、可靠性、安全性、经济性,以及外观质量等。51Testing软件测试网L r{5E K

1.2      什么是软件质量

保证软件质量就是要满足明确声明的功能和性能需求、明确文档化的开发过程以及专业人员开发软件所具有的所有隐含特性。

/mjJ'NP0q0

从这个定义可以理解:

B-B?:i*H~B9B!l0

*        软件需求是质量度量的基础,与需求不符就是质量不高。

b)na:v5Y(jM Zr|0

*        正确性(Correctness):所制作的功能达到设计规范并满足使用者需求的程度;

'l NM+~T0

*        可靠性(Reliability):于规定的期间和条件下,仍能维持其性能水准的程度;

JE*n&f"C2F0

*        易使用性(Usability):使用者学习、操作、准备输入、理解输出所做努力的程度;

.` }1[5H:MpK%ym0

*        效率(Efficiency):软件执行某项功能所需电脑资源的有效程度;

6ufu#? UL5N0

*        可维护性(Maintainability):当环境改变或软件发生错误时,执行修改所做努力的程度;

T0{.w/y\/[D0

*        可移植性(Portability):从一个电脑系统或环境移到另一电脑系统或环境的容易程度。51Testing软件测试网Vv@2jP VRd&rN

2         质量管理

2.1      质量管理的定义

质量管理是确定质量方针、目标和职责,并在质量体系中通过诸如质量策划、质量控制、质量保证和质量改进使其实施的全部管理职能的所有活动。

6HEfX wC0

质量管理是各级管理的职责,但必须有最高管理者领导。质量管理的实施涉及到组织中的所有成员。

O2R3HD,s{g0

质量管理任务是正确制订和贯彻执行质量方针和政策;保证和提高产品质量和服务质量,生产出物美价廉的产品,以满足用户需要;不断降低物质消耗,降低质量成本,提交经济效益;提高领导和职工的质量意识和素质,促进企业素质和管理水平的提高;研究和发展质量理论和质量科学。质量管理是揭示产品生产、形成和实现运动的规律,运用规律以指导质量管理活动。

;_#C(Q;k,p t0

3         质量保证和测试

软件质量保证(Software Quality Assurance,即SQA)与测试(Testing)有相同之处,但Quality AssuraceTesting又具有两个显著不同的流程和职能。

$T5F{ b5c%t EC0

3.1      SQA与测试的不同

正规化的测试流程基于标准化的软件开发生命期。强调书写正式的测试文档(比如测试计划、测试设计、测试用例和测试过程),以实现可重复的结构化软件测试。测试文档应以正式的需求规格说明书为基础,模型中的测试计划是用来验证需求的,有了测试文档就可以执行测试。

6^8B ^q G&X cF0

之后是检查测试文档、基于文档执行测试、召开测试前和测试后的会议,以及书写测试报告等。

(]6m \Ix0

正规化的测试流程包含5个重要的子流程:51Testing软件测试网 f'G E5eYQlf^8V6H D

*        检查项目计划

,Lf[!J1{o0g/e7m#f4m0

*        创建测试计划51Testing软件测试网y.y%`@ @\

*        创建测试设计、测试用例、测试软件和测试过程;51Testing软件测试网9cJ.W)GWG _3_8S,I

*        执行正式的测试

:Ou:U({iwI0

*        更新测试文档51Testing软件测试网2P7L1sa%\G"ik:? N

类似的,QA流程模型是建立在项目早期的QA计划基础上的,象测试一样,QA也是一个贯穿整个开发生命周期的流程。51Testing软件测试网*skNm%|/J

SQA计划形成后,QA要进行以下活动:51Testing软件测试网4Vz)@ [ `

*        协调度量工作

9]@YB)y)F)y%F2W-qZ0

*        协调风险管理工作51Testing软件测试网p@A(D-e8g*O@n

*        执行审查

C.jW)VA4['gFBB0

*        协调风险管理工作

F-w;u}!p{0

*        执行审查

E5o-cC J.l5m*N U0

*        协调文档检查会议

r0F @+AsA0

*        促进/协助流程改进51Testing软件测试网1T)hmS[

*        监察测试工作

I.r6L I)^2q0

1.         SQA组织的职能是向管理层提供正确的信息,以开发程序正确执行;51Testing软件测试网| u?o|M(_

2.         SQA最主要的职能是促进和协助流程的改进,收集度量数据(有些来自文章检查的结果)、确定和管理风险都能够帮助流程改进。

-i]NxW~B}j6R(i0

3.         SQA的另一个主要职能是充当测试工作的监督者,管理人员和开发人员不必再担心“谁来监督测试人员”,有了独立的SQA组织,测试工作就可以被客观的检查和评价。SQA可以确保测试工作是按照他们定义好的流程(如同测试计划和其他测试文档中所写的那样)执行的,并且可以协助测试部门和人员改进测试流程。51Testing软件测试网Tkl;chg.~

4.         从另一个角度看,通过比较SQA和测试的不同,我们也看到了测试和SQA是如何通过协作建立起一个正规化的质量支持基础构架来支持项目开发的51Testing软件测试网:O&m f M4X Cj

3.2      对于SQA与测试工作的一些误解

1.         误解一:如果发布出去的软件有质量问题,那时软件测试人员的错;

:_V"K ^z0L-j@7i$b0

这种观点是错误的,因为软件质量是“做”出来的,而不是“测”出来的。51Testing软件测试网 H'o] Q+a!T

2.         误解二:软件技术要求不高,比编程容易多了;51Testing软件测试网r6\v(I/x4R;ms

很多人认为软件测试技术要求不高就是运行一下软件,然后看结果对不对。但实际上,如何在有限的投入下,提高软件质量的效率和产出是一件很见功底的事情。所以,好的测试人员不仅要掌握各种测试技术和测试工具,还要具备丰富的编程经验和对bug的敏感性。另外,测试统计技术也是一项很特别的技术51Testing软件测试网KR+M:Z RsJE7|

3.         误解三:设计——实现——测试,软件测试是开发后期的一个阶段;

!Q|4HCu0

实际上,软件测试贯穿整个软件产品生命期。一方面,软件测试也要经历测试计划、测试用例的设计和实现,以及测试运行一系列的阶段,因此,早在软件需求阶段,甚至更早,软件测试的工作就要开始了。另一方面,软件测试越早进行越好,因为bug越早发现,bug造成的影响和修改bug的代价就越小。而且,软件测试并不仅仅针对程序,软件的需求、设计等也要被测试;

h&b _sk6\8[9q0

4.         误解四:SQA工作就是要做测试;

4O&rm'}8q)~XZ f2_0

软件测试就是一种有效的提高软件质量的手段,但测试毕竟是一种事后的,检验性的,任何在软件生产过程中保证软件过程的质量和效率其实比单纯的产品检验具有更重要的意义。不断的改进我们的软件过程是SQA的一项最重要的任务。51Testing软件测试网m/FX+u ja u

SQA和测试虽然具有上面所述的不同之处,当他们需要协作和共同作用才能有效提高软件产品的质量。51Testing软件测试网ui+^$N&@"j/r

4         软件度量

只有可度量的才是可控制的,也才是可测试的。度量的目的是为了判断SQA活动的成本和进度状态,进而改善SQA活动。本节介绍软件度量对研发的意义,以及如何进行度量活动。51Testing软件测试网w4q2W2s,N%C

4.1      为什么需要进行软件度量

可能人们有疑问:度量活动对我们的研发工作有上面所述的作用吗?我们花费时间和人力来做度量,值得吗?

1r2v_5a7pT0D0

度量活动可以对我们的软件开发项目状态和产品质量给予量化的表示,为我们加强和改进研发工作提供详细的指导。

d Alef#\d fX9m0

1.         软件度量的作用

4edJFX0|0

用数据指标表明验收标准;

E)XTX;Z)T0

监控项目进度和预见风险;

uCZ9?@M So&K6n0

分配资源时进行量化均衡;

x8@6W)K!l t0

预计和控制产品的进度、成本和质量。51Testing软件测试网]?[*g lJ

2.         度量的目的51Testing软件测试网3u R kW`Ta5y&R

1)        理解

0c5Y0T!l k#A-I"I7H2R4N0

就是通过分析获得过程、产品资源、环境的信息,确定以后预测的基线和模型。这是评估、预测、改进活动的基础。对于不同的组织和软件类型,过程模型不一样,没有通用的组织模型。

K5j{s*W`1c)U+se9qd0

2)        预测51Testing软件测试网.J%j}6Nn

就是通过理解过程、产品各要素之间的关系建立模型,由已知的要素推算、估计其他要素,以便合理分配资源、合理制定计划。

G0^.ej`/`{&q'D0

3)        评估

S?YFU$Ph0

就是分析活动与计划的符合程度,确定是否有偏差,以便控制其执行;51Testing软件测试网,G4C4C1jiDa,|

*        评估最终产品的质量;51Testing软件测试网1H2R$t&yB2^5P1R

*        评估新技术的影响;

M c xqv}Kw0

*        评估过程改进对过程和产品的影响。

-A%M)K1H9QP'Xdh0

4)        改进51Testing软件测试网oba)x G[5X~ n%?

就是根据得到的量化信息,可以帮助我们识别障碍物、查找问题的根源,以及能提高产品质量和过程效率的其他方法。与以前的量化信息比较,可以证实这些方法是否有效。51Testing软件测试网0t P ~k&f3U/F3w"?

软件度量的根本目的就是通过量化的分析和总结,帮助我们提高生产效率,提高产品质量,降低成本和产品研发周期。

,W(H^1f\o@$]0

4.2      软件度量的概念

度量是根据一定的规则,将数字或符号赋予系统、构件、过程等实体的特定属性,从而使我们能清晰的理解该实体及其属性的量化表示。简而言之,度量就是对事物属性的量化表示。51Testing软件测试网[0{Ks&C {B6p

软件度量活动的结果不一定能直接应用。因为通常对于软件度量活动的结果,简单的看数据,很难分析出过程特征。51Testing软件测试网%h+|%Q:p%t"B0G3R1s4m{

为便于分析、理解,可以用指标来表现度量活动的结果,它是对于一个度量结果或者多个度量结果的组合,并采用一些易于理解的形式,使我们对于过程、系统、项目、产品能有深入的理解。51Testing软件测试网TY.Ry T.r

1.         软件度量相关概念

:O"Q*m.f-|!f C0

*        测量(Measure)是对产品过程的某个属性的范围、数量、纬度、容量或大小提供一个定量的指标;

~y_Lss0

*        测度(Measurement)是定义一个测量的行为;

wL)Mxx+U&t0

*        度量(Metric)是对软件产品进行范围广泛的测度,他给出一个系统、构件或过程的某个给定属性的度的定量测量;

H-uL'ze XL.A9k5R0

*        指标(Indicator)是一个度量和一组度量的组合,他对软件过程、软件项目或产品质量提供更全面、深入的评价和了解。

}HY6iJ-h0

 

B8^;St%o h5W0

TAG: 质量保证 软件质量

引用 删除 274145814   /   2013-10-24 09:39:56
好好学习了
引用 删除 274145814   /   2013-10-24 09:39:30
5
harryzhang2522的个人空间 引用 删除 harryzhang2522   /   2012-08-19 12:34:34
5
软测路上 引用 删除 aux0   /   2012-04-15 08:22:02
内容丰富,谢谢!
引用 删除 cateran2011   /   2011-06-18 11:04:07
3
引用 删除 tianye_hit   /   2011-02-24 12:20:23
引用 删除 tianye_hit   /   2011-02-24 12:20:06
3
 

评分:0

我来说两句

Open Toolbar