致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论
小议自动化测试
上一篇 /
下一篇 2008-07-13 02:16:07
/ 个人分类:Automation
?6|&`8P&nv0D0aq01、概念
leg O$}%n0s_7gUjeK0测试自动化是一种测试技术,是通过使用自动化测试软件按照设定的机制,自动对被测系统执行测试的一种技术。更确切而言,测试自动化不是“测试”技术,而是一种“再测试”技术,主要用于回归测试51Testing软件测试网7YW
Gp(p
o-BPj
_-o2Z
|1~ R$u8mg4ya02、目标
3N!w)p/hU{$`051Testing软件测试网0ox(n6]6x%ep\测试自动化的目标是对被测试系统进行自动测试。总的来说,测试自动化的目标是通过较少的开销,获得更彻底的测试,并提高产品的质量51Testing软件测试网/\
py l A.w z(Ad }3Q
51Testing软件测试网&?*a^%p8XS3、特点51Testing软件测试网e[-Ix7k9G~
3-1)、可以对程序的新版本自动执行回归测试
T DM4q*E4u"D*u~0这是测试自动化的最主要的任务。在需要频繁修改大量程序的环境中,自动化进行回归测试的开销是最小的。51Testing软件测试网cvJI*M
}Ed%`!T
3-2)、可以执行更多更频繁的测试
,~&kty-y5eN0自动化测试的一个特点是可以在较短的时间内进行更多的测试。
2A1NW H1P6N6W-i
?$p Z03-3)、可以执行一些手工测试困难或不可能进行的测试51Testing软件测试网p'C1i(Qy9r1k
如对于一个需要2W用户并发操作的动作,要获取足够多的资源进行测试几乎是不可能的。但是自动化测试工具可以模拟2W个用户进行仿真测试。
e vP d;DxK03-4)、可以更好地利用资源
ksJ SO5m0将繁琐的任务自动化,如重复输入相同的测试输入,可以提高准确性和测试人员的积极性,将测试人员解脱出来转而投入更多精力设计更好的测试用例。并且自动化测试可以不停地进行测试,有效地利用了计算机的资源。51Testing软件测试网(|7\$Z!Wm:mr/vR
3-5)、测试具有一致性和可重复性51Testing软件测试网rX*N5MXL(mo k/q.oG
测试自动化可以重复进行多次相同的测试,因此可以获得测试的一致性,这在手工测试中是很难保证的。有些测试可能在不同的硬件配置下执行,使用不同的操作系统或不同的数据库,此时要求多平台产品的跨平台质量的一致性,这在手工此时的情况下是很难做到的。
n5^ L*u&c03-6)、测试的重用性51Testing软件测试网6qH B5XI}4i
自动化测试的测试用例经过一次执行之后,在以后的测试中可以不断重用而无需人工参与,这一点在手工测试中是无法做到的。
_9D
{Gg
|iY03-7)、可以更快地将软件推向市场51Testing软件测试网a['^3f Hs
一旦一系列的测试已经被自动化,可以比手工测试更快地重复执行,大大缩短了测试时间。
O.}[;p!Q#LI03-8)、可以增加软件信任度
W `Z^APy s0一旦得知软件通过强有力的自动测试后,软件发布时对其的信任度也会提高
Jex?3G)gZ!v
Q0 51Testing软件测试网/i7u2d"T*U~a
4、误区
vhF+^'Q)R/I0 51Testing软件测试网_ T}:AEa
测试自动化使用过程中可能会遇到许多问题,以下是普遍存在的测试自动化误区:51Testing软件测试网Ec&?U \C6wpi
4-1)、不现实的期望
,tBkx0W0测试自动化并不能解决所有问题,测试自动化也不例外,对于测试自动化不应该赋予不现实的期望值。51Testing软件测试网
S;u"u1Eo&yV*[
4-2)、期望自动测试发现大量新BUG
1{+}-j0I@0测试在首次运行时最有可能发现BUG,如果测试已经运行并通过,再运行相同的测试发现新BUG的可能性会小很多,除非测试正执行一段已修改过的代码或由于软件其他部分的修改影响到该代码,或在不同环境下运行。测试自动化主要用于重复已经运行过的测试,而不是用来发现大量新的BUG。51Testing软件测试网
Q6tc1~\lH)MIy_
4-3)、安全性错觉51Testing软件测试网9np,oO5P+T
自动测试没有发现任何BUG并不意味着软件没有BUG,因为所进行的自动测试可能不全面,或自动测试本身就有BUG。51Testing软件测试网.StyW.H$l
4-4)、自动测试的维护开销51Testing软件测试网mz ZJ)X7bZk1ThG
和普通软件一样,自动测试软件同样需要进行维护,一旦测试软件的维护比手工重新测试更费劲,测试自动化将不具备实用价值。51Testing软件测试网k9O;X%F5M]]
4-5)、技术问题51Testing软件测试网 L0\*qP'xsV
如果被测试软件在设计和实现时没有考虑可测试性,则测试时无论是自动测试还是手工测试,难度都会很大,对这种软件,测试自动化不一定是最好的选择
8b6]#Z"xrg%d }#LaO0 51Testing软件测试网6WEFX2t-SW}y
5、局限51Testing软件测试网wqg
|(i??5~
S9p.}h rV05-1)、测试自动化不能取代手工测试51Testing软件测试网@O+n@hoD
并非所有手工测试都应自动化,当测试需要频繁重复进行时,才需要将测试自动化。一些测试使用手工测试比自动测试要简单。下列情况不适合于自动化测试:
[q_7~X.v/k3e05-1-1)测试很少进行,如一年只进行一次测试,该情况下不值得进行测试自动化。
&c1J[!WAB05-1-2) 软件不稳定,如软件升级版本时,用户界面和功能频繁变化,此时自动化测试相应部分修改的开销较大。而软件不稳定时,手工测试可以很快发现BUG。
$[-@4Zx
{0U8n h4Og05-1-3) 结果很容易通过人验证的测试,该种情况下的自动化测试非常困难甚至不可能,如彩色模式的合适程度、屏幕轮廓的直观效果,或选择制定的屏幕对象是否能够播放正确的声音等。51Testing软件测试网%V#F*h3QY
c
5-1-4) 涉及物理交互的测试,如在读卡机上划卡,断开设备的物理连接,开关电源等。51Testing软件测试网0cpF0e6oi
5-2)、手工测试比自动测试发现的BUG要多51Testing软件测试网s;y2NZHl
自动化测试主要是进行重复测试,一般情况下,自动化测试进行的工作是以前进行过的,因此被测试软件在自动化测试中暴露的BUG要少得多。测试自动化主要用于回归测试,进行正确性验证测试,而不是BUG发现测试。据经验数据统计,自动测试只能发现约15%的BUG,而手工测试可以发现85%的BUG。51Testing软件测试网f
F&g8^G2f'O!V
5-3)、测试自动化不能提高测试的有效性51Testing软件测试网8Y4Gw/LN7F|
自动化测试不会比手工运行相同的测试更加有效。自动化测试只是用于提高测试的效率,即减少测试的开销和时间。51Testing软件测试网6})yC6qCR7s|
5-4)、测试自动化不具有想象力
J8Op[_L7`c0自动化测试是通过测试软件进行,测试过程只是按照运行机制执行。手工测试时可以直接判断测试结果的正确性,而自动测试许多情况下测试结果还需要人工干预判断。手工测试可以处理意外事件,如网络连接中断,此时必须重新建立连接。手工测试时可以及时处理该意外,而自动化测试时该意外事件一般都会导致测试的中止
6R-s!c&ya0UE6nZ*@0
N!J*~E0Q!gU:{aO06、技术
@/zj9z;p0R}D0
N.l [&@Tc0测试自动化软件需要具备几个必备条件:被测试软件的测试输入、被测试软件的测试结果输出、测试结果比较。只有具备这三个条件,测试自动化才有可能。与测试自动化条件相适应,被测试软件需要提供可转储的外部文件输入和外部文件输出接口,或者至少是提供通过程序软件处理后可转储的外部脚本文件输入和输出接口。只有提供了上述可测试性接口,被测试软件才具备可测试自动化条件,否则,自动化测试难以实施。为此测试自动化技术,针对自动化测试软件主要是从测试输入、测试输出、结果比较三方面着手。针对被测试软件主要是从可转储的输入输出文件脚本技术着手。测试自动化中的被测试软件主要有两种形式,一种是被测试软件嵌入到测试软件之中,另外一种是测试软件和被测试软件相独立,测试软件通过被测试软件提供的接口,制造被测试软件的测试输入和测试输出,由此完成自动化测试。一般来说,第一种形式的被测试软件一般都是独立的软件模块。第二种形式一般都是软件系统
&J"X/?A{Qj0
收藏
举报
TAG:
自动化测试