软件测试是什么?我如果要学的话都该学哪些技能?

目录

一、软件测试简介

二、测试工程师需要会哪些技能

三、测试工程师等级和薪资​编辑

最后正在学测试的可以观看下面的视频


一、软件测试简介

软件测试(英语:Software Testing),是描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过程。软件测试是一种实际输出与预期输出间的审核或者比较过程。软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试主要学习功能测试、自动化测试、接口测试、性能测试,这些又是什么呢?简单来说就是:

1、功能测试:功能测试就是对产品的各功能进行验证,根据功能测试用例,逐项测试,检查产品是否达到用户要求的功能

2、自动化测试:一般是指软件测试的自动化,软件测试就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。

3、接口测试:接口测试主要用于检测外部系统与系统之间以及内部各个子系统之间的交互点。

4、性能测试:性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。

二、测试工程师需要会哪些技能

01

软件测试理论

作为一个软件测试人员,总不能不知道软件测试本身的东西吧。

你总要知道软件测试是什么?什么是测试用例?什么是缺陷?软件测试有些什么特点?这些仅仅是理论,现在还不关心会不会做。

比如软件测试的定义,软件测试是测试程序?还是测试文档?还是测试软件等?

02

软件测试流程

如果要清楚软件测试流程,那就一定要知道软件工程、软件生命周期、研发模型、测试模型。

模型又有经典的瀑布模型、目前最流行的敏捷开发流程、V模型、W模型、X模型、H模型等,这些模型至少要随便知道三四种吧。

03

测试文档

软件测试是技能型工作,不是研究型工作,了解了软件测试理论之后,你总会要做点东西吧,比如写写文档。

软件测试人员必备技能之一就是写文档,会总结。

软件测试有很多文档要写,比如测试计划、测试方案、测试用例、提交bug单、测试报告,有时每个迭代完全后,老大还会要求你输出几份经验文档出来,可见会写文档的测试人员是多么的必要。

04

计算机基础

软件测试工程师怎么说也算是IT人员,计算机基础总要会吧。

不然让你关个服务,你迷茫……

让你配置个环境变量,你再迷茫……

让你安装软件,卸载个软件,你搞半天,安装的软件全在C盘,卸载软件完全没卸干净,重装不成功,然后你再再迷茫……

让你在DOS命令窗口查个IP,然后再配个静态IP,你再再再迷茫

………………

计算机基础是软件测试人员必备的技能之一。

05

软件、工具

作为一个IT人员,你好意思说自己不会几个软件么?

那我们就一起盘点盘点,软件测试人员必须要会的软件:

office办公软件就不说了,软件测试要写这么多文档,office办公软件一定要会。

需求分析时,拆会测试点时,总要画一下思维导图,所以XMIND或其它思维导图软件总要会一个吧。

配置管理工具,不管是以前的SVN还是现在流行的git总要会一个

远程连接工具,数据库和服务器基本都是配置机房,所以数据库和服务器的远程连接工具都要会,你总不能跑到机房去操作吧,如果你跑到机房去操作,那一定记得带台显示器去。

碰到不会的,总要查一下度娘和谷叔吧,你不会说这个人人都会,千万别这样!要不然怎么会有相同的问题,别人就能快速找到解决方法,而你搜索出来的网页总是找不到呢?

06

数据库

不管是MysqL,还是Oracle,还是sqlServere,还是DB2等等,数据库的特性、性能和优化可能不用知道,但是sql语言总要会吧,谁让它们都认识sql语言呢。

sql语言又会为DDL、DML、DQL、DCL。

数据定义语言(DDL):       

用于下定义和管理数据对象(库,表,索引,视图),包括数据库,数据表等,例如:CREATE DROP ALTER等语句。

数据操作语言(DML):

用于操作数据库对象中包含的数据,例如:INSERT UPDATE DELETE语句。

数据查询语言(DQL):           

用于查询数据库对象中包含的数据,能够进行单表查询,连接查询,嵌套查询,以及集合查询等各种复杂不同的数据库查询,并将数据返回到客户机中显示,例如:SELECT语句。

数据控制语言(DCL):

用于管理数据库的语言,包含管理权限及数据更改,例如:GRANT、REVOKE、COMMIT、ROLLBACK等语句。

就算软件测试人员不需要关心数据库结构,可以不用DDL、DCL,但是针对数据(增、删、改、查)的DML、DQL语言一定要会吧。

就算你说insert、update、delete语句都很简单,照着格式直接使用就行,那select呢。

select语句不仅有简单查询,还有复杂查询

复杂查询中包含多表查询、连接查询、子查询,以及包含各种函数进行的查询

这些语句软件测试人员都要掌握吧。

07

LINUX

Linux做为服务器的操作系统,软件测试人员需要经常在LINUX上进行搭建测试环境。

如果你说公司的测试环境都是开发搭的,系统和软件是运维装的,不用了解Linux系统。

那你就大错特错了。

如果测试过程中,运行报错了,总需要在后台去看看日志吧,分析下是不是bug,如果是bug,总还需要定位一下吧。

如果Linux系统很卡时,你总要去查下进程,查下系统资源管理,或者杀死几个进程,重启下服务什么的。

那这些命令软件测试人员总都要会吧。

如果你说这些还都可以依靠开发和运维,那你就当我没说。

08

编程语言

既然是IT人士,如果出去说自己不会一门编程语言,好像很没面子一样的。

目前世面上编程语言有C、C++、C#、世界上最好的语言(PHP)、JAVA、Perl、Python等等上百种,那你总要选一门语言学会使用。

一般情况下都是选公司系统目前所用的语言。

但如果不知道怎么选,那我建议软件测试人员可以选JAVA和Python,JAVA经久不衰定有它过人之处,Python能在这么短的时间内火起来,也一定是有原因的。

如果没有任何编程基础,建议先学Python,Python更加贴近自然语言,学起来更顺手,更快。

三、测试工程师等级和薪资

初级测试工程师 :年薪约在2-4万左右。他们的工作通常是按照测试方案和流程对产品进行功能测试,检查产品是否有缺陷。 具有一些手工测试经验,开发测试脚本并开始熟悉测试生存周期和测试技术;


中级测试工程师 :年薪在5-6万左右。他们要能够编写测试文案,测试文档,与项目组一起制定测试阶段的工作计划。能够在项目中合理利用测试工具来完成测试任务。能够独立编写自动测试脚本程序并担任测试编程初期的领导工作,进一步拓展编程语言、操作系统、网络与数据库方面的技能;


高级测试工程师 :年薪8-10万左右。他们不但需要掌握测试与开发技术,而且对所测试软件对口的行业非常了解,能够对测试方案可能出现的问题进行分析和评估。帮助开发或维护测试或编程标准与过程,负责同级的评审,并能够指导初级的测试工程师;


Team leader(测试主管) :年薪8-15w,一般至少具有5年的工作经验,负责管理一个小团队。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品,负责开发项目的技术方法,能够为用户提供支持和演示;


测试经理 :年薪在12-20w,能够担当测试领域内的整个开发生存周期业务,能够为用户提供交互和大量演示,负责项目成本、进度安排、计划和人员分工;


计划经理(或者说测试总监) :年薪20-30w,具有多年纯熟的开发与支持(测试/质量保证)活动方面的经验,管理从事若干项目的人员以及整个开发生存周期,负责把握项目方向和盈亏责任。


0级:
不了解测试方法

没有测试计划和测试样例,漫无目的测试,靠运气找BUG;
提交BUG的时候描述非常不清楚;

1级:

了解一些测试方法

有一定的逻辑思考能力;

知道测试重点,了解测试覆盖率,会设计测试样例;
提交BUG的时候描述非常清楚,有详细的BUG重现步骤;

2级:

知道常用测试方法和测试技巧;

有较强逻辑思考能力;

会使用一些自动化测试工具;

有明确的测试计划和测试重点,设计的测试样例覆盖率较高。
提交BUG的时候描述非常清楚,有详细的重现步骤,规律性以及解决的建议。

3级:

熟悉常用测试方法和测试技巧;

不定期学习新的测试方法和测试技巧;

有很强逻辑思考能力;

会使用一些自动化测试工具;

经常上一些测试论坛和同行交流;

会一种编程语言(特别是shell,python等脚本语言);

有明确的测试计划和测试重点,设计的测试样例覆盖率非常高。
提交BUG的时候描述非常清楚,有详细的重现步骤,规律性以及解决的建议。

最后正在学测试的可以评论区讨论交流

相关文章

显卡天梯图2024最新版,显卡是电脑进行图形处理的重要设备,...
初始化电脑时出现问题怎么办,可以使用win系统的安装介质,连...
todesk远程开机怎么设置,两台电脑要在同一局域网内,然后需...
油猴谷歌插件怎么安装,可以通过谷歌应用商店进行安装,需要...
虚拟内存这个名词想必很多人都听说过,我们在使用电脑的时候...