天天看点

0基础能学“软件测试”吗?好学吗?怎么学?

最近常常看到一些小伙伴都在询问关于软件测试的一些问题,比如:我是女生,我适合做软件测试吗?我25岁了,能学会软件测试吗?我初中毕业,能做软件测试吗?我没有任何计算机基础能学会软件测试吗?

0基础能学“软件测试”吗?好学吗?怎么学?

针对以上的问题,小编认为是时候给大家科普一下软件测试这个低调却不可或缺的职业了,大家之所以会提出这么多奇奇怪怪的问题,最深层次的原因还是因为不了解软件测试。一直以来,大家都只重视代码界的创造者,却忽视了编程界的守护神。所以在回答大家的问题之前,我决定,先从认知讲起!

0基础能学“软件测试”吗?好学吗?怎么学?

一、那软件测试是干什么的呢?

首先来看一下百度给软件测试下的定义

是不是有点云里雾里的感觉,其实通俗来讲,软件测试就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求。

什么?还不懂?再简单点来讲就是给编写完的程序挑“bug”,用来保障项目上线后,让大家用的顺手而舒心的一个职业,堪称代码界的质检员,程序员的头号“冤家”。

回到前面的问题上来,女生适合做软件测试吗?我想说的是:适合!

说到IT行业,可能大家下意识的认为女生不适合,但是软件测试其实是不存在性别歧视的,男生女生都能做,而且相对于其他编程语言类的工作,软件测试可能更加满足女性对于工作的诉求,比如薪资水平,工作压力,而从长期发展角度来看,软件测试工作越久越吃香,也使得其具备一定的稳定性。

0基础能学“软件测试”吗?好学吗?怎么学?

另一方面,说女性适合做软件测试也是软件测试工作性质的要求使然,为了保证一款程序能够稳定上线,需要反复测试,耐心必不可少,那种捶胸顿足扔凳子的请出门左转。而在不断的对程序进行测试的过程中,需要测试人员具备细心,敏感,认真,有一定想象力,一定沟通能力,这些都是女性与生俱来的性格特点,能够帮助女性在工作中更加顺利。

而关于大家关心的大龄、转行、学历低等疑问,我首先要表明一点,就是这些并不是你想学软件测试才会遇到的问题,这是你想转行从事任何一项工作都会遇到的共性问题,而软件测试其实算是技术行业里包容度相对来讲比较高的一个职业,它对代码能力需求不高,更多的是对你工作的思维,流程的把握和工具使用熟练度等方面有所要求。而如果你的能力能够达到雇主的要求,年龄,专业和学历等问题,根本不是你的拦路虎。我见过大把的高龄小哥哥、小姐姐“出身草莽”却“功成名就”!他们行,你怎么就不行!

那什么才是你通往软测工程师最大的障碍呢?答案是:热爱+坚持!

没错,我见过无数人因为薪资高,工作环境优越等因素决定转行软件测试,但是在无数个夜以继日的工作日后,他们磨灭了最初的热情,失去了继续学习的动力,留给他们的不仅是一身的疲惫,更是面临随时失业的风险。

有句话说得好,如果你知道自己要去哪,世界都会为你让路。人生没有什么来的及来不及之说,只要你愿意,未来也必将随着你的改变而变。

二、软件测试怎么学

一、功能测试

1.计算机基础

计算机基础:操作系统,进制转换,逻辑代数,计算机网络基础

软件生命周期,开发模型,测试模型

2.软件测试核心理论

软件测试概念,术语,目的,意义,前景

软件测试方法及分类(白盒测试,黑盒测试,单元测试。集成测试,系统测试,回归测试,验收测试,负载测试,压力测试,易用性测试,兼容性测试,UI测试。文档测试),热门领域测试技巧

需求分析,测试计划,测试用例设计与编写(等价类,边界值,因果图,判定表法,正交实验法,错误推算法,场景法),缺陷管理及缺陷报告,测试报告

测试用例编写,缺陷编写集中演练

0基础能学“软件测试”吗?好学吗?怎么学?

3.企业级环境配置实践

LInux系统和Windows系统搭建环境的区别

Linux基本命令,高级命令的使用

LInux操作系统下的服务器环境搭建

Linux环境下编辑软件的使用

Linux远程终端工具的使用

Linux系统Shel脚本基础

数据库的定义及基本概念,关系型数据库,Navicat工具

MySQL: MySQL的安装与配置,用户及连接方式,数据表操作,数据操作-增删改查,条件查询,排序,聚合函数,分组,分页,连接查询,自关联,子查询,数据库设计,命令行操作数据库,函数,存储过程。视图,事务,索引,外键

Oracle: Oracle的基本介绍,Oracle安装及简单操作,SQLplus集成工具安装及使用,SQL常用语句

0基础能学“软件测试”吗?好学吗?怎么学?

4.功能测试项目实战

企业中标准则试流程,程序中的前后台数据交互

软件测试管理工具: SVN、禅道、QC\ALM、Jira

搭建功能测试实战环境

Linux环境下B/S结构产品测试项目

0基础能学“软件测试”吗?好学吗?怎么学?

二、自动化测试Selenium和Appium

1.Python编程技术

Python: Python语言特点,运行环境搭建,Pycharm,变量的定义,输入输出,元组,列表,字

典,运算符的使用,分支结构,循环结构,函数,文件操作,面向对象编程思想,正则表达式,异常和调试,编程规范

0基础能学“软件测试”吗?好学吗?怎么学?

2.自动化测试入门

自动化测试分类及自动化适用的项目、自动化测试框架选型,自动化测试行业现状,发展前景,需要掌握的技能

3.Web自动化测试:Selenium

Selenium的发展历史及工作原理,SeleniumIDE插件的使用,Firebug插件 I具及使用,元素基础定位Xpath、CSS元素定位方式,元素操作,浏览器的操作方法,鼠标操作,键盘操作,元素等待,HTML特殊元素处理,窗口截图,自动化测试模型,UnitTest框架,UnitTest断言, 生成HTML测试报告,测试报告自动发送邮件

4.Web自动化测试项目实战

搭建B/S架构的电商网站,使用Selenium对网站的核心功能进行自动化测试,包括元素定位、鼠标键盘的模拟操作及自动化测试框架的使用等

0基础能学“软件测试”吗?好学吗?怎么学?

5.移动自动化测试:Applum

手机自动化测试环境搭建,真机和模拟器的测试,独立功能+业务场景脚本,手机自动化测试框架

Appium设计及实现,系统资源监控和日志分析,手机测试常见问题和用例分析

Monkey简介及安装,Monkey参 数,Monkey事件,Monkey自动化脚本,Monkey日 志管理

6.移动自动化测试项目实战

搭建APP测试环境,使用Appium对APP核心功能进行测试验证,包括ID、xpath、 list元素定位,数据交互、模块封装以及自动化测试框架的使用,生成测试报告,对APP功能进行评估。

0基础能学“软件测试”吗?好学吗?怎么学?

三、接口测试Jmeter

1.接口测试综合核心理论

接口测试基础,接口测试流程,接口测试方法,接口测试工具

计算机网络知识,Postman安装、使用,接口手动测试,Fiddler安装、 使用,Web和手机抓包,基本设置方法

2.Jmeter

Jmeter安装、基本使用,BadBoy录制脚本,测试计划分析、Vuser及场景设计(线程、组、调度器),Jmeter关联技术,Jmeter参 数化,Jmeter调 试和应用

Jmeter的常用组件:线程组、取样器、配置元件、处理器、控制器、定时器、断言、监听器

3.接口测试项目实战

搭建接口测试环境,分析业务流程,设计测试用例,使用Jmeter执行测试用例,对页面跳转,参数传递等功能进验证

4.网络安全测试

Web安全核心理论、Web漏洞及防御、渗透测试、SQL注入、XSS跨站脚本、AppScan

0基础能学“软件测试”吗?好学吗?怎么学?

四、性能测试Loadrunner

1.性能测试核心理论

性能测试理论、性能测试分类、性能测试常用指标、工具选择、LoadRunner安装与注册、性能测试步骤性能测试术语、类C语言

2.Loadrunner

VuGen:协议、参数化、集合点、事务、检查点、思考时间、关联、文件下载、浏览器模拟设置

Controller:手动场景设计、场景运行、IP Wizard应用、负载生成器、服务水平协议(SLA)、场景监控、服务器硬件监测工具

Analysis : HTTP报文结构、执行结果分析、图表分析、网页细分图、吞吐量相关、事务相关

性能测试调优:性能测试方案、Linux服 务器性能监控、JVM配置调优、tomcat配置调优、性能测试报告

数据库调优:慢查询、 线程池、索引命中率、行锁

性能测试指标:衡量性能好坏的包括响应时间,TPS,资源利用率

3.性能测试项目实战