首先目前主要可以分为两个方向,要么是基于Java的自动化,要么是基于Python的自动化。
文章从3个面去介绍这边文章
一、自动化测试的学习步骤;
二、自动化测试需要掌握的技术能力;
三、自动化测试的认识误区
一、自动化测试的学习步骤
1. 做好手工测试(了解各种测试的知识);
2. 学习编程语言;
3. 学习Web基础;
4. 学习自动化测试工具 ;
5. 学习自动化测试框架 ;
6. 实现自动化测试用例 ;
7. 开发自动化测试工具;
8. 开发自动化测试框架。
按照这个步骤来说,基本上到第7步,难度就比较大了,这个时候也可以称呼自己为“测试开发”
二、做自动化测试需要掌握哪些技能?
软件测试路上不可缺少的知识,也是我多年来总结的经验
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测试代码是回归测试的福音,也是提高测试生产力的重要手段;
- 自动化测试可以培养团队,一个团队如果可以把自动化测试做好,那么他们的开发水平一定不低,而且如果这些人去做开发,代码的质量反而比一般的开发人员要高,原因很容易理解,测试人员坚信没有测试过的东西就是不可信的,代码如果没有被测试过,那么代码自然是不可信的,不可信的代码就需要用单元测试去覆盖,因此这可以从根本上提高代码的质量。
尾声
规避风险 在35岁前要形成思维方法论和知识体系的阶段。当你积累足够的技术实力,例如超过10万行代码以后,你应该形成了自己的思维方法论和自己独立的学习技巧,任何新的技术在你眼中都能迅速的看到技术的本质,快速吸收成为你的知识体系的一部分。
你只要前一个阶段打的基础足够牢固,这个阶段你一定会开始蚕食别的领域,这是一定的。
逐渐的不再满足于纯技术领域的探索,而是开始探索技术背后的事情:什么技术在什么样的场合能够发挥最大的价值;技术团队应该怎样构建;技术在公司未来的价值?创业公司对技术的需求?支撑技术的产品,怎样学习做产品?支撑产品背后的运营体系是怎样建立的?商业社会对技术、产品、运营等的是怎样的认知,商业社会有什么的特定规律?也许还有更多…
在这个阶段,积累技术对你来说简直是小菜一碟,你更需要磨练的是思考能力,形成自己的思维方法和知识体系,这将是你帮助你一生的武器。
未来因你的努力,变得更美…