本帖最后由 frances720 于 2016-5-17 16:34 编辑
其实我目前是处在自动化测试的迷茫期,不过为了不继续迷茫下去,我决定从迷茫中自拔.以下是我总结出的一些可以供迷茫期的寻找方向的些许分享. 既然要做自动化就不能盲目,至少要明白做自动化的原因,从根本上来解决问题,我想如果能从以下的方向来开启自动化测试之门的话,自动化并不是那么遥不可及. 第一,我们谈谈,什么是自动化测试? 自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。 这是官方的定义,我觉得简洁来说就模拟人为的操作步骤,代替人来执行操作,从而完成我们的测试过程,主要目的就是批量完成测试任务,提高工作效率. 第二,自动化测试能做什么? 通过了解过什么是自动化测试之后,我们对自动化已经有了一个比较宏观的认识,但是对于自动化能做什么,我想这就是我们需要实际去操作的工作了,从上面的理解就是自动化能做的就是代替人为去完成测试工作,但是具体完成哪些工作,是不是所有的工作都能完成,我想这肯定是不可能的,毕竟电脑要取代人脑还不是时候.就我认为从简单的测试用例开始我觉得自动化能做的就是模拟这个测试用例的执行过程,模拟这个测试用例中每个一个执行的驱动数据等.但如果微观的说明自动化到底能做什么,那就是从测试管理到测试执行,甚至到最后测试结果的输出,自动化都能做,而这里所说的能做的根据每个人的编程能力来限制,如果有开发能力的人去做自动化,他可以设计一个完成自动化过程,从管理到报告的输出,也就是所谓的自动化测试框架.我觉得自动化最大的优点就是按需索取,可以根据自身的技术特点和各个项目的特点来制定自己的自动化测试框架. 第三,学好自动化需要具备哪些知识? 其实说到自动化大家不难想到的就是编程能力,如果没有编程语言基础,学习自动化只能算走马观花,因为不能去感受自己设计自动化测试的过程,所以程序是必须要掌握的,基于目前自动化方面要掌握的语言有VB,Ruby,Java等,选择其一就可.目前市场上做自动化的一般都主要用于web,所以必须要掌握html的相关知识.再要说的就是具备数据库的基本知识,自动化主要就是数据驱动测试,所以数据库应用也是必须的. 第四,说说自动化的局限性? 说到局限性我也算体会到了,鉴于当前的web架构的项目越来越多,自动化的关注度都放在了web上面,所以更多的应用范畴均为web服务的,对于c/s结构的程序,也并不是不能做,只是支持越来越少,所以资源也就匮乏了.毕竟qtp还是能做的,也就是vb可以,通过调用windows下的对象来实现自动化,但是太有局限性了,这里就不说了,用过就知道了,本人也研究过一段时间的vbs.再从另一个角度来谈自动化测试的局限性吧,自动化测试比较适合那些需求比较稳定的项目,如果需求不稳当,将会导致前期构建的测试脚本将随时跟随需求变化,一旦变化很大且项目不稳定的,自动化测试脚本大量的维护工作将大大降低自动化的效率,反尔事倍功半,所以在自动化开始的时候前期一定做各方面的评估,哪一块适合做就做不适合就适可而止.我目前在做学习自动化主要是为了用于门户网站,因为这种需求是相对比较稳定的,所以比较适合. 第五,就是评估自己的项目是否适合做自动化? 关于这一点,在第四点基本已经谈到了,如何评估项目是否适合做自动化,其实还是比较复杂,首先要跟需求方做详细的沟通,保证需求的准确性和稳定性,还要了解项目的开发模型,如敏捷开发我想应该是不适合做自动化测试的,因为需求也是敏捷的. 第六,如何选择自动化测试工具? 目前市场上最为广泛的是QTP,但是因为是收费的工具,而且他的费用不是一般公司能承受的起的,所以像我们这些个平民百姓,还是选择开源吧,毕竟开源的技术也越发成熟了,不能说能与QTP可以抗衡,至少有些是开源可以做到,QTP还不一定能做到.下面列举一些如,Ruby+Watir, Selenium,vbs等各取所需吧. 出自:http://blog.csdn.net/candle806/article/details/5882760
|