软件测试基础补充

发布时间 2023-04-10 23:59:37作者: 槲寄生one

1:组件测试:也叫单元测试
组件测试在实际的测试过程中所对应的阶段是我们的单元测试阶段,组件测试是最低层的一个级别的测试。

单元测试的目的

  • 验证代码是与设计相符合的
  • 发现设计和需求中存在的错误
  • 发现在编码过程中引入的错误

单元测试的维度:功能测试和非功能测试
功能方面主要是内部的逻辑结构,验证程序内部逻辑结构是否满足设计要求,当然除此之外还包括内部数据结构、独立路径集等方面的内容。非功能测试主要是其他逻辑设计之外的内容,主要包括代码性能、内存泄漏、代码健壮性、代码可靠性等。

单元测试需要一个环境,也就是如果要测试一个函数或类,它不可能独立运行,它需要存在一定的条件下才能运行,在这个环境中会涉及两个重要的组成部分:粧模块和驱动模块。

粧模块(Stub)是指模拟被测试的模块所调用的模块,而不是软件产品的组成部分。主要模块作为驱动模块,与之直接相连的模块用桩模块代替。

驱动单元(Driver):所测函数的主程序,它接收测试数据,并把数据传送给所测试单元,最后再输出实测结果。

当然如果每测试一个单元模块都需要写这么多桩模块和驱动模块,那么工作效率就会很低,所以现在有很多的一些专业的工具来实现,如Gtest、Junit等。

2:集成测试:灰盒测试
集成测试,也叫组装测试或联合测试。集成测试是在单元测试的基础上,将所有模块按照设计要求(如根据结构图)组装成为子系统或系统,进行集成测试。
集成测试(也叫组装测试、联合测试)是单元测试的逻辑扩展。它最简单的形式是,把两个已经测试过的单元组合成一个组件,测试这些组件之间接口数据传递是否有问题。
在测试过程中,集成测试的层次包括两种:一是系统内部集成;二是系统间的集成。
系统内部集成是指在整个系统内部功能模块与功能模块集成,一个系统可能由很多不同的功能模块组成,对于这种在一个系统内部将功能与功能进行集成的测试称为系统内的集成。
另一类集成是系统间的集成,系统间的集成是指两个独立的系统之间,通过某种方式进行传递数据。
集成测试的策略有很多种,主要包括自底向上集成测试、自顶向下集成测试、三明治集成测试、核心集成测试、分层集成测试、基于使用的集成测试等。
3:系统测试
系统测试(System Testing)是将已经集成好的软件系统,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的测试活动。系统可能包含硬件,但不一定包含硬件,可能就是纯软件。

在系统测试概念中详细地描述了三个维度的内容:系统测试对象、系统测试是一个过程、系统应该有一个流程。

系统测试的对象

系统测试的对象是软硬件集合在一起的系统,不应是独立的软件与硬件环境。当然具体操作、执行时可根据实际情况来组织。也就是说,我们通常说的系统测试不一定只有软件,还可能包含硬件、电源和结构等,手机产品就是典型的这类系统,不仅有软件,还有硬件、电源、结构等。验证时应尽可能模拟实际的运行环境与条件。在测试过程中系统测试应该尽量模拟实际的运行环境,这样可以尽最大可能保证系统上线后不出问题。

系统测试是一个过程

为了验证系统是否满足客户需求,需要一系列的测试活动来保证,即系统测试并不是一个简单的步骤,所以为了让系统测试更全面,就需要对系统测试的活动进行管理。

系统测试应有一个流程

为了更好地管理这些活动,我们制定了一个标准的测试流程,包括五个步骤:计划与控制、分析与设计、实现与执行、评估与报告、结束活动。
在系统测试过程中有一个很重要的环节就是测试设计,这也是我们常说的系统测试方法,系统测试方法即测试用例设计方法,常见的系统测试用例设计方法包括:等价类、边界值、因果图、判定表、正交试验、场景分析法、状态迁移等。
系统测试的类型包括:功能测试、性能测试、兼容性测试、易用性测试、安全性测试等,系统测试可以分为多种类型取决于软件质量模型。
系统测试的目的
(1)通过与系统的需求定义做比较,发现软件与系统定义不符合或与之矛盾的地方。
(2)系统测试的测试用例应根据需求分析说明书来设计,并在实际使用环境下运行。

4:验收测试
验收测试是软件发布之前最后一个测试阶段,是在单元测试、集成测试和系统测试完成之后的一个测试阶段,也称之为交付测试。
验收测试是向最终用户表明系统能够像预定要求那样正确地工作,验收测试的策略通常包括四种:正式验收、非正式验收、Alpha测试和Beta测试
正式验收测试是一项管理严格的过程,它通常是系统测试的延续。计划和设计这些测试的周密和详细程度不亚于系统测试。选择的测试用例应该是系统测试中所执行测试用例的子集。不要偏离所选择的测试用例方向,这一点很重要。在很多组织中,正式验收测试是完全自动执行的。
非正式验收测试执行测试过程的限定不像正式验收测试中那样严格。在此测试中,确定并记录要研究的功能和业务任务,但没有可以遵循的特定测试用例。测试内容由各测试员决定。这种验收测试方法不像正式验收测试那样组织有序,而且更为主观。
Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。Alpha测试的目的是评价软件产品的功能、局域化、可使用性、可靠性、性能和支持等特性是否满足用户要求。
Beta测试是一种验收测试。它与Alpha测试有很多相似之处,都是关注产品功能、性能、可靠性等特性,但与Alpha测试也有一些不同之处,如Beta测试是由最终用户或潜在用户来执行。


软件测试的过程

测试过程是整个测试活动中一个至关重要的环节,对于一家企业来说,如果没有一个很好的测试流程规范,那么测试的质量就很难被控制,标准的测试流程包括五大阶段:计划与控制、分析与设计、实现与执行、评估与报告和结束活动。在实际测试过程中分为测试计划、测试方案、测试用例、测试执行和测试报告五个阶段。
过程决定质量,软件测试过程的重要性我们不用过多地去描述,标准的软件测试流程划分为五大阶段:计划与控制、分析与设计、实现与执行、评估与报告和结束活动