一文带你初窥软件测试行业

余生长醉 提交于 2020-10-05 07:50:33

三大原始问题一——软件测试是什么

在一定条件下对软件系统进行审核、运行、评估,检验软件系统是否满足规定需求或者找出预期结果与实际结果之间的差别。为软件产品的质量和评价提供依据。

三大原始问题二——为什么要进行软件测试?

为了确保软件完成了它所承诺或公布的功能。

为了确保软件满足性能和效率的要求。

为了确保软件是健壮的、适应用户的环境。

提早预防、尽早发现、及时跟踪软件缺陷,满足产品发布需求。

三大原始问题三——软件测试怎么测?

通过手工和自动化方式,利用各种测试工具和管理工具等手段、更早、更快、更多的发现缺陷,并确保这些缺陷得以修复。

零、哪些部分需要测试?

1.软件程序。

2.与程序匹配的文档。

3.支撑软件运行的配置数据。

一、测试的原则

1.测试证明软件存在缺陷。无论执行什么样的测试操作都保能证明当前软件是有缺陷的。

2.不能进行穷尽测试。任何的测试操作都有结束的时间,有些功能是没有办法将所有的测试情况都逻列出来。

3.缺陷存在群集现象:对于软件功能说,核心功能占 20%,非核心是 80%。我们会集中测试 20%的核心功能,那么遇到缺陷也都会集中在 20% 功能模块里的现象。

4.某些测试需要依赖特殊的环境。

5.测试应尽早介入:为了更多的发现和更好的解决软件中的缺陷,我们追求测试工作尽早的开展。

二、软件的生命周期

软件开发的全周期,基本涵盖可行性研究、需求分析、软件设计、编码、测试软件发布、维护等过程。

三、软件的开发模型

1.瀑布模型

强调产品定义,各步骤是分离的,前一阶段完成后才能开始后一阶段。

缺点是无法回溯,测试在最后运行,惧怕需求变更。

2.螺旋模型

螺旋模型的总体思想是一开始不必详细定义所有细节。从小开始,定义重要功能,努力实现这些功能,接受客户反馈,然后进入下一阶段。重复上述过程,直至得到最终产品。

缺点:需要经常风险分析。

四、软件测试的过程模型

V模型

V模型是软件开发瀑布模型的变种,把测试过程作为在需求分析、概要设计、详细设计及编码之后的一个阶段,从左到右,描述了基本的开发过程和测试行为。

W模型/双V模型

测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、设计等开发输出的文档同样要测试。有利于尽早地发现问题。

H模型

人们发现虽然软件开发中需求、设计、编码等活动被分阶段执行、但是实践中,他们并不是完全串行的,它们之间更多时候是交叉进行的,更多的是迭代执行。为了解决这个问题,有专家专门提出了H模型,它将测试活动完全独立出来,形成一个完全独立的流程,同时将测试准备和测试执行也清晰表现出来。

H模型将测试活动从开发流程完全独立出来,使测试流程形成一个完全独立的流程,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。

五、软件测试的分类

1、按测试的阶段分

单元测试、集成测试、系统测试

1.1单元测试

完成对最小的软件设计单元模块的验证工作。对代码风格和规则、程序设计和结构、业务逻辑等进行静态测试。开发人员自己执行。也就是自己写完代码要跑跑看。

1.2集成测试

通过测试的单元组装成子系统,然后再进行的测试,主要测试内容是接口。

集成测试大部分是接口测试和交互测试。

1.3系统测试

指的是将整个软件系统看为一个整体进行测试,包括对功能、性能、以及软件所运行的软硬件环境进行测试。包括以下方向:

功能测试: 对产品的各功能进行验证,以检查是否满足需求的要求。 

性能测试:通过自动化测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。 

安全测试:检查系统对非法入侵的防范能力。 

兼容测试: 测试系统在不同的软硬件环境下是否能够正常的运行。

2、按代码可见度分

黑盒测试、白盒测试、灰盒测试

2.1黑盒测试

又称功能测试或数据驱动测试,是针对软件的功能需求/实现进行测试,通过测试来检测每个功能是否符合需求,不考虑程序内部的逻辑结构。

黑盒测试又可以细分功能测试、性能测试

2.2白盒测试

白盒测试也称结构测试或逻辑驱动测试,必须知道软件内部工作过程,通过测试来检测软件内部是否按照需求、设计正常运行

白盒测试方法:逻辑覆盖(语句覆盖、分支覆盖、条件覆盖、判定-条件覆盖、条件组合覆盖)、循环覆盖(简单循环、嵌套循环、串接循环)。

2.3灰盒测试

灰盒测试介于黑盒测试与白盒测试之间。

3、其他测试分类

回归测试 冒烟测试 、随机测试、验收测试

3.1 回归测试

对软件进行修改之后进行的测试,目的是检验对软件进行的修改是否正确。一是所做的修改达到了预定的目的,也就是确认测试,二是还要保证不影响软件的其他功能的正确性。

3.2 冒烟测试

在软件中,“冒烟测试”是指测试版本的主要功能,如果能通过测试,才继续进行接下来的其它全功能测试。

对一个新版本进行大规模测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。目的是确认软件基本功能正常,可以进行后续的正式测试工作。

3.3 随机测试

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试一起进行。

3.4 验收测试

(1)内测版(alpha)内部交流版本,可能存在很多bug,不建议用户安装。

(2)公测版(beta)面向所有用户,通过用户的反馈再去修改细节。

(3)候选版(gamma)与正式软件相差无几。

 

六、软件测试的流程

1.需求分析

2.设计用例

3.评审用例

4.配置环境

5.执行用例

6.回归测试、BUG追踪管理

7.输出测试报告

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!