版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、软件工程课件第八章软件测试工程1第八章 软件测试工程8.1 软件测试的任务8.2 软件错误8.3 人工测试8.4 在软件开发生存周期中的测试活动8.5 面向对象的测试8.6 单元测试8.7 集成测试8.8 系统测试8.9 程序调试软件工程28.1 软件测试的任务软件测试的目的和定义n 基于不同的立场,有两种完全不同的测试目的。n 从用户的角度出发,普遍希望通过软件测试暴露软件中隐藏的错误和缺陷,以考虑是否可接受该产品。n 从软件开发者的角度出发,则希望测试成为表明软件产品中不存在错误的过程,验证该软件已正确地实现了用户的要求。软件工程3测试的目的是想以最少的时间和人力,系统地找出软件中潜在的各
2、种错误和缺陷。如果我们成功地实施了测试,我们就能够发现软件中的错误。测试的附带收获是,它能够证明软件的功能和性能与需求说明相符合。实施测试收集到的测试结果数据为可靠性分析提供了依据。测试不能表明软件中不存在错误,它只能说明软件中存在错误。uuuu软件工程4软件测试的原则1) 应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2) 测试用例应由测试输入数据、执行条件和对应的预期输出结果这两部分组成。3) 程序员应避免检查自己的程序。4) 在设计测试用例时,应包括合理的输入条件和不合理的输入条件。5) 所有的测试都应当追溯到用户要求,导致程序不能满足用户要求的错误是严重错误。软件工程56
3、) 充分注意测试中的群集现象。经验表明,测试发现错误的80%很可能出自20%的模块,换句话说,测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。7) 严格执行测试计划,排除测试的随意性。8) 应当对每一个测试结果做全面检查。9) 妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。软件工程6软件测试的对象n 软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。n 需求分析、概要设计、详细设计以及程序编码等各阶段所得到的文档,包括需求规格说明、概要设计规格说明、详细设计规格说明以及源程序, 都应成为软件测试的对象。n 测试的两个方面:u 缺陷测试u V
4、& V(验证和确认)软件工程7n 验证(Verification),检查软件生存期各个阶段过 程活动的结果是否满足规格说明的描述,证实各 阶段和阶段之间的逻辑协调性、完备性和正确性。n 确认(Validation),是比验证更广泛的过程活动。目的是想证实在一个给定的外部环境中软件的逻辑正确性,即是否满足用户的要求。n Boehm给出两者的区分:u 验证:我们是否在正确地建造一个产品u 确认:我们是否在建成一个正确的产品软件工程8软件工程9运行结果 计算机: 程序运行得到的结果用户要求用户:我要什么?相符吗?理解正确性表达正确性需求说明书分析员我可以提供什么?运行正确性输入正确性源程序程 序 员
5、 我要让计算机怎么做?理解正确性编码正确性理解正确性设计正确性表达正确性设计说明书设计员我要让软件做什么?软件工程10V图验证系统需求以此为接受测试的依据验证软件需求以此为系统测试的依据验证软件设计以此为集成测试的依据验证模块设计以此为单元测试的依据软件工程11软件编程单元测试模块设计规格说明集成测试软件设计规格说明系统测试软件需求规格说明接受测试系统需求规格说明回归测试软件需求分析阶段的测试活动软件开发计划计划项目测试工作需求变更记录系统测试计划需求变更不变更变更进入下一阶段软件工程12需求评审系统测试计划过程需求规格说明接受测试计划需求描述需求相关文档系统测试计划概要设计文档集成测试计划系
6、统测试用例、脚本未通过设计评审通过集成测试用例、脚本修改详细设计文档设计评审未通过通过进入下一阶段软件设计阶段的测试活动软件工程13单元测试计划详细设计单元测试计划过程集成测试设计过程修改系统测试设计过程概要设计集成测试计划过程单元测试计划每多个个模模块块执反行复一执遍行这这个个流流程程桌面检查通过审查通过是否通过通过未通过进入集成测试软件工程14单元测试报告单元测试评价执行单元测试单元测试用例、脚本程序修改未通过未通过单元测试设计过程模块编程已通过评审的详细设计集成测试用例、脚本已通过单元测试的模块否是否通过是否全部模块都已集成是回到相应阶段集成测试报告集成测试阶段的测试活动进入系统测试软件
7、工程15集成测试评价集成下一个模块修改(程序、设计或需求)执行集成测试系统测试用例、脚本已通过集成测试的系统否是否通过是否回到相应阶段全部需求都已验证是系统测试报告提交用户验收系统测试阶段的测试活动软件工程16系统测试评价验证下一个需求修改(程序、设计或需求)执行系统测试基于分解的集成方式通常,基于分解的集成的方式有两种:一次性集成方式增量式集成方式uu1.一次性集成方式(big bang)这种集成方式是一种非增量式集成策略。它先对每个单元分别进行单元测试,然后再把所有单元组装在一起进行测试,最终得到要求的软件系统。u软件工程17分模块测试一次性集成原来结构n 模块d1, d2, d3, d4
8、, d5是为单元测试建立的驱动模块,s1, s2, s3, s4, s5是为单元测试建立的桩模块。软件工程18DFBEs5s3FCDs2Bs1DFCBEACd5d4EAs4d3d2d1A各个模块的测试顺序的示意图如下:Test ATest (A,B,C,DTest BTest CTest Du优点是只要极少数的驱动和桩模块;需要的测试用例最少;方法简单;多个测试人员可以并行工作,对人力、物力资源利用率较高。缺点是一次试运行成功的可能性不大;错误定位和修改困难;有许多接口错误很容易躲过测试。软件工程192.自顶向下的增量式集成这种集成方式采用与设计一样的顺序,沿系统结构的控制层次自顶向下逐步组装
9、各个单元。它首先测试活动集中于顶层的构件,然后逐层向下,测试处于低层的构件。自顶向下的增量方式在测试过程中较早地验证了主要的控制和判断点。自顶向下的集成方式选用按深度方向集成的方式,可以首先实现和验证一个完整的软件系统的功能。uuuu软件工程20软件工程21DFBEDs5BEDs5Bs4ACACACs3Bs4s3Bs4s3s1ACAs2As2自顶向下集成的步骤如下:以主模块为被测模块,所有直接下属模块全部用桩模块替换,测试主模块;采用深度优先的策略,用实际模块替换相应桩模块,再用新的桩模块代替它们的直接下属模块,与已测试的模块或子系统组装成新的子系统。测试已构成的子系统,发现及排除新加入模块与
10、原子系统间隐藏的缺陷和错误;判断是否所有的模块都已集成到系统中。如果是则集成完成,否则继续集成。a)b)c)d)软件工程22n 优点是在增量式集成的过程中较早地验证了主要的控制和判断点;减少了驱动模块开发的费用; 由于集成顺序和设计顺序一致,可以和设计并行进行;支持故障隔离。n 缺点是建立桩模块的成本较高;底层构件中的一个无法预计的需求可能会导致许多顶层构件的修改;底层构件行为的验证被推迟了;随着底层模块的不断增加,整个系统越来越复杂,导致底层模块的测试不充分,尤其是那些被复用的模块。软件工程233.自底向上的增量式集成这种集成方式是从程序模块结构的最底层的模块开始集成和测试。采用这种集成方式
11、,对于一个给定层次的指定模块,它的子模块(包括子模块的所有下属模块)已经集成并测试完成,所以不再需要桩模块。在模块的测试过程中想要从子模块得到信息可以通过直接运行子模块得到。底向上的增量式集成的步骤如图所示。uuuu软件工程24其中,d1, d2, d3, d4, d5代表驱动模块,图形中的集成顺序为由左到右。自底向上的增量式集成的步骤如下:a)从模块结构的底层模块开始测试,并为其建立驱动模块;软件工程25DFBEFCd2DFd4BEd3d2ACd1Eb) 用实际模块代替驱动模块,与已测试的直接下属子模块组装成一个更大的模块组进行测试;c) 重复上面的工作直到系统的最顶层模块被加入到已测的系统
12、中。各个模块的测试顺序的示意图如下:Test DTest CTest (D,B)Test (A,B,C,D)软件工程26n 优点是对底层模块的行为能够早期验证;可以并行进行测试和集成,驱动模块的编写工作量远比桩模块的编写工作量小;支持故障隔离。n 缺点是对高层的验证被推迟到了最后,设计上的错误不能被及时发现;对于底层的一些异常很难覆盖。n 自顶向下增量的方式和自底向上增量的方式各有优缺点。一般来讲,一种方式的优点是另一种方式的缺点。软件工程274.混合的增量式(三明治)集成这种集成方式把系统分成三层,中间一层为目标层。测试时对目标层上面各层使用由顶向下的集成策略,对目标层下面各层使用自底向上的
13、集成策略,最后在目标层会合。u右图的程序结构为例,目标层为B、C、D。目标层上面是A,目标层下面是E、F、G。使用三明治集成的具体uABCD步骤如下图所示。EFG软件工程28Test A Test C Test D Test B Test E Test FTest GTest (A,B,C,D)Test (A,B,C,D,E,F,G)Test (B,E,F)Test (D,G)a) 对目标层上面一层使用由顶向下集成策略,测试A,用桩模块代替B、C、D;b) 再用实际模块B、C、D替换桩模块,用自顶向软件工程29下集成策略与目标层上面的模块A集成,测试(A, B, C, D),用桩模块代替B的下
14、属模块E、F和D的下属模块G;对目标层下面的模块使用自底向上集成策略, 测试底层模块E、F、G,使用驱动模块代替上一层模块B、D;采用自底向上集成策略把目标层下面的模块与目标层集成,测试(B, E, F)和(D, G)用驱动模块代替A;把三层集成到一起,测试(A, B, C, D, E, F)。c)d)e)软件工程30优点是集合了由顶向下和自底向上的两种集成策略的优点,且对中间层能够尽早进行比较充分的测试;而且该策略的并行度比较高。缺点是中间层如果选取不恰当,可能会有比较大的驱动模块和桩模块的工作量。基于层次的集成分层集成是针对具有层次式体系结构的应用软件使用的一种集成策略。分层集成的具体步骤
15、如下。1)划分系统的层次;软件工程312) 确定每个层次内部的集成策略。3) 确定层次间的集成策略。层次内部和层次之间的集成策略可以使用一次性集成、自顶向下集成、自底向上集成和三明治集成中的任何一种策略。下图给出了一个分层集成的示意图。图中各层之间采用了由顶向下的集成策略。这种集成策略的优点和缺点与其使用的层次间集成测试策略类似。它主要适用于适用范围:有明显线性层次关系的软件系统。软件工程32 层次内的集成驱动模块已测模块被测模块桩模块软件工程33 层次间的集成12层集成23层集成34层集成驱动模块被测模块已测模块桩模块软件工程34基于路径的集成n 源结点。是指程序每次进入的语句。n 汇结点。
16、是指每次离开程序的语句。n 模块执行路径。以源结点开始以汇结点结束的语句序列。n 消息。消息把控制从一个单元转移到另一个单元。在不同的编程语言中,消息可以被解释为子例程 调用、过程调用和函数引用。n 约定消息机制是一种调用返回风格。软件工程35n MM路径(Method Message Path)。是指穿插出现模块执行方法和消息的序列。n 对于传统软件来说,MM路径永远是从主程序开始,在主程序中结束。n MM路径的基本思想是要描述在独立单元之间控制转移的模块执行路径序列。软件工程36n MEP(A, 1) = (1, 2, 3, 6),MEP(A, 2) = (1, 2, 4)MEP(A, 3
17、) = (5, 6),n MEP(B, 1) = (1, 2),MEP(B, 2) = (3, 4)n MEP(C, 1) = (1, 2, 4, 5),MEP(C, 2) = (1, 3, 4, 5)软件工程37模块C12345模块B1234模块A123456MM路径图MEP(A,2)MEP(B,1)MEP(C,1)MEP(A,1)MEP(B,2)MEP(C,2)MEP(A,3)MEP(A, 2) = (1, 2, 4) MEP(B, 1) = (1, 2) MEP(C, 1) = (1, 2, 4, 5) MEP(B, 2) = (3, 4) MEP(A, 3) = (5, 6)实线箭头表
18、示消息,相应的返回用虚线箭头表示。软件工程38n 在进行集成测试时,选择的MM路径集合应该覆盖单元集合中所有从源到汇结点的路径。如果存在循环,则要进行压缩,产生有向无环图,因此可解决无限多路径问题。n MM路径是功能测试和结构测试的一种混合。n 在表达输入和输出行动上,MM路径是功能性的。n MM路径图的标识方式上是结构性的。基于路径集成的测试需要投入标识MM路径的时间。软件工程39集成测试分析体系结构分析1) 跟踪需求分析 从需求的跟踪实现出发,划分出系统实现1.上的结构层次图;产品A子系统A2子系统A1模块a11模块a22子系统a12模块a21 结构层次图模块a121模块a122软件工程4
19、0 一个子系统主要通过 4 类构件来实现:界面构件、业务构件、用于数据传递的构件和访问数据库构件。2) 描述系统构件之间的依赖关系 通过结构层次图的分析,确定集成测试的粒度,即基础模块的大小。 除了要确定模块的大小之外,还要考虑是否需要桩模块和驱动模块,是否能够有效地降低消息接口的复杂度。界面构件负责与用户交互;u软件工程41业务构件负责处理业务逻辑;访问数据库构件提供与数据库的接口;用于数据连接的构件负责向业务构件传递系统更新的数据。uuu在测试过程中,如果对业务构件采用以类为单元,进行类间集成测试,就可能会造成难以对缺陷进行定位的麻烦。因此,对该构件分别以方法和类为单元进行测试;再进行类内
20、集成和类间集成测试。uu软件工程422. 模块分析u 模块分析可以看做是在体系结构分析工作基础之上的细化。1) 本次测试主要希望测试哪个模块;2) 这个模块与哪几个模块有最密切关系,可以按照密切程度对这些模块排队;3) 把该模块首先与关系最密切的模块集成;4) 再依次集成其他模块,在该过程中需要考虑这些模块与已经集成的模块之间的消息流是否容易模拟,是否易于控制。软件工程43一个合理的集成模块划分应该满足以下几点:被集成的几个模块之间的关系必须密切。隔离集成模块的外围模块。尽量避免考虑编写桩模块,以替代被隔离的模块所实现的功能。能够简便地模拟外围模块向集成模块发送消息。外围模块向被测试的集成模块
21、发送的消息能够模拟实际环境中的大多数情况。uuuuu软件工程443.模块分析集成测试的重点是测试接口的功能性、可靠性、安全性、完整性、稳定性等多个方面。这要求人们必须对被测对象的接口进行周密细致的分析,对接口进行分类,分析并找出通过接口传递的数据。uu1) 接口的划分接口的划分是以概要设计为基础的,可以通过下面几个步骤来完成: 确定系统边界、子系统边界和模块边界;软件工程45 确定模块内部的接口; 确定子系统内模块之间接口; 确定子系统之间接口; 确定系统与操作系统之间的接口; 确定系统与硬件之间的接口; 确定系统与第三方软件的接口。2) 接口的分类在实际环境中,可以定义以下两大类接口: 即系
22、统的内部接口和外部接口。 系统内部接口就是系统内部各模块交互的软件工程46接口,这是集成测试的重点,主要包括:a) 函数或方法接口;b) 消息接口;c) 类接口;d) 其他接口:包括全局变量、配置表、注册信息、中断等。 系统外部接口就是外部系统(包括人、硬件和软件)与系统交互的接口,这类测试一般会延续到系统测试阶段来完成。3) 接口数据分析软件工程47 对穿越接口的数据进行分析。从这些数据的分析过程中可以直接产生测试用例。a) 函数接口分析:关注穿越函数接口的参数个数、参数属性(参数的数据类型, 是输入还是输出)、参数的前后顺序、参数的边界情况等。b) 消息接口分析:分析消息的类型、消息的域、
23、域的顺序、域的属性、域的取值范围、可能的异常值等。c) 类接口和交互方式分析:类接口和交互方式大致可以分为如下几类:软件工程48d)对于其他类接口的分析,重点分析其读写属性、并发性、等价类和边界值。集成测试策略的分析4.集成测试策略分析主要根据被测对象选择合适的集成策略。一般来说,一个好的集成测试策略应该具有以下特点:1) 能够对被测对象进行比较充分的测试;2) 能够使模块与接口的划分清晰明了,尽可能地减小后继操作难度,同时使辅助工作量(如开发桩模块和驱动模块)最小;u软件工程493) 相对于整体工作量来说,参加测试的各种资源(如人力、环境、时间等)能够得到充分利用。在集成测试的过程中要吸取和
24、积累经验,测试用例设计要充分考虑到可回归性以及是否便于自动化测试的执行,因为借助测试工具来运行测试用例,对测试结果进行分析,在一定程度上可以提高测试效率,节省有限的时间资源和人力资源。软件工程50面向对象程序的集成测试n 对象的集成测试又称交互测试,目的是确保对象的消息传递能够正确进行。n 面向对象系统的集成测试有 3 种可用的方法:1. 用例或基于场景的测试u 用例或场景描述了对系统的使用模式。u 测试可以根据场景描述和对象簇来制定。u 这种测试着眼于系统结构,首先测试几乎不使用服务器类的独立类,再测试那些使用了独立软件工程51类的下一层次的(依赖)类。这样一层一层地持续下去,直到整个系统构
25、造完成。2.基于线索的测试u 它把为响应某一系统输入或的实例集成在一起。所需的一组类u 每一条线索将分别集成和测试。因为面向对象系统通常是驱动的,因此这是一个特别合适的测试形式。3. 对象交互测试u 这个方法提出了集成测试的中间层概念。软件工程52中间层给出叫做“方法-消息”路径的对象交互序列。所谓“原子系统功能”就是指一些输u入加上一条“方法-消息”路径,终止于一个输出。面向对象的集成测试可以分成两步进行:先进行静态测试,再进行动态测试。测试所要达到的覆盖标准可以是: 达到类所有的服务要求或服务提供的一定覆盖率; 达到对所有执行线程的一定覆盖率; 达到类的所有状态的一定覆盖率等。uu软件工程
26、538.8系统测试n 系统测试的主要目标不再是找出缺陷,而是确认其功能和性能。n 除了要证明被测系统的功能和结构的稳定性外, 还要有一些非功能测试,比如:性能测试、压力测试、可靠性测试等。n 最终目的是为了确保软件产品能够被用户或操作者接受。软件工程54系统测试的定义与目标n 所谓系统测试,就是对被测系统中的各个组成部 分进行的综合检验。系统测试属于黑盒测试范畴, 不再对软件的源代码进行分析和测试。n 系统测试的目标在于通过与系统的需求规格说明进行比较,检查软件是否存在与系统规格不符合或与之矛盾的地方,以验证软件系统的功能和性能等满足规格说明所指定的要求。n 因此,测试设计人员应该主要根据需求
27、规格说明来设计系统测试的测试用例。软件工程55系统测试环境n 系统测试环境构建得是否合理、稳定和具有代表性,将直接影响到系统测试结果的真实性、可靠性和正确性。部署合理的测试环境是达到测试目标的前提条件。n 另一方面,不同(版本)的操作系统、不同(版本)的数据库,不同(版本)的网络服务器、应用服务器,再加上不同的系统架构等的组合,使得要构建的系统测试环境多种多样。n 测试人员可以通过构建系统测试环境库的方式来软件工程56实现系统测试环境的复用,节省宝贵的测试时间。系统测试策略1.功能测试功能测试属于黑盒测试技术范畴,它不考虑软件内部的具体实现过程,主要是根据系统的需求规格说明和系统测试设计说明,
28、验证产品是否符合产品的功能需求规格。功能测试主要是为了发现以下几类错误:uu软件工程571) 是否有不正确或遗漏了的功能?2) 功能实现是否满足用户需求和系统设计的隐式需求?3) 能否正确地接受输入?能否正确地输出结果? 功能测试要求测试人员对被测系统的需求规格 说明、业务功能都非常熟悉,同时掌握一定的 测试用例设计方法。测试人员还需要了解相关的业务知识,还要对测试过程中的细节问题有所理解。uu软件工程58协议一致性测试2.这类测试检查在分布式系统中为了使得计算机之间能够相互交换信息,需要遵循的通信协议的实现情况。通常对协议一致性所做的测试包括如下几种类型:1) 协议一致性测试:检查实现的系统
29、是否与标准协议符合的程度。2) 协议性能测试:检查协议实体或系统的各种性能指标(如数据传输率、连接时间、执行速度)。u软件工程593) 协议互操作性测试:检查同一协议在不同实现版本间的互通能力和互操作能力。4) 协议健壮性测试:检查协议实体或系统在外界因素下运行的能力,例如通信中止、断电或人为注入干扰信息等。性能测试3.性能测试用来测试软件在系统中的运行性能。其目标是量度系统的性能与预先定义目标有 多大差距。因此,必须比较在需求规格中规定的性能水平与实际的性能水平。u软件工程60人们关注最多的性能信息包括:uCPU使用情况; IO使用情况;每个指令的IO数量;信道使用情况; 内存使用情况; 外
30、存使用情况;每个模块执行时间百分比;一个模块等待IO完成的百分比时间; 模块在主存中使用的时间百分比;系统反应时间;软件工程61 系统吞吐量等。性能测试经常和压力测试一起进行,而且常常需要硬件和软件测试设备。u4.压力测试压力测试又称强度测试,是在各种资源超负荷情况下观察系统的运行情况的测试。在压力测试过程中,测试人员主要关注的是在有非正常资源占用的情况下系统的处理时间。这类测试在一种要求反常数量、频率或资源的方式下执行系统。例如,uu软件工程62当平均每秒出现 1 个或 2 个中断的情形下,对每秒出现 10 个中断的情形进行测试; 把输人数据的量提高一个数量级来测试输入功能会如何响应;应当执
31、行需要最大的内存或其他资源的测试实例;使用一个虚拟的操作系统中会引起颠簸的测试实例;可能会引起大量的驻留磁盘数据的测试实例。软件工程63压力测试是边界测试。例如,测试最大的活动终端数量或资源达到了超负荷的情况。 这些资源包括:缓冲区、控制器、显示器、中断处理、内存、网络、打印机、辅助存储设备、事务队列、事务程序、系统用户等。压力测试研究系统在一个短时间内活动处在峰值时的反应。注意不要把它与容量测试混淆,在容量测试中,其目标是检测系统处理大容量数据方面的能力。uuu5.容量测试软件工程64容量测试是在系统正常运行的范围内测试并确定系统能够处理的数据容量。容量测试是面向数据的,常见的容量测试例子包
32、括: 使用编译器编译一个极其庞大的源程序; 使用一个链接编辑器编辑一个包含成千上万模块的程序; 一个电路模拟器模拟包含成千上万模块的电路; 一个操作系统的任务队列被充满;uu软件工程65 庞大的E-mail信息和文件充满了Internet。7.安全性测试安全性测试就是要验证系统内的保护机制能否抵御入侵者的攻击。测试人员需要模拟不同的入侵方式来攻击系统的安全机制,想尽一切办法来获取系统内的保密信息。通常需要模拟的活动有:uu 通过外部的手段来获取系统的;软件工程66 有目的地引发系统错误,期望在系统恢复过程中侵入系统; 通过浏览非保密的数据,从中找到进入系统的钥匙等。只要有足够的时间和资源,好的
33、安全测试就一定能够侵入一个系统。u7.恢复性测试恢复测试的目标就是验证系统从软件或者硬件失效中恢复的能力。测试采取各种人工干预方式使软件出错,造uu软件工程67造成人为的系统失效,进而检验系统的恢复能力。如果这一恢复需要人为干预,则应考虑平均修复时间是否在限定的范围以内。恢复性测试需要考虑下面这些关键问题: 是否存在潜在的系统失效?它们能否造成u很大的损失?能义场景? 保护和恢复过程能否为应对故障提供足够的反应? 当真正需要时,恢复过程能否正确工作?恢复操作后系统性能是否会下降?软件工程688.备份测试备份测试是恢复性测试的一个补充,并且应当是恢复性测试的一个部分。备份测试的目的是验证系统在软
34、件或者硬件失uu败的中备份它数据的能力。备份测试需要从以下几个角度来进行设计: 备份文件,同时比较备份文件与最初的文件的区别; 完整的系统备份过程; 定时在恢复点备份;u软件工程69 备份引起系统性能的降级; 手工执行备份工作的有效性; 备份期间的安全性过程; 备份过程期间的维护处理日志的完整性。9.GUI测试GUI即图形用户接口,相当于产品外观。GUI测试分为两个部分:1)确认界面实现是否与界面设计的情况相符合。即界面的外观是否与设计者的意图相一致;uu软件工程702)确认界面能够正确处理。 即当界面元被触发后,是素由于系统或用户否可以按照规定的流程显示出正确内容。例如,当要打开一个文件,单
35、击“打开”选项时,系统应产生一个“打开文件”的对话框, 而不是一个“保存文件”的对话框。10. 健壮性测试u健壮性测试又称为容错测试。主要用于测试系统在出现故障时,是否能够自动恢复或者忽略故障继续运行。u软件工程71为了使系统具有良好的健壮性,要求设计人员在做系统设计时必须注意妥善地进行系统异常的处理。一个好的软件系统必须经过健壮性测试之后才能最终交付给用户。uu11. 兼容性测试有时系统的异常是由于它与其他系统不兼容而引起的。兼容性测试的目的就是检验被测的应用系统对其他系统的兼容性。兼容性测试时需要关注以下问题:uu软件工程72 当前系统可能运行在哪些不同的操作系统环境下? 当前系统可能与哪
36、些不同类型的数据库进行数据交换? 当前系统可能在哪些不同的硬件配置的环境上? 当前系统可能需要与哪些软件系统协同工作?这些软件系统可能的版本有哪些? 以上的这些情况是否需要综合测试?12. 可使用性测试软件工程73可使用性测试是检测用户在理解和使用系统方面是否方便,它是面向用户的系统测试。可使用性测试包括对被测系统的系统功能、系统发布、帮助文本和过程的测试等。测试时,测试人员应该关注的问题有:1) 系统中是否存在过分复杂的功能或指令?2) 安装过程是否复杂?3) 错误信息提示内容是否详细,能否对错误定位?4) GUI接口是否标准?登录是否方便?uuu软件工程745) 是否需要用户记住太多的信息
37、内容?6) 帮助文本是否详细?是否可以独立说清问题?7) 页面风格是否一致?是否会造成理解上的歧义?8) 执行的操作是否与预期的功能相符?9) 和其他系统之间的连接是否太弱?10) 默认信息是否清晰?让使用者都能了解?11) 接口是否太简单或者太复杂?语法、格式与定义是否一致?软件工程7512) 是否给用户提供了所有有关输入的清晰的知识?13. 安装测试安装测试的目的就是要验证成功安装系统的能力。安装测试时,应考虑以下关键问题:1) 安装者是什么人?他们应具备的技术能力如何?2) 安装过程是否已经完整地记入正式文档, 并且有详细且明确的安装步骤?3) 安装过程假定的工作环境是什么?是什么u软件
38、工程76样的平台环境?有哪些硬件、网络、软件配置?版本如何?4) 安装是否要修改用户当前的环境设置?是否要改动config.sys文件等。5) 安装者怎样才能知道系统已经被正确安装了?是否有一个适当的安装测试过程?6) 是否需要包含重新安装过程?如何调整系统选项并且从先前的版本上升级?对于安装测试,还需要注意的问题有以下几点:u软件工程771) 通过自动安装或手工配置安装,测试各种不同的安装组合,并验证各种不同组合的正确性。2) 安装退出之后,确认应用程序可以正确启动、运行。3) 在安装之前先备份注册表,安装之后查看注册表中是否有多余的垃圾信息。4) 卸载测试和安装测试同样重要,如果系统提供自
39、动卸载工具,那么卸载之后需检验系统是否把所有的文件全部删除,注册表中有关的注册信息是否也被删除。软件工程785) 至少要在一台笔记本电脑上进行安装测试。6) 安装完成之后,可以在简单使用之后再执行卸载操作。7) 对于客户机服务器模式的应用系统,可以先安装客户端,然后安装服务器端,测试是否会出现问题。8) 考察安装该系统是否对其他的应用程序造成影响,特别是Windows操作系统,经常会出现此类的问题。软件工程7914. 文档测试文档测试的目标是验证用户文档是正确的并且保证操作手册的过程能够正确工作。文档测试中需要测试人员和用户换位思考。测试人员完全站在客户的角度,按照文档中的说明进行操作,进而发
40、现问题做好记录。测试人员需要做到以下几点: 首先对整个文档进行一般的评审,然后进行一个个的详细的评审; 确切地按照文档中记述的内容使用系统;uuu软件工程80测试在系统中出现的所有在线帮助文档及其链接,并保证所有可能检索到的条目有相应的文档说明;客观地测试每一条语句,不要想当然; 保证文档覆盖所有关键用户功能;验证所有的错误信息以及文档中涉及的每个样例;保证用户文档的可读性,尽量避免使用专业性过强的专业术语;把系统中的缺陷并入缺陷跟踪库。软件工程8115. 在线帮助测试u 在线帮助测试给用户提供实时咨询服务。一个完善的系统应该具备在线帮助的功能。u 在线帮助测试主要用于验证系统的实时在线帮助的
41、可操作性和准确性。u 测试时测试人员需要关注下面这些问题: 帮助文档的索引是否准确无误? 帮助文档的内容是否正确? 系统运行过程中帮助文档是否能被正常地激活?软件工程82 所激活的帮助内容是否与当前操作内容相关联? 是否在系统不同位置都能激活帮助内容? 帮助文档的内容是否足够详细并能解决需要被解决的问题?16. 数据转换测试当新系统采用了不同于老系统的数据格式时, 就需要进行数据转换测试。数据转换测试的目标在于验证已存在数据的转换是否是有效。uu软件工程83数据转换测试时需考虑的关键因素包括:1) 审计能力。有一个规程用来比较和分析数据转换前后的情况,以保证转换的成功。 保证审计能力的技术包括文件报告、比较程序和回归测试。 回归测试检查验证转换过的数据不改变业务需求或引起系统有不同的行为。2) 数据库验证。在转换之前,对新的数据库需要加以评审,以保证它能够满足业务需求。同时要保证支持人员和数据管理人员已经培训过。u软件工程843) 数据整理。在数据转换到新系统之前,需要检查老的数据,以消除不正确的数据和矛盾的数据。4) 恢复计划。需要准备好回退步骤
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医师上下级工作制度
- 医院保安部工作制度
- 医院女职工工作制度
- 医院院感科工作制度
- 单位办实事工作制度
- 博物馆开放工作制度
- 卫生微腐败工作制度
- 苏州市2026成人高考高起专英语预测试题(含答案)
- 卫计委审计工作制度
- 厦门天马微工作制度
- 贵州省贵阳市2026年高三年级2月适应性考试(一)(贵阳一模)化学试题(含答案)
- 中介门店运营管理制度
- 社区规范升国旗制度
- 水害监测系统值守制度规范
- 冰糖葫芦中华传统小吃冰糖葫芦介绍课件
- 牧运通官方兽医试题题库带答案详解(满分必刷)
- 2025水利部综合事业局公开招聘工作人员11人笔试历年常考点试题专练附带答案详解2套试卷
- 急诊护理中的人文关怀实践与案例
- 升压站砌筑工程施工方案
- 煤矿安全操作规程课件
- 医院放射卫生知识培训课件
评论
0/150
提交评论