软件测试.ppt

上传人(卖家):saw518 文档编号:5834279 上传时间:2023-05-11 格式:PPT 页数:88 大小:359.73KB
下载 相关 举报
软件测试.ppt_第1页
第1页 / 共88页
软件测试.ppt_第2页
第2页 / 共88页
软件测试.ppt_第3页
第3页 / 共88页
软件测试.ppt_第4页
第4页 / 共88页
软件测试.ppt_第5页
第5页 / 共88页
点击查看更多>>
资源描述

1、软件测试北京中科江南软件有限公司目录 CH1概述 CH2软件测试基础 CH3软件测试技术 CH4软件测试工具CH1概述 信息技术的飞速发展,使软件产品应用到社会的各个领域,软件产品的质量自然成为人们共同关注的焦点。不论软件的生产者还是软件的使用者,均生存在竞争的环境中,软件开发商为了占有市场,必须把产品质量作为企业的重要目标之一,以免在激烈的竞争中被淘汰出局。用户为了保证自己业务的顺利完成,当然希望选用优质的软件。质量不佳的软件产品不仅会使开发商的维护费用和用户的使用成本大幅增加,还可能产生其他的责任风险,造成公司信誉下降,继而冲击股票市场。在一些关键应用(如民航订票系统、银行结算系统、证券交

2、易系统、自动飞行控制软件、军事防御和核电站安全控制系统等)中使用质量有问题的软件,还可能造成灾难性的后果。CH1概述 软件危机曾经是软件界甚至整个计算机界最热门的话题。为了解决这场危机,软件从业人员、专家和学者做出了大量的努力。现在人们已经逐步认识到所谓的软件危机实际上仅是一种状况,那就是软件中有错误,正是这些错误导致了软件开发在成本、进度和质量上的失控。有错是软件的属性,而且是无法改变的,因为软件是由人来完成的,所有由人做的工作都不会是完美无缺的。问题在于我们如何去避免错误的产生和消除已经产生的错误,使程序中的错误密度达到尽可能低的程度。给软件带来错误的原因很多,具体地说,主要有如下几点:、

3、交流不够、交流上有误解或者根本不进行交流在应用应该做什么或不应该做什么的细节(应用的需求)不清晰的情况下进行开发。、软件复杂性图形用户界面(GUI),客户/服务器结构,分布式应用,数据通信,超大型关系型数据库以及庞大的系统规模,使得软件及系统的复杂性呈指数增长,没有现代软件开发经验的人很难理解它。、程序设计错误象所有的人一样,程序员也会出错。、需求变化需求变化的影响是多方面的,客户可能不了解需求变化带来的影响,也可能知道但又不得不那么做。需求变化的后果可能是造成系统的重新设计,设计人员的日程的重新安排,已经完成的工作可能要重做或者完全抛弃,对其他项目产生影响,硬件需求可能要因此改变,等等。如果

4、有许多小的改变或者一次大的变化,项目各部分之间已知或未知的依赖性可能会相互影响而导致更多问题的出现,需求改变带来的复杂性可能导致错误,还可能影响工程参与者的积极性。、时间压力软件项目的日程表很难做到准确,很多时候需要预计和猜测。当最终期限迫近和关键时刻到来之际,错误也就跟着来了。、自负大意的态度:没问题这事情很容易几个小时我就能拿出来太多不切实际的没问题,结果只能是引入错误。、代码文档贫乏贫乏或者差劲的文档使得代码维护和修改变的异常艰辛,其结果是带来许多错误。事实上,在许多机构并不鼓励其程序员为代码编写文档,也不鼓励程序员将代码写得清晰和容易理解,相反他们认为少写文档可以更快的进行编码,无法理

5、解的代码更易于工作的保密(“写得艰难必定读的痛苦”)。、软件开发工具可视化工具,类库,编译器,脚本工具,等等,它们常常会将自身的错误带到应用软件中。就象我们所知道的,没有良好的工程化作为基础,使用面向对象的技术只会使项目变得更复杂。为了更好地解决这些问题,软件界做出了各种各样的努力。人们曾经认为更好的程序语言可以使我们摆脱这些困扰,这推动了程序设计语言的发展,更多的语言开始流行,为了使程序更易于理解开发了结构化程序设计语言,如PL/1,PASCAL等;为了解决实时多任务需求开发了结构化多任务程序设计语言,如Modula,Ada等;为了提高重用性开发了面向对象的程序设计语言,如Simlasa等;

6、为了避免产生不正确的需求理解,开发形式化描述语言,如HAL/S等,这使得建立基于自然语言的描述成为可能,人们以形式化语言来描述需求;为了支持大型数据库应用,开发了可视化工具,如VisualStudio、PowerBuilder等。程序语言对提高软件生产效率起到了一定的积极作用,但它对整个软件质量尤其是可靠性的影响,与其他因素相比作用较小。事实上,对于软件来讲,还没有象银弹那样的东西。不论采用什么技术和什么方法,软件中仍然会有错。采用新的语言、先进的开发方式、完善的开发过程,可以减少错误的引入,但是不可能完全杜绝软件中的错误,这些引入的错误需要测试来找出,软件中的错误密度也需要测试来进行估计。测

7、试是所有工程学科的基本组成单元,是软件开发的重要部分。自有程序设计的那天起测试就一直伴随着。统计表明,在典型的软件开发项目中,软件测试工作量往往占软件开发总工作量的40以上。而在软件开发的总成本中,用在测试上的开销要占30到50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的成本比例也许会有所降低,但实际上维护工作相当于二次开发,乃至多次开发,其中必定还包含有许多测试工作。因此,测试对于软件生产来说是必需的,问题是我们应该思考“采用什么方法、如何安排测试?”返回主目录CH2软件测试基础 软件测试与软件质量 软件测试目的 软件测试原则 软件测试分类 软件测试方法 软件测试模型 软件测试生

8、命周期测试策略 软件失效分类与管理2.1软件测试与软件质量 软件测试的经典定义是:在规定的条件下对程序进行操作,以发现错误,对软件质量进行评估的过程。软件测试对象:软件是由文档、数据以及程序组成的,那么软件测试应该是对软件形成过程中的文档、数据以及程序进行的测试,而不仅仅是对程序进行的测试2.1软件测试与软件质量 1991年软件产品质量评价国际标准ISO9126中定义软件质量如下:软件满足规定或潜在用户需求特性的总和 1999年软件产品评价国际标准ISO14598中软件质量定义为:软件特性的总和、软件满足规定或潜在用户需求特性的能力 2001年软件产品质量国际标准ISO9126定义的软件质量包

9、括“内部质量”、“外部质量”和“使用质量”三部分。即:软件满足规定或潜在用户的能力要从软件在内部、外部和使用中的表现来衡量2.1软件测试与软件质量 质量保证(QA):质量保证的主要工作是采用“全面质量管理”和“过程改进”的原理开展工作,进行软件周期管理以及验证软件是否满足规定的质量和用户的需求;所关注的是软件质量的检查和测量。主要着眼于开发活动中的过程、步骤和产物。软件测试:主要工作是执行软件,对过程中的产物-文档和源代码进行走查,运行软件,找出问题,报告质量。关心的不是过程的活动,而是对过程中的产物及开发出的软件进行剖析,找出问题并进行评估。软件测试人员的一项重要任务是提高软件质量,但不等于

10、说软件测试人员就是软件质量保证人员,软件质量保证和软件测试是软件质量工程的两个不同层面的工作,测试是质量保证中的一个重要环节2.2软件测试目的早期定义:软件测试的目的就是为了寻找错误。以最少的人力、物力和时间,找出软件中潜在的各种错误和缺陷,通过修正错误和缺陷来提高软件质量,回避软件发布后由于潜在的软件缺陷和错误造成的隐患所带来的商业风险软件测试是以评价一个程序或系统属性为目标的活动,测试是对软件质量的度量与评估,以验证软件的质量满足用户的需求的程度为用户选择与接受软件提供有力的证据通过分析错误产生的原因可以帮助发现当前开发工作所采用的软件国产的缺陷,帮助进行软件过程改进;通过对测试结果的分析

11、整理,可以修正软件开发规则,为软件可靠性分析提供依据通过最终的验收测试,可以证明软件满足了用户的需求,树立人们使用软件的信心2.3软件测试原则 所有的软件测试都应追溯到用户需求 应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭 完全测试是不可能的,测试需要终止 测试无法显示软件潜在的缺陷 充分注意测试中的群集现象 程序员应避免检查自己的程序 尽量避免测试的随意性2.4软件测试分类按开发阶段划分:单元测试、集成测试、系统测试、确认测试和验收测试单元测试:又称模块测试,是针对软件设计的最小单位程序模块进行正确性检验的测试工作。其目的在于检查每个程序单元能否正确实现详细设计说明中的模块功能

12、、性能、接口和设计约束等要求,发现各模块内部可能存在的各种错误。集成测试:又叫组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件的接口关系,逐步集成为符合概要设计要求的程序部件或整个系统确认测试:是通过检验和提供客观证据,证实软件是否满足特定预期用途的需求。确认测试是检测与证实软件是否满足软件需求规格说明书中规定的要求。系统测试:是为验证和确认系统是否达到其原始目标,而对集成的硬件和软件系统进行的测试。系统测试是在真实或模拟系统运行的环境下,检查完整的程序系统能否和系统正确配置、连接,并满足用户需求。验收测试:按照项目任务书或合同、供需双方约

13、定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。2.4软件测试分类按照测试实施组织划分:可分为开发方测试、用户测试、第三方测试。开发方测试:通常也叫验证测试或测试。开发方在软件开发完成以后,通过自我检测和验证来提供客观证据,证实软件的实现是否满足规定的需求。用户测试(测试):在用户的应用环境下,用户通过运行和使用软件,检测与核实软件实现是否符合自己预期的要求。通常情况用户测试不是指用户的验收测试,而是指用户的使用性测试,由用户找出软件的应用过程中发现的软件的缺陷与问题,并对使用质量进行评价第三方测试:介于软件开发方和用户方之间的测试组织的测试。第三方测试也称独立测试。软件

14、质量工程强调开展独立验证和确认(IV&V)活动。IV&V是由在技术、管理和财务上与开发组织具有规定程度独立的组织执行验证和确认过程。故第三方测试是由在技术、管理和财务上与开发方和用户方相对独立的组织进行的软件测试。一般情况下是在模拟用户真实应用环境下,进行软件确认测试。2.4软件测试分类按照测试技术划分:白盒测试、黑盒测试、灰盒测试。白盒测试:也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试,检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按照预定要求正确工作。黑盒测试:也称功能测试,它是通过测试来检测每个功能是否都能正常使用。黑盒测试不考虑程序内部结构

15、与内部特性,着眼于外部结构,针对软件界面和软件功能进行测试,考察程序是否能适当地接收输入数据而产生正确的输出信息,确认程序功能满足需求。灰盒测试:介于白盒和黑盒之间的测试,结合了白盒测试和黑盒测试的要素,灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但不会像白盒测试这样详细和完整,只是通过一些表征性的现象、事件和标志来判断内部的运行状态。灰盒测试考虑了用户端、特定的系统知识和操作环境。在系统组件的协同性环境中评价应用软件的设计。2.5软件测试方法 静态测试:是指不运行程序,通过人工对程序和文档进行分析和检查;包括:代码走查、符号执行、需求确认等。动态测试:是指通过人工或使用工具运行程序

16、进行检查、分析程序的执行状态和程序的外部表现。2.6软件测试过程模型 V模型 W模型 H模型 X模型 前置模型 测试模型的使用用户需求需求分析与系统设计详细设计验收测试概要设计编码确认测试与系统测试集成测试单元测试软件测试V模型 V模型是最广为人知的模型,尽管很多富有实际经验的测试人员还是不太熟悉V模型,或者其它其它的模型。V模型已存在了很长时间,和瀑布开发模型有着一些共同的特性,由此也和瀑布模型一样地受到了批评和质疑。V模型中的过程从左到右,描述了基本的开发 过程和测试行为。V模型的价值在于它非常明确地标明了测试过程中存在的不同级别,并且清楚地描述了这些测试阶段和开发过程期间各阶段的对应关系

17、。局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才能发现.详细设计验收测试设计确认与系统测试设计集成测试设计单元测试设计编码概要设计需求分析与系统设计用户需求集成实施交付单元测试集成测试确认测试系统测试验收测试软件测试W模型V模型的局限性在于没有明确地说明早期的测试,无法体现“尽早地和不断地进行软件测试”的原则。在V模型中增加软件各开发阶段应同步进行的测试,演化为W 模型(如下图)。在模型中不难看出,开发是“V”,测试是与此并行的“V”。基于“尽早地和不断地进行软件测试”的原则,在软件的需求和设计阶段的测试活 动应遵循IEEE1012-1998软件验证与确

18、认(V&V)的原则。W模型由Evolutif公司提出,相对于V模型,W模型更科学。W模型是V模型的发展,强调的是测试伴随着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。测试与开发是同步进行的,从而有利于尽早地发现问题。W模型也有局限性。W模型和V模型都把软件的开发视为需求、设计、编码等一系列串行的活动,无法支持迭代、自发性以及变更调整。程序片段1测试设计工具配置执行测试编码完成执行测试执行测试执行测试工具配置测试设计程序片段n测试设计工具配置集成1n探索性测试封版软件测试X模型 X模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过

19、频繁的交接,通过集成最终合成为可执行的程序。X模型的左边描述的是针对单独程序片段所进行的相互分离的编码和测试,此后将进行频繁的交接,通过集成最终成为可执行的程序,然后再对这些可执 行程序进行测试。己通过集成测试的成品可以进行封装并提交给用户,也可以作为更大规模和范围内集成的一部分。多根并行的曲线表示变更可以在各个部分发生。由图中可见,X模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。但 这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。测试准备测试执行测试就绪点测试流程其他流程(如设计流程)软

20、件测试H模型H模型中,软件测试过程活动完全独立,贯穿于整个产品的周期,与其他流程并发地进行,某个测试点准备就绪时,就可以从测试准备阶段进行到测试执行阶段。软件测试可以尽早的进行,并且可以根据被测物的不同而分层次进行。这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。图中标注的其它流程可以是任意的开发流程,例如设计流程或者编码流程。也就是说,只要测试条件成熟了,测试准备活动完成了,测试执行活动就可以进行了。H模型揭示了一个原理:软件测试是一个独立的流程,贯穿产品整个生命周期,与其他流程并发地进行。H模型指出软件测试要尽早准备,尽早执行。不同的测试活动可以是按照某个次序先后进行的,但

21、也可能是反复的,只要某个测试达到准备就绪点,测试执行活动就可以开展可行性分析可行性报告业务需求说明系统分析基于测试的需求验收标准验收测试计划执行验收测试运行与维护系统设计设计文档技术测试计划正式走查黑/白盒单元测试集成测试系统测试专项测试独立(QA)测试开发编码调试非正式走查前置测试模型2.7软件测试生命周期测试策略 开发与测试 软件测试策略需求分析概要设计详细设计编码单元测试确认测试系统测试需求规格说明书概要设计说明书详细设计说明书源程序代码单元测试集成测试确认测试软件测试与软件开发过程的关系被测模块单元测试通过测试的模块被测模块单元测试被测模块单元测试集成测试系统测试确认测试设计信息系统其

22、他元素软件需求已集成的软件软件测试的过程软件配置测试工具测试配置测试结果分析排错可靠性分析回归测试测试结果预期结果出错率数据改正后的软件预测可靠性测试信息流错误2.8软件失效分类与管理 软件失效分类 缺陷与错误分布 缺陷与错误严重性和优先级 软件错误跟踪管理软件失效分类 软件错误:在软件生存期间内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。软件缺陷:软件缺陷是存在于软件之中的那些不希望或不可接受的偏差(如少一个标点符号,多一个语句等)。其结果是软件运行于某一特定条件时出现软件故障,这时称软件缺陷被激活。软件故障:软件故障是软件运行过程中出现的一种不希望或不可接受的内部状态。此时若

23、无适当措施加以及时处理,便产生软件失效。软件失效:软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。缺陷与错误严重性和优先级 严重性:表示软件缺陷所造成的危害的恶劣程度 1.致命:系统崩溃、数据丢失、数据毁坏 2.严重:操作性错误、错误结果、遗漏功能 3.一般:小问题、错别字、UI布局、罕见故障 4.建议:不影响使用的瑕疵或更好的实现缺陷与错误严重性和优先级 优先级:表示修复缺陷的重要程度与次序 1.最高优先级:立即修复,停止进一步测试。2.次高优先级:在产品发布之前必须修复。3.中等优先级:如果时间允许,应该修复。4.最低优先级:可能会修复,但是不修复也能发布。软件错误跟踪管理

24、 错误跟踪管理:为了正确地跟踪每个软件错误的处理过程,通常将软件测试发现的每个错误作为一条记录输入指定的错误跟踪管理系统 常用错误跟踪管理软件:TrackRecord、Bugzilla、Bugfree、BMS等 BUG记录信息:应包括测试软件名称、测试版本号、测试人名称、测试事件、测试软件和硬件配置环境、发现软件错误的类型、错误的严重等级、详细步骤、必要的附图及测试注释。BUG处理信息:主要包括4项:处理者姓名、处理时间、处理步骤、错误记录的当前状态。错误管理流程 跟踪管理过程参考BUGFREE2.0使用帮助http:/ 为了保证错误处理的正确性,需要有丰富测试经验的人员验证发现的错误是否是真

25、正的错误,书写的测试步骤是否准确,可以重复。每次对错误的处理都要保留处理信息,包括处理姓名、时间、处理方法、处理意见、BUG状态。拒绝或延期处理错误不能由程序员单方面决定,应该由项目经理、研发经理和测试经理共同决定 错误修复后必须由报告错误的测试人员验证,确认已经修复后,才能关闭错误。加强测试人员与程序员之间的交流,对于某些不能重复的错误,可以请测试人员补充详细的测试步骤和方法,以及必要的测试用例。返回主目录CH3软件测试技术 黑盒测试案例设计技术 非功能性测试测试要点3.1黑盒测试案例设计 测试用例及使用测试用例的好处 等价类划分法 边界值分析法 因果图和判定表 场景法 错误推测法 测试用例

26、设计方法的选取规则测试用例及使用测试用例的好处为什么要使用测试用例:因为我们不可能进行穷举测试,为了节省时间和资源、提高测试效率,必须要从数量极大的可用测试数据中精心挑选出具有代表性或特殊性的测试数据来进行测试。在具体的测试实施之前,我们需要明白我们测试什么,怎么测试等,通过测试用例指导测试的实施。测试用例设计就是将软件测试的行为活动,做一个科学化的组织归纳。使用测试用例的好处主要体现在以下几个方面在开始测试之前设计好测试用例,可以避免盲目测试并提高测试效率测试用例的使用令软件测试的重点突出、测试目的明确在软件版本更新后只需修正少部分用例便可开展测试工作,降低工作强度,缩短项目周期功能模块的通

27、用化和复用化使软件易于开发,而测试用例的通用化和复用化会使软件测试易于开展,并随着测试用例的不断精化其效率也不断攀升。等价类划分法 等价类划分法是一种典型的黑盒测试方法,它能将不能穷举的测试过程进行合理分类,从而保证设计出来的测试用例具有完整性和代表性。等价类划分是将程序的输入域或输出域的不同区间划分为不同的数据类,在每一个数据类中选取一个代表性数据作为测试用例的方法 举例:设计测试用例,来实现一个对所有实数进行开平方运算(y=sqrt(x))的程序的测试。分析:开平方运算只对非负实数有意义,可将输入域X进行如此划分:正实数,0和负实数。在选定的划分的输入域中取值作为测试用例,如:1.44,0

28、和-2.3。等价类分类 有效等价类:指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用它可以检验程序是否实现了预期的功能和性能 无效等价类:指对于程序的规格说明来说是不合理的、无意义的输入数据构成的集合。利用它可以检验程序对于无效数据的处理能力 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。等价类划分的原则 在输入条件规定了取值范围或值的个数的情况下,可以确立一个有效等价类和两个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。在规定了数据的一组值(N个),并

29、且程序要对每一个输入值分别处理的情况下,可确立N个有效等价类和一个无效等价类。在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类和若干无效等价类。在确知已划分的等价类中,各元素在程序处理中的方式不同的情况下,则应将该等价类进一步划分为更小的等价类。等价类划分法测试用例设计原则 分析输入、输出。划分有效等价类和无效等价类,为每个等价类规定一个唯一的编号。设计测试用例,使其尽可能多的覆盖尚未覆盖的有效等价类。重复此步,直到所有有效等价类均被测试用例覆盖。设计测试用例,使其只覆盖一个无效等价类。重复这一步直到所有无效等价类被覆盖。等价类划分法实例 在Windows中的另存为界面输入文件名,

30、使用等价类分析法创建测试用例 分析:Windows文件名可以包含除了“、”、“/”、“”、“.”、“?”“”和“”以外的任意字符。文件名长度可以是1255个字符。等价类划分法实例等价类表测试用例等价类划分法实例 一个程序读入三个整数,把这3个数值看作三角形的三条边的长度值。这个程序打印出信息,说明这个三角形是不等边的、等腰的或者等边的。分析:设三角形的三条边分别为A、B、C。如果它们能构成三角形的话,必须满足:A0,B0,C0,且A+BC,B+CA,A+CB。如果是等腰三角形,还需满足:A=B或B=C或C=A。如果是等边三角形,还需满足:A=B=C。等价类划分法实例等价类表等价类划分法实例生成

31、测试用例边界值分析法 边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。通常边界值分析法是作为对等价类划分法的补充,这种情况下,其测试用例来源于等价类的边界。为什么使用边界值分析法?无数的测试实践表明,大量的故障往往发生在输入定义域或输出值域 的边界上,而不是在内部。因此,针对各种边界情况设计用例,通常会取得很好的测试效果。怎样用边界值分析法设计测试用例?1.首先确定边界情况。通常输入或输出等价类的边界就是应该着重于测试的边界状况。2.选取正好等于、刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值。常见的边界值 对16bit的整数而言32767和-327

32、68是边界 屏幕上光标在最左上、最右下位置 报表的第一行和最后一行 数组元素的第一个和最后一个 循环的第0次、第1次和倒数第2次、倒数第1次边界值分析ABCDAX B,C Y Dyx确立边界值的原则如果输入条件或输出条件规定了值的范围并且有效条件包括了值的边界,可分别对边界和略超出边界取值。例如:数据范围是1 X 50 正整数 边界值则取:1,50,0,51。如果输入条件或输出条件规定了值的范围并且有效条件不包括值的边界,可分别对边界和略处于边界内取值 例如:数据范围是1X50 正整数 边界值取:1,50,2,49。如果输入或输出域是个有序的集合(如顺序文件、表格等),应选取有序集的第一个和最

33、后一个元素以及集合外但靠近集合的元素作为边界,例如:输入文件名介于file101file120之间 边界值取:file100,file101,file120,file121。边界值分析 边界值分析使用与等价类划分法相同的划分,只是边界值分析假定错误更多地存在于划分的边界上,因此在等价类的边界上以及两侧的情况设计测试用例 例:测试计算平方根的函数 输入:实数 输出:实数 规格说明:当输入一个0或比0大的数的时候,返回其正平方根;当输入一个小于0的数的时候,显示错误信息:“平方根非法-输入值小于0”并返回0;边界值分析等价类划分:可以考虑做如下划分:输入:(a):=0;输出:(A):=0,(B):

34、error。测试用例有两个:输入4,输出2。对应a和A;输入-10,输出error。对应b和B;边界值分析 划分b的边界为0和最大正实数;划分a的边界为最小负实数和0。由此得到如下测试用例:输入最小负实数;输入绝对值很小的负数;输入0;输入绝对值很小的正数;输入最大正实数;边界值分析测试用例设计方法 采用边界值分析测试的基本思想是:故障往往出现在输入变量的边界值附近。因此边界值分析法利用输入变量的最小值、略大于最小值、输入值域的任意值、略小于最大值和最大值来设计测试用例。在边界值分析法中获取测试用例的方法是:1.每次保留程序中一个变量,让其余的变量取正常值,被保留的变量依次取最小值、略大于最小

35、值、输入值域的任意值、略小于最大值和最大值。2.对每个变量执行步骤1。对于健壮型边界值分析,还要加入略小于最小值和略大于最小值的情况边界值分析设计测试用例 有二元函数f(x,y),其中x1,12,y 1,31。则采用边界值分析法设计的测试用例是:,有函数f(x,y,z),其中x10,20,y40,50,z80,90写出该函数采用边界值分析法设计的测试用例。因果图法 产生背景:等价类划分法和边界值分析法都是着重考虑输入条件,但没有考虑输入条件的各种组合、输入条件之间的相互制约关系。这样虽然各种输入条件可能出错的情况已经测试到了,但多个输入条件组合起来可能出错的情况却被忽视了。因果图法能够帮助测试

36、人员按照一定步骤,高效率的开发测试用例,以检测程序输入条件的各种组合情况,它是将自然语言转化为形式语言规格说明的一种严格方法,可以指出规格说明存在的不完整性和二义性。因果图法 因果图法是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。它适合于检查程序输入条件的各种组合情况。因果图法步骤:分析需求规格说明书描述中的因果关系。找出原因与结果、原因与原因之间的对应关系,画出因果图 在因果图上标记约束或限制条件 把因果图转化为判定表 将判定表中的每一列拿出来设计测试用例因果关系表示法 因果图中使用4种因果关系符号来表达因果关系:c1e1c2e1c1e1c3c2c1e1c1恒等非或与因果图

37、中的4种基本关系:在因果图的基本符号中,图中的左结点ci表示输入状态(原因),右结点ei表示输出状态(结果)。Ci与ei取值0或1,0表示某状态不出现,1表示某状态出现。恒等:若原因出现,则结果出现;若原因不出现,则结果不出现。c1为1,则e1也为1;否则e1为0。非:若原因出现则结果不出现;若原因不出现,则结果出现。若c1为1,则e1为0;否则e1为1。或:若几个原因中有一个出现,则结果出现;若几个原因都不出现,则结果不出现。若c1或c2或c3为1,e1为1;否则e1为0。与:若几个原因都出现,则结果出现;若其中有一个原因不出现,则结果不出现。若c1和c2均为1,e1为1;否则e1为0。因果

38、图中的约束:EabaaaabbbbcRIOM 输入状态之间、输出状态之间可能存在某些依赖关系,称为“约束”。对于输入条件之间的约束有E、I、O、R四种;对于输出条件的约束只有M一种。E约束(互斥):输入状态a,b最多有一个成立,不能同时成立。I约束(包含):输入状态a,b,c至少有一个必须成立。O约束(唯一):输入状态a,b必须有一个且仅有一个成立。R约束(要求):当输入状态a成立时,输入状态b也必须成立。M约束(屏蔽):当输入状态a成立时,输出结果b一定不成立;a不成立时,b的结果不定。因果图法生成测试用例的步骤:1.分析规格说明中哪些是原因,哪些是结果,并给每个原因和结果赋予一个标识符。2

39、.分析规格说明中的语义,找出原因与结果之间、原因与原因之间的关系,根据这些关系画出因果图。3.由于语法或环境限制,有些原因与原因之间、原因与结果之间的组合情况不可能出现。在因果图上用记号表明约束限制条件。4.把因果图转换为判定表。5.根据判定表中的每一个列设计测试用例。判定表 在一些数据处理问题中,某些操作依赖多个逻辑条件的取值。处理这类问题的一个非常有力的分析和表达工具是判定表。一些软件的功能需求可用判定表表达的非常清楚,在检验程序的功能时判定表也就成为一个非常有力的工具判定表 通常由4部分组成:条件桩:列出了问题的所有条件。通常认为列出的条件的次序无关紧要。条件项:列出针对它所列条件的取值

40、,在所有可能情况下的真假值。动作桩:列出了问题规定可能采取的操作。这些操作的排列顺序没有约束。动作项:列出在条件项的各种取值情况下应该采取的动作 规则:任何一个条件组合的特定取值极其相应要执行的操作,在判定表中贯穿条件项的一列就是一条规则。判定表中列出多少组条件取值,也就有多少条规则,条件项和动作项既有多少列。判定表建立步骤 判定表的建立应该依据软件规格说明,步骤如下:1.确定规则的个数。假如有N个条件,每个条件有两个取值,固有2n种规则。2.列出所有的条件桩和动作桩。3.填入条件项。4.填入动作项。5.简化。合并相似规则或者相同动作案例 案例1:第一列字符必须是#或*,第二列字符必须是一个数

41、字,在此情况下进行文件的修改。但如果第一列字符不正确,则给出信息L;如果第二列字符不是数字,则给出信息M。解题步骤:1.原因:c1第一列字符是#;c2第一列字符是*;c3第二列字符是一个数字;10第一列字符是#或者是*。场景法 现在的软件几乎都是用是事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引用到测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。用例场景用来描述流经用例的路径,从用例开始到结束遍历这条路径上所有基本流和备选流。根据左图所示,可以确定以下

42、不同的用例场景:场景1:基本流;场景2:基本流,备选流1;场景3:基本流,备选流1,备选流2;场景4:基本流,备选流3;场景5:基本流,备选流3,备选流1;场景6:基本流,备选流3,备选流1,备选流2;场景7:基本流,备选流4;场景8:基本流,备选流3,备选流4.ATM例子基本流:前提:ATM处于准备就绪状态 步骤1:准备提款,插入银行卡;步骤2:验证银行卡:ATM读取银行卡中的账户代码,并验证是否有效;步骤3:输入密码:ATM要求输入密码,验证账户和密码;步骤4:ATM选项:选择提款服务;步骤5:输入金额:选择提取的金额;步骤6:出钞;步骤7:打印收据;步骤8:退出银行卡;备选流1:银行卡无

43、效;备选流2:ATM内没有现金;备选流3:ATM内现金不足;备选流4:密码有误;备选流5:账户不存在/类型错误;备选流6:账面金额不足。对于7个场景中的每一个场景确定测试用例测试用例包含测试用例ID,场景/条件,测试用例中设计的所有数据元素和预期结果等项目。首先确定执行用例场景所需的数据元素,然后构建矩阵,最后要确定包含执行场景所需的适当条件的测试用例。在右侧矩阵中:V表示这个条件必须是有效的才可以执行的基本流;I表示这种条件下将激活所需备选流;n/a表示这个条件不适用于测试用例。错误推测法 错误推测法是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例错误推测法基本思

44、想 列举出程序中所有可能有的错误和容易发生错误的特殊情况来设计测试用例 例如:以前测试曾出现过错误的地方,包括单元测试、集成测试、系统测试、前几次回归测试 输入数据的问题;如是否可以为空,是否可以有特殊字符,是否可以小于0,等于0等。一些问题的范围或边界。测试用例设计方法的选择综合策略:1.首先进行等价类划分,包括输入条件和输出条件的等价划分,将无限测试变成有限测试,这是减少工作量和提高测试效率最有效的方法;2.在任何情况下都必须使用边界值分析法。经验表明,用这种方法设计出来的测试用例发现程序错误的能力最强;3.可以用错误推测法追加一些测试用例,这需要测试工程师的智慧和经验4.对照软件逻辑检查

45、已设计出的测试用例的逻辑覆盖程度。如果没有达到要求的覆盖标准,应当适当增补测试用例5.如果程序的功能说明中含有输入条件的组合情况,则一开始就可选用因果图法和判定表驱动法6.对于业务流清晰的系统,可以利用场景法贯穿整个测试案例过程,在案例中综合使用各种测试方法。非功能性测试测试要点 易用性测试 文档测试易用性测试安装测试 安装测试的易用性是安装测试的主要内容。安装测试测试事项:1.安装手册:需要对安装平台、安装过程和配置部分进行详细说明;2.安装的自动化程度:软件的安装程序尽量做到全自动化,尽可能的减少手动配置操作;3.安装选项和设置:对安装包不同的选项和设置进行测试,验证各种方案是否都能安装成

46、功;4.安装过程的中断测试:安装程序应具备记忆安装的功能,当安装过程被异常中断,恢复安装时支持从“断点”继续安装;5.安装顺序测试:安装软件的不同组成部分的先后顺序不同是否会导致安装失败;如果安装手册上未提及安装顺序,则需进行测试;6.多环境安装测试:标准配置,最低配置和笔记本电脑(高集成度特性)中。7.安装的正确性:进行简单的使用以验证安装的正确性;8.修复安装测试与卸载测试易用性测试功能易用性测试1.业务符合性:软件必须符合所服务的领域的业务逻辑。软件的界面风格、表格设计、业务流程、数据加密机制等必须符合相关的法律法规、业界标准规范以及使用人员的习惯;2.功能定制性:为了适应用户需求的不断

47、变化软件功能应当能够灵活定制。例如工资软件中部门结构和人员归属可以灵活调整。3.业务模块的集成度:一个系统之中业务模块之间有可能存在较紧密的关联。4.数据共享能力:一次输入,多处应用。5.约束性:软件需以向导或屏蔽无关操作的形式来限制用户的不合理操作。6.交互性:包括用户操作的可见性和系统对用户的反馈。7.错误提示:关键操作或数据删除前给出明确提示。易用性测试 用户界面测试1.软件界面要尽量符合现行规范和标准并在应用软件中保持一致。2.界面中元素的文字、颜色等信息是否与功能不一致;3.前景与背景色搭配是否合理协调,反差是不是太大;4.界面中的元素大小和布局是否协调;5.窗口的比例是否合适;6.标签信息的措辞是否一致;7.操作方法是否一致;8.快捷键在不同模块上的语义是否保持一致;9.界面元素、工具栏、统计检索和报表的可定制性;10.菜单项是否符合需求,菜单项的顺序和措辞是否合理;文档测试 文档测试 针对用户手册的测试1.准确地按照手册的描述使用程序。2.尝试每一条建议。3.检查每条陈述。4.查找容易误导用户的内容。返回主目录CH4软件测试工具 配置过程管理工具-TD 功能测试工具-WINRUNNER 性能测试工具-LOADRUNNER 数据库装载工具-DATAFACTOR返回主目录

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(软件测试.ppt)为本站会员(saw518)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|