首先目前主要可以分为两个方向,要么是基于Java的自动化,要么是基于Python的自动化。
本文从3个方面带你学习自动化测试:
一、自动化测试的学习步骤;
二、自动化测试需要掌握的技术能力;
三、自动化测试的认识误区
一、自动化测试的学习步骤
1. 做好手工测试(了解各种测试的知识);
2. 学习编程语言;
3. 学习Web基础;
4. 学习自动化测试工具 ;
5. 学习自动化测试框架 ;
6. 实现自动化测试用例 ;
7. 开发自动化测试工具;
8. 开发自动化测试框架。
按照这个步骤来说,基本上到第7步,难度就比较大了,这个时候也可以称呼自己为“测试开发”
二、做自动化测试需要掌握哪些技能?
第一,首先要学会一门语言,java或者Python,这里针对Python去说。如果要能够满足自动化测试的需求,不要求Python的能力上来就达到精通的水平,但是最起码的使用是要有的,然后在后期在逐步根据测试工具进行进阶。
软件测试路上不可缺少的知识,也是我多年来总结的经验
1.前置基础知识:
- 计算机基础
- 测试理论
- HTML基础
- CSS基础
- JS基础
二,linux和数据库
- linux
- 数据库介绍
- SQL语言(重点)
- 数据库高级功能
三,测试基础
- 软件测试理论
- 软件生命周期
- 测试方法和分类
- 测试用例设计
- 缺陷管理
- web项目实战
- 测试管理工具
四,编程+数据结构
- Python基础
- 面向对象
- 异常处理
- 模块和包
五,WEB自动化
- WEB自动化入门
- WEB自动化基础
- WEB自动化中级
- WEB自动化高级
- 项目实战
六,移动自动化
- 移动自动化基础
- 移动自动化中级
- 移动自动化高级
七,接口测试
- 接口基础
- postman实现接口测试
- 数据库操作
- 代码实现接口测试
- 持续集成
- 接口测试扩展
八,性能测试
- 性能测试基础
- 性能测试工具
- 项目-接口性能测试
- 项目-web性能测试
- 性能测试调优
九,综合项目实战
功能测试,ui自动化测试,接口测试,性能测试
三、自动化测试的认识误区
1、自动化的软件测试与手工的软件测试过程一样 有些人认为自动化的软件测试就是简单地按一个录制的按钮,产生测试脚本。而事实上并没有那么简单。
最重要的是,自动化测试工程师需要掌握软件开发技巧,没有接受任何培训的手工测试人员,或者没有编程背景的手工测试人员,在实施自动化测试时会碰到很多困难。
2、自动化测试一定会马上大量减少测试人员数量
自动化测试不会马上大量减少测试人员数量。因为开展自动化测试初期需要投入一定的人力进行自动化测试脚本开发,并逐渐将自动化测试脚本用于日常的测试中,逐步减少手工测试人员从事重复劳动的时间和人数。为了缩短自动化测试脚本的开发时间,可以考虑将自动化测试脚本的开发工作借助外包的力量来早日实现大规模的自动化测试。
3、测试自动化就是录制和回放
仅仅录制得到的不是有效的自动化脚本。很多项目经理仍然把测试自动化等同于使用录制回放工具。而事实上,录制得到的脚本通常是不可重用的脚本,脚本中充满了硬编码的值,这些值应该被参数化,否则脚本仅仅适用于一个测试情况,脚本还应该加入条件判断、循环等结构,以便增强测试脚本的灵活性。
4、自动化测试找不到bug
自动化测试不直接找bug,而是通过解放有经验的测试工程师的生产力,让其从重复的回归测试中解放出来,从事新的测试方法和测试手段的研究。**通过自动化测试解放出测试人员的时间和精力来间接地找到更多、更深层次的新bug,将产品质量再提高一个档次。
5、自动化测试工具是“万能”的
很多人一听到自动化测试,就认为自动化测试工具可以完成一切测试工作,从测试计划到测试执行再到测试结果分析,都不需要任何人工干预。显然,这是一种理想状态,现实中还没有哪个测试工具有这个能力,并且将来也不会有。在现实中有关的测试设计、测试案例,以及一些关键的测试任务还是需要人工参与的,即自动化测试是对手工测试的辅助和补充,它永远也不可能完全取代手工测试。
四、自动化测试很难,那么我们为什么要坚持自动化呢?
- 单元测试是保证代码质量最基本也是最根本的途径,单元测试是自动化测试的一种,因此自动化的重要性不言而喻;
- 集成测试在很多情况下非常适合使用自动化的手段去运行,最明显的例子是rails里的integration test;
- 当你的单元测试和集成测试都没做好,甚至是没有做的情况下,UI级的自动化测试可以扮演救火队员的角色,尽管成本很高,但是可维护的UI测试代码是回归测试的福音,也是提高测试生产力的重要手段;
- 自动化测试可以培养团队,一个团队如果可以把自动化测试做好,那么他们的开发水平一定不低,而且如果这些人去做开发,代码的质量反而比一般的开发人员要高,原因很容易理解,测试人员坚信没有测试过的东西就是不可信的,代码如果没有被测试过,那么代码自然是不可信的,不可信的代码就需要用单元测试去覆盖,因此这可以从根本上提高代码的质量。