书签 分享 收藏 举报 版权申诉 / 114
上传文档赚钱

类型Ch03-软件测试方法-软件测试方法和技术-朱少课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2942250
  • 上传时间:2022-06-13
  • 格式:PPT
  • 页数:114
  • 大小:3.76MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《Ch03-软件测试方法-软件测试方法和技术-朱少课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    Ch03 软件 测试 方法 技术 课件
    资源描述:

    1、 软件测试方法和技术软件测试方法和技术第第3章章 软件测试的方法软件测试的方法朱少民 K http:/ 第2章 回顾p软件缺陷是软件质量的对立面p软件缺陷(Bug)是什么p验证和确认p软件测试的分类p静态测试与动态测试p主动测试与被动测试p黑盒测试与白盒测试p测试级别:单元、集成、系统和验收p软件测试计划与用例p专业测试人员的责任和要求第3章 软件测试的方法3.1 基于直觉和经验的方法3.2 基于输入域的方法3.3 基于组合及其优化的技术3.4 基于逻辑覆盖的方法3.5 基于故障模式的测试方法3.6 基于模型的测试方法3.7 形式化方法方法论和具体方法p从方法论看,更多体现了一种哲学的思想从方

    2、法论看,更多体现了一种哲学的思想,例如辩证统一的方法,在测试中有许多对立统一体,如静态测试和动态测试、白盒测试和黑盒测试、自动化测试和手工测试等。p软件测试的方法论来源于软件工程的方法论,例如有面向对象的开发方法,就有面向对象的测试方法;有敏捷方法,就有和敏捷方法对应的敏捷测试。测试领域Domains under TestApplied toDNF: Disjunctive Normal Form(析取范式) FSM: Finite Status Machine测试方法 SWEBOK 3.06具体方法或技术7等价类、边界值、两两组合等价类、边界值、两两组合(pairwisepairwise)、

    3、随机测试)、随机测试黑盒测试黑盒测试基于控制流的标准、基于数据流的标准、CBT参考模型白盒测试故障模型、错误猜测法、变异测试操作配置(operational profile)、用户观察启发黑盒测试决策表、有限状态机、形式化验证、TTCN3、工作流模型OOS、web、real-time、SOA、embedded、safe-critical应用领域过去常提“黑盒和白盒”方法8黑盒方法白盒方法其它方法 world93.1 基于直觉和经验的方法Ad-hoc测试方法和ALAC测试 错误推测法 3.1.1 ALAC测试和随机测试ALAC,是Act-like-a-customer(象客户那样做)的简写,AL

    4、AC测试方法是一种基于客户使用产品的知识开发出来的测试方法,它的出发点是著名的Pareto 80/20规律3.1.2 错误猜测法错误推测法是测试者根据经验、知识和直觉来发现软件错误,来推测程序中可能存在的各种错误,从而有针对性的进行测试。 单元测试中发现的模块错误;单元测试中发现的模块错误; 产品的以前版本曾经发现的错误;产品的以前版本曾经发现的错误; 输入数据为输入数据为0 0或字符为空;或字符为空; 当软件要求输入时当软件要求输入时( (比如在文本框中比如在文本框中),),不是没有输入正确的信不是没有输入正确的信息,而是根本没有输入任何内容,单单按了息,而是根本没有输入任何内容,单单按了E

    5、nterEnter键;键; 3.2 基于输入域的测试方法3.2.1 等价类划分方法设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受异常数据的考验。经过正反的测试才能确保软件具有更高的可靠性。all inputsi1i4i2i3确定等价类的方法in rangegreater than rangeless than rangevaluegreater than valueless than value在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可以确立一个有效等价类和一个无效等价类。在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无

    6、效等价类确定等价类的方法(2)not member of setmember of setBooleanNon-Boolean确定等价类的方式 (3)有什么具体案例?等价类测试用例-Example等价类1: Integer等价类2: Decimal fraction等价类3: Negative等价类4: Invalid input根据等价类创建测试用例的步骤a) 建立等价类表,列出所有划分出的等价类:b) 为每个等价类规定一个唯一的编号;c) 设计一个新的测试用例,使其尽可能多地覆盖尚未覆盖的有效等价类d) 重复c),最后使得所有有效等价类均被测试用例所覆盖;e) 设计一个新的测试用例,使其只

    7、覆盖一个无效等价类。f) 重复e)使所有无效等价类均被覆盖。输入条件有效等价类无效等价类3.2.2 边界值分析方法 确定边界情况(输入或输出等价类的边界) 选取正好等于、刚刚大于或小于边界值作为测试数据确定边界值的方法如果输入条件规定了值的范围,则应取刚达到这个范围的边界的值,以及刚刚超越这个范围边界的值作为测试输入数据。如果输入条件规定了值的个数,则用最大个数、最小个数、比最小个数少一、比最大个数多一的数作为测试数据。a ab ba ab b确定边界值的方法(2)如果程序的规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。如果程序中使用了一个内部数据

    8、结构,则应当选择这个内部数据结构的边界上的值作为测试用例。n Test cases for ABS(x) :class x = 0, arbitrary value x = 100classes x = 0, on boundary :x = 0classes x = 0, below and above: x = -1, x = 1正常值(有效类)正常值(有效类): X1 = 123123边界值边界值: X2 = 12345边界值边界值: X3 = 1234567边界值边界值: X4 = 1边界值边界值: X5 = 0无效类的值无效类的值: X6 = -123123无效类的值无效类的值: X

    9、7 = asdasd其它其它?BVA 示例2 测试测试 限制性用户输入:限制性用户输入:6位正整数位正整数 无效值无效值: X8 = 000123 X9 = asd123 X10 = EmptyBVA 示例3Test cases :任意的正常值: 随机选择几个选项 边界值: 选择所有选项 边界值: 一个都不选边界值: 选择一个选项二进制Term 取值范围取值范围BitNibbleByteWordKiloMegaGigaTera0 or 10-15 0-2550-65535 or 0-42949672951024104857610737418241099511627776ASCII TableC

    10、haracterASCII ValueCharacter ASCII ValueNullSpace/0129;A0324748495057586465BYZabyz66899091969798121122123字符编辑域一些特殊的边界值First-1/Last+1Min-1/max+1Start-1/Finish+1Less than empty/ more than fulljust Over/Just Under有什么具体案例?3.3 基于组合技术和组合优化的方法3.3.1 判定表方法判定表元素判定表方法步骤条件桩动作桩规则判定表 示例1IDID项目名称项目名称R1R1R2R2R3R3R4

    11、R4R5R5条件项C1此商品在经营范围NYYYYC2此商品可以发货YYNNC3此客户没有拖欠过付款YNYN动作项A1货到后允许客户转账1A2货到客户必须立即付款1A3重新组织货源11A4电话通知1A5书面通知11判定表示例判定表示例23.3.2 因果图法 分析软件规格说明文档描述的哪些是原因(输入条件),哪些是结果(输出条件),给每个原因和结果赋予一个标示符。 找出原因与结果,原因与原因之间的对应关系,划出因果图 在因果图上标上哪些不可能发生的因果关系,表明约束或限制条件 根据因果图,创建判定表,将复杂的逻辑关系和多种条件组合很具体明确的表示出来 把判定表的每一行作为依据设计测试用例。ijij

    12、因果图的基本符合n或或- -关系:关系:如果因 i1 或或因 i2 或或因 in 存在时,结果 j 才出现。n与与- -关系:关系:只有当因 i1 与与因 i2 与与因 in 同时存在时,结果 j 才出现。j i1i2inj i1i2in因果图法示例(1)有效等价类有效等价类:输入条件有效类 .abs(N) N 0, N 0maxint k maxint, k maxint测试用例测试用例:maxintNresult maxint Nresult55105510000 5410error100-11 56105510011 000给定maxint 和 N ,如果结果 0 and b 0) th

    13、en4. c = c / a5.end if6.if (a 1 or c 1) then7. c = c + 18.end if9.c = b + c程序控制流图示例:语句覆盖可发现的问题(a, b ,c)= (1, 1, 2)3689IFIFENDIFENDIFfeicbad457jh程序源代码1.dim a, b as integer2.dim c as double3.if (a 0 or b 0) then4. c = c / a5.end if6.if (a 1 and c 1) then7. c = c + 18.end if9.c = b + c程序控制流图示例:语句覆盖不能发现

    14、的问题(a, b ,c)= (1, 1, 2)andor3.4.1 判定覆盖p判定覆盖法的基本思想是设计若干用例,运行被测程序,使得程序中每个判断的取真分支和取假分支至少经历一次,即判断真假值均曾被满足。p一个判定代表着程序的一个分支, 所以判定覆盖也被称为分支覆盖。示例:绘制控制图示例:设计测试用例(a, b ,c)= (1, 1, 2)(a, b ,c)= (-1, 1, 0)3.4.2 条件覆盖p条件覆盖的基本思想是设计若干测试用例,执行被测程序以后,要使每个判断中每个条件的可能取值至少满足一次。(a0 and b0) a0b0 示例:列出所有条件判定条件判定条件M:条件a0: 取.T.

    15、时为T1取.F.时为F1条件b0: 取.T.时为T2取.F.时为F2;判定条件判定条件N:条件a1: 取.T.时为T3取.F.时为F3条件c1: 取.T.时为T4取.F.时为F4示例:覆盖所有条件(a, b ,c)= (2, -1, 0)(a, b ,c)= (-1, 1, 2)T1, F2, T3, F4F1, T2, F3, T4但有什么问题吗?但有什么问题吗?3.4.3 判定条件覆盖p判定-条件覆盖是判定和条件覆盖设计方法的交集,即设计足够的测试用例,使得判断条件中的所有条件可能取值至少执行一次,同时,所有判断的可能结果至少执行一次条件条件取值条件取值条件分支分支判定条件判定条件a0,

    16、b0, a1,c1T1,T2,T3,T4a0 AND b0M=.T.N=.T.a=0, b=0, a=1, c1 OR c1M=.F.N=.F.示例:覆盖判定/条件(a, b ,c)= (2, 1, 2)(a, b ,c)= (-1, 0, 1)T1, T2, T3, T4F1, F2, F3, F43.4.4 条件组合测试p条件组合覆盖的基本思想是设计足够的测试用例,使得判断中每个条件的所有可能至少出现一次,并且每个判断本身的判定结果也至少出现一次。p它与条件覆盖的差别是它不是简单地要求每个条件都出现“真”与“假”两种结果,而是要求让这些结果的所所有可能组合都至少出现一次有可能组合都至少出现

    17、一次示例 (1)组合编号 覆盖条件取值判定 条 件 取值判定-条件组合1T1,T2M=.T.a0,b0,M取真2T1,F2M=.F.a0,b=0,M取假3F1,T2M=.F.a0,M取假4F1,F2M=.F.a=0,b1,c1,N取真6T3,F4N=.T.a1,c=1,N取真7F3,T4N=.T.a1,N取真8F3,F4N=.F.a=1,c= n+1 test cases for a decision with n inputs. 示例组合编号 覆盖条件取值判定条件取值1T1,T2M=.T.2T1,F2M=.F.3F1,T2M=.F.4F1,F2M=.F.5T3,T4N=.T.6T3,F4N=

    18、.T.7F3,T4N=.T.8F3,F4N=.F.3.4.5 基本路径覆盖p顾名思义,路径覆盖就是设计所有的测试用例,来覆盖程序中的所有可能的执行路径。测试用例覆盖路径覆盖条件覆盖组合输入:a=2,b=1,c=6输出:a=2,b=1,c=5P1(1-2-4)T1,T2,T3,T41,5输入:a=1,b=1,c=-3输出:a=1,b=1,c=-2P2(1-2-5)T1,T2,F3,F41,8输入:a=2,b=-1,c=-2输出:a=2,b=-1,c=-2P3(1-3-4)T1,F2,T3,F42,6输入:a=-1,b=2,c=3 输出:a=-1,b=2,c=6P3(1-3-4)F1,T2,F3,

    19、T43,7输入:a=-1,b=-2,c=-3输出:a=-1,b=-2,c=-5P4(1-3-5)F1,F2,F3,F44,8基本路径覆盖的设计过程1.依据代码绘制流程图2.确定流程图的圈复杂度(cyclomatic complexity )3.确定线性独立路径的基本集合( basis set )4.设计测试用例覆盖每条基本路径示例 源代码Procedure: process records1.Do While records remain2.Read record;3.If record field 1 = 0 Then4.store in buffer;5.increment counter

    20、;6.Else If record field 2 = 0 Then7.reset counter;8.Else store in file;9.End If10.End If11. End DoEnd示例 流程图1910112457836基本路径测试:流程图简化12,387694,51011流程图的圈复杂度 V(G) = 区域数量(由节点、连线包围的区域,包括图形外部区域) V(G) = 连线数量 - 节点数量 + 2 V(G) = 简单可预测节点数量 + 1圈复杂度(圈复杂度(Cyclomatic complexity):代码逻辑复杂度的 度量,提供了被测代码的路径数量。复杂度越高,出错的

    21、概率越大V(G)modules流程图复杂度例子V(G)=412,378694,51011Region 1Region 2Region 3Region 4确定线性独立的路径集合p Path1: 1-2-3-6-7-9-10-1-11示例:基本路径测试用例 Path2: 1-2-3-6-8-9-10-1-11 Path3: 1-2-3-4-5-10-1-11Path4: 1-111910112458736测试用例覆盖集合中每条路径基本路径测试并不是测试所有路径的组合,仅仅保证每条基本路径被执行一次 不需要活动图, 但最好绘制程序流程图 计算每个逻辑测试,也就是布尔操作符数加1 最好每个单元都进行基

    22、本路径测试,对关键组件则是必要的小结语句覆盖判定覆盖DC条件覆盖CC判定/条件覆盖DC/CC条件组合覆盖MCC基本路径覆盖BPCl Condition Coverage (CC)l Decision Coverage (DC)l Multiple Condition Coverage (MCC)l Modified Condition/Decision Coverage (MC/DC)MC/DC作业DC/CCBPCMC/DC1. Testwell CTC+2. CoverageMeter3. BullseyeCoverage4. GCT5. CppUnit6. Dynamic Code Cov

    23、erage7. TCAT C/C+8. COVTOOL9. gocv10. xCover+找一合适的函数代码 + 选择一覆盖率工具 完成三种覆盖率的测试小结:方法的灵活运用代码中循环结构如何测试?从数据输入和结构两方面来考虑n目标目标: 在循环内部及边界上执行测试在循环内部及边界上执行测试循环测试 11.简单循环简单循环(迭代次数n) 完全跳过循环 只经过循环一次 经过循环两次 经过循环m( m 1push height max-1toptop说明push *示例:状态图 输入输入状态状态initpushpopdeletetopinitialemptyemptyfillederrordelet

    24、ederrorfilledfilled(1)full(2)empty(3)filled(4)errorfilledfullfullfillederrorfulldeleted(1)-push height 1状态表initpush initialempty empty deleted filled filled filledfullfullfilledfulldeletepushpushpoptoptoppush *poppop ERRORpop ERRORtop ERRORdelete filled ERRORdelete状态转化树生成测试用例EFSM工具 - FSME补充:基于用户场景的测

    25、试w也称作基于用户场景测试(user scenario testing)w分析用户会是怎样与系统打交道的,以及用户典型行为分析w根据不同的特性区分不同的用户群体、用户角色w用例描述了参与者(包括用户与系统)之间的相互作用,并从这些交互产生一个从用户的角度所期望和能观察到的结果。w每个用例都有测试前置条件(precondition)和后置条件(postcondition): w 为使应用情况能够顺利运行,必须满足前置条件。w 后置条件是在用例执行完成后能观察到的结果和系统的结束状态。 用户场景测试w 针对典型的行为模式(用例/Use Case)组成测试场景 。w 用例通常有一个主场景(即最有可能

    26、发生的场景),有时候也会有可供选择的分支。 w 可以根据使用频繁度来确定这些用例的优先级 。w因为用例基于系统最可能使用的情况,因此从用例中得到的测试用例,是发现系统在实际应用中存在的缺陷的最有效的方式。w所以很适用于由用户/客户一起参与的验收测试。w也同样适用于在集成测试过程中,通过观察不同组件的相互作用和相互影响,从而发现错误的情况。用例测试111用例测试示例112基于场景的基于场景的测试测试方法方法n 基于Use case或User Story直接进行验证n 根据UML的序列图来进行验证n 列出各种系统事件、观察和分析用户行为,设想各种可能的user scenario来进行验证n 分析同类系统和竞争对手的系统参考:参考:基于基于UML顺序图的场景测试用例生成方法顺序图的场景测试用例生成方法基于场景的性能测试设计S SBT: Session-Based Testing/BT: Session-Based Testing/Scenario-Based TestingScenario-Based Testing作业第第3章章 6、7、9尽可能采用所介绍的方法,完善上次作业尽可能采用所介绍的方法,完善上次作业Thank youQ & A

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:Ch03-软件测试方法-软件测试方法和技术-朱少课件.ppt
    链接地址:https://www.163wenku.com/p-2942250.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


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

    163文库