想要转行软件测试,这个技能好学吗?前景怎么样呢

一、软件测试的由来

软件测试的起源历史基础知识,希望通过本章节的学习,读者可以对软件测试的定义、缺陷、基础知识有一个大概的了解。

如果想了解一个行业的具体事物,只有了解一件事物的过去和历史背景,才能站在更高的视角去看待这个世界。

早期并没有软件测试这个概念,直到20 世纪60 年代(软件工程建立前),为证明程序设计的正确性而进行了相关的测试。

1972年,在北卡罗来纳大学举行了首届软件测试正式会议。

1975年,John Good Enough 和Susan Gerhart 在IEEE 上发表了文章《测试数据选择的原理》,软件测试被确定为一种研究方向。

1979年,Glenford Myers 在《软件测试艺术》中,对测试做了定义:测试是为发现错误而执行的一个程序或者系统的过程。

20世纪80年代早期,“质量”的号角开始吹响。软件测试定义发生了改变,测试不单纯是一个发现错误的过程,而且包含软件质量评价的内容,制定了各类标准。

1983年,Bill Hetzel 在《软件测试完全指南》中指出:测试是以评价一个程序或者系统属性为目标的任何一种活动,测试是对软件质量的度量。

二、软件测试的概述

软件测试概述基本介绍

20世纪90年代,测试工具盛行起来。现阶段的测试工具主要有两种来源:开源测试工具和商业测试工具。

1.开源测试管理工具主要有:Bugzilla、Bugfree、TestLink、Mantis 等。

2.开源自动化测试工具主要有:Watir、Selenium、MaxQ、WebInject 等。

3.开源性能测试工具主要有:JMeter、OpenSTA、DBMonster、TPTEST、Web Application LoadSimulator 等。

4.商业测试工具主要包括以下几种:

(1)TestDirector:全球最大的软件测试工具提供商Mercury Interactive 公司生产的企业级测试管理工具,也是业界第一个基于Web 的测试管理系统,它可以在公司内部或外部进行全球范围内测试的管理。通过在一个整体的应用系统中集成了测试管理的各个部分,包括需求管理、测试计划、测试执行以及错误跟踪等功能,TestDirector 极大地加速了测试过程。

(2)Quality Center:基于Web 的测试管理工具,可以组织和管理应用程序测试流程的所有阶段,包括指定测试需求、计划测试、执行测试和跟踪缺陷。此外,通过Quality Center 还可以创建报告和图来监控测试流程。合理使用Quality Center 可以提高测试的工作效率,节省时间,达到事半功倍的效果。

(3)QuickTest Professional:HP QuickTest Professional 针对功能测试和回归测试自动化提供业界最佳的解决方案,适用于软件主要应用环境的功能测试和回归测试的自动化。采用关键字驱动的理念来简化对测试用例的创建和维护。它让用户可以直接录制屏幕上的操作流程,自动生成功能测试或回归测试脚本。专业的测试者也可以通过其提供的内置脚本和调试环境来取得对测试对象属性的完全控制。

(4)LoadRunner:一种预测系统行为和性能的负载测试工具。以模拟上千万用户并发负载并实时监测系统性能的方式来确认和查找问题。LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。

其他工具与自动化测试框架还有:Rational Functional Tester、Borland Silk 系列工具、WinRunner、Robot 等。

1996 年提出的测试能力成熟度(Testing Capability Maturity Model,TCMM)、测试支持度(Testability Support Model,TSM)、测试成熟度模型(Testing Maturity Model,TMM)。

(1)TCMM 于1996 年,由Rodger 和Susan Burgess 在Testing Computer Software 会议上提出。

(2)TSM 于1996 年,由David Gelperin 和Aldin Hayashi 提出。

(3)TMM 于1996 年,由Ilene Burnsein 博士在伊利诺伊研究所提出。

TCMM、TSM 和TMM 是对软件能力成熟度模型(CMM)的有益补充。到了2002 年,Rick 和Stefan 在《系统的软件测试》一书中对软件测试进行了进一步定义:

测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护整个生命周期的过程。我国的软件测试技术研究起步于“六五”期间,主要是随着软件工程的研究而逐步发展起来的。

三、如何学习软件测试呢?

很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识。下面是根据本人的理解,粗略整理的一个学习大纲

测试基础理论

软件:控制计算机硬件工作的工具(客户端,服务器,数据库)

软件测试:使用技术手段验证软件是否满足使用需求 目的:减少缺陷,保证质量

(1)测试主流技能
        1,功能测试

        测试主要验证程序的功能是否满足需求

        2,自动化测试

        使用工具或代码代替手工,对项目进行测试

        3,接口测试

        使用工具或代码对服务端提供的接口进行测试

        4,性能测试

        模拟对人使用软件,查找服务器缺陷

(2)测试分类
按测试阶段划分

1,单元测试

针对程序源代码进行测试(一般为开发自测)

2,集成测试

又称接口测试,针对模块之间访问地址进行测试

3,系统测试

对整个系统进行测试,包括功能,兼容,文档等

4,验收测试

主要分为内测和公测,使用不通人群来发掘项目缺陷

(3)按代码可见程度划分
1,黑盒测试

源代码不可见,UI功能可见

2,灰盒测试

部分源代码可见,功能不可见

3,白盒测试

全部代码可见,功能不可见

(4)软件测试流程
1,需求评审(确保各部门需求理解一致)

2,计划编写(测什么,谁来测,怎么测)

3,用例设计(验证项目是否符合需求的操作文档)

4,用例执行(项目模块开发完成开始执行用例文档实施测试)

5,缺陷管理

6,测试报告(实施测试结果文档)

(5)测试用例
什么是用例:用户使用的案例

什么是测试用例:为测试项目而设计的执行文档

(6)测试用例的作用
1,防止漏测

2,实施测试的标准

用例设计编码格式(八大要素)

1,用例编号(项目_模块_编号)

2.用例标题(预期结果(测试点))

3,模块/项目(所属项目或模块)

4,优先级(表示用例的重要程度或影响力,P0-P4,P0最高)

5,前置条件(要执行此条用例,有哪些前置操作)

6,测试步骤(描述操作步骤)

7,测试数据(操作的数据,没有的话可以为空)

8,预期结果(期望得到的结果)

数据库学习MySQL数据库6.0v6.0.11官方版 32位 64位 下载使用 服务和客户端

数据库是开发和测试的最基本技能,软件前后端的交互,本质就是数据的交互,不管是功能测试、接口测试、性能测试、自动化测试等,都离不开数据库的支撑和使用。这一部分,主要了解数据库的基本概念,数据库SQL增删改查,常见的表操作语句,以及数据库工具(Navicat)的使用。

Linux学习

Linux操作系统一直被用作重要的服务端操作系统,作为软件测试工程师,我们常常需要在服务器端查看日志,从而定位问题的源头。当然,更多的场景是,我们需要在linux系统上搭建测试环境。这些都需要我们掌握基本的linux系统知识,熟悉常见的命令及工具。更高级的使用,是通过编写shell脚本,自动化完成测试任务。

接口测试

接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性、安全性以及性能方面的要求.

简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。

接口测试流程
1、分析接口文档和需求文档
2、编写接口测试计划
3、编写接口测试用例
4、接口测试执行
5、生成接口测试报告。
5.自动化测试
做自动化测试,必须会一门语言:
·        第一步:先学python ------- python不过关,别谈自动化。
如果只学习Robot Framwork,通过这个来做自动化,别以为不要学习Selenium跟python了, 因为Robot Framework中的关键字可能不够用,不能满足你们的需求,那么我们需要自定义关键字,这个时候就必须自己得通过python+selenium来编写了。

6.性能测试
现在性能测试的需求不是特别大,但可以肯定的是,未来公司要求测试工程师定要会性有测试

这几年软件测试的要求越来越高了,以后如果不会一些性能,自动化和接口都很难找到好点的工作了

关于性能测试,最基本的必须要会性能测试工具,性能测试工具主要包括:LoadRunner和Jmeter

LoadRunner是一个商用软件 ,Jmeter是一个开源的工具

当然只是会这些不够,还要会性能监控,性能监控通常包括:前端监控与调优、系统资源监控与调优,中间件、数据库,这是最常见的监控与调优了

四、行业发展薪资待遇

当今时代,随着软件整个产业的发展,软件产品的质量控制与质量管理成为了一个软件最重要的一部分,每个大中型IT企业的软件产品在上市前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件测试人才来完成。软件测试工程师就是这样的一个重头的角色。

然而,现状是:一方面IT企业对高质量的测试人员需求量越来越大,另一方面国内以前对测试工程师的职业重视程度不够,许多人并不了解测试工程师具体是从事什么工作的。

这使得许多IT公司只能通过自己培训或者实际工作中进行淘汰的方式对测试工程师进行筛选,因此国内在短期内将出现测试工程师严重短缺的现象。

根据招聘IT人才情况的了解,大部分招聘软件测试工程师的企业很难招到合适的人才。

在具体工作过程中,测试工程师的工作是利用测试工具按照测试方案和流程对软件产品进行功能和性能测试,甚至根据需求编写不同的测试用例,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。对软件测试工程师工作而言,必须具有高度的工作责任心和自信心。任何严格的测试必须是一种实事求是的测试,客观的测试,因为测试关系到一个产品的质量最后是否符合要求,而测试工程师则是产品出货前的守门员,所以,没有专业的技术水平是无法胜任这项工作的。同时,由于测试工作一般由多个测试工程师共同配合完成,并且测试部门一般要与其他部门的人员进行很多沟通,所以要求测试工程师不但要有较强的技术能力而且要有较强的沟通能力。

通过数据我们不难发现,年薪30W+的大有人在,技术大牛与测试小白之间的确差了好几座大山,而我们这些在腰部地带徘徊的普通测试员,与其浪费时间去焦虑,去后悔,不如好好研究下怎样向大佬看齐,怎样去提升自己的能力!

时间荏苒,工作越久越能体会测试才不是这么简单,只会点点鼠标,并不能走的长远,工资也渐渐的无法满足生活需求,恍然明白,对于一个测试员而言,自己没有一个很好的框架,完全跟着感觉走,根本写不出好的测试用例。

测试也绝对不是一个人闷头干,避免不了与人打交道,其中与开发沟通交流的最多,遇到好说话的开发还好,遇到不好说话的开发,他不仅对你的bug视若罔闻,还故意用一堆你听不懂的代码e心你......

五、总结

对于软件测试来说,想要有更好的发展,就需要持续学习、不断进步。总而言之,可能你现在的日子过得很舒服,但是长此以往和“温水煮青蛙”无异。跳出舒适圈才是提高自身核心竞争力的开始!
 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


学习编程是顺着互联网的发展潮流,是一件好事。新手如何学习编程?其实不难,不过在学习编程之前你得先了解你的目的是什么?这个很重要,因为目的决定你的发展方向、决定你的发展速度。
IT行业是什么工作做什么?IT行业的工作有:产品策划类、页面设计类、前端与移动、开发与测试、营销推广类、数据运营类、运营维护类、游戏相关类等,根据不同的分类下面有细分了不同的岗位。
女生学Java好就业吗?女生适合学Java编程吗?目前有不少女生学习Java开发,但要结合自身的情况,先了解自己适不适合去学习Java,不要盲目的选择不适合自己的Java培训班进行学习。只要肯下功夫钻研,多看、多想、多练
Can’t connect to local MySQL server through socket \'/var/lib/mysql/mysql.sock问题 1.进入mysql路径
oracle基本命令 一、登录操作 1.管理员登录 # 管理员登录 sqlplus / as sysdba 2.普通用户登录
一、背景 因为项目中需要通北京网络,所以需要连vpn,但是服务器有时候会断掉,所以写个shell脚本每五分钟去判断是否连接,于是就有下面的shell脚本。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
假如你已经使用过苹果开发者中心上架app,你肯定知道在苹果开发者中心的web界面,无法直接提交ipa文件,而是需要使用第三方工具,将ipa文件上传到构建版本,开...
下面的 SQL 语句指定了两个别名,一个是 name 列的别名,一个是 country 列的别名。**提示:**如果列名称包含空格,要求使用双引号或方括号:
在使用H5混合开发的app打包后,需要将ipa文件上传到appstore进行发布,就需要去苹果开发者中心进行发布。​
+----+--------------+---------------------------+-------+---------+
数组的声明并不是声明一个个单独的变量,比如 number0、number1、...、number99,而是声明一个数组变量,比如 numbers,然后使用 nu...
第一步:到appuploader官网下载辅助工具和iCloud驱动,使用前面创建的AppID登录。
如需删除表中的列,请使用下面的语法(请注意,某些数据库系统不允许这种在数据库表中删除列的方式):
前不久在制作win11pe,制作了一版,1.26GB,太大了,不满意,想再裁剪下,发现这次dism mount正常,commit或discard巨慢,以前都很快...
赛门铁克各个版本概览:https://knowledge.broadcom.com/external/article?legacyId=tech163829
实测Python 3.6.6用pip 21.3.1,再高就报错了,Python 3.10.7用pip 22.3.1是可以的
Broadcom Corporation (博通公司,股票代号AVGO)是全球领先的有线和无线通信半导体公司。其产品实现向家庭、 办公室和移动环境以及在这些环境...
发现个问题,server2016上安装了c4d这些版本,低版本的正常显示窗格,但红色圈出的高版本c4d打开后不显示窗格,
TAT:https://cloud.tencent.com/document/product/1340