怎样学习自动化测试,自动化优缺点?


测试员-小枫

大家好,今天小枫告诉大家如何正确的学习自动化测试,怎么样才能才能学好自动化测试,如何更好的提升自动化测试呢?

下面是小枫个人写的理解及如何提升,也写了测试的概述

软件测试的概述:

1、什么是软件?

软件 = 程序 + 文档

程序: 实现某种功能的指令集合

文档: 是指在软件开发、使用和维护的过程中产生的图文集合

2、什么是软件测试?

使用人工操作或者软件自动运行的方式来检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别的过程。

正确的理解软件测试:

1、测试是为了发现程序中的错误而执行程序的过程

2、成功的测试是发现了至今为止尚未发现的错误的测试

3、测试并不仅仅为了找错误

4、没有发现错误的测试也是有价值的

正确学习自动化测试

自动化测试是测试工程师一项必备的能力。既然如此,所以我们还是需要掌握这个能力的,但是又不能盲目。不要认为自动化测试会变成必备的能力,所以就把接口,WebUI, App全面学习,这样就会越来越乱。首先要选择一个语言体系,如python,掌握好相应语言的基本能力;其次,安排好学习顺序,如先学习接口自动化测试,然后是WebUI自动测试,再接着就是App自动化测试。当能进行自动化测试实施的时候,需要提高一下能力,学习自动化测试的架构设计,持续化集成的实施等等,步步为营,稳扎稳打。

如何提高自动化测试

实施自动化测试最重要的就是要保证其可用性,而不少同学写了不少自动化测试用例,但感觉到其可用性不高。究其原因,不是自动化测试本身的问题,是实施自动化测试的时候没有考虑周全。

1,不合事宜地引入自动化测试

    在公司业务发展稳定前,或是产品变动频繁的阶段,为了自动化测试而做自动化测试。此时的自动化测试失败率会非常高,不仅维护成本高,而且没有达到自动化测试回归与监控的目的。于是,就会造成放弃自动化测试,或是怀疑自动化测试的作用。在此时,不要急于引入自动化测试,如果确实需要引入自动化测试时,需要把测试粒度设置的粗一点儿,覆盖核心和变动不大的业务线。

2,没有统筹进行自动化架构设计

    自动化测试用例不能是简单的测试用例的集合,如果将一个个单独的自动化测试用例放在一起,就组成自动化测试工程的话,那后期的管理与执行就会相当复杂。投入产出比与预期相差太远,这也不是一个正常的自动化测试工程的实施过程。正常情况下,需要先对自动化测试工程进行架构设计,选择合适的设计模式,对代码做分层架构设计,自主选择要执行的测试用例集等。

3,测试用例选择不合理

    在实施自动化测试用例之前,没有对测试用例进行合理的选择,拿着手工测试用例一个个转化自动化测试用例。如果在此情况下,测试用例肯定覆盖不全面。所以需要前期对测试用例进行合理的选择,做智能化处理,如根据业务需求,选择核心业务的测试用例;或是如前面提到的,通过最短路径算法,选择覆盖率较高的测试用例集合。先从用例选择的角度来分析用例覆盖率,而后再转化成自动化测试用例,从而更好的提高自动化测试用例覆盖率。

    从事自动化测试的测试开发同学很多,但是相应的级别也不尽相同,从T3到T6都有可能。其实施的自动化测试工程也就各有所长,这也说明自动化测试的技术有很大的提升空间。所以要沉下心来,不断地提升自己,不要刚刚学习了自动化测试就感觉自己能力很强,或是动不动就说测试发展遇到了瓶颈。不断的打好测试技术相关的基础,完善知识体系,提高解决问题的能力,开阔视野才能步步高升。

自动化测试的优点:

a) 节省人力,只要代码维护的好,不需要那么多人就可完成测试

b) 节省时间,测试脚本可以晚上或者是周末跑测试脚本

c) 优化资源分配,在运行测试脚本的同时,QA可以做其他事,比如设计新测试用例

d) 方便regression,极大提高效率

e) 增加软件的可信度,测试是机器执行的,排除了手工测试时因人为情绪而发生的随意性或疏忽性,测试结果更可信

f) 能完成手工不易控制的工作,比如采集系统cpu占有率信息,手工计算很复杂,还要进行数据比对,使用脚本更简单,更方便。

自动化测试的缺点:

1、不能取代手工测试

2、手工测试比自动测试发现的缺陷更多,自动化测试不容易发现新的BUG,

3、对测试质量的依赖性极大(理解:自动化测试脚本的正常运转前,需要先经过功能测试的通过)

4、测试自动化不能提高有效性(理解:主要从维护脚本的花费资源上来看,并不能节省资源)

5、测试自动化可能会制约软件开发。由于自动测试比手动测试更脆弱,所以维护会受到限制,从而制约软件的开发。(无法理解这一块,测试对于软件开发的影响程度还没有达到制约的程度)

7、工具本身并无想像力综上所述,可以归结自动化完成不了的,手工测试都能弥补,两者有效的结合是测试质量保证的关键。

自动化测试工具的分类:

a) 基于GUI的功能测试工具QTP(现UFT)

b) 基于IDE的自动化测试,比如开源的selenium/eclipse/visual studio selenium是开源框架,eclipse需要需要插件

c) 基于纯脚脚本的自动化测试 shell/perl/ruby/python

如何提升个人实力的这一快:

要学会自己去学习新的知识,而不是一味的像机器一样重复每一天工作,就好像你自己的测试工作做完了,而不知道干嘛的时候,可以去翻一下贴吧/博客什么的找找自己的当中的不足之处找到自己那些是需要学习的。

然后你就会看到你的测试同事在没事的时候。                                                                                                你在看vs的源代码,看pheonix的源代码,看Perl和bat写的自动化测试系统的源代码,等等..                    就像大家传的一句老话,师傅领进门,修行看个人!!!

以上仅供参考和借鉴,希望对你有所帮助!                                                                                                小枫文章整理不易,欢迎各位朋友点赞!

你可能感兴趣的:(怎样学习自动化测试,自动化优缺点?)