废品利用手工制作衣服:软件测试步骤介绍

来源:百度文库 编辑:偶看新闻 时间:2024/05/03 10:06:08
【 简介 】  测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试... #dldhoption{display:none}  软件测试步骤

  测试过程按4个步骤进行,即单元测试、集成测试、确认测试和系统测试及发版测试。

  开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。

  集成测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。

  确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。

  系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。

  单元测试 (Unit Testing)

  单元测试又称模块测试,是针对软件设计的最小单位 ─ 程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。

  单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

  1. 单元测试的内容

  在单元测试时,测试者需要依据详细设计说明书和源程序清单,了解该模块的I/O条件和模块的逻辑结构,主要采用白盒测试的测试用例,辅之以黑盒测试的测试用例,使之对任何合理的输入和不合理的输入,都能鉴别和响应。

  (1) 模块接口测试

  在单元测试的开始,应对通过被测模块的数据流进行测试。测试项目包括:

  –调用本模块的输入参数是否正确;

  –本模块调用子模块时输入给子模块的参数是否正确;

  –全局量的定义在各模块中是否一致;

  在做内外存交换时要考虑:

  –文件属性是否正确;

  –OPEN与CLOSE语句是否正确;

  –缓冲区容量与记录长度是否匹配;

  –在进行读写操作之前是否打开了文件;

  –在结束文件处理时是否关闭了文件;

  –正文书写/输入错误,

  –I/O错误是否检查并做了处理。

  (2) 局部数据结构测试

  不正确或不一致的数据类型说明

  使用尚未赋值或尚未初始化的变量

  错误的初始值或错误的缺省值

  变量名拼写错或书写错

  不一致的数据类型

  全局数据对模块的影响

  (3) 路径测试

  选择适当的测试用例,对模块中重要的执行路径进行测试。

  应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误。

  对基本执行路径和循环进行测试可以发现大量的路径错误。

  (4) 错误处理测试

  出错的描述是否难以理解

  出错的描述是否能够对错误定位

  显示的错误与实际的错误是否相符

  对错误条件的处理正确与否

  在对错误进行处理之前,错误条件是否已经引起系统的干预等

  (5) 边界测试

  注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。

  如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。

  2. 单元测试的步骤

  模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。

  –驱动模块 (driver)

  –桩模块 (stub) ── 存根模块

  如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。

  对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。

  集成测试(Integrated Testing)

  集成测试 (集成测试、联合测试)

  通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。这时需要考虑的问题是:

  – 在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;

  – 一个模块的功能是否会对另一个模块的功能产生不利的影响;

  – 各个子功能组合起来,能否达到预期要求的父功能;

  – 全局数据结构是否有问题;

  – 单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。

  在单元测试的同时可进行集成测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。

  子系统的集成测试特别称为部件测试,它所做的工作是要找出集成后的子系统与系统需求规格说明之间的不一致。

  通常,把模块集成成为系统的方式有两种

  –一次性集成方式

  –增殖式集成方式  #dldhoption{display:none}   1. 一次性集成方式(big bang)

  它是一种非增殖式组装方式。也叫做整体拼装。

  使用这种方式,首先对每个模块分别进行模块测试,然后再把所有模块组装在一起进行测试,最终得到要求的软件系统。

  2. 增殖式集成方式

  这种集成方式又称渐增式集成

  首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统

  在集成的过程中边连接边测试,以发现连接过程中产生的问题

  通过增殖逐步组装成为要求的软件系统。

  (1) 自顶向下的增殖方式

  这种集成方式将模块按系统程序结构,沿控制层次自顶向下进行组装。

  自顶向下的增殖方式在测试过程中较早地验证了主要的控制和判断点。

  选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能。

  (2) 自底向上的增殖方式

  这种集成的方式是从程序模块结构的最底层的模块开始集成和测试。

  因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。

  自顶向下增殖的方式和自底向上增殖的方式各有优缺点。

  一般来讲,一种方式的优点是另一种方式的缺点。

  (3) 混合增殖式测试

  衍变的自顶向下的增殖测试

  –首先对输入/输出模块和引入新算法模块进行测试;

  –再自底向上组装成为功能相当完整且相对独立的子系统;

  –然后由主模块开始自顶向下进行增殖测试。

  自底向上-自顶向下的增殖测试

  –首先对含读操作的子系统自底向上直至根结点模块进行组装和测试;

  –然后对含写操作的子系统做自顶向下的组装与测试。

  回归测试

  –这种方式采取自顶向下的方式测试被修改的模块及其子模块;

  –然后将这一部分视为子系统,再自底向上测试。

  关键模块问题

  在组装测试时,应当确定关键模块,对这些关键模块及早进行测试。

  关键模块的特征:

  ① 满足某些软件需求;

  ② 在程序的模块结构中位于较高的层次(高层控制模块);

  ③ 较复杂、较易发生错误;

  ④ 有明确定义的性能要求。

  确认测试(Validation Testing)

  确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。

  对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。

  1. 进行有效性测试(黑盒测试)

  有效性测试是在模拟的环境 (可能就是开发的环境) 下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。

  首先制定测试计划,规定要做测试的种类。还需要制定一组测试步骤,描述具体的测试用例。

  通过实施预定的测试计划和测试步骤,确定

  –软件的特性是否与需求相符;

  –所有的文档都是正确且便于使用;

  –同时,对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试

  在全部软件测试的测试用例运行完后,所有的测试结果可以分为两类:

  –测试结果与预期的结果相符。这说明软件的这部分功能或性能特征与需求规格说明书相符合,从而这部分程序被接受。
 
配置测试

  这类测试是要检查计算机系统内各个设备或各种资源之间的相互联结和功能分配中的错误。

  它主要包括以下几种:

  –配置命令测试:验证全部配置命令的可操作性(有效性);特别对最大配置和最小配置要进行测试。软件配置和硬件配置都要测试。

  -循环配置测试:证明对每个设备物理与逻辑的,逻辑与功能的每次循环置换配置都能正常工作。

  –修复测试:检查每种配置状态及哪个设备是坏的。并用自动的或手工的方式进行配置状态间的转换。

  安全性测试

  安全性测试是要检验在系统中已经存在的系统安全性、保密性措施是否发挥作用,有无漏洞。

  力图破坏系统的保护机构以进入系统的主要方法有以下几种:

  -正面攻击或从侧面、背面攻击系统中易受损坏的那些部分;

  -以系统输入为突破口,利用输入的容错性进行正面攻击;

  –申请和占用过多的资源压垮系统,以破坏安全措施,从而进入系统;

  –故意使系统出错,利用系统恢复的过程,窃取用户口令及其它有用的信息;

  –通过浏览残留在计算机各种资源中的垃圾(无用信息),以获取如口令,安全码,译码关键字等信息;

  –浏览全局数据,期望从中找到进入系统的关键字;

  –浏览那些逻辑上不存在,但物理上还存在的各种记录和资料等。

  可使用性测试

  可使用性测试主要从使用的合理性和方便性等角度对软件系统进行检查,发现人为因素或使用上的问题。

  要保证在足够详细的程度下,用户界面便于使用;对输入量可容错、响应时间和响应方式合理可行、输出信息有意义、正确并前后一致;出错信息能够引导用户去解决问题;软件文档全面、正规、确切。

  安装测试

  安装测试的目的不是找软件错误,而是找安装错误。

  在安装软件系统时,会有多种选择。

  –要分配和装入文件与程序库

  –布置适用的硬件配置

  –进行程序的联结。

  而安装测试就是要找出在这些安装过程中出现的错误。

  安装测试是在系统安装之后进行测试。它要检验:

  –用户选择的一套任选方案是否相容;

  –系统的每一部分是否都齐全;

  –所有文件是否都已产生并确有所需要的内容;

  –硬件的配置是否合理,等等。

  容量测试

  容量测试是要检验系统的能力最高能达到什么程度。例如,

  –对于编译程序,让它处理特别长的源程序;

  –对于操作系统,让它的作业队列“满员”;

  –对于信息检索系统,让它使用频率达到最大。

  在使系统的全部资源达到“满负荷”的情形下,测试系统的承受能力。

  文档测试

  这种测试是检查用户文档(如用户手册)的清晰性和精确性。

  用户文档中所使用的例子必须在测试中一一试过,确保叙述正确无误。

  自动测试

  认识自动测试

  什么时候使用自动测试


  –测试结果与预期的结果不符。这说明软件的这部分功能或性能特征与需求规格说明不一致,因此要为它提交一份问题报告。

  2. 软件配置复查

   软件配置复查的目的是保证

   软件配置的所有成分都齐全;

   各方面的质量都符合要求;

   具有维护阶段所必需的细节;

   而且已经编排好分类的目录。

   应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。