软件测试自学该学哪些东西?前景怎么样?

目录

前言

一、软件测试需要学什么?

1、软件测试的目的是发现软件中存在的错误,提高软件质量,降低软件项目的风险。

2、软件测试只能证明软件存在错误,而不能证明软件没有错误。测试的目的只是把软件的错误控制在一个可以进行产品交付/发布的程度上,可以交付/发布产品并不是没有错误的产品。

3、软件测试不可能无休止的进行下去。随着测试时间的延伸,发现错误的成本会越来越大,这就需要测试有度,而这个度并不能由项目计划实际判断,而是要根据测试发现错误的概率来判断。

4、第三方测试指独立于软件公司自身测试的测试,所谓第三方是指在软件公司和软件用户之间的一方,是一个中介的服务机构,第三方测试除了发现软件问题之外,还要对软件进行科学、公正的评价的职能。

5、软件测试是指对软件形成过程中的文档、数据及程序进行的测试,而不仅仅是对程序进行的测试。

6、软件测试与质量保证的区别

7、软件测试的作用

8、软件测试的原则

9、软件测试的对象

10、验证与确认

11、软件测试的分类

12、软件测试过程模型

13、软件测试与软件开发过程的关系

14、软件测试策略

15、软件失效分类

16、缺陷与错误的严重性和优先级

17、软件错误跟踪管理

18、自动化测试

19、功能自动化测试

20、负载压力自动化测试

三、测试行业薪资怎么样?

1、行业“钱”景如何?

2、测试行业已经趋于饱和了?

3、测试行业趋势怎么样?40岁/50岁/60岁之后呢?


前言

测试小伙伴在谈论软件测试分类,五花八门的分类,眼花缭乱。因为将各个维度划分的内容都整到一块了,在加上各自不同的见解与补充,各种冲突......

Findyou我经过多年测试总结基本定为4类测试(最多5类,自动化或者兼容性单独提出来):功能测试、性能测试、安全测试、特性测试、。化繁为简,转为自己理解的分类,避免死记硬背带来的理解不深入,遗漏测试范围。我的测试4类划分如下:

功能测试:关注功能正常(包含兼容性测试),除了下面分类都测;

性能测试:关注(比如前端性能、后端性能);

安全测试:关注传输、存储等安全;

特性测试:特性指平台差异(即部分兼容性测试),如PC端鼠标,键盘操作特性(Tab键等);如手机触屏操作,横竖屏,中断恢复(来电)等。

一、软件测试需要学什么?

软件测试是互联网技术的一门重要学科,是软件生命周期中不可缺少的环节,肩负着控制和监督软件质量的重任。简单来说,软件测试就是测试软件开发人员提交的软件,模拟用户的使用,找到bug,总结问题,反馈给开发人员。但随着用户对软件体验要求的不断提高,软件质量的影响越来越大,软件测试人员的重要性也越来越大。好多人都想学习软件测试,但是却不知道软件测试应该学习什么,接下来不多废话,咱们直接上干货。

1、软件测试的目的是发现软件中存在的错误,提高软件质量,降低软件项目的风险。

2、软件测试只能证明软件存在错误,而不能证明软件没有错误。测试的目的只是把软件的错误控制在一个可以进行产品交付/发布的程度上,可以交付/发布产品并不是没有错误的产品。

3、软件测试不可能无休止的进行下去。随着测试时间的延伸,发现错误的成本会越来越大,这就需要测试有度,而这个度并不能由项目计划实际判断,而是要根据测试发现错误的概率来判断。

4、第三方测试指独立于软件公司自身测试的测试,所谓第三方是指在软件公司和软件用户之间的一方,是一个中介的服务机构,第三方测试除了发现软件问题之外,还要对软件进行科学、公正的评价的职能。

5、软件测试是指对软件形成过程中的文档、数据及程序进行的测试,而不仅仅是对程序进行的测试。

6、软件测试与质量保证的区别

质量保证(QA):质量保证的重要工作通过预防、检查与改进来保证软件质量,QA采用“全面质量管理”和“过程改进”的原来来开展质量保证工作,所关注的是软件质量的检查与测量。QA的工作是软件生命周期的管理及验证软件是否满足规定的质量和用户需求,因此主要着眼于软件开发活动中的过程、步骤和产物,而不是对软件进行剖析找出问题或评估。

软件测试:软件测试虽然也与开发过程紧密相关,但关心的不是过程的活动,而是对过程的产物以及开发出来的软件进行剖析。

7、软件测试的作用

(1)对软件质量进行度量和评估,以验证软件的质量满足用户的需求的程度,为用户选择和接受软件提供有力的依据;

(2)通过分析错误产生的原因帮助发现当前开发工作所采用的软件过程的缺陷;

(3)通过测试结果的分析整理,还可以修正软件开发规则,并未软件可靠性分析提供依据;

8、软件测试的原则

(1)所有软件测试都应追溯到用户需求;

(2)应当把“尽早地和不断地进行软件测试”作为软件测试的座右铭;

(3)完全的测试是不可能的,测试需要终止;

(4)测试无法显示软件潜在的缺陷;

(5)充分注意测试中的群集现象;

(6)程序员应避免检查自己的程序;

(7)尽量避免测试的随意性。

9、软件测试的对象

软件中的程序、数据和文档。软件测试贯穿字整个软件生命周期中,各阶段有不同的测试对象,形成了不同阶段的不同类型的测试。

(1)需求分析、概要设计、详细设计以及程序编码等各个阶段所得的文档,包括需求规格说明书、概要设计规格说明、详细设计规格说明以及源程序;

(2)在软件编码结束之后,对编写的每个程序模块进行测试,称为“模块测试”或“单元测试”;

(3)在模块集成后,对集成在一起的模块组件,有时也可称为“部件”,进行测试,称为“集成测试”;

(4)在集成测试之后,需要检测与证实软件满足软件需求规格说明书中规定的要求,这就成为“确认测试”;

(5)将整个程序模块即成为软件系统,安装在运行环境下,对硬件、网络、操作系统及支撑平台构成的整体系统进行测试,称为“系统测试”。

10、验证与确认

验证是保证软件正确实现特定功能的一系列活动和过程,目的是保证软件生命周期中的每一个阶段的成果满足上一个阶段所设定的目标;确认是保证软件满足用户需求的一系列的活动与过程,目的是在软件开发完成后保证软件与用户需求相符合。

验证与确认均属于软件测试,包括对软件分析、设计及程序的验证和确认。

11、软件测试的分类

按照全生命周期的软件测试概念,测试对象应该包括软件设计开发的各个阶段的内容,此处重点讲述开发阶段的测试和程序测试。

(1)按照开发阶段划分:

按照开发阶段划分软件测试可分为:单元测试、集成测试、系统测试、确认测试和验收测试。

1)单元测试:单元测试又称为模块测试,是针对软件设计的最小单位—程序模块进行正确性检验的测试工作。其目的在于坚持每个程序单元能否正确的实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

2)集成测试:集成测试也叫做组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步即成为符合概要设计要求的程序部件或整个系统。

软件集成的过程是一个持续的过程,会形成很多个临时版本,在不断地集成过程中,功能集成的稳定性是真正的挑战。在每个版本提交时,都需要进行冒烟测试,即对程序主要功能进行验证。冒烟测试(BVT (Build Verification Test))也叫做版本验证测试、提交测试。

3)确认测试:确认测试时通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求说明书中规定的要求。

4)系统测试:系统测试是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统的测试。系统测试时在真实或者模拟系统运行的环境下,检查完整的程序能否与系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连接,并满足用户需求。

5)验收测试:按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接受或者拒收系统。

(2)按照测试实施组织划分

按照测试实施组织划分,软件测试可分为开发方测试、用户测试(β测试)、第三方测试。

1)开发方测试:通常也叫“验证测试”或“α测试”。开发方通过检测和提供客观证据,证实软件的实现是否满足规定的需求。验证测试是在软件开发环境下,由开发者检测与证实软件的实现是否满足软件设计说明或软件需求说明的要求。主要是指在软件开发完成以后,开发方对要提交的软件进行全面的自我检查与验证,可以与软件的“系统测试”一并进行。

2)用户测试:在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况下,用户测试不是指用户的“验收测试”,而是指用户的使用性测试,由用户找出软件应用过程中发现的软件的缺陷与问题,并对使用质量进行评价。

β测试通常被看成是一种“用户测试”

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值