- 相关推荐
软件测试中综合测试的基本方法
软件测试在软件开发的时候是很重要的,那么作为一个软件测试人员,你应该会发现,有些程序单个模块利用运行,但是一起运行的时候却运行失败,这个时候就要通过综合测试来测试软件,以下是小编整理的软件测试中综合测试的基本方法,希望对大家有所帮助。
某设计人员总是习惯于将所有模块按照既定设计需求进行组装,之后对其进行整体测试,该种现象称之为非增量式集成。
但是借助该种方式极其容易出现混乱现象。
由于在实际测试过程中可能会发现大量错误,而对于每一个错误的定位和纠正都极为困难,此外在错误纠正过程中往往会产生新的错误,新旧错误的混杂和交替,使得错误的位置和根源判断变得更加艰难。
相反,采取增量式集成方式,程序将会逐渐的进行拓展,随着测试范围的缓慢增加,错误的定位和纠正将会变的更加容易,对于截面的测试也将会变的更加彻底。
在下面将对两种增量式集成方式进行充分讨论。
1、自顶向下集成
自顶向下集成是构造程序结构的一种增量式方式,它从主控模块开始,按照软件的控制层次结构,以深度优先或广度优先的策略,逐步把各个模块集成在一起。
深度优先策略首先是把主控制路径上的模块集成在一起,至于选择哪一条路径作为主控制路径,这多少带有随意性,一般根据问题的特性确定。
自顶向下综合测试的具体步骤为:
1)以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块用实际模块替代;
2)依据所选的集成策略(深度优先或广度优先),每次只替代一个桩模块;
3)每集成一个模块立即测试一遍;
4)只有每组测试完成后,才着手替换下一个桩模块;
5)为避免引入新错误,须不断地进行回归测试(即全部或部分地重复已做过的测试)。
从第二步开始,循环执行上述步骤,直至整个程序结构构造完毕。
对于该种问题的解决主要通过以下几种方式开展:一是将部分测试推迟,从而使用真实模块代替桩模块;二是开发能够模拟真实模块的桩模块;三是采取自下而上的集成模块。
采取第一种方式将会回到非增量式的集成方式,使得错误的定位和纠正变得艰难,更会失去在组装模块过程中进行特定测试的可能性;而第二种方式则会使得开销大大增加。
综合分析发现第三种方式具有可行性,因此在下面进行充分讨论。
2、自底向上集成
自底向上测试是从“原子”模块(即软件结构最低层的模块)开始组装测试,因测试到较高层模块时,所需的下层模块功能均已具备,所以不再需要桩模块。
自底向上综合测试的步骤分为:
1)把低层模块组织成实现某个子功能的模块群(cluster);
2)开发一个测试驱动模块,控制测试数据的输入和测试结果的输出;
3)对每个模块群进行测试;
4)删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。
从第一步开始循环执行上述各步骤,直至整个程序构造完毕。
基于此,在软件测试过程中,应当充分考虑软件自身的特点和工程进度,并选择适当的测试方式以保证测试的基本质量。
另外,在综合测试过程中必须注意关键模块的测试,其中关键模块具有以下几种特征:一是对应的需求数量;二是具有的高层控制功能;三是复杂容易出现错误;四是存在的部分特殊性能要求,对于部分关键模块应当尽早进行测试,并对其进行反复的回归测试。
软件测试的方法
1、从是否关心内部结构来看
(1)白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
(2)黑盒测试:又称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
(3)灰盒测试:是一种综合测试法,它将“黑盒”测试与“白盒”测试结合在一起,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。
2、从是否执行代码看
(1)静态测试:指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。
(2)动态测试:是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能指标。
3、从开发过程级别看
(1)单元测试:又称模块测试,是针对软件设计的最小单位----程序模块或功能模块,进行正确性检验的测试工作。其目的在于检验程序各模块是否存在各种差错,是否能正确地实现了其功能,满足其性能和接口要求。
(2)集成测试:又叫组装测试或联合,是单元测试的多级扩展,是在单元测试的基础上进行的一种有序测试。旨在检验软件单元之间的接口关系,以期望通过测试发现各软件单元接口之间存在的问题,最终把经过测试的单元组成符合设计要求的软件。
(3)系统测试:是为判断系统是否符合要求而对集成的软、硬件系统进行的测试活动、它是将已经集成好的软件系统,作为基于整个计算机系统的一个元素,与计算机硬件、外设、某些支持软件、人员、数据等其他系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。
4、从执行过程是否需要人工干预来看
(1)手工测试:就是测试人员按照事先为覆盖被测软件需求而编写的测试用例,根据测试大纲中所描述的测试步骤和方法,手工地一个一个地输 入执行,包括与被测软件进行交互(如输入测试数据、记录测试结果等),然后观察测试结果,看被测程序是否存在问题,或在执行过程中是否会有一场发生,属于比较原始但是必须执行的一个步骤。
(2)自动化测试:实际上是将大量的重复性的测试工作交给计算机去完成,通常是使用自动化测试工具来模拟手动测试步骤,执行用某种程序设计语言编写的过程(全自动测试就是指在自动测试过程中,不需要人工干预,由程序自动完成测试的全过程;半自动测试就是指在自动测试过程中,需要手动输入测试用例或选择测试路径,再由自动测试程序按照人工指定的要求完成自动测试)
5、从测试实施组织看
(1)开发测试:开发人员进行的测试
(2)用户测试:用户方进行的测试
(3)第三方测试:有别于开发人员或用户进行的测试,由专业的第三方承担的测试,目的是为了保证测试工作的客观性
6、从测试所处的环境看
(1)阿尔法测试:是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试
(2)贝塔测试:是用户公司组织各方面的典型终端用户在日常工作中实际使用贝塔版本,并要求用户报告
7、其他测试类型
(1)回归测试(regression testing)是指对软件的新的版本测试时,重复执行上一个版本测试时的用例。
(2)冒烟测试(smoke testing),是指在对一个新版本进行大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。
(3)随机测试(random testing),是指测试中所有的输入数据都是随机生成的,其目的是模拟用户的真实操作,并发现一些边缘性的错误。
【软件测试中综合测试的基本方法】相关文章:
软件测试实习报告11-25
软件测试的实习报告05-19
软件测试学习总结11-23
软件测试个人总结07-22
软件测试合同09-20
软件测试述职报告12-20
软件测试合同09-30
软件测试述职报告01-30
诗歌鉴赏基本方法08-09