自动化测试基础
上一篇 / 下一篇 2012-09-11 14:17:26 / 个人分类:自动化测试
1、什么是自动化测试51Testing软件测试网yt"d p(cV0B2z!K
9g}eezK0 以程序测试程序,以代码代替思维,以脚本的运行代替手工测试。自动化的测试涵盖了:功能(黑盒)自动化测试,功能(白盒)自动化测试,性能测试,压力测试,GUI(Graphical User Interface)测试,安全性测试等。51Testing软件测试网1C!Xb8A*}1H[l
5w'~O'T*q{0 2、自动化测试的优势51Testing软件测试网-q)W0qH,cRL1d
9Lo9^,V%c1e/NMe*^0 回归测试更方便可靠 ;可运行更多,更繁琐的测试,且快速高效;可执行一些手工测试执行相当困难或者做不到的测试,如大量的用户并发;更好的利用资源,具有一致性和可重复性的特点,自动化测试脚本完全可复用;提升了软件的可信度;多环境下测试等。
-DDt0bPr9d2r0Q&X1\HR@ r7W0 3、自动化测试无法做到的事以及劣势51Testing软件测试网 ~eS;v U:gL!zx5x l
51Testing软件测试网 ~:l%HB!C*bTlz永远不可能完全替代手工测试,自动化测试无法做到手工测试的覆盖率,不是每个测试用例都适合做成自动化,如建议一个页面的布局是否正确。51Testing软件测试网~$L#`.K W4[
51Testing软件测试网#P7f0DV+j~$qa手工测试发现的缺陷远比自动化多。自动化测试是几乎无法发现新缺陷的,最大的用途是用来回归,确保曾经的bug没有在新的版本上重新出现。
7{@4A` T0Xq0]&L:yR%|!x;n2zV0 自动化测试工具是死的,它不具备任何想象力。自动化测试的好坏,完全取决于测试工程师。
P.X9d:TC uB"`0T}3U6e,d ~0 成本投入高,风险大。对测试人员的技术要求高,对测试工具同样有要求。51Testing软件测试网%BQ~*jF#CQ
[7o?"Hy:O8K0XO/C1V9Iu^0 4、合适引入自动化51Testing软件测试网h D\ah~*u/}
51Testing软件测试网ont(a'},q/DY项目周期长,系统版本不断,并且需求不会频繁变更,此时是适合引入自动化测试的。
s`T kPu.m051Testing软件测试网)HC1D i8[8s系统的测试对象基本可以正常识别,以及对无法识别的控件能否提供一个解决方案。
%i'MdX}2f.r/Y2I0uP?i2BS0 系统中不存在大量的第三方控件。
8O-b`j"OMnxN051Testing软件测试网4?![.M ~%x#A{He DrO*S(w,y jk&k051Testing软件测试网X&a4yL0i5、不适合自动化51Testing软件测试网 NqU*d.tl
B.q H5Hv t0 项目周期短,需求频繁变更。即使是周期长的项目,如果经常需求变更,也不适合做自动化。51Testing软件测试网6k(ba |:~
51Testing软件测试网.KB)wK rI E\QQ软件版本还没有稳定的情况下,主功能或大量功能有被重新更改的可能话,也不适合做自动化。
pbq rP.y _"d051Testing软件测试网-ER-b]!{PA-?4\6U!D没有明确的项目测试自动化计划,措施和管理。51Testing软件测试网$NfnvRo
51Testing软件测试网F)cJ Rm[^%etX F多数对象无法识别,以及脚本维护频繁与艰难,二者有其一,自动化必定失败。51Testing软件测试网/\9I*B2TN
51Testing软件测试网Bb,i.j!gT-I6、自动化测试的流程51Testing软件测试网.E:]&z5z7DB
k9B X(kd~051Testing软件测试网(w?n&xE/xUH合理的自动化切入点:通常,项目只有经历了完整的系统测试之后才算具备了基本的引入测试自动化的条件。51Testing软件测试网0y7K1e^V Y,Z,X
51Testing软件测试网U8ktYO @G测试自动化分析:
cjC:V:^/HpPO&Q0K/G+aI fZ#`j"J&Z2d,i0 (1)可行性分析51Testing软件测试网RA@EzC
{Qa9WlQ0 (2)抽样demo分析,demo一般选取冒烟测试用例,检查脚本是否能够成功运行通过,已设计的测试点是否全部执行
9h+K(z@2D [hG0|p(_w'r!p)N6r)bk0 (3)测试需求分析,分析哪些功能点准备进行自动化
'k-y/cbl5p.wd051Testing软件测试网(N dIK~p#o,\H测试计划定制:自动化测试计划越全面,后期越能循规蹈矩的去实施,自动化测试的成功率越高51Testing软件测试网$JTyqX4~Y1~
51Testing软件测试网w|qq#mO(`[7{自动化测试设计阶段:主要分为自动化测试框架和自动化测试用例。
elb? ~ ^:Wg00ZKK9^9X L*r2Vm"jI M0 (1)自动化测试框架的设计,开发与搭建:应能保证测试的分布执行,脚本模块化,数据驱动,日志分析,错误截图,报表回收,共享对象库,公共函数库,环境配置,统一设计模式,异常处理,场景恢复的一个无人值守的,针对每个独立项目的测试框架
z`j {&EJP3`&Q2v05_ U.am{8M)X&m0 (2)自动化测试用例设计三部曲:手工测试用例是从无到有,然后自动化测试用例是根据手工测试用例来写的。首先,筛选手工测试用例。然后转换手工测试用例,最后新增&补充自动化测试用例。51Testing软件测试网?%[ T} i
5\f6g&f4m3l TtJ0 为什么不能用手工测试用例完全替代自动化测试用例?
'?zr5g,N9nt0T2dpc7]$US(k4?0 自动化测试用例的范围往往是核心业务流程或者重复执行率高的,自动化测试的覆盖率不能达到手工测试的覆盖率。自动化测试的用例选择一般以正向为 主,而反向的情况却有很多,但是并不是所有反向情况自动化测试都会涵盖,而是有筛选的选取一部分。也并不是所有的手工测试用例都可以用来做自动化的,如页 面布局的检查。手工测试可以不需要回原点,但是自动化测试往往是必须的。自动化测试用例与手工测试用例不同,不需要每个步骤都写预期结果。
_ o#h}6y0_Jt(@O+mN@0 测试脚本设计与开发:
o0nA%wr1b051Testing软件测试网.B,Co#uO o^测试脚本大致可划分为五种,
@3W:NxF6mk b#C051Testing软件测试网"Vt*q9|b/?Z(1)线性脚本:通过录制直接产生的线性可执行的脚本
MI/?(w,p05kb0JnS9Mu0 (2)结构化脚本:具有顺序,循环,分支等结构的脚本
-J I#~u/zN0d F:hMV:clo0 (3)可共享脚本:可以被多个测试用例使用,被其他脚本调用的脚本51Testing软件测试网 ]5BH-@ o9Go
51Testing软件测试网4[K~ |0SgpG'Sa(4)数据驱动脚本:测试数据跟业务流程控制分离的脚本,通过读入数据文件来驱动流程进行的脚本
\J2B)p:{ zZs-C051Testing软件测试网0k;g.X)D2E(5)关键字驱动脚本:脚本,数据,业务分离,数据和关键字在不同的数据表中,通过关键字来驱动测试业务逻辑。关键字驱动的特点是,它更像是描述一个测试用例在做什么,而不是如何做。