第七章软件测试技术_第1页
第七章软件测试技术_第2页
第七章软件测试技术_第3页
第七章软件测试技术_第4页
第七章软件测试技术_第5页
已阅读5页,还剩140页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件测试基础白盒测试技术黑盒测试技术

软件测试计划和测试分析报告软件测试策略小结

第七章引言在开发软件的过程中,我们使用了保证软件质量的方法分析、设计和实现软件,但难免还会在工作中犯错误。这样,在软件产品中就会隐藏着许多错误和缺陷。特别是对于规模大、复杂性高的软件更是如此。在这些错误中,有些错误是致命性的,如果不排除,就会导致生命与财产的重大损失。第一节软件测试基础软件测试是为了发现错误而执行程序的过程。或者说,软件测试是根据软件开发各阶段的规格说明和程序内部结构而精心设计的一批测试用例(即输入数据及预期的输出结果),并利用这些测试用例去运行程序,以发现程序错误的过程。什么是软件测试第一节软件测试基础

测试工具软件开发工程师

(SoftwareDevelopmentEngineerinTest,

简称SDE/T)软件测试人员

软件测试工程师

(SoftwareTestEngineer,简称STE)第一节软件测试基础SDE/T

负责写测试工具代码,并利用测试工具对软件进行测试;或者开发测试工具为软件测试工程师服务。第一节软件测试基础负责理解产品的功能要求,然后对其进行测试,检查软件有没有错误(Bug),决定软件是否具有稳定性,并写出相应的测试规范和测试案例。STE

软件测试的目的软件测试人员的任务很清楚,就是站在使用者的角度上,通过不断地使用和攻击刚开发出来的软件产品,尽量多地找出产品存在的问题,也就是我们所称的Bug。软件测试的原则1.应当把“尽早地和不断地进行软件测试”作为软件开发者的座右铭。2.测试用例应由测试输入数据和对应的预期输出结果这两部分组成。3.程序员应避免检查自己的程序。4.在设计测试用例时,应包括合理的输入条件和不合理的输入条件。软件测试的原则5.充分注意测试中的群集现象,即测试后程序中残存的错误数目与该程序中已发现的错误数目成正比。6.

严格执行测试计划,排除测试的随意性。7.应当对每一个测试结果做全面检查。8.妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。软件测试信息流测试软件配置结果分析测试结果排错改正的软件预期结果可靠性分析预测的可靠性错误出错率数据测试配置测试工具

软件测试信息流软件测试信息流软件配置:软件需求规格说明、软件设计规格说明、源代码等;测试配置:测试计划、测试用例、测试程序等;测试工具:测试数据自动生成程序、静态分析程序、动态分析程序、测试结果分析程序、以及驱动测试的测试数据库等等。软件测试信息流测试结果分析:比较实测结果与预期结果,评价错误是否发生。排错(调试):对已经发现的错误进行错误定位和确定出错性质,并改正这些错误,同时修改相关的文档。修正后的文档再测试:直到通过测试为止。通过收集和分析测试结果数据,对软件建立可靠性模型。软件测试信息流利用可靠性分析,评价软件质量:软件的质量和可靠性达到可以接受的程度;所做的测试不足以发现严重的错误;如果测试发现不了错误,可以肯定,测试配置考虑得不够细致充分,错误可能仍然潜伏在软件中。项目协议对象设计客户开发人员用户集成策略系统分解功能性需求非功能性需求集成测试结构测试功能测试性能测试来自ODD来自TP来自SDD来自RAD来自RAD用户手册验收测试安装测试现场测试日常操作单元测试测试活动和相关工作产品软件测试的对象

软件测试并不等于程序测试。软件测试应贯穿于软件定义与开发的整个期间。因此,需求分析、概要设计、详细设计以及程序编码等所得到的文档资料,包括需求规格说明、概要设计说明、详细设计规格说明以及源程序,都应成为软件测试的对象。软件测试的对象测试与软件开发阶段的关系

软件开发过程是一个自顶向下、逐步细化的过程,而测试则是依相反的顺序安排的,自底向上、

逐步集成的过程。低一级为上一级测试准备条件。测试与软件开发阶段的关系测试与软件开发阶段的关系需求分析设计编码单元测试集成测试确认测试①②③①②③决定软件与系统的配合关系需求分析概要设计详细设计编码单元测试集成测试确认测试系统测试测试组测试用例故障组件测试存根测试驱动程序误差错误改正由……修改由……引起由……引起找出使用修改1…n***********软件测试有关概念测试中用到的模型元素(UML类图)软件测试有关概念组件是系统中可以孤立进行测试的部分,一个组件可以是对象,一组对象,一个或多个子系统。错误也称缺陷或不足,是可能引起组件不正常行为的设计或编码错误。误差是系统执行过程中错误的表现。故障是组件的规格说明与其行为之间的偏差,故障是由一个或多个误差引起的。软件测试有关概念测试用例是一组输入和期待的结果,它根据引起故障和检查的目的来使用组件。测试存根是被测试的组件所依赖的其它一些组件的实现部分。测试驱动程序是依赖被测试组件的那个组件的实现部分。改正是对组件的变化。改正的目的在于修正错误。改正可能会产生新的错误。软件测试的方法软件测试的种类大致可以分为静态测试和动态测试。静态测试以人工测试为主,采取桌前检查、代码会审和程序走查的方式检查程序中可能存在的错误。

1.静态分析技术

(1)结构检查。(2)流图分析(3)符号执行软件测试的方法动态测试是基于计算机的测试,它分为白盒测试和黑盒测试两种。2.动态测试技术选取定义域中的有效值,或定义域外无效值(2)对已选取值决定预期的结果。(3)用选取值执行程序。(4)观察程序行为,记录执行结果。(5)将(4)的结果与(2)的结果相比较,不吻合则程序有错。第二节软件测试设计方法任何工程产品都可以使用以下的两种方法之一进行测试:

(1)已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。

(2)已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已经过检查。

前者就是黑盒测试,后者就是白盒测试。

第二节软件测试设计方法软件的测试设计与软件产品的设计一样,是一项需要花费许多人力和时间的工作,我们希望以最少量的时间和人力,最大可能地发现最多的错误。测试技术1、白盒测试(WhiteBoxTesting)2、黑盒测试(BlackBoxTesting)黑盒测试技术黑盒测试又叫做功能测试或数据驱动测试。这种方法是把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序功能是否符合它的功能说明,测试证明每个实现了的功能是否符合要求。

黑盒测试(BlackBoxTesting)黑盒测试技术黑盒测试的内容Alpha/BetaTesting菜单/帮助测试发行测试回归测试黑盒测试技术黑盒测试方法是在程序接口上进行测试,主要是为了发现以下错误:是否有不正确或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息(例如数据文件)访问错误?性能上是否能够满足要求?是否有初始化或终止性错误?

白盒测试技术白盒测试又称为结构测试或逻辑驱动测试。这一方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。通过在不同点检查程序的状态,确定实际的状态是否与预期的状态一致。白盒测试(WhiteBoxTesting)白盒测试技术白盒测试的内容对程序模块的所有独立执行路径至少测试一次对所有的逻辑判定,取“真”与取“假”的两种情况都能至少测试一次。在循环的边界和运行边界限内执行循环体测试内部数据结构的有效性。第二节软件测试设计方法不论是黑盒测试,还是白盒测试,都不可能把所有可能的输入数据都拿来进行所谓的穷举测试。因为可能的测试输入数据数目往往达到天文数字。下面看两个例子。第二节软件测试设计方法假设一个程序P有输入量X和Y及输出量Z。在字长为32位的计算机上运行。若X、Y取整数,按黑盒方法进行穷举测试:可能采用的测试数据组:

232×232

=264

如果测试一组数据需要1毫秒,一年工作365×

24小时,完成所有测试需5亿年。第二节软件测试设计方法对一个具有多重选择和循环嵌套的程序,不同的路径数目可能是天文数字。给出一个小程序的流程图,它包括了一个执行20次的循环。包含的不同执行路径数达520条,对每一条路径进行测试需要1毫秒,假定一年工作365×24小时,要想把所有路径测试完,需3170年。第二节软件测试设计方法第二节软件测试设计方法

以上的分析表明,穷举测试,是不可能实施的。

既然穷举测试不可行,就必须要从数量极大的可用测试用例中精心地挑选少量的测试数据,使得采用这些测试数据能够达到最佳的测试效果,能够高效率地把隐藏的错误揭露出来。测试用例设计的基本目的是确定一组最有可能发现某个错误或某类错误的测试数据。白盒测试用例的设计逻辑覆盖测试方法通常采用流程图来设计测试用例,它考察的重点是图中的判定框,因为这些判定通常是与选择结构有关或是与循环结构有关,是决定程序结构的关键成分。

逻辑覆盖法白盒测试用例的设计逻辑覆盖是以程序内部的逻辑结构为基础的设计测试用例的技术,属白盒测试。这一方法要求测试人员对程序的逻辑结构有清楚的了解,甚至要能掌握源程序的所有细节。黑盒测试法设计测试用例,有下面常用技术:

语句覆盖

判定覆盖

条件覆盖

判定-条件覆盖

条件组合覆盖

路径覆盖白盒测试用例的设计

语句覆盖就是设计若干个测试用例,运行被测程序,使得每一可执行语句至少执行一次。

判定覆盖又称为分支覆盖,就是设计若干个测试用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次。

条件覆盖就是设计若干个测试用例,运行被测程序,使得程序中每个判断的每个条件的可能取值至少执行一次。白盒测试用例的设计

判定-条件覆盖就是设计足够的测试用例,使得判断中每个条件的所有可能取值至少执行一次,每个判断中的每个条件的可能取值至少执行一次。

条件组合覆盖就是设计足够的测试用例,运行被测程序,使得每个判断的所有可能的条件取值组合至少执行一次。

路径覆盖就是设计足够的测试用例,覆盖程序中所有可能的路径。黑盒测试用例的设计

黑盒测试法是根据被测程序功能来进行测试,所以通常也称为功能测试。用黑盒测试法设计测试用例,有4种常用技术:等价分类法边界值分析错误猜测法因果图法黑盒测试用例的设计

所谓等价分类,就是把输入数据的可能值划分为若干等价类(等价类是指某个输入域的子集合。在该集合中,各个输入数据对于揭露程序中的错误都是等价的)。因此,可以把全部输入数据合理地划分为若干等价类,在每一个等价类中取一个数据作为测试的输入条件,这样就可以少量的代表性测试数据,来取得较好的测试结果。

等价分类法是指对于程序的规格说明来说,是合理的有意义的输入数据构成的集合。利用它可以检验程序是否实现预先规定的功能和性能。

有效等价类

等价分类法等价分类法是指对于程序的规格说明来说,是不合理的、无意义的输入数据构成的集合。程序员主要利用这一类测试用例来检查程序中功能和性能的实现是否不符合规格说明要求。

无效等价类

等价分类法划分等价类不仅要要考虑代表“有效”输入值的有效等价类,还需考虑代表“无效”输入值的无效等价类。采用这一技术要注意以下两点:每一无效等价类至少要用一个测试用例,不然就可能漏掉某一类错误,但允许若干有效等价类合用同一个测试用例,以便进一步减少测试的次数。

等价分类法确立测试用例原则为每一个等价类规定一个唯一的编号。设计一个新的测试用例,使其尽可能地覆盖尚未被覆盖的有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。设计一个新的测试用例,使其仅覆盖尚未被覆盖的无效等价类,重复这一步,直到所有的无效等价类都被覆盖为止。边界值分析法采用边界值分析法来选择测试用例,可使得被测程序能在边界值及其附近运行,从而更有效地暴露出程序中潜藏的错误。边界值分析法边界值分析法边界值分析也是一种黑盒测试方法,是对等价类划分方法的补充。人们从长期的测试工作经验得知,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。边界值分析法这里所说的边界是指,相当于输入等价类和输出等价类而言,稍高于其边界值及稍低于其边界值的一些特定情况。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据。等价分类法与边界值分析法的比较1、等价分类法的测试数据是在各个等价类允许的值域内任意选取的,而边界值分析法的测试数据必须在边界值附近选取。2、一般来说,用边界值分析法设计的测试用例要比等价分类法的代表性更广,发现错误的能力也更强。3、但是对边界的分析与确定比较复杂。错误猜测法所谓猜测,就是猜测被测程序在哪些地方容易出错,然后针对可能的薄弱环节来设计测试用例。显然它比前两种方法更多地依靠测试人员的直觉与经验。所以一般都先用前两方法设计测试用例,然后再用猜测法去补充一些例子作为辅助的手段。错误猜测法因果图法因果图是借助图形来设计测试用例的一种系统方法。它适用于被测程序具有多种输入条件,程序的输出又依赖于输入条件的各种组合的情况因果图是一种简化了的逻辑图,它能直观地表明程序输入条件(原因)和输出动作(结果)之间的相互关系。因果图法利用因果图产生测试用例的基本步骤(1)分析软件规格说明描述中,哪些是原因(即输入条件或输入条件的等价类),哪些是结果(即输出条件),并给每个原因和结果赋予一个标识符。

(2)分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的是什么关系?根据这些关系,画出因果图。

利用因果图产生测试用例的基本步骤(3)由于语法或环境限制,有些原因与原因之间,原因与结果之间的组合情况不可能出现。为表明这些特殊情况,在因果图上用一些记号标明约束或限制条件。

(4)把因果图转换成判定表。

(5)把判定表的每一列拿出来作为依据,设计测试用例。测试方法的选用测试策略1、在任何情况下都应该使用边界值分析的方法。2、必要时用等价类划分法补充测试方案。3、必要时再用错误猜测法补充测试方案。4、对照程序逻辑,检查已经设计出出的测试方案。可以根据对程序可靠性的要求采用不同的逻辑覆盖标准,如果现有测试方案的逻辑程度没有达到要求的覆盖标准则应再补充一些测试方案。第三节测试计划和分析报告

测试文档主要由测试计划和测试分析报告组成

测试计划可细化为测试计划、测试设计说明、测试用例说明和测试规格说明

测试分析报告可细化为测试项传递报告、

测试日志、测试事件报告和测试总结报告软件测试计划的内容1.引言1.1编写目的1.2背景1.3定义1.4参考资料软件测试计划的内容2.计划2.1软件说明2.2测试内容2.3测试1(标识符)2.3.1进度安排2.3.2条件a.设备b.软件c.人员软件测试计划的内容2.3.3测试资料a.有关本项任务的文件b.被测试程序及其所在的媒体c.测试的输入和输出举例d.有关控制此项测试的方法、过程的图表2.3.4测试培训2.4测试2(标识符)软件测试计划的内容3.测试设计说明3.1测试1(标识符)3.1.1控制3.1.2输入3.1.3输出3.2测试2(标识符)…软件测试计划的内容4.评价准则4.1范围4.2数据整理4.3尺寸

测试分析报告的内容1.引言

1.1编写目的

1.2背景1.3定义1.4参考资料2.测试概要测试分析报告的内容3.测试结果及发现3.1测试1(标识符)3.2测试2(标识符)4.对软件功能的结论4.1功能1(标识符)4.1.1能力4.1.2限制4.2功能2(标识符)测试分析报告的内容5.分析摘要

5.1能力5.2缺限和限制5.3建议a.各项修改可采用的修改方法程度b.各项修改的紧迫程度c.各项修改预定的工作量d.各项修改的负责人5.4评价6.测试资源消耗第四节软件测试策略单元测试集成测试确认测试系统测试UCDRSIVST系统工程软件需求分析软件设计代码编写软件测试过程被测模块单元测试设计信息集成测试被测模块单元测试被测模块单元测试测试过的模块软件需求其它系统元素装配好的软件确认的软件可运行的软件确认测试系统测试软件测试过程开始是单元测试,集中对用源代码实现的每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。组装测试把已测试过的模块组装起来,主要对与设计相关的软件体系结构的构造进行测试。软件测试过程确认测试则是要检查已实现的软件是否满足了需求规格说明中确定了的各种需求,以及软件配置是否完全、正确。系统测试把已经经过确认的软件纳入实际运行环境中,与其它系统成份组合在一起进行测试。单元测试单元测试又称模块测试,是针对软件设计的最小单位─程序模块,进行正确性检验的测试工作。其目的在于发现各模块内部可能存在的各种差错。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。单元测试主要对模块的五个基本特性进行评价模块错误处理模块接口局部数据结构重要的执行路径边界条件单元测试常见错误类型

接口错误I/O错误数据结构错误算法错误比较及控制逻辑错误错误处理错误单元测试模块测试基本原则

至少一次测试所有语句测试所有可能的执行或逻辑路径的组合测试每个模块的所有入口和出口模块接口测试在单元测试的开始,应对通过被测模块的数据流进行测试。测试项目包括:调用本模块的输入参数是否正确;本模块调用子模块时输入给子模块的参数是否正确;全局量的定义在各模块中是否一致;模块接口测试在做内外存交换时要考虑:文件属性是否正确;

OPEN与CLOSE语句是否正确;缓冲区容量与记录长度是否匹配;在进行读写操作之前是否打开了文件;在结束文件处理时是否关闭了文件;正文书写/输入错误,

I/O错误是否检查并做了处理。不正确或不一致的数据类型说明使用尚未赋值或尚未初始化的变量错误的初始值或错误的缺省值变量名拼写错或书写错不一致的数据类型全局数据对模块的影响局部数据结构测试路径测试选择适当的测试用例,对模块中重要的执行路径进行测试。应当设计测试用例查找由于错误的计算、不正确的比较或不正常的控制流而导致的错误。对基本执行路径和循环进行测试可以发现大量的路径错误。错误处理测试出错的描述是否难以理解出错的描述是否能够对错误定位显示的错误与实际的错误是否相符对错误条件的处理正确与否在对错误进行处理之前,错误条件是否已经引起系统的干预等注意数据流、控制流中刚好等于、大于或小于确定的比较值时出错的可能性。对这些地方要仔细地选择测试用例,认真加以测试。如果对模块运行时间有要求的话,还要专门进行关键路径测试,以确定最坏情况下和平均意义下影响模块运行时间的因素。边界测试单元测试的步骤模块并不是一个独立的程序,在考虑测试模块时,同时要考虑它和外界的联系,用一些辅助模块去模拟与被测模块相联系的其它模块。驱动模块(driver)

桩模块(stub)──存根模块单元测试的步骤驱动模块:相当于被测模块的主程序。它接收测试数据,把这些数据传送给被测模块,输出实测结果。

桩模块:用以代替被测模块调用的子模块。桩模块可以做少量的数据操作,不允许什么事情也不做。为了能够正确地测试软件,桩模块可能需要模拟实际子模块的功能。

被测模块、与它相关的驱动模块及桩模块共同构成了一个“测试环境”,如下图所示。单元测试的步骤单元测试的步骤如果一个模块要完成多种功能,可以将这个模块看成由几个小程序组成。必须对其中的每个小程序先进行单元测试要做的工作,对关键模块还要做性能测试。对支持某些标准规程的程序,更要着手进行互联测试。有人把这种情况特别称为模块测试,以区别单元测试。组装测试组装测试又称为集成测试或联合测试。通常,在单元测试的基础上,需要将所有模块按照设计要求组装成为系统。在单元测试的同时可进行组装测试,发现并排除在模块连接中可能出现的问题,最终构成要求的软件系统。子系统的组装测试特别称为部件测试,它所做的工作是要找出组装后的子系统与系统需求规格说明之间的不一致。组装测试组装测试需要考虑的问题是:在把各个模块连接起来的时侯,穿越模块接口的数据是否会丢失;一个模块的功能是否会对另一个模块的功能产生不利的影响;各个子功能组合起来,能否达到预期要求的父功能;全局数据结构是否有问题;单个模块的误差累积起来,是否会放大,从而达到不能接受的程度。组装测试把模块组装成为系统的方式有两种一次性组装方式增殖式组装方式

深度优先广度优先自顶向下自底向上一次性组装方式是一种非增殖式组装方式,也叫做整体拼装这种方式首先对每个模块分别进行模块测试然后再把所有模块组装在一起进行全程序测试最终得到要求的软件系统缺点:发现错误难以诊断定位.又称“莽撞测试”增殖式组装方式这种组装方式又称渐增式组装首先对一个个模块进行模块测试,然后将这些模块逐步组装成较大的系统从一个模块开始,测一次添加一个模块,边组装边测试,以发现与接口相联系的问题。通过增殖逐步组装成为要求的软件系统。

自顶向下组装方式这种组装方式将模块按系统程序结构,沿控制层次自顶向下进行组装。自顶向下的增殖方式在测试过程中较早地验证了主要的控制和判断点。选用按深度方向组装的方式,可以首先实现和验证一个完整的软件功能。自顶向下组装方式ADBE模块测试结合顺序CF深度优先:A、B、E、C、D、F广度优先:A、B、C、D、E、F自顶向下组装方式A测试AS2S1S3A加入BS2BS3S4A加入ES2BS3EA加入CCBS3E加入DCBDE加入FCBDEAAFS5自顶向下结合方式举例(深度优先)自底向上组装方式这种组装的方式是从程序模块结构的最底层的模块开始组装和测试。因为模块是自底向上进行组装,对于一个给定层次的模块,它的子模块(包括子模块的所有下属模块)已经组装并测试完成,所以不再需要桩模块。在模块的测试过程中需要从子模块得到的信息可以直接运行子模块得到。自底向上组装方式ACBDFEEd1Cd3Fd4Bd2EDd5F自底向上组装方式McD1MaMbD2D3簇1簇2簇3

自顶向下自底向上优点

可在测试早期实现设计测试用例容易并验证系统主要功能不需驱动模块不需桩模块缺点

需桩模块只有到最后程序才能作为一个整体混合集成测试方法衍变的自顶向下的增殖测试首先对输入/输出模块和引入新算法模块进行测试再自底向上组装成为功能相当完整且相对独立的子系统然后由主模块开始自顶向下进行增殖测试混合集成测试方法自底向上

自顶向下的增殖测试首先对含读操作的子系统自底向上直至根结点模块进行组装和测试;然后对含写操作的子系统做自顶向下的组装与测试。回归测试这种方式采取自顶向下的方式测试被修改的模块及其子模块;将这一部分视为子系统,再自底向上测试。关键模块问题在组装测试时,应当确定关键模块,对这些关键模块及早进行测试。关键模块的特征:

①满足某些软件需求;

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

较复杂、较易发生错误;

④有明确定义的性能要求。确认测试确认测试又称有效性测试。任务是验证软件的功能和性能及其它特性是否与用户的要求一致。对软件的功能和性能要求在软件需求规格说明书中已经明确规定。它包含的信息就是软件确认测试的基础。确认测试有效性测试软件配置审查管理机构裁决选择测试人员软件计划用户文档开发文档源程序文本支持环境交用户运行维护测试报告软件配置构造测试用例实际运行测试专家鉴定会有效性测试有效性测试是在模拟的环境(可能就是开发的环境)下,运用黑盒测试的方法,验证被测软件是否满足需求规格说明书列出的需求。首先制定测试计划,规定要做测试的种类。还需要制定一组测试步骤,描述具体的测试用例。有效性测试通过实施预定的测试计划和测试步骤,确定软件的特性是否与需求相符;所有的文档都是正确且便于使用;同时,对其它软件需求,例如可移植性、兼容性、出错自动恢复、可维护性等,也都要进行测试。有效性测试在全部软件测试的测试用例运行完后,所有的测试结果可以分为两类:测试结果与预期的结果相符。这说明软件的这部分功能或性能特征与需求规格说明书相符合,从而这部分程序被接受。测试结果与预期的结果不符。这说明软件的这部分功能或性能特征与需求规格说明不一致,因此要为它提交一份问题报告。软件配置复查软件配置复查的目的是保证软件配置的所有成分都齐全;各方面的质量都符合要求;具有维护阶段所必需的细节;而且已经编排好分类的目录。应当严格遵守用户手册和操作手册中规定的使用步骤,以便检查这些文档资料的完整性和正确性。验收测试在通过了系统的有效性测试及软件配置审查之后,就应开始系统的验收测试。验收测试是以用户为主的测试。软件开发人员和QA(质量保证)人员也应参加。由用户参加设计测试用例,使用生产中的实际数据进行测试。验收测试在测试过程中,除了考虑软件的功能和性能外,还应对软件的可移植性、兼容性、可维护性、错误的恢复功能等进行确认。确认测试应交付的文档有:确认测试分析报告最终的用户手册和操作手册项目开发总结报告。

α测试和β测试在软件交付使用之后,用户将如何实际使用程序,对于开发者来说是无法预测的。α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。

α测试和β测试α测试的目的是评价软件产品的功能、局域化、可使用性、可靠性、性能和支持。尤其注重产品的界面和特色。α测试可以从软件产品编码结束之时开始,或在模块(子系统)测试完成之后开始,也可以在确认测试过程中产品达到一定的稳定和可靠程度之后再开始。

α测试和β测试β测试是由软件的多个用户在实际使用环境下进行的测试。这些用户返回有关错误信息给开发者。测试时,开发者通常不在测试现场。因而,β测试是在开发者无法控制的环境下进行的软件现场应用。在β测试中,用户记下遇到的所有问题,包括真实的以及主观认定的,定期向开发者报告。

α测试和β测试只有当α测试达到一定的可靠程度时,才能开始β测试。β测试主要衡量产品的功能、可使用性、可靠性、性能和支持。β测试处在整个测试的最后阶段,产品的所有手册文本也应该在此阶段完全定稿。由于它处在整个测试的最后阶段,不能指望这时发现主要问题。

系统测试系统测试,是将通过确认测试的软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、某些支持软件、数据和人员等其它系统元素结合在一起,在实际运行环境下,对计算机系统进行一系列的组装测试和确认测试。系统测试的目的在于通过与系统的需求定义作比较,发现软件与系统的定义不符合或与之矛盾的地方。系统测试的种类功能测试 功能测试是在规定的一段时间内运行软件系统的所有功能,以验证这个软件系统有无严重错误。可靠性测试 如果系统需求说明书中有对可靠性的要求,则需进行可靠性测试。 ①平均失效间隔时间是否超过规定时限?

②因故障停机的时间在一年中应不超过多少时间?系统测试的种类强度测试 强度测试是要检查在系统运行环境不正常乃至发生故障的情况下,系统可以运行到何种程度的测试。例如:把输入数据速率提高一个数量级,确定输入功能将如何响应。设计需要占用最大存储量或其它资源的测试用例进行测试。设计出在虚拟存储管理机制中引起“颠簸”的测试用例进行测试。系统测试的种类设计出会对磁盘常驻内存的数据过度访问的测试用例进行测试。强度测试的一个变种就是敏感性测试。在程序有效数据界限内一个小范围内的一组数据可能引起极端的或不平稳的错误处理出现,或者导致极度的性能下降的情况发生。此测试用以发现可能引起这种不稳定性或不正常处理的某些数据组合。系统测试的种类性能测试性能测试检查系统是否满足在需求说明书中规定的性能。特别是对于实时系统或嵌入式系统。性能测试常常需要与强度测试结合起来进行,并常常要求同时进行硬件和软件检测。通常,对软件性能的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论