软件测试工程师初学者都需要学习了解些什么?
第一步,测试基础
测试基础是软件测试最重要的部分,相信不用我多说大家都知道,只要你是做测试,不管是什么测试,测试的基础理论知识都是必须熟料掌握的。测试的基础理论知识包括:测试计划编写、设计测试用例、编写测试报告、编写BUG报告单、跟踪BUG修复情况、还需要良好的沟通能力、以及各种测试阶段所使用的测试方法、单元测试、功能测试、集成测试、系统测试等等。学习这一段的时候可能比较枯燥,但是只有坚实的理论基础才能开展后面的学习。
第二步:学习脚本语言
如:python语言和java语言,当然python 是一门相对简单的计算机语言,考虑长远发展,需要了解C语言或者java。大家都说C语言最难,但是C语言毕竟是基础中的基础,掌握了它后期深入学习也会轻松一些,而且C语言用得确实也多。
第三步:学习软件测试工具
学习软件测试工具并不难,只是需要我们去系统的学习。比如性能测试工具loadrunner,自动化测试工具selenium、Appium,接口测试Jmeter、Postman等。虽然说工具不是万能的但是工具能为我们提高工作效率,所以必须得会熟练的使用。最关键的一点,是要结合项目具体去操作,实践出真知,理论知识在实际项目中才能得到巩固。
第四步:计算机硬件知识
做过性能测试的都知道在性能测试过程中硬件性能也是一个非常重要的指标、CPU、内存、IO、带宽等等、如果你是做硬件测试的。那么就更不用说了。交换机、路由器、防火墙这些设备都需要有所了解。
第五步:数据库测试
MySQL数据库
MySQL简介、命令行工具以及数据管理、MySQL数据查询(条件、分组、聚合函数、排序、分页、连接查询、自关联、子查询)、内置函数、项目练习、数据分表、Python操作MySQL。
Redis数据库
Redis简介、客户端和服务器、数据类型(string、hash、list、set、zset)、各种数据类型操作、Python操作Redis、主从、集群。
第六步:项目实战
把学会的理论与实践相结合起来,最好参与真实项目的测试工作,积累真实项目的测试经验。
第一步,必然是打好基础,这一点跟学习其他技能是大同小异的,打好基础至关重要。
测试工程师的工作流程一般是这样的:测试计划的构思、测试用例的编写(等价类、边界值分析、流程图、因果图、正交试验等)、接着编写测试报告、报告BUG和跟踪BUG修复情况以及学习掌握各种常见的测试手段如功能测试、接口测试、APP测试、自动化测试等等。
第二步,学习一些常用的测试工具,如loadrunner(性能测试),selenium、Appium(自动化测试),Postman、Jmeter(接口测试)等。这些工具很实用的,也可以帮我们大大提高工作效率,另外bug管理工具也需要学习一下,比如禅道就很好用。
最后,建议学习一些辅助技能,比如学习Linux系统的常见命令以及数据库,如mysql、Oracle等等主流数据库。
除此之外,编程能力对于软件测试工程师们也是一个不可或缺的技能,面试经验丰富的小伙伴们可能比较清楚,很多公司都会对软件测试岗位候选人的编程能力有相应的考核。
虽然对刚入行的初级测试工程师们来说,编程能力不是必须项,但是掌握一门编程语言能够帮助测试工程师们应对一些测试工具无法应对的情况,比如某些情况下需要编写一些更为复杂的测试脚本,这时编程语言便能派上用场。同时,熟练掌握编程语言也是进阶为高级软件测试工程师的必备项,能够有助于提升自己的竞争力,对我们的职业发展也有好处。
2020-02-19 · 蜗牛学苑,IT与互联网人才孵化基地!
初学者一般都从基础开始学习,小蜗这里按阶段整理了一份完整的基于Python的软件测试学习路线,初学者先从第一阶段开始学习,然后循序渐进,掌握更多知识。
第一阶段:专业基础课程
阶段目标:
1. 熟练掌握IT核心技术:编程,数据库,操作系统,版本控制
2. 能够熟练运用所学技术搭建各类服务器环境
3. 深入理解软件研发过程各种疑难杂症及处理手段
4. 掌握Python编程技术并熟练运用Python进行程序设计
知识点:
1、Web页面元素,布局,CSS样式,盒模型,JavaScript程序设计,函数,基础算法,正则表达式。
2、数据库知识,范式,MySQL配置,命令,建库建表,数据的增删改查,约束,视图,存储过程,函数,触发器,事务,游标,建模工具深入理解数据库管理系统通用知识及MySQL数据库的使用与管理。为软件测试和测试开发打下基础。
3、Linux安装配置,文件目录操作,VI命令,管理,用户与权限,环境部署,Shell编程Linux作为一个主流的服务器操作系统,是每一个测试开发工程师必须掌握的重点技术,并且能够熟练运用。
4、Python编程基础,语法规则,函数,数据类型,PDBC,培养扎实的Python编程基本功,同时对Python核心对象编程有熟练的运用。
5、Python面向对象,异常处理,文件IO,多线程,网络编程,PyQT界面开发,深入理解面向对象编程,异常处理机制,多线程原理,网络协议知识,并熟练运用于项目中。
第二阶段:专业核心课程
阶段目标:
1. 熟练应用所学知识完成一个标准的软件测试项目
2. 熟练运用Python完成GUI测试,接口测试和性能测试开发
3. 对测试开发技术体系和实现原理有深入的理解
4. 灵活运用测试开发技术解决项目中的各种问题
知识点:
1、软件工程,软件质量,系统测试流程,方法,专业术语,测试用例设计,禅道管理工具,测试报告,缺陷管理理解软件工程的各类实际问题,理解系统测试的理论、方法与过程,熟练运用测试用例设计方法高效设计测试用例。
2、测试需求分析,测试方案设计,测试用例设计,测试项目实施,缺陷报告与测试报告,深入理解系统测试各个过程和关键环节,熟练完成系统测试项目。
3、SikuliX框架,UIAutomation框架,Selenium WebDriver框架,基础框架,Android应用,Monkey测试,Appium移动端测试框架,UIAutomator2移动端测试框架综合运用各类应用操作平台,完成各种自动化测试框架的学习和应用,深入理解GUI自动化测试技术及相应框架的测试开发。
4、Python单元测试框架,网络通信协议,HTTP与HTTPS协议,WebService与WebSocket协议,Python的接口测试库,PostMan与SoapUI接口测试工具通过对代码级接口测试和协议级接口测试的测试开发实战,灵活运用Python开发接口测试脚本,熟练运用各类接口测试工具。
5、性能测试原理,指标体系,场景设计,实施过程,JMeter工具应用,BeanShell脚本开发,Python+Locust性能测试框架深入理解性能测试技术体系和方法论,熟练运用JMeter性能测试工具和Locust性能测试框架实施对任意系统的性能测试。
第三阶段:综合实战项目
阶段目标:
1. 将软件测试和测试开发技术灵活运用于项目中
2. 具备较强的测试开发能力,独立完成测试开发项目
3. 综合运用软件测试技术,满足企业中高级人才需求
4. 对所学技术有深入的理解并具备独立解决问题的能力
知识点:
1、测试需求分析,同行评审,测试计划,测试方案,测试用例,配置管理,持续集成。通过对大型企业级应用系统的测试项目实战,强化理解系统测试项目的实施过程与技术细节。
2、接口测试设计与实施,回归测试,冒烟测试,安全性测试,RobotFramework框架应用,UI自动化实战将各类自动化测试技术结合项目实战演练,强化对自动化测试技术的运用,同时掌握更多的测试框架。
3、性能测试项目实战,LoadRunner性能测试工具,总结通过综合项目实战,将全套测试技术融入到项目中,强化学习效果和项目经验。
4、Python原生测试框架开发,包括Monkey,UI,图像识别,云测试平台,HTML测试报告,持续集成,KDT关键字驱动框架开发等原生技术实现通过大量的Python原生代码开发,深入理解自动化测试开发技术的底层实现原理,完全抛弃对工具的依赖,做到真正的测试开发技术。
5、基于测试框架的设计思路和实现手段,自主实现一套测试框架能够独立完成一套自动化测试框架,并能够直接用于实际项目中。
6、持续集成与Jenkins,安全性测试原理与工具,Python爬虫开发与Scrapy框架,提升软件测试其它类技术,增强知识面,提升竞争力,助力职业发展。
补充知识
1、 算法进阶,图像处理,视频处理,加密解密,压缩算法。
2、 UML统一建模语言、五种图、类图、类图详解、用例图、时序图。
3、Dubbo分布式开发框架,Oracle关系型数据库管理系统,MongoDB非关系型数据库管理系统。
4、 大数据开发框架Hadoop/MapReduce/Spark。
5、 Android与iOS的原生应用开发与WebApp开发。
6、OpenCV图像处理框架、TensorFlow深度学习框架,Lucene全文搜索引擎与中文分词框架Ik-Analyzer,视频处理算法与框架等。