软件测试从零到自动化的学习路线,篇幅过长建议先收藏。
目录:
一、了解软件测试是什么
1.1软件测试的薪资情况
软件测试的路径:功能测试>>>接口测试>>>性能测试>>>自动化测试>>>测试开发;
功能测试月薪:10k以下,一线城市大概可以到10k;但是一般来说5.6.7.8.9都是正常的。
接口测试月薪:在功能测试的基础上,会接口测试工资还会涨一些,如果是三四线城市,8k大概要回功能性能还有一点点安全~
性能测试:性能测试我看了下《职友集》就上海来说,性能测试平均薪资到了14040;(大家参考就好
自动化测试:功能转自动化这种的,刚转过来可能12k左右,慢慢还会upup;
测开不说了,这边薪资都是很保守说的,大家就是作为参考,心里有个数就行。大概了解薪资也是为了日后提升自己的技术;
1.2软件测试的基本概念
软件测试的定义:找到软件问题,确保修复;
软件测试方法总体分类:
大概就是两种,第一个是验证软件是可以工作的,第二个就是验证软件是不工作的。目的一样,但是在操作上不太一样;
软件测试的组成:
软件项目是以文档、数据以及程序组成的,所以软件测试应该对软件开发中形成的文档、数据以及程序进行测试,目前很多软件测试都知识对程序进行测试。
软件开发阶段划分一下测试分类:
单元测试:也可以叫模块测试,也就是对程序的模块进行检验测试
集成测试:可以叫做组装测试,检验程序单元的接口关系
确认测试:也就是检验和提供客观证据,证实软件是否满足特定的逾期用途要求
系统测试:需要确认系统是否达到目标要求,对集成的硬件,软件系统进行测试
验收测试:按照项目的任务或者是合同,需要按照双方约定的验收依据,对整个系统进行测试与评审,决定是否接受或者拒绝系统;
000基础看到这可能稍稍有点懵,也没事,这些都是概念。慢慢理解就可以了。
还可以按照测试实施组织划分:
开发方测试:又为验证测试或者α测试
用户测试:β
第三方测试:这个叫独立测试。
PS:不理解没关系的,这里也不解释,以后慢慢会学到;
按照技术划分的话就是:黑白灰盒测试;
测试类型:
功能测试:
功能测试时一个发现程序与它的外部规格说明之间存在不一样的过程。外部规格说明是一份从用户的角度对程序行为的精确描述。测试的时候按照科学方法设计的测试用例进行执行测试,在保证测试用例执行完全的前提下,再去根据业务的了解和经验性判断进行探索性的测试;
界面测试:
也就是UI测试,界面为用户与软件交互最直接的层,所以更注重用户的体验性,主要从用户的感官、交互、浏览和情感还有体验出发。具体的测试用户界面的功能模块布局是否合理,整体风格是否统一,各个控件的放置位置是否符合用户的使用习惯,是否符合操作便捷,还有导航栏是不是容易懂,界面中的所有文字是否正确,包括命名是不是统一,有没有错别字,页面是否美观,文字和图片的组合是不是合理好看。测试的适合按照最终用户的需求,以及通用的用户体验进行测试的list编写,然后测试人员根据list执行。>>>需要list模板,私信我;
兼容测试:
兼容性测试也就是软件在特定的硬件平台上、不同的应用软件之间、不同的操纵系统平台上、不同的网络环境中是不是可以运行的测试。还有就是软件在不同的浏览器、操作系统和分辨率下的兼容测试。测试的时候测试人员需要按照软件的具体兼容性需求进行测试。
易用性测试:
简单说就是软件是不是便捷好用,各个功能是否复杂,怎么从中进行优化。测试的时候可以根据用户需求,和竞品软件对易用性的通用原则列出list,然后测试人员根据list进行执行。
性能测试:
性能测试时通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
上面内容,除了前景以外大多数是软件测试入门的基本概念了。为什么好多人说软件测试好入门,其实就是前期很好理解。
我建议不管是自学还是报班的,都直接学到自动化测试。其实不管是几线城市,现在疫情冲击下,竞争力都还挺大的。功能测试,一般的很少企业需要,如果去外包公司的话,再想晋升技术实现升职加薪实在是太难了。而且,软件测试,从来不是入职几年之后经验可以提升达到进阶的,技术还是要学,如果入门功能在去够自动化,可以,但是还是要抽出时间自学。
以上废话均为肺腑之言。
三、软件测试如何学习
我把它分成八个阶段,下面一个个说。我说的这个学习路线也是直接针对自动化的;可以进来领资料哦~~
3.1 互联网程序的原理>>自动化的必经之路
web前端开发基础:HTML、CSS基本内容学习。
web前端开发脚本:JavaScript最主流的脚本学习,同样的,这也会在自动化测试中设计没在一些工具中其实也经常会用到动态脚本,也是JavaScript语言。
开发者调试工具测试应用:虽然浏览器的F12被命名为开发者工具,但实际上不管是在功能测试还是自动化中,都起了很重要的作用。比如解析HTML,定位元素,调试脚本监控网络还有抓包;
互联网程序网络架构:TCP/UCP/HTTP等等协议的关系是什么
HTTP协议数据结构分析:完整歇息HTTP协议数据结构,包括Request、Respouse数据格式,Header的定义和用法各种状态代表什么,如何辨别。
Cookie与Session机制:解读cookie到底是什么还有它和session存在什么样的关系,如何测试需要注意些什么?
3.2 Mysql数据库
我说的进阶性测试,其实不应该只停留在“增删改查”
从mysql数据库测试应用:也就是环境搭建,客户端Navicat的使用与数据库操作还有数据相关的sql语法,增删改查你都需要掌握
Mysql高级查询:查询升级,多表查询,子查询,查询分组,统计函数的使用(如果报名培训机构这里要问清楚,好多机构没有哦)
Mysql自动以函数:内置函数还有自定义函数的位置,也是经常会使用的。
Mysql存储过程sp:数据库必不可少的存储过程,通常也叫sp,怎么定义怎么测试,怎么使用更安全,测试到底用存储过程还能做什么更便于测试的内容;
mysql事务与编程:数据库事务使用的案例还有索引的原理和使用,数据库sql编程在测试中的应用;
3.3抓包工具
Fiddler,Wireshark,Sniffer,Tcpdump各种抓包工具适用的项目;
需要的来找我私信领取。
3.4接口测试工具
接口测试Loadrunner、JMeter、Postman;
现在很主流的测试工具有两款JMeter和Loadrunner。相比较于Loadrunner功能强大齐全需要收费来说,JMeter开源而且精悍短小。
尽管Loadrunner功能强大,但是很多项目都用不上就成了摆设。所以越来越多的企业都更倾向于JMeter。
其实两款工具还有一些模式上的区别,但是今天的重点是帮助大家快速了解jmeter。
3.5 web自动化测试Java or Python
https://www.17lebo.com/course/27
这里需要熟练掌握的内容是TestNG&unittest自动化框架,断言和日志处理;
自动化其实主要是思路,在了解业务上的思路,而且不是所有东西都适合自动化的。拿到一个项目,要先做分析,哪个模块进行功能测试,哪个模块要自动化,写代码的有谁,需要些脚本哪个框架。
Java或者Python任选一个:没有代码基础和非计算机专业的建议python入门。其实python入门了,再学java也没事,可以帮助你更好的理解面向对象;
web自动化就要说到selenium3的应用了:
开源软件:源代码开放可以根据需要来增加工具的某些功能;
跨平台:Linux、windows、mac;
支持多种浏览器:Firefox、Chrome、IE、Edge、Opera、Safari等;
支持多种语言:Python、Java、C#、JavaScript、Ruby、PHP等;
成熟稳定:目前已经被Google、百度、腾讯等公司广泛使用;
功能强大:能够实现类似商业工具的大部分功能吗,因为开源性,可实现定制化功能;
Selenium 凭什么成为 Web 自动化测试的首选?(内附源码)
3.6 接口移动端自动化
专业的接口调用还有测试的解决方案,组件完整的web和接口自动化框架,Appium整体使用
3.7 敏捷测试&TestOpsgoujian
持续集成Jenkins框架需要熟悉到烂;
Jenkins框架实战,持续集成是最常见的框架,需要学会Jenkins操作、权限、系统管理等等,常用构件与运行实力讲解
静态的扫描测试Sonar:一款自动化代码扫描工具,也可快速发现代码中的问题,做到提前发现同一规范,自动化中的代码测试神器。应用不难~
3.8性能测试&安全测试
性能测试工具必用/常用工具使用教程 - 乐搏软件教育 - 软件测试 - Powered By EduSohowww.17lebo.com
完全进阶了,安全不是什么人都可学会的,哈哈~从功能到安全也非常难,不过可以立个flag~
性能测试还是相对来说好学习一些:接口的基本知识对性能很有帮助,性能来说工具只是辅助,更多的是思路和策略;
性能测试工具操作实战:前面都有了基础,看懂脚本完全不是问题,需要进阶的是关键的参数化,动态数据关联、实物、日志,大部分的脚本都可以进行实践。
安全测试起源与工具介绍:如何进行安全测试,安全测试都有哪些分类?都会用到什么样的工具,各自的作用是什么。web漏洞扫描,端口扫描,系统扫描等
web安全测试手工实战:接口测试在安全中心的作用,不会手动的安全测试,基本上是没有办法理解自动以后的结果的。
安全扫描工具:APPscan,awvs等专业安全扫描工具;