一、软件测试的由来

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

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

早期并没有软件测试这个概念,直到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,预期结果(期望得到的结果)

数据库学习

数据库是开发和测试的最基本技能,软件前后端的交互,本质就是数据的交互,不管是功能测试、接口测试、性能测试、自动化测试等,都离不开数据库的支撑和使用。这一部分,主要了解数据库的基本概念,数据库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心你......

五、总结

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

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

  1. 29岁还适合转行软件测试么?好学么?

    29岁说实话有点晚,虽然说软件测试这行也有越老越吃香的说法,但是也要相应的工作年限,你这入行好几年到了该吃香的年纪了,可是技术水平可能还没有经过太多锤炼~ 如果想入行,那必定是要做出更多的努力的,也要 ...

  2. 想要转行软件测试之前应该做好哪些准备工作?

    本人从事职业生涯咨询10年,其中90%的案例都是关于转行的.很多人也有转行的打算,但他们最容易犯的错误有两个:一是转行的方向不对,虽然转行成功了,但却发现跳进了一个更大的坑,后悔不迭.二是转行的策略和 ...

  3. 想要转行软件测试就得先搞清测试工程师的职责是什么?

    一. 测试工程师: 1. 国内定位和发展前景: 测试工程师,软件质量的把关者,工作起点高,发展空间大.我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景. 目前传统的软件行业还是以 ...

  4. 转行软件测试,现状以及就业前景,你后悔了吗?

    工资微薄,发展受限,这可能是众多职场人的现状.看着身边朋友风生水起,内心迸发出发愤图强的念头,又不知该自己现在该做些什么.想转行,但又觉得自己现在老大不小的,贸贸然转行,会不会很冒险,就这样犹犹豫豫的 ...

  5. 想通过培训转行软件测试可以吗

    通过培训方式转行软件测试还是可以的 但是要注意筛选靠谱的培训机构,目前市场上鱼龙混杂,不注意筛选很可能就被套路了,到时候技能没学到.还白花了冤枉钱 尤其要盯防一些招转培的,借着招聘的名义跟你说可以提供 ...

  6. 女生想通过培训转行软件测试可以吗?

    本质上来看,只是在IT行业刚发展的前几年来看,愿意从事IT行业的女生较少罢了,并不是不适合或者不能做.作为一个行内人,我反而觉得女孩子做IT挺合适的 主要有以下几点: 一是因为不需要四处奔波,工作稳定 ...

  7. 软件测试转行月薪过万,那些转行软件测试的新手小白,是如何从月薪5000到月薪2万的?...

    原标题:那些转行软件测试的新手小白,是如何从月薪5000到月薪2万的? 前些天有小伙伴在后台问道,转行人员应该如何进入测试领域? 今天,我就这个问题做一个完整的回答,顺便说一下进入软件测试这个行业后持 ...

  8. 入行||转行软件测试?写给迷惘的你

    文章目录 背景介绍 开发人转行测试 如何入行||转行软件测试 软件测试的优势 目前国内开发与测试的比例是6:1. 小结 背景介绍 相比开发以后的职业生涯:我更看好软件测试的未来. 其次具有开发经验.对 ...

  9. 从网络营销辞职转行软件测试,100天的心酸拿到9K,过程都是自己在苦撑,只因我...

    "大学专业是网络营销专业 但是之前一直在事业单位荒废,感觉之前的单位让人懒惰 事儿还贼多,于是裸辞,参加培训班准备转行软件测试 然而学成后没有人要我-" 我为什么会选择转行? 想想 ...

最新文章

  1. 零基础入门学习Python(31)-异常处理2-try语句
  2. 什么是初效过滤器_初效过滤器主要用于过滤多少微米的杂质?
  3. 黑客攻击我们的11步详解及防御建议
  4. 【SSH之旅】一步学习的步Struts1相框(三):分析控制Struts1示例
  5. PHP—文件与目录操作
  6. MySQL 高级- case结构
  7. 万字总结!腾讯、字节跳动面经已发
  8. 表变量和临时表的使用
  9. 收藏:PCWorld:火狐浏览器已宣告死亡
  10. Axure中继器设置单选
  11. SpringBoot学习(第一天)
  12. 过程FMEA步骤四:失效分析(一)
  13. 10分钟JAVA从入门到放弃
  14. 卡巴斯基安全部队2013中文免费版【可免费使用一个月】
  15. java实现冒泡算法
  16. Roslyn 入门:使用 Roslyn 静态分析现有项目中的代码
  17. 顶级赛事!2021 CCF大数据与计算智能大赛强势来袭~
  18. 4万字的“整洁三部曲”干货,全浓缩在这一篇里了
  19. JavaScript的prompt用法
  20. 数据分析师如何搭建数据运营指标体系?

热门文章

  1. 我玩辅助是在给你做视野,不是给你的坟头看风水
  2. MySQL~数据库表中数据的增删查改(基础篇)
  3. Nvidia-docker2 for ubuntu18.04初试!
  4. mysql架设手游_战神引擎手游架设教程
  5. 基于windows 10打造的kali工具集-ICS Windows v2.0
  6. Cris 的 Spark Streaming 笔记
  7. Winform GDI+ 制作连连看,五子棋等(等格子类小游戏 )
  8. ES DSL常用查询
  9. html5中心开班信息,思途2103UIHTML5开班——新开始,新收获
  10. 数字图像处理-前端实现