软件测试实用教程 教学课件 ppt 作者 周元哲 第三章 软件测试流程

上传人:E**** 文档编号:89448544 上传时间:2019-05-25 格式:PPT 页数:71 大小:750.50KB
返回 下载 相关 举报
软件测试实用教程 教学课件 ppt 作者  周元哲 第三章  软件测试流程_第1页
第1页 / 共71页
软件测试实用教程 教学课件 ppt 作者  周元哲 第三章  软件测试流程_第2页
第2页 / 共71页
软件测试实用教程 教学课件 ppt 作者  周元哲 第三章  软件测试流程_第3页
第3页 / 共71页
软件测试实用教程 教学课件 ppt 作者  周元哲 第三章  软件测试流程_第4页
第4页 / 共71页
软件测试实用教程 教学课件 ppt 作者  周元哲 第三章  软件测试流程_第5页
第5页 / 共71页
点击查看更多>>
资源描述

《软件测试实用教程 教学课件 ppt 作者 周元哲 第三章 软件测试流程》由会员分享,可在线阅读,更多相关《软件测试实用教程 教学课件 ppt 作者 周元哲 第三章 软件测试流程(71页珍藏版)》请在金锄头文库上搜索。

1、第三章 软件测试流程,概述 测试计划 测试设计 单元测试 集成测试 确认测试 系统测试 验收测试 评估测试,测试流程概述,测试计划 根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,使得随后所有的测试工作都将围绕着测试需求来进行。同时,适当选择测试内容,合理安排测试人员、测试时间及测试资源等。 测试设计 测试设计是指将测试计划阶段制订的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例,保证测试结果的有效性。 测试执行 执行测试开发阶段建立的自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、组合测试、集成测试以及回归测试

2、等步骤组成。 测试评估 结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量和开发团队的工作进度及工作效率进行综合评价。,测试计划,测试计划的依据主要是项目开发计划和测试需求分析结果而制定。测试计划一般包括测试背景、测试依据、测试资源、测试策略和测试日程等内容。,测试设计,根据测试计划设计测试方案,测试设计过程输出的是各测试阶段使用的测试用例,为每一个测试需求确定测试用例集,并且确定执行测试用例的测试过程。根据软件测试计划、软件需求、软件构架设计、软件详细设计等文档内容,设计测试用例具体如下: 对每一个测试需求,确定其需要的测试用例。 对每一个测试用例,确定其输入及预期结果。 确定测试用例的

3、测试环境配置、需要的驱动程序。 编写测试用例文档 对测试用例进行同行评审,测试执行与评估,测试人员需要搭建测试环境,应尽可能的模拟被测系统的实际应用工作所必需的软件、硬件系统、网络设备、历史数据和支持条件等,测试执行过程又分为以下测试阶段:单元测试、集成测试、确认测试、验收测试等。,软件开发是一个自顶向下,逐步细化的过程。 软件测试则是依相反顺序的自底向上,逐步集成的过程。低一级的测试为上一级的测试准备条件。,测试执行阶段,单元测试,单元测试是在软件开发过程中进行的最低级别的测试活动,其测试的对象是软件设计的最小单位。例如: 传统的结构化编程语言中,比如C语言,单元测试的对象一般是函数或子过程

4、。 在像C+这样的面向对象的语言中,单元测试的对象可以是类,或类的成员函数。 对Ada语言,单元测试可以在独立的过程和函数上进行,也可以在Ada包的级别上进行。 单元测试的原则同样也可以扩展到第四代语言(4GL)中,这时单元被典型地定义为一个菜单或显示界面。,单元测试又称为模块测试,什么是模块?并没有严格的定义,不过按照一般的理解,模块应该具有以下的一些基本属性: 名字; 明确规定的功能; 内部使用的数据,或称局部数据; 与其它模块或外界的数据联系; 实现其特定功能的算法; 可被其上层模块调用,也可调用其下属模块进行协同工作。,单元测试的任务,模块接口测试对被测模块,检测数据能否正确无误地进入

5、和流出模块; 模块局部数据结构测试检测模块在工作过程中,其内部数据能否保持其完整性,包括内部数据的内容、形式以及相互之间关系; 模块边界条件测试检测在数据边界处,模块能否正常工作; 覆盖测试检测模块运行能否满足特定的逻辑覆盖; 出错处理检测检测模块出错处理是否有效。,由于每个模块在整个软件中并不是孤立的,在对 每个模块进行单元测试时,需要考虑它和周围模块的 相互联系。为模拟这一联系,在进行单元测试时,必 须设置若干个辅助测试模块。这些辅助模块分为两种: 驱动模块(driver): 用以模拟被测模块上级模块, 相当于被测模块的主程序。 桩模块(stub): 用以模拟被测模块的下级模块, 相当于被

6、测模块调用的子模块。,被测模块与其相关的驱动模块和桩模块共同构成了一个“测试环境”。,集成测试,1999年9月,火星气象人造卫星在经过41周416亿英里的成功飞行之后,在就要进入火星轨道时失败了。美国投资5万美元调查事故原因,发现:太空科学家使用的是英制(磅)加速度数据,而喷气推进实验室采用公制(牛顿)加速度数据进行计算。 在每个模块完成单元测试之后,需要着重考虑一个问题:通过什么方式将模块组合起来进行集成测试,这将影响模块测试用例的设计、所用测试工具的类型、模块编码的次序、测试的次序以及设计测试用例的费用和纠错的费用等。可见,这是一个相当重要的问题。,一些模块单独能够工作,并不能保证连接起来

7、也能正常工作。 程序在某些局部反映不出的问题,在全局上很可能暴露出来,影响功能的发挥。 可能的原因有: 模块相互调用时引入了新的问题; 几个子功能组合起来不能实现主功能; 误差不断积累达到不可接受的程度; 全局数据结构出现错误等。,集成测试,独立地测试程序的每个模块,然后再把它们组合成整个程序的集成测试方法。,把下一个待测试的模块组合到已经测试过的那些模块上去,再进行测试。,从主控模块开始,按照软件的控制层次结构,逐步把各个模块集成在一起。,从最下层的模块开始,按照程序的层次结构,逐渐形成完整的整体。,非增式集成测试法:独立地测试该程序的每个模块,然后再把它们组合成整个程序的方法。 增式集成测

8、试法:把下一个待测试的模块组合到已经测试过的那些模块上去,再进行测试的方法。,增式测试与非增式测试,测试每一个模块都需要一个专门的驱动模块和一个 或多个桩模块。 驱动模块用以模拟被测模块的上级模块,用来驱动 或传送测试用例给被测模块,还须向测试者显示执 行被模块所产生的结果。 桩模块由被测模块调用,以便检验被测模块与其下 级模块之间的接口。,非增式集成测试,在进行单元测试时,对模块M2和M4配备了驱动模块和桩模块,对模块M3,M5,M6和M7只配备了驱动模块,对主模块M1配备了3个桩模块,以模拟被它调用的3个模块M2、M3和M4。 分别进行单元测试以后,再联接起来,进行集成测试。,增式集成测试

9、是另一种集成测试方法,它不是孤立地测试每一个模块,而是一开始就把待测试的模块与已测试过的模块联接起来。 增式集成测试的过程,就是不断地把待测试的模块联接到已测试过的模块集(或其子集)上,对待测试模块进行测试,直到最后一个模块测试完毕。,增式集成测试,增量测试方法的种类很多,比 如从程序底部开始(自底向 上)测试。 先由4个人并行或顺序地测试模 块M3,M5,M6和M7。这时, 需为每个模块准备一个驱动模 块,但不需要准备桩模块。然 后测试模块M2和M4,它们不是 孤立地测试,而是把M2联在模 块M5和M6上,模块M4联在模块 M7上,也就是如果要测试模块 M2,先要设计一个驱动模块, 再对模块

10、对M2M5,M2M6 进行测试。,非增式集成测试方法工作量大。 增式集成测试中,能够较早地检查出模块之间接口的错误。 增式集成测试,查找故障比较容易。 增式集成测试可以更彻底地对程序进行测试。 非增式集成测试方法需要的机器时间较少。 采用非增式集成测试,所有模块可以同时进行并行测试。,非增式与增式的比较,增式集成是构造程序结构的一种方式,按照不同的模块集成方式,又分为自顶向下增式测试和自底向上增式测试两种。 自顶向下集成从主控模块开始,按照软件的控制层次结构,逐步把各个模块集成在一起。 自底向上集成则从最下层的模块开始,按照程序的层次结构,逐渐形成完整的整体。,自顶向下与自底向上,原则:下一次

11、要测试的模块,至少有一个调用它的模块已经测试过。 自顶向下增式测试的具体步骤为: 1)对主控模块进行测试,然后以主控模块作为测试驱动模块,把对主控模块进行单元测试时引入的所有桩模块逐渐用实际模块替代; 2)依据所选的集成策略,每次只替代一个桩模块; 3)每集成一个模块立即测试一遍; 4)只有每组测试完成后,才着手替换下一个桩模块; 5)为避免引入新故障,需不断地进行回归测试(即全部或部分地重复已做过的测试)。 从第二步开始,循环执行上述步骤,直至整个程序结构构造完毕。,自顶向下增式集成测试,先测试模块M1。要测试模块M1,必须先编写出表示模块M2、M3和M4的各个桩模块s1,s2和s3,以模拟

12、被M1调用的模块。测试完M1后,将由下一个要测试的模块来代替其中一个桩模块,并加入这个模块所需要的桩模块。,自顶向下集成测试,测试了主模块之后,有几种可能的测试顺序: M1,M2,M3,M4,M5,M6,M7,M8,M9,M10,M11,M12 M1,M2,M5,M6,M10,M3,M7,M11,M4,M8,M12,M9 M1,M4,M8,M9,M11,M12,M3,M7,M2,M6,M10,M5 M1,M2,M6,M10,M4,M9,M5,M3,M7,M11,M8,M12,下面两点是应该考虑的: 1)如果程序中有关键性的部分,设计次序就应该尽早地把这些模块加入进程序。所谓“关键部分”可能是一

13、个复杂的模块,一个具有新算法的模块,或怀疑容易出错的模块。 2)设计次序时,要让输入/输出模块尽早地加入测试。,如果模块M10,和M9是输入输出模块并且M7执行一些关键性的功能,那么增量顺序最好是: M1,M2,M6,M10,M4,M9,M3,M7,M5,M11,M8,M12 并且第6次增量测试后的程序形式,自顶向下测试可以自然地做到逐步求精,让测试人 员看到系统的雏型,有助于对程序的主要控制和决策 模块进行检验,增强测试人员的信心。 不足之处在于:测试较高层模块时,由于低层处理 用桩模块替代,不能反映真实情况,重要数据不能及 时回送到上层模块,观察和解释测试输出往往比较困 难的。 为了解决这

14、个问题,可以采用几种办法: 把某些模块测试推迟到用真实模块替代桩模块之后进行; 开发出能模拟真实模块的桩模块; 采用自底向上集成测试方法。,2. 自底向上增式集成测试 自底向上增式集成测试是从软件结构的最下层模块开始测试的,测试较高层模块时,所需的下层模块功能都已具备,所以不再需要桩模块。 自底向上增式集成测试的步骤为: 1)把低层模块组织成实现某个子功能的模块群; 2)开发一个测试驱动模块,控制测试数据的输入和测试结果的输出; 3)对每个模块群进行测试; 4)删除测试使用的驱动模块,用较高层模块把模块群组织成为完成更大功能的新模块群。 从第一步开始循环执行上述各步骤,直至整个程序构造完毕。,

15、自底向上集成测试,第一步顺序地或并行地测试M5,M7, M9,M10, M11和M12中的部分模块或全部模块。 每一模块都需要专门的驱动模块:这个驱动模块可以接受测试输入,可以调用正在测试的模块,并且可以显示结果或将实际输出与期望输出进行比较。,影响测试顺序的因素是模块的关键性质。如果可以确定模块M4和M6是关键的,那么自底向上增式测试的中间状态可能如图所示。,优点:自底向上测试方法不需要桩模块,测试用例的设计亦相对比较简单,也不存在还没把前面的模块完全测试却又开始测试另一模块的问题。如果关键的模块是在结构图的底部,自底向上测试具有一定的优越性。 缺点:在测试初期不能呈现出被测软件系统的轮廓。

16、实际上,直到最后一个模块(模块M1)加入时才具有整体形象,才能形成完整的程序。,自顶向下集成测试与自底向上集成测试比较,系统测试,系统测试实际上是针对系统中各个组成部进行的综合性检验,很接近我们的日常测试实践。 系统测试的目标不是要找出软件故障,而是要证明系统的性能 系统开发人员不能进行系统测试。 系统开发组织不能负责系统测试。 系统测试最好由独立的测试机构完成。,验收测试,验收测试是将最终产品与最终用户的当前需求进行比较的过程,是软件开发结束后,软件产品向用户交付之前进行的最后一次质量检验活动,回答开发的软件产品是否符合预期的各项要求,用户是否接受等问题。 验收测试不只检验软件某方面的质量,还要进行全面的质量检验并决定软件是否合格。因此验收测试是一项严格的正规的测试活动,并且应该在生产环境中而不是开发环境中进行。,验收测试的主要任务包括:, 明确规定验收测试通过的标准; 确定验收测试方法; 确定验收测试的组织和可利用的资源;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号