初级软件测试工程师需要具备那些知识与技能

哈喽,大家好,今天我们来聊聊如何成为一名初级软件测试工程师,需要必备那些知识和技能。

什么是软件测试

软件测试的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件品质,并对其是否能满足设计要求进行评估的过程。
软件测试的现实定义是:软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。

掌握技能

1.测试基础理论:你要明白一家互联网公司各个岗位是做什么的,主要是前端,后端,产品经理…以及一个版本迭代从需求分析到上线整个测试流程以及使用的管理工具。要掌握测试用例的编写方法与技巧。

2.功能测试:主要分为app测试,web测试和接口测试。主要就是接口测试,你要学会使用两个工具,一个是postman用来调接口,一个是fiddler用来抓包定位bug。学好接口测试也是为以后的性能压测学习打下基础。

3.数据库:首学mysql,主要掌握sql语句,增删查改,嵌套子查询,多表查询。加分项会存储过程,懂索引,事务,sql优化。这些初级不强求。工作中使用最多的是查询和修改语句,主要校验前端的传值以及不同系统接口调用数据传输,存值是否正确。

4.linux:会linux基本命令,比如linux三剑客等,会用命令查日志,会搭建测试环境。因为绝大多数公司服务器以及代码都是部署在linux系统上,工作中用的最多的就是查询日志,定位bug。

5.网络协议:会http/https协议,高频面试题目接口请求的方式get与post区别,cookie与session机制区别,三次挥手四次断开,输入百度网址发生了什么?这些都要了解。

6.版本控制工具:主要就是git和svn,git是命令行式,svn是图形化界面,企业主要用来管理代码以及文档等,属于工具使用,比较简单,最好都会。

7.编程语言:java/python之一,初级对编程语言要求不高,不会也可,但是是加分项,最好掌握一些基础语法,比如学完javase,能手写实现冒泡排序或其它排序,很加分。

8.自动化:主要分为Web自动化,App自动化,接口自动化。初级要求不高,知道一些框架即可,如果学习请优先学习接口自动化,目前需求最多。加分项是会使用搭好的框架编写自动化case,脚本等。

9.性能测试:初级没要求,加分项会使用jmeter做接口压测,并发测试等。

测试的方法

软件测试一般分为白盒测试和黑盒测试。
黑盒测试
黑盒测试,软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。测试用例是应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。此测试方法可适合大部分的软件测试,例如单元测试(unittesting)、集成测试(integrationtesting)以及系统测试(systemtesting)。
白盒测试
白盒测试(又称透明盒测试、结构测试等)是一个测试软件的方法,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑盒测试)。在白箱测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的移动路径,并确定适当的输出,类似测试电路中的节点。
白箱测试可以应用于单元测试、集成测试和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。

测试类型

功能测试
按照测试软件的各个功能划分进行有条理的测试,在功能测试部分要保证测试项覆盖所有功能和各种功能条件组合。更详细的描述请参见“黑盒测试”。

系统测试
对一个完整的软件以用户的角度来进行测试,系统测试和功能测试的区别是,系统测试利用的所有测试数据和测试的方法都要模拟成和用户的实际使用环境完全一样,测试的软件也是经过系统集成以后的完整软件系统,而不是在功能测试阶段利用的每个功能模块单独编译后生成的可执行程序。

极限值测试
对软件在各种特殊条件,特殊环境下能否正常运行和软件的性能进行测试。
特殊条件一般指的是软件规定的最大值,最小值,以及在超过最大,小值条件下的测试。特殊环境一般指的是软件运行的机器处于CPU高负荷,或是网络高负荷状态下的测试,根据软件的不同,特殊环境也有过不同。

性能测试
性能测试是对软件性能的评价。简单的说,软件性能衡量的是软件具有的响应及时度能力。因此,性能测试是采用测试手段对软件的响应及时性进行评价的一种方式。根据软件的不同类型,性能测试的侧重点也不同。

压力测试
压力测试,确立系统稳定性的一种测试方法,在软件工程、金融风险管理等领域应用比较普遍。通常在系统正常运作范围之外进行,以考察其功能极限和隐患。

压力测试与性能测试的区别
压力测试常常和性能测试相混淆。它们主要不同点是,压力测试要求进行超过规定性能指标的测试。例如一个网站设计容量是100个人同时点击,压力测试就要是采用120个同时点击的条件测试。

你可能感兴趣的:(接口测试,软件测试培训,软件测试)