




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件测试基础测试方法1第1页,共79页,2023年,2月20日,星期日第三章软件测试基本技术1软件测试技术概述2白盒测试技术3黑盒测试技术2第2页,共79页,2023年,2月20日,星期日1软件测试技术概述根据G.J.Myers观点--软件测试的目的:
软件测试是为了发现错误而执行程序的过程一个好的测试能够在第一时间发现程序中存在的错误一个好的测试是发现了至今尚未发现的错误的测试。软件测试是质量控制的重要手段,保证客户拿到或用户使用高质量的软件产品3第3页,共79页,2023年,2月20日,星期日1)软件测试方法分类根据测试对象在测试过程中是否发生状态变化:动态测试和静态测试根据对测试对象了解的程度(按哲学观点):黑盒测试和白盒测试4第4页,共79页,2023年,2月20日,星期日测试方法黑盒子和白盒子静态的和动态的文档、代码审查数据输入边界条件法等价划分、数据流程图状态变换图逻辑路径法5第5页,共79页,2023年,2月20日,星期日黑盒子和白盒子功能测试数据驱动测试结构测试逻辑驱动测试
客户需求事件驱动输入输出6第6页,共79页,2023年,2月20日,星期日2)黑盒测试法(black-boxtesting)概念:也称功能测试或数据驱动测试。不关心程序内部结构,用于验证产品所应具有的功能是否实现,每个功能是否都能正常使用,是否满足用户的要求。测试范围:针对程序接口和用户界面进行测试,只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息,并且保持外部信息的完整性。用途:主要用于软件确认测试。方法:等价类划分、边界值分析、错误推测法、因果图。7第7页,共79页,2023年,2月20日,星期日是否有不正确或遗漏了的功能;在接口上,能否正确地接受输入数据,能否产生正确的输出信息;访问外部信息是否满足要求;性能上是否满足要求;界面是否错误,是否不美观;初始化和终止错误。发现问题类型8第8页,共79页,2023年,2月20日,星期日3)白盒测试法(white-boxtesting)概念:也称结构测试或逻辑驱动测试。已知产品内部工作流程,清楚软件程序的结构和语句,按照程序内部的结构测试程序。要求对程序的结构特性做到一定程度的覆盖,对所有逻辑路径进行测试,并检验内部控制结构和数据结构是否有错。测试范围:测试程序内部的变量状态、逻辑结构、运行路径等,检验程序中的每条通路是否能按预定要求正确工作,检查程序内部动作或运行是否符合设计规格要求,所有内部成分是否按规定正常进行。用途:主要用于软件验证测试。方法:逻辑覆盖、循环覆盖和基本路径测试。9第9页,共79页,2023年,2月20日,星期日白盒测试原则和说明原则:保证每个模块中所有独立路径至少被使用一次;对所有逻辑值均测试为真值和假值;在上下边界及可操作范围内运行所有循环;检查内部数据结构以确保其有效性。说明:穷举路径测试绝不能查出程序违反了设计规范,即程序在实现一个不是用户需要的功能;穷举路径测试不可能查出程序中因遗漏路径而出错;穷举路径测试可能发现不了一些与数据相关的错误。10第10页,共79页,2023年,2月20日,星期日4)静态的和动态的测试主持人作者记录员列席人员内审员技术专业人员用户代表不正式正式互审
走读审查会议运行程序11第11页,共79页,2023年,2月20日,星期日静态测试概念:静态测试就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据,不需要对代码进行编译和仿真运行。测试范围:软件产品的设计规格说明书的审查,程序代码的阅读、审查等。方法:人工检测和计算机辅助静态分析手段进行检测。只进行特性分析。人工检测:人工审查或评审软件。偏重于编码风格、质量的检验。可有效发现逻辑设计和编码错误。计算机辅助静态分析:利用静态分析工具对被测程序进行特性分析,从程序中提取一些信息,以便检查程序逻辑的各种缺陷和可疑的程序构造。12第12页,共79页,2023年,2月20日,星期日动态测试概念:动态测试是通过观察代码运行时的动作来提供执行跟踪、时间分析,以及测试覆盖度方面的信息。它通过实际运行程序发现错误。测试范围:通过有效的测试用例,对应的输入/输出关系来分析被测程序的运行情况。13第13页,共79页,2023年,2月20日,星期日5)自动测试和随机测试手工模拟用户操作自动测试:通过工具自动执行软件的测试。随机测试:完全模拟客户进行随意的操作。14第14页,共79页,2023年,2月20日,星期日6)验证和确认(V&V)
Verification:Arewebuildingtheproductright?是否正确地构造了软件?即是否正确地做事,验证开发过程是否遵守已定义好的内容。验证产品满足规格设计说明书的一致性Validation:Arewebuildingtherightproduct?
是否构造了正是用户所需要的软件?即是否正在做正确的事。验证产品所实现的功能是否满足用户的需求15第15页,共79页,2023年,2月20日,星期日2白盒测试技术概念:
白盒测试也称为结构测试或逻辑驱动测试,把程序看作一个透明的盒子,测试程序的代码书写结构和逻辑问题。测试对象:源程序。检查内容:对程序模块的所有独立的执行路径至少要测试一次对所有逻辑判断,取真或假的两种情况至少要测试一次对程序进行边界检查检验内部数据结构的有效性。16第16页,共79页,2023年,2月20日,星期日白盒测试用例的设计方法逻辑覆盖:以程序的内部逻辑结构为基础,分为语句覆盖、判定覆盖、判定-条件覆盖、条件组合覆盖等基本路径测试:在程序控制流程的基础上,分析控制构造的环路复杂性,导出基本可执行路径集合,从而设计测试用例。白盒测试分类:静态测试和动态测试。17第17页,共79页,2023年,2月20日,星期日白盒测试用例注意事项由于测试路径可能非常多,以及时间和资源问题,选出足够多的路径测试由于深入到程序编码,通常开发人员协助测试人员书写白盒测试用例18第18页,共79页,2023年,2月20日,星期日1)静态测试静态测试技术:不运行被测试程序,对代码通过检查、阅读进行分析。三步曲:走查(WalkThrough)审查(Inspection)评审(Review)最常见的静态测试是找出源代码的语法错误。19第19页,共79页,2023年,2月20日,星期日编码的标准和规范标准:建立起来必须遵守的规则。规范:建议最佳做法,推荐更好方式。实施标准和规范的原因:可靠性。可读性和可维护性。可移植性。20第20页,共79页,2023年,2月20日,星期日(一)代码检查法代码检查法主要是通过桌面检查、代码审查和走查方式,对以下内容进行检查:检查代码和设计的一致性代码的可读性以及对软件设计标准的遵循情况代码逻辑表达的正确性代码结构的合理性程序中不安全、不明确和模糊的部分编程风格方面的问题等21第21页,共79页,2023年,2月20日,星期日(1)走查(WalkThrough)定义:采用讲解、讨论和模拟运行的方式进行的查找错误的活动。注意:引导小组成员在走查前通读设计和编码。限时,避免跑题。发现问题适当记录,避免现场修改。检查要点是代码是否符合标准和规范,是否有逻辑错误。22第22页,共79页,2023年,2月20日,星期日(2)审查(Inspection)定义:采用讲解、提问方式进行,一般有正式的计划、流程和结果。主要方法采用缺陷检查表。注意:以会议形式,制定会议目标、流程和规则,结束后要编写报告。按缺陷检查表逐项检查。发现问题适当记录,避免现场修改。发现重大缺陷,改正后会议需要重开。检查要点是缺陷检查表,所以该表要根据项目不同不断积累完善。23第23页,共79页,2023年,2月20日,星期日走查与审查的比较走查审查准备通读设计和编码应准备好需求描述文档、程序设计文档、程序的源代码清单、代码编码标准和代码缺陷检查表形式非正式会议正式会议参加人员开发人员为主项目组成员包括测试人员主要技术方法无缺陷检查表注意事项限时、不要现场修改代码限时、不要现场修改代码生成文档会议记录静态分析错误报告目标代码标准规范,无逻辑错误代码标准规范,无逻辑错误24第24页,共79页,2023年,2月20日,星期日(3)评审(Review)定义:通常在审查会后进行,审查小组根据记录和报告进行评估。注意:充分审查了所规定的代码,并且全部编码准则被遵守。审查中发现的错误已全部修改。25第25页,共79页,2023年,2月20日,星期日(二)静态结构分析法
在静态结构分析中,测试人员通常通过使用测试工具分析程序源代码的系统结构、数据结构、数据接口、内部控制逻辑等内部结构,生成函数调用关系图、模块控制流图、内部文件调用关系图等各种图形、图表,清晰地标识整个软件的组成结构。采用方法:通过生成各种图表,来帮助对源程序的静态分析静态错误分析表达式分析接口分析26第26页,共79页,2023年,2月20日,星期日2)程序插桩概念:程序插桩是借助向被测程序中插入一些操作,来实现测试目的的方法,即向源程序中添加一些语句,实现对程序语句的执行、变量的变化等情况进行检查。设计插桩程序时需要考虑的问题:探测哪些信息?在程序的什么部位设置探测点?需要设置多少个探测点?如何在程序中特定部位插入某些用以判断变量特性的语句?27第27页,共79页,2023年,2月20日,星期日3)逻辑覆盖(1)语句覆盖(点覆盖)
至少每个语句应该执行一次。(2)判定覆盖--分支覆盖(边覆盖)
每个语句必须至少执行一次,而且每个判定的可能的结果都应该至少执行一次。(3)条件覆盖
不仅每个语句至少执行一次,而且使判定表达式中的每个条件都取到各种可能的结果。
注:满足条件覆盖,不一定满足判定覆盖。28第28页,共79页,2023年,2月20日,星期日(4)判定/条件覆盖
选取足够多的测试数据,使得判定表达式中的每个条件中都取到各种可能的值,而且每个判定表达式也都取到各种可能的结果。(5)条件组合覆盖
选取足够多的测试数据,使得每个判定表达式中条件的各种可能组合都至少出现一次。(6)路径覆盖
选取足够多的测试数据,使程序的每条可能路径都至少执行一次。29第29页,共79页,2023年,2月20日,星期日4)测试覆盖准则错误敏感测试用例分析(ESTCA)准则例子:if(l≥0)theni=j…错写成:if(l>0)theni=j…Foster通过大量的实验确定了程序中谓词最容易出错的部分,得到了一套错误敏感测试用例分析ESTCA(ErrorSensitiveTestCasesAnalysis)规则:30第30页,共79页,2023年,2月20日,星期日规则1:对于ArelB(其中rel可以是"<","="和">")型的分支谓词,应适当地选择A与B的值,使得测试执行到该分支语句时,A<B、A=B和A>B的情况分别出现一次。规则2:对于Arelc(其中rel可以是"<",或">",A是变量,c是常量)型的分支谓词,当rel是"<"时,应适当地选择A的值,使得:
A=c-M其中,M是距c最小的机器容许的整数,若A和c均为整形时,M=1。同样当rel是">"时,应适当地选择A的值,使得:A=c+M其中,M是距c最小的机器容许的整数,若A和c均为整形时,M=1。规则3:对外部输入变量赋值,使其在每一测试用例中具有不同的值与符号,并与同一组测试用例中其他变量的值与符号不一致。31第31页,共79页,2023年,2月20日,星期日5)基本路径测试法概念:在程序控制流图的基础上,通过分析控制构造的环路复杂性导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中程序的每个可执行语句至少执行一次。包括5个方面:程序流程图计算程序环境复杂性导出测试用例准备测试用例图形矩阵32第32页,共79页,2023年,2月20日,星期日6)其它白盒测试法(1)域测试是一种基于程序结构的测试方法。
Howden对程序错误分类:域错误、计算错误和丢失错误。
域错误:每条执行路径对应于输入域的一类情况,若程序的控制流有错误,对应某一特定输入可能执行的是一条错误路径,这种错误称为路径错误,也叫域错误。计算错误:如果对于特定输入执行的是正确路径,但由于赋值语句的错误致使输出结果不正确,则称为计算型错误。丢失错误:程序中某处少了一个判定谓词而引起的丢失路径错误。33第33页,共79页,2023年,2月20日,星期日(2)符号测试符号测试的基本思想:允许程序不仅仅输入具体的数值数据,也可以输入符号值。所谓的符号值可以是基本符号变量值,也可以是这些符号变量值的一个表达式。(3)Z路径覆盖概念:简化循环意义下的路径覆盖为Z路径覆盖。所谓的循环简化是指限制循环的次数。无论循环的形式和实际执行循环的次数是多少,只考虑循环一次和零次两种情况。(4)程序变异程序变异是一种错误驱动测试。34第34页,共79页,2023年,2月20日,星期日7)循环测试
循环测试是一种白盒测试技术,注重于循环构造的有效性。循环结构测试用例的设计循环可以划分为以下几种模式:35第35页,共79页,2023年,2月20日,星期日简单循环的测试用例设计:
下列测试集用于简单循环,其中n是允许通过循环的最大次数。整个跳过循环;只有一次通过循环;两次通过循环;
m次通过循环,其中m<n;
n-1,n+1次通过循环。36第36页,共79页,2023年,2月20日,星期日例子
有这样一个子程序,其中包含一个如下程序流程图所示的循环,请给出对该程序中循环过程进行测试的测试用例。
i>10i=1YNi=i+2测试内容测试用例备注整个跳过循环只有一次通过循环两次通过循环m次通过循环,其中m<5n-1次通过循环n+1次通过循环i=11i=10i=7i=5i=3i=03次通过循环4次通过循环37第37页,共79页,2023年,2月20日,星期日嵌套循环的测试用例设计:
如果将简单循环的测试方法用于嵌套循环,可能的测试数就会随嵌套层数成几何级增加,这会导致不实际的测试数目,下面是一种减少测试数的方法:从最内层循环开始,将其它循环设置为最小值;对最内层循环使用简单循环,而使外层循环的迭代参数(即循环计数)最小,并为范围外或排除的值增加其它测试;由内向外构造下几个循环的测试,但其它的外层循环为最小值,并使其它的嵌套循环为“典型”值;继续直到测试所有的循环。38第38页,共79页,2023年,2月20日,星期日其他循环的测试用例设计:
串接循环:
如果串接循环的循环都彼此独立,可使用嵌套的策略测试。但是如果两个循环串接起来,而第一个循环是第二个循环的初始值,则这两个循环并不是独立的。如果循环不独立,则推荐使用的嵌套循环的方法进行测试。无结构循环:不能测试,尽量重新设计给结构化的程序结构后再进行测试。39第39页,共79页,2023年,2月20日,星期日8)白盒测试应用策略
在测试中,应尽量先使用工具进行静态结构分析。测试中可采取先静态后动态的组合方式;利用静态分析的结果作为引导覆盖率测试是白盒测试的重点;在不同的测试结点,测试的重点不同。40第40页,共79页,2023年,2月20日,星期日3黑盒测试技术概念:黑盒测试也称数据驱动测试,在测试时,把程序视为一个黑盒子,在完全不考虑程序内部结构和内部特性的情况下,测试者在程序接口处进行测试。说明:黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,只针对软件界面和软件功能进行测试。黑盒测试的依据是规格说明书和用户手册。软件验证:按照规格说明书中对软件功能的描述,对照软件在测试中的表现所进行的测试称为软件验证。软件审核:以用户手册等对外公布的文件为依据进行的测试称为软件审核。41第41页,共79页,2023年,2月20日,星期日黑盒测试概念发现的错误类型:模块中是否有功能遗漏或者逻辑错误模块接口是否存在问题性能上是否满足要求功能测试方法:等价类划分边界值分析法错误推测法因果法功能图法分类:功能测试和非功能测试非功能测试方法:性能测试、强度测试、兼容性测试、配置测试、安全测试42第42页,共79页,2023年,2月20日,星期日功能测试
功能测试的目的和内容
程序安装、启动正常,有相应的提示框、错误提示等每项功能符合实际要求系统的界面清晰、美观菜单、按钮操作正常、灵活,能处理一些异常操作能接受正确的数据输入,对异常数据的输入可以进行提示、容错处理等数据的输出结果准确,格式清晰,可以保存和读取功能逻辑清楚,符合使用者习惯系统的各种状态按照业务流程而变化,并保持稳定支持各种应用的环境能配合多种硬件周边设备软件升级后,能继续支持旧版本的数据与外部应用系统的接口有效归结为:界面、数据、操作、逻辑、接口几个方面。43第43页,共79页,2023年,2月20日,星期日功能测试的方法
等价类划分法边界值分析法错误推测法因果图法组合分析法我要测试所有的功能44第44页,共79页,2023年,2月20日,星期日1)等价类划分方法概念:将所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每个子集中选取少数具有代表性的数据作为测试用例。过程:
分类(等价类划分):等价类是指某个输入域的子集合,在该子集合中,各个输入数据对于揭露程序中的错误都是等效的,他们具有等价特性。分类就是将输入域按照具有相同特性或者类似功能进行划分。在分析需求规格说明的基础上划分等价类,列出等价类表。
抽象:在各个子类中抽象出相同特性并用实例来表征这个特性。将程序可能的输入数据分成若干个子集,从每个子集选取一个代表性的数据作为测试用例。45第45页,共79页,2023年,2月20日,星期日等价类划分:等价类的分类:有效等价类和无效等价类。有效等价类:是有意义的、合理的输入数据,可以检查程序是否实现了规格说明中所规定的功能和性能。无效等价类:与有效等价类的意义相反,即不满足程序输入要求或者无效的输入数据构成的集合。注意:
设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性。46第46页,共79页,2023年,2月20日,星期日确定等价类的方式在输入条件规定了取值范围或值的个数的情况下,则可以确立一个有效等价类和两个无效等价类;在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类;在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类;在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类;在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。47第47页,共79页,2023年,2月20日,星期日根据等价类创建测试用例的步骤建立等价类表,列出所有划分出的等价类:输入条件有效等价类无效等价类………………为每个等价类规定一个唯一的编号;设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的有效等价类。重复这一步,最后使得所有有效等价类均被测试用例所覆盖;设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖的无效等价类。重复这一步使所有无效等价类均被覆盖。48第48页,共79页,2023年,2月20日,星期日案例研究1:根据输入判断三角形的形状测试场景:一个程序读入3个整数,把这三个数值看作一个三角形的3条边的长度值。这个程序要打印出信息,说明这个三角形是不等边的、是等腰的、还是等边的。确定输入数据与三角形形状的关系:设三角形的3条边分别为A,B,C。如果它们能够构成三角形的3条边,必须满足:A>0,B>0,C>0,且A+B>C,B+C>A,A+C>B;如果是等腰的,还要判断A=B,或B=C,或A=C;如果是等边的,则需判断是否A=B,且B=C,且A=C。49第49页,共79页,2023年,2月20日,星期日案例研究1:判断三角形的形状(续1)创建等价类表:输入条件有效等价类无效等价类是否三角形的三条边(A>0),(1)(B>0),(2)(C>0),(3)(A+B>C),(4)(B+C>A),(5)(A+C>B),(6)(A≤0),(7)(B≤0),(8)(C≤0),(9)(A+B≤C),(10)(B+C≤A),(11)(A+C≤B),(12)是否等腰三角形(A=B),(13)(B=C),(14)(C=A),(15)(A≠B)and(B≠C)and(C≠A)(16)是否等边三角形(A=B)and(B=C)and(C=A)(17)(A≠B),(18)(B≠C),(19)(C≠A),(20)50第50页,共79页,2023年,2月20日,星期日案例研究1:判断三角形的形状(续2)确定等价类输入数据:序号【A,B,C】覆盖等价类输出1【3,4,5】(1),(2),(3),(4),(5),(6)一般三角形2【0,1,2】(7)不能构成三角形3【1,0,2】(8)4【1,2,0】(9)5【1,2,3】(10)6【1,3,2】(11)7【3,1,2】(12)8【3,3,4】(1),(2),(3),(4),(5),(6),(13)等腰三角形9【3,4,4】(1),(2),(3),(4),(5),(6),(14)10【3,4,3】(1),(2),(3),(4),(5),(6),(15)11【3,4,5】(1),(2),(3),(4),(5),(6),(16)非等腰三角形12【3,3,3】(1),(2),(3),(4),(5),(6),(17)是等边三角形13【3,4,4】(1),(2),(3),(4),(5),(6),(14),(18)非等边三角形14【3,4,3】(1),(2),(3),(4),(5),(6),(15),(19)15【3,3,4】(1),(2),(3),(4),(5),(6),(13),(20)51第51页,共79页,2023年,2月20日,星期日案例研究2:测试用户登录对话框的功能测试场景:在各种输入条件下,测试程序的登录对话框功能。用户名和密码的规则如下:用户名长度为6至10位(含6位和10位)用户名由字符(a-z、A-Z)和数字(0-9)组成不能为空、空格和特殊字符密码规则同用户名规则
52第52页,共79页,2023年,2月20日,星期日案例研究2:登录对话框的功能(续1)确定输入数据的情形:操作步骤预期结果输入正确的用户名和口令(均为6位),点击[OK]按钮进入系统输入正确的用户名和口令(均为10位),点击[OK]按钮进入系统输入正确的用户名和口令(均为6至8位之间),……进入系统用户名为空,……提示输入用户名不能进入系统用户名为空格,……提示无效用户名不能进入系统用户名小于6位,……提示用户名太短不能进入系统……………………53第53页,共79页,2023年,2月20日,星期日案例研究2:登录对话框的功能(续2)确定具体的输入数据:“用户名”“口令”“预期结果”说明“user10”“pass10”进入系统正确的用户名和口令(6位)“user789”“pass789”进入系统正确的用户名和口令(7-9位)“user000010”“pass000010”进入系统正确的用户名和口令(10位)“”“pass”提示输入用户名不能进入系统用户名为空“空格”“pass”提示无效用户名不能进入系统用户名为空格“user”“userpass”提示用户名太短不能进入系统用户名小于6位“user0000011”“userpass”提示用户名太长不能进入系统用户名大于10位………………………………………………54第54页,共79页,2023年,2月20日,星期日等价类划分法划分好等价类测试:防止遗漏测试案例。55第55页,共79页,2023年,2月20日,星期日例子有一系统,要求用户输入日期,假设日期限制在2000年1月至2020年12月,如果用户输入的日期不在这个范围内,则显示出错信息,并且系统规定日期由年月的6位数字组成,前4位代表年,后2位代表月,请用等价类划分法进行分类与测试,并分别给出相应的测试用例。输入合理等价类不合理等价类日期1、6位数字字符2、有非数字字符3、少于6个数字字符4、多于6个数字字符年份范围5、在2000-2020之间6、小于20007、大于2020月份范围8、在1-12之间9、等于010、大于1256第56页,共79页,2023年,2月20日,星期日测试用例序号用例1、5、8234679102007052007A20072007052019990520210520070020071357第57页,共79页,2023年,2月20日,星期日2)边界值分析方法概念:程序的很多错误发生在输入或输出范围的边界上,因此针对各种边界情况设置测试用例,可以发现不少程序缺陷。因此边界值分析法是对输入的边界值进行测试。与等价类划分方法的区别:边界值分析不是从某个等价类中随便挑选一个作为代表,而是使这个等价类的每个边界都要作为测试条件。设计方法:确定边界情况(输入或输出等价类的边界)选取正好等于、刚刚大于或刚刚小于边界值作为测试数据58第58页,共79页,2023年,2月20日,星期日确定边界值的方式(原则)如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。分析规格说明,找出其他可能的边界条件。59第59页,共79页,2023年,2月20日,星期日边界值分析法例如:测试一个排序程序的边界值分析法的例子,其边界条件有:排序序列为空;排序序列仅有一个数据;排序序列为满,用猜错法补充一下测试用例;排序序列已经按要求排好序;排序序列的顺序与要求的顺序恰好相反;排序序列中的所有数据全部相等。因为错误最容易发生在边界值附近,所以边界值分析法对于多变量函数的测试很有效,尤其是对于像C/C++数据类型要求不是很严格的语言有利。60第60页,共79页,2023年,2月20日,星期日输入范围测试用例年份范围在2000-2020之间199905、200005、200105201905、202005、202105月份范围在1-12之间200700、200701、200702200711、200712、200713整体200001-202012199912、200001、200002202011、202012、202101有一系统,要求用户输入日期,假设日期限制在2000年1月至2020年12月,如果用户输入的日期不在这个范围内,则显示出错信息,并且系统规定日期由年月的6位数字组成,前4位代表年,后2位代表月,请用边界值法进行分类与测试,并分别给出相应的测试用例。61第61页,共79页,2023年,2月20日,星期日3)错误推测法概念:基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性地设计测试用例。基本思想:列举程序中所有可能出现的错误和容易发现错误的地方,根据他们来选择和设计测试用例。62第62页,共79页,2023年,2月20日,星期日发现程序经常出现的错误的方法:单元测试中发现的模块错误;产品的以前版本曾经发现的错误;输入数据为0或字符为空;当软件要求输入时(比如在文本框中),不是没有输入正确的信息,而是根本没有输入任何内容,单单按了Enter键;这种情况在产品说明书中常常忽视,程序员也可能经常遗忘,但是在实际使用中却时有发生。程序员总会习惯性的认为用户要么输入信息,不管是看起来合法的或非法的信息,要不就会选择Cancel键放弃输入。63第63页,共79页,2023年,2月20日,星期日错误推测法这个错误到底在哪?错误推测法是测试者根据经验、知识和直觉来发现软件错误。64第64页,共79页,2023年,2月20日,星期日4)因果图法测试用例设计概念:多种输入条件的组合,产生多种结果设计测试用例。设计方法:分析软件规格说明文档描述的哪些是原因(输入条件),哪些是结果(输出条件),给每个原因和结果赋予一个标示符找出原因与结果,原因与原因之间的对应关系,划出因果图在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件根据因果图,创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来把判定表的每一行作为依据设计测试用例。65第65页,共79页,2023年,2月20日,星期日因果图法例:某个软件规格说明中包含以下要求:第一列字符必须是A或B,第二个字符必须是一个数字,在此情况下进行文件的修改;但如果第一列字符不正确,则输出信息L;如果第二列字符不是数字,则给出信息M。66第66页,共79页,2023年,2月20日,星期日因果图法混凝土强度为什么不足?67第67页,共79页,2023年,2月20日,星期日5)测试场景法设计测试用例现在的软件几乎都是用事件触发来控制流程的,事件触发时的情景便形成了场景,而同一事件不同的触发顺序和处理结果就形成事件流。这种在软件设计方面的思想也可引入到软件测试中,可以比较生动地描绘出事件触发时的情景,有利于测试设计者设计测试用例,同时使测试用例更容易理解和执行。68第68页,共79页,2023年,2月20日,星期日测试场景法(1)基本流和备选流基本流:采用直黑线表示,是经过用例的最简单的路径
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 校园安全协议书运动
- 投稿平台协议书模板
- 幼教结对共建协议书
- 机械使用协议书范本
- 租赁舞蹈裙子协议书
- 意向协议书打印要求
- 站点建设协议书范本
- 街道文体共建协议书
- 私人委托理财协议书
- 卫生捐赠协议书范本
- 职校招生宣传PPT
- 电磁信息论白皮书
- GB/T 4814-2013原木材积表
- 药理学考研历年真题汇总(重点题)
- DB32T 3904-2020 电动自行车停放充电场所消防技术规范
- 云南省文山壮族苗族自治州各县区乡镇行政村村庄村名居民村民委员会明细
- 质量目标管理表
- DBJ41T 074-2013 高压细水雾灭火系统设计、施工及验收规范
- Q∕SY 05262-2019 机械清管器技术条件
- 《出纳员登记日记账》 课件
- DB32∕T 2518-2013 农田径流氮磷生态拦截沟渠塘构建技术规范
评论
0/150
提交评论