软件测试基础
上一篇 / 下一篇 2007-01-11 16:00:42 / 个人分类:测试理论
一、软件测试概述51Testing软件测试网$Y
DG Ye9]5s(o
51Testing软件测试网3B:C5S\&E y*u-h
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。
#v1OsV.P0
6B1Q `j^gZ0软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doing the right things right at the right time.)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。四、质量也代表着它符合客户的需要(Quality also means “meet customer needs”.)。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。51Testing软件测试网%^'J;?4k8v(Ic*I
%vE6`5UU2rl0测试人员在软件开发过程中的任务:
1sA$p$`zro0
,N!x#p/YFA01、寻找Bug;
0j+v*b g7LU}7[V"E051Testing软件测试网3\Jm/ug5kt,^
2、避免软件开发过程中的缺陷;
.PR [1r7[B6Wt051Testing软件测试网7GP?0D|gn\@x
3、衡量软件的品质;51Testing软件测试网Ud0TC T)y s:Z }
51Testing软件测试网/xzh)za0?0{/~*JK5r
4、关注用户的需求。
LP/S IRtw051Testing软件测试网;CH,ag(tl] n
总的目标是:确保软件的质量。51Testing软件测试网9rt(_]YJ b
(Ob5a9j?cL'~:U0
1p V2Dq$X7y:B0二、常用的软件测试方法51Testing软件测试网+Y.m2CsM
6E B"Huwkv01. 黑盒测试51Testing软件测试网3~ ju(rq6Z~M hj N
51Testing软件测试网5g_!A;FFFfEh
黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。51Testing软件测试网t'}FUM [+tf
c T|6bk+W/]0黑盒测试的优点有:
5iV?TF$w01)比较简单,不需要了解程序内部的代码及实现;51Testing软件测试网"]|&M(xhk S2J?
}f YDU&b _02)与软件的内部实现无关;
xNLkQ)V0
ub|0o`T.BXx03)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
q{ x'LiM0
5z_2cKOss J04)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
@)S"V G J5j#l}F051Testing软件测试网;{O(d0N|6_xX?
5)在做软件自动化测试时较为方便。
+[gq|iP,b!TB|$o051Testing软件测试网wCUDo ei
黑盒测试的缺点有:
G/PD"n-F UwJ01)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
n(Y^d L:m V0v1u8`051Testing软件测试网*d,^w#r6X,d
2)自动化测试的复用性较低。
*],x-ow G_051Testing软件测试网;mY'esa^ ]
2. 白盒测试51Testing软件测试网1f {J7bea
,XRZl7X0白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。如下例程序代码:
a'KB/rp8d2fp~0
}%^D,?*H9t d0
p_v j-?b*A0HRESULT Play( char* pszFileName )
51Testing软件测试网3B:C5S\&E y*u-h
软件测试是软件开发过程的重要组成部分,是用来确认一个程序的品质或性能是否符合开发之前所提出的一些要求。软件测试的目的,第一是确认软件的质量,其一方面是确认软件做了你所期望的事情(Do the right thing),另一方面是确认软件以正确的方式来做了这个事件(Do it right)。第二是提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息。第三软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程。如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的。
#v1OsV.P0
6B1Q `j^gZ0软件质量是由几个方面来衡量的:一、在正确的时间用正确的的方法把一个工作做正确(Doing the right things right at the right time.)。二、符合一些应用标准的要求,比如不同国家的用户不同的操作习惯和要求,项目工程中的可维护性、可测试性等要求。三、质量本身就是软件达到了最开始所设定的要求,而代码的优美或精巧的技巧并不代表软件的高质量(Quality is defined as conformance to requirements, not as “goodness” or “elegance”.)。四、质量也代表着它符合客户的需要(Quality also means “meet customer needs”.)。作为软件测试这个行业,最重要的一件事就是从客户的需求出发,从客户的角度去看产品,客户会怎么去使用这个产品,使用过程中会遇到什么样的问题。只有这些问题都解决了,软件产品的质量才可以说是上去了。51Testing软件测试网%^'J;?4k8v(Ic*I
%vE6`5UU2rl0测试人员在软件开发过程中的任务:
1sA$p$`zro0
,N!x#p/YFA01、寻找Bug;
0j+v*b g7LU}7[V"E051Testing软件测试网3\Jm/ug5kt,^
2、避免软件开发过程中的缺陷;
.PR [1r7[B6Wt051Testing软件测试网7GP?0D|gn\@x
3、衡量软件的品质;51Testing软件测试网Ud0TC T)y s:Z }
51Testing软件测试网/xzh)za0?0{/~*JK5r
4、关注用户的需求。
LP/S IRtw051Testing软件测试网;CH,ag(tl] n
总的目标是:确保软件的质量。51Testing软件测试网9rt(_]YJ b
(Ob5a9j?cL'~:U0
1p V2Dq$X7y:B0二、常用的软件测试方法51Testing软件测试网+Y.m2CsM
6E B"Huwkv01. 黑盒测试51Testing软件测试网3~ ju(rq6Z~M hj N
51Testing软件测试网5g_!A;FFFfEh
黑盒测试顾名思义就是将被测系统看成一个黑盒,从外界取得输入,然后再输出。整个测试基于需求文档,看是否能满足需求文档中的所有要求。黑盒测试要求测试者在测试时不能使用与被测系统内部结构相关的知识或经验,它适用于对系统的功能进行测试。51Testing软件测试网t'}FUM [+tf
c T|6bk+W/]0黑盒测试的优点有:
5iV?TF$w01)比较简单,不需要了解程序内部的代码及实现;51Testing软件测试网"]|&M(xhk S2J?
}f YDU&b _02)与软件的内部实现无关;
xNLkQ)V0
ub|0o`T.BXx03)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;
q{ x'LiM0
5z_2cKOss J04)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;
@)S"V G J5j#l}F051Testing软件测试网;{O(d0N|6_xX?
5)在做软件自动化测试时较为方便。
+[gq|iP,b!TB|$o051Testing软件测试网wCUDo ei
黑盒测试的缺点有:
G/PD"n-F UwJ01)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30%;
n(Y^d L:m V0v1u8`051Testing软件测试网*d,^w#r6X,d
2)自动化测试的复用性较低。
*],x-ow G_051Testing软件测试网;mY'esa^ ]
2. 白盒测试51Testing软件测试网1f {J7bea
,XRZl7X0白盒测试是指在测试时能够了解被测对象的结构,可以查阅被测代码内容的测试工作。它需要知道程序内部的设计结构及具体的代码实现,并以此为基础来设计测试用例。如下例程序代码:
a'KB/rp8d2fp~0
}%^D,?*H9t d0
p_v j-?b*A0HRESULT Play( char* pszFileName )