测试流程与各种测试介绍.ppt
《测试流程与各种测试介绍.ppt》由会员分享,可在线阅读,更多相关《测试流程与各种测试介绍.ppt(58页珍藏版)》请在三一办公上搜索。
1、1、软件测试过程,软件测试的过程流程,软件测试过程(续),单元测试:针对每个单元的测试,以确保每个模块能正常工作为目标。集成测试:对已测试过的模块进行组装,进行集成测试。目的在于检验与软件设计相关的程序结构问题。确认(有效性)测试:是检验所开发的软件能否满足所有功能和性能需求的最后手段。系统测试:检验软件产品能否与系统的其他部分(比如,硬件、数据库及操作人员)协调工作。验收(用户)测试:检验软件产品质量的最后一道工序。主要突出用户的作用,同时软件开发人员也应有一定程度的参与。,一个实用软件测试过程,一种简单实用的软件测试过程模型 POCERM。测试过程中必需的基本测试活动及其产生的结果:拟定软
2、件测试计划(Plans)编制软件测试大纲(Outlines)设计和生成测试用例(test Case generation)实施测试(Execution)生成软件测试报告(software testing Reports)软件问题报告SPR(Software Problem Report)测试结果报告(test result Reports),一个实用软件测试过程(续),基本特性:(1)计划性:任务 人员 设备 时间 相关.(2)平行性:开发 编码|测试 再测试(3)完整性:计划+大纲+用例+软件问题报告单+.(4)重用性:测试 再测试 回归测试 升级 多平台(5)可重复性:软件问题报告单 用例
3、 大纲 再现Bugs(6)周期性:test cycles,regression,update(7)可管理性:well structured and organized QE group+well planned and prepared task,测试阶段,测试过程的三个主要的测试活动(计划、准备和实施)可被分成五个阶段:The planning and control phase计划和控制阶段The preparation phase准备阶段The specification phase规范阶段The execution phase实施执行阶段The completion phase完成(收
4、尾)阶段,测试的五个阶段,计划与控制阶段,它是整个测试过程中最重要的阶段,为实现可管理且高质量的测试过程提供基础。本阶段的主要工作内容:(1)拟定测试计划(2)论证那些使开发过程难于管理和控制的因素(3)明确软件产品的最重要部分(风险评估),准备阶段,开始本阶段的前提条件:完成测试计划的拟定。需求规格说明书(第一版)的确定。本阶段的主要工作内容:对需求规格说明书的仔细研究。将要测试的产品分解成可独立测试的单元。为每个测试单元确定采用的测试技术。为测试的下一个阶段及其活动制定计划。,规范阶段,本阶段的主要工作内容:编写测试大纲/测试用例,测试脚本搭建测试环境(测试数据库,软件环境,硬件环境)测试
5、用例描述的内容:一组输入执行条件预期输出,实施执行阶段,根据测试大纲/测试用例/测试脚本进行测试(1)根据测试大纲/测试用例进行测试,找出预期的测试 结果和实际测试结果之间的差异(2)填写软件问题报告(3)确定造成这些差异的原因:产品有缺陷?规格说明书有缺陷?测试环境有缺陷?测试用例设计不合理?测试报告与管理层进行沟通的方式 已测试部分占产品多大的百分比?还有什么工作要做?找到了多少个问题或不足?测试的发展趋势如何?测试可以结束了吗?,完成阶段,本阶段的主要工作内容:选择和保留测试大纲、测试用例、测试结果、测试工具。提交最终报告。收尾工作的意义和重要性:产品如果升级或功能变更,或维护,只要对保
6、留下来的 相关测试数只要作相应调整,就能够进行新的测试。,2、单元测试,2.1 单元测试的主要任务2.2 单元测试的执行过程,2.3.1 单元测试的主要任务,单元测试针对每个程序的模块,主要测试5个方面的问题:模块接口、局部数据结构、边界条件、独立的路径和错误处理。,单元测试的主要任务(续),模块接口这是对模块接口进行的测试,检查进出程序单元的数据流是否正确。模块接口测试必须在任何其它测试之前进行。模块接口测试至少需要如下的测试项目:(1)调用所测模块时的输入参数与模块的形式参数在个数、属性、顺序上是否匹配;(2)所测模块调用子模块时,它输入给子模块的参数与子模块中的形式参数在个数、属性、顺序
7、上是否匹配;(3)是否修改了只做输入用的形式参数;(4)调用标准函数的参数在个数、属性、顺序上是否正确;(5)全局变量的定义在各模块中是否一致。,单元测试的主要任务(续),局部数据结构在模块工作过程中,必须测试模块内部的数据能否保持完整性,包括内部数据的内容、形式及相互关系不发生错误。对于局部数据结构,应该在单元测试中注意发现以下几类错误:(1)不正确的或不一致的类型说明。(2)错误的初始化或默认值。(3)错误的变量名,如拼写错误或书写错误。(4)下溢、上溢或者地址错误。,单元测试的主要任务(续),路径测试在单元测试中,最主要的测试是针对路径的测试。测试用例必须能够发现由于计算错误、不正确的判
8、定或不正常的控制流而产生的错误。常见的错误有:误解的或不正确的算术优先级;混合模式的运算;错误的初始化;精确度不够精确;表达式的不正确符号表示。针对判定和条件覆盖,测试用例还要能够发现如下错误:不同数据类型的比较;不正确的逻辑操作或优先级;应当相等的地方由于精确度的错误而不能相等;不正确的或不存在的循环终止;当遇到分支循环时不能退出;不适当地修改循环变量。,单元测试的主要任务(续),边界条件边界测试是单元测试的最后一步,必须采用边界值分析方法来设计测试用例,认真仔细地测试为限制数据处理而设置的边界处,看模块是否能够正常工作。一些可能与边界有关的数据类型如数值、字符、位置、数量、尺寸等,还要注意
9、这些边界的首个、最后一个、最大值、最小值、最长、最短、最高、最低等特征。在边界条件测试中,应设计测试用例检查以下情况:(1)在n次循环的第0次、1次、n次是否有错误。(2)运算或判断中取最大值、最小值时是否有错误。(3)数据流、控制流中刚好等于、大于、小于确定的比较值是否出现错误。,单元测试的主要任务(续),出错处理测试出错处理的重点是模块在工作中发生了错误,其中的出错处理设施是否有效。检验程序中的出错处理可能面对的情况有:(1)对运行发生的错误描述难以理解。(2)所报告的错误与实际遇到的错误不一致。(3)出错后,在错误处理之前就引起系统的干预。(4)例外条件的处理不正确。(5)提供的错误信息
10、不足,以至于无法找到错误的原因。,2.3.2 单元测试的执行过程,何时进行单元测试?单元测试常常是和代码编写工作同时进行的,在完成了程序编写、复查和语法正确性验证后,就应进行单元测试用例设计。在单元测试时,如果模块不是独立的程序,需要设置一些辅助测试模块。辅助测试模块有两种:(1)驱动模块(Drive)用来模拟被测试模块的上一级模块,相当于被测模块的主程序。它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。(2)桩模块(Stub)用来模拟被测模块工作过程中所调用的模块。它们一般只进行很少的数据处理。驱动模块和桩模块都是额外的开销,虽然在单元测试中必须编写,但并不需要作为最
11、终的产品提供给用户。,单元测试的执行过程(续),被测模块、驱动模块和桩模块共同构成了一个如下图所示的单元测试的测试环境:,3、集成测试,3.1 非增量式测试3.2 增量式测试3.3 不同集成测试方法的比较3.4 回归测试,3.1 非增量式测试,非增量式测试是采用一步到位的方法来构造测试:对所有模块进行个别的单元测试后,按照程序结构图将各模块连接起来,把连接后的程序当作一个整体进行测试。实例 采用非增量式测试方法进行集成测试非增量式测试的缺点:当一次集成的模块较多时,非增量式测试容易出现混乱,因为测试时可能发现了许多故障,为每一个故障定位和纠正非常困难,并且在修正一个故障的同时,可能又引入了新的
12、故障,新旧故障混杂,很难判定出错的具体原因和位置。,非增量式测试(续),(1)程序结构图,(3)集成测试示意图,(2)单元测试示意图,3.2 增量式测试,增量式测试的集成是逐步实现的:逐次将未曾集成测试的模块和已经集成测试的模块(或子系统)结合成程序包,再将这些模块集成为较大系统,在集成的过程中边连接边测试,以发现连接过程中产生的问题。按照不同的实施次序,增量式集成测试又可以分为三种不同的方法:(1)自顶向下增量式测试(2)自底向上增量式测试(3)混合增量式测试,自顶向下增量式测试,自顶向下增量式测试表示逐步集成和逐步测试是按照结构图自上而下进行的,即模块集成的顺序是首先集成主控模块(主程序)
13、,然后依照控制层次结构向下进行集成。从属于主控模块的按深度优先方式(纵向)或者广度优先方式(横向)集成到结构中去。深度优先方式的集成:首先集成在结构中的一个主控路径下的所有模块,主控路径的选择是任意的。广度优先方式的集成:首先沿着水平方向,把每一层中所有直接隶属于上一层的模块集成起来,直到底层。,自顶向下增量式测试(续),集成测试的整个过程由3个步骤完成:(1)主控模块作为测试驱动器。(2)根据集成的方式(深度或广度),下层的桩模块一次一次地被替换为真正的模块。(3)在每个模块被集成时,都必须进行单元测试。重复第2步,直到整个系统被测试完成。实例 按照广度优先方式进行集成测试 实例 按照深度优
14、先方式进行集成测试,自顶向下增量式测试(续),(1),(2),(3),广度优先方式,自顶向下增量式测试(续),(1),(2),(3),深度优先方式,(4),自底向上增量式测试,自底向上增量式测试表示逐步集成和逐步测试的工作是按结构图自下而上进行的,即从程序模块结构的最底层模块开始集成和测试。由于是从最底层开始集成,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要使用桩模块进行辅助测试。在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。实例 采用自底向上增量式测试方法进行集成测试,自底向上增量式测试(续),混合增量式测试,混合增量式测试
15、是把自顶向下测试和自底向上测试这两种方式结合起来进行集成和测试。这样可以兼具两者的优点,而摒弃其缺点。常见的两种混合增量式测试方式:(1)衍变的自顶向下的增量式测试:基本思想是首先对输入/输出模块和引入新算法模块等关键模块采用自底向上集成为功能相对完整且相对独立的子系统,然后由主模块开始自顶向下进行增量式测试。(2)自底向上-自顶向下的增量式测试:首先对含读操作的子系统自底向上直至根节点模块进行集成和测试,然后对含写操作的子系统做自顶向下的集成与测试。,3.3 不同集成测试方法的比较,1、非增量式测试与增量式测试的比较非增量式测试的方法是先分散测试,然后集中起来再一次完成集成测试。假如在模块的
16、接口处存在错误,只会在最后的集成测试时一下子暴露出来。增量式测试是逐步集成和逐步测试的方法,把可能出现的差错分散暴露出来,便于找出问题和修改。而且一些模块在逐步集成的测试中,得到了较多次的考验,因此,可能会取得较好的测试效果。结论:增量式测试要比非增量式测试具有一定的优越性。,不同集成测试方法的比较(续),2、自顶向下与自底向上增量式测试的比较自顶向下增量式测试:主要优点在于它可以自然的做到逐步求精,一开始就能让测试者看到系统的框架。主要缺点是需要提供桩模块,并且在输入/输出模块接入系统以前,在桩模块中表示测试数据有一定困难。自底向上增量式测试:优点在于,由于驱动模块模拟了所有调用参数,即使数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 测试 流程 各种 介绍
链接地址:https://www.31ppt.com/p-6126476.html