目录
一 软件测试的由来
二 软件测试的概述
三 如何学习软件测试呢?
四 行业发展
五 总结
一 软件测试的由来
本章主要介绍软件测试的起源历史基础知识,希望通过本章节的学习,读者可以对软件测试的定义、缺陷、基础知识有一个大概的了解。
如果想了解一个行业的具体事物,只有了解一件事物的过去和历史背景,才能站在更高的视角去看待这个世界。
早期并没有软件测试这个概念,直到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 在《系统的软件测试》一书中对软件测试进行了进一步定义:
测试是为了度量和提高被测软件的质量,对测试软件进行工程设计、实施和维护整个生命周期的过程。我国的软件测试技术研究起步于“六五”期间,主要是随着软件工程的研究而逐步发展起来的。
三 如何学习软件测试呢?很多新手,不知道软件测试学习该如何开始,软件测试需要掌握哪些知识。下面是根据本人的理解,粗略整理的一个学习大纲全套自动化测试学习视频http:// https://zhuanlan.zhihu.com/p/502688962
1.测试基础理论软件:控制计算机硬件工作的工具(客户端,服务器,数据库)
软件测试:使用技术手段验证软件是否满足使用需求 目的:减少缺陷,保证质量
(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,预期结果(期望得到的结果)
2.数据库学习数据库是开发和测试的最基本技能,软件前后端的交互,本质就是数据的交互,不管是功能测试、接口测试、性能测试、自动化测试等,都离不开数据库的支撑和使用。这一部分,主要了解数据库的基本概念,数据库SQL增删改查,常见的表 *** 作语句,以及数据库工具(Navicat)的使用。
3.Linux学习Linux *** 作系统一直被用作重要的服务端 *** 作系统,作为软件测试工程师,我们常常需要在服务器端查看日志,从而定位问题的源头。当然,更多的场景是,我们需要在linux系统上搭建测试环境。这些都需要我们掌握基本的linux系统知识,熟悉常见的命令及工具。更高级的使用,是通过编写shell脚本,自动化完成测试任务。
4.接口测试接口测试就是通过接口的不同情况下的输入和与之对用的输出之间的关系,看看是否满足接口规范所规定的功能性、安全性以及性能方面的要求.
简单的说:“接口测试是就是在没有前端页面或者前端还没完成的情况下,代替前端页面或者第三方使用者,来验证后端的接口实现是否符合接口规范。
接口测试流程 1、分析接口文档和需求文档 2、编写接口测试计划 3、编写接口测试用例 4、接口测试执行 5、生成接口测试报告。 5.自动化测试做自动化测试,必须会一门语言:
· 第一步:先学python ------- python不过关,别谈自动化。
如果只学习Robot Framwork,通过这个来做自动化,别以为不要学习Selenium跟python了, 因为Robot Framework中的关键字可能不够用,不能满足你们的需求,那么我们需要自定义关键字,这个时候就必须自己得通过python+selenium来编写了。
现在性能测试的需求不是特别大,但可以肯定的是,未来公司要求测试工程师定要会性有测试
这几年软件测试的要求越来越高了,以后如果不会一些性能,自动化和接口都很难找到好点的工作了
关于性能测试,最基本的必须要会性能测试工具,性能测试工具主要包括:LoadRunner和Jmeter
LoadRunner是一个商用软件 ,Jmeter是一个开源的工具
当然只是会这些不够,还要会性能监控,性能监控通常包括:前端监控与调优、系统资源监控与调优,中间件、数据库,这是最常见的监控与调优了
四 行业发展当今时代,随着软件整个产业的发展,软件产品的质量控制与质量管理成为了一个软件最重要的一部分,每个大中型IT企业的软件产品在上市前都需要大量的质量控制、测试和文档工作,而这些工作必须依靠拥有娴熟技术的专业软件测试人才来完成。软件测试工程师就是这样的一个重头的角色。
然而,现状是:一方面IT企业对高质量的测试人员需求量越来越大,另一方面国内以前对测试工程师的职业重视程度不够,许多人并不了解测试工程师具体是从事什么工作的。
这使得许多IT公司只能通过自己培训或者实际工作中进行淘汰的方式对测试工程师进行筛选,因此国内在短期内将出现测试工程师严重短缺的现象。
根据招聘IT人才情况的了解,大部分招聘软件测试工程师的企业很难招到合适的人才。
在具体工作过程中,测试工程师的工作是利用测试工具按照测试方案和流程对软件产品进行功能和性能测试,甚至根据需求编写不同的测试用例,设计和维护测试系统,对测试方案可能出现的问题进行分析和评估。对软件测试工程师工作而言,必须具有高度的工作责任心和自信心。任何严格的测试必须是一种实事求是的测试,客观的测试,因为测试关系到一个产品的质量最后是否符合要求,而测试工程师则是产品出货前的守门员,所以,没有专业的技术水平是无法胜任这项工作的。同时,由于测试工作一般由多个测试工程师共同配合完成,并且测试部门一般要与其他部门的人员进行很多沟通,所以要求测试工程师不但要有较强的技术能力而且要有较强的沟通能力。
五 总结对于软件测试来说,想要有更好的发展,就需要持续学习、不断进步。总而言之,可能你现在的日子过得很舒服,但是长此以往和“温水煮青蛙”无异。跳出舒适圈才是提高自身核心竞争力的开始!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)