13436600801

首页 >> 慧乐新闻 >> 同学们,这些测试知识点你一定要记住!
同学们,这些测试知识点你一定要记住!

什么是自动化测试




自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。通常,在设计了测试用例并通过评审之后,由测试人员根据测试用例中描述的规程一步步执行测试,得到实际结果与期望结果的比较。在此过程中,为了节省人力、时间或硬件资源,提高测试效率,便引入了自动化测试的概念。




自动化测试过程


  


    自动化测试与软件开发过程从本质上来讲是一样的,无非是利用自动化测试工具(相当于软件开发工具),经过对测试需求的分析(软件过程中的需求分析),设计出自动化测试用例(软件过程中的需求规格),从而搭建自动化测试的框架(软件过程中的概要设计),设计与编写自动化脚本(详细设计与编码),测试脚本的正确性,从而完成该套测试脚本(即主要功能为测试的应用软件)。



自动化测试的主要优点


  

     1、避免重复工作:对于功能已经完整和成熟的软件,每发布一个新的版本,其中大部分功能和界面都和上一个版本相似或完全相同,这部分功能特别适合于自动化测试,从而可以让测试达到测试每个特征的目的。


  2、提高测试效率:DCC版本的发布周期往往比较短,也就是开发周期只有短短的几个月,而在测试期间是每天/每2天都要发布一个版本供测试人员测试,一个系统的功能点有几千个上万个,人工测试是非常的耗时和繁琐,这样必然会使测试效率低下。


  3、保证每次测试的一致性和可重复性:由于每次自动化测试运行的脚本是相同的,所以每次执行的测试具有一致性,人是很难做到的。由于自动化测试的一致性,很容易发现被测软件的任何改变。


  4、更好的利用资源--周未/晚上。理想的自动化测试能够按计划完全自动的运行,在开发人员和测试人员不可能实行三班倒的情况下, 自动化测试可以胜任这个任务, 完全可以在周末和晚上执行测试。这样充分的利用了公司的资源,也避免了开发和测试之间的等待。


  5、解决测试与开发之间的矛盾:通常在开发的末期,进入集成测试阶段,由于每发布一个版本的初期,测试系统的错误比较少,这时开发人员在等待测试人员测试出错误的时间。事实上在迭代周期很短的开发模式中,存在更多的矛盾,但自动化测试可以解决其中的主要矛盾。




软件测试培新







什么项目适合做自动化



  1. 任务测试比较明确,不会频繁变动


这个意思是说,你要测哪些内容,有哪些测试任务、工作,这些工作都要周而复始去做,不容易变动,而且,未来的很长一段时间都需要做这些工作。这样,这个工作长期来看,工作量就很大,也将有大部分的要进行自动化开展的工作,包括重复性劳动


2. 持续的构建持续构建就是每日构建,每天都有一个版本或者隔两天一个版本,这时候也就意味着回归测试的任务比较重,所以这时候可以考虑用自动化。


3. 繁琐的回归测试


比较频繁的回归测试与第二点可以相对应,


4. 软件系统界面稳定


软件界面稳定,变动较少的时候,也就是界面元素稳定下来了,这个时候,UI自动化自然就可以开展了。


5. 跨平台测试


应用需要跨平台运行吗?在Windows测试一遍,又要去Linux去测试一遍,甚至还有安卓、iOS平台,每个平台相同的功能都去测试一遍,都是重复性的劳动。


6. 软件维护周期长


软件维护周期长,这个维护时长到底是多长呢,没有固定评判标准,依赖于实际情况。但是,对于周期特别短的,就很容易分辨出来。如一个项目就三个月,开发自动化测试就需要两个月,然后用了一个月就丢掉了,这种情况毫无疑问不适合。与其费力开发自动化,不如直接上人工就可以了。因此软件维护周期较长,版本迭代较多,适合用自动化。


7. 项目进度压力


项目进度压力决定了是否允许去投入自动化开发,需要考虑自动化测试的投入产出比。前期是需要投入人力、精力,如果项目进度压力不大,就可以在合适的时机介入自动化工作。


8. 被测软件(系统)规范性


被测试软件(系统)的规范性,也决定了其可测性。例如单元测试、接口测试、UI测试等,如果前期能够规范开发,考虑并兼容自动化测试介入,那么自动化测试开展起来就较容易。如果前期没有按照规范做,就会在后期自动化开展过程中造成很多问题。问题越多,可测性就越低。


9. 自动化平台


测试团队掌握大量的自动化工具,如QTB、UFT、Robot、RFT、Selenium等。而这些工具需要大量储备的技能、框架,才能开展、支撑自动化测试。如果团队里面全是手工,要开展自动化,很明显是不现实的。


10. 较强的编程能力


较强的编程能力,这是什么意思?不能单一的认为测试就是动动手指,来回点点,也并不是简单的录制和回放。我们需要一定的开发能力,既能够做简单的录制脚本,也能够对脚本就行一定的修改,进行二次开发。在这个过程中沉淀、输出符合我们团队、项目的自动化思路、框架。因此,测试人员应该具备一定的编程能力。



选择什么工具进行自动化测试




假如你已经确认了XX 项目适合做自动化测试,那么接下来你要做的就是选测试工具了。


首先要先确认你所测试的产品是桌面程序(C/S)还是web应用(B/S)。


桌面程序的工具有:QTP、AutoRunner;


web应用的工具有:QTP、AutoRunner、Robot Framework、watir、selenium。


由于B/S架构的诸多优势,早几年前大量C/S架构的应用转为B/S结构。从而也推动了web开发与测试技术的发展。假如,被测试有产品是C/S架构的,那么推荐QTP ,QTP在UI自动化测试领域占到了一半的适用率。所以,足以说明QTP在自动化领域强大,易用性等。学习主流的工具也可以使你获得更多的机会。市面上关于QTP的书籍也非常丰富。当然,要想学好QTP ,你必须要掌握VBS脚本语言。


如果,被测产品是B/S 结构,那么推荐selenium ,为什么不是QTP 或其它工具?因为selenium 对B/S应用支持很好,更重要的一点,它支持多语言的开发,真正的适用selenium ,你所要掌握的不仅仅是一个工具而已,你还需要学习一门语言。我为什么要选择selenium?还要学一门语言,这无疑增加了我的学习成本。增加成本的同时,也增加你的竞争力,而且,在这个过程中你不单单只是学会了一个自动化工具而已,你完全可以使用所学的语言去做更多的事情。


好吧!假如你决定使用selenium 了之后,你又面临了一个新的问题,选择一门语言。selenium 是支持java、python、ruby、php、C#、JavaScript。


从语言易学性来讲,首选ruby、python;


从语言应用广度来讲,首选java、C#、php;


从语言相关测试技术程度(及资料)来讲:ruby、python、java。


或者你可以考虑整个技术团队主流用什么语言,然后选择相应的语言。







联系我们

QQ:2071716995

电话:13436600801 

地址:北京市昌平区黄平路泰华龙旗广场D座10层1013

扫描二维码加QQ咨询
扫描二维码加微信咨询
关注微信公众号
seo seo