




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、网络性能评估与测试Network Performance Evaluation and Testing,张新有 副教授 Sichuan Network Communication Key Technology Laboratory ,2020/12/10,网络性能评价与测试,2,第3章:测试用例设计,3.1 编写测试用例的准备 3.2 白盒测试的用例设计 3.3 黑盒测试的用例设计 3.4 测试用例的评审与维护,网络性能评价与测试,2020/12/10,3,3.1 编写测试用例的准备,1. 收集资料 用户需求文档 设计文档 遗留系统相关文档 与相关人员讨论 参考行业背景软件,网络性能评价与测试
2、,2020/12/10,4,与经过深思熟虑的、计划好的测试过程有所不同,探索性测试并不预先设计测试用例或者精确地按照一个计划来执行,而是依靠测试人员的经验、知识水平和能力,对可能的缺陷进行试测。 探索性测试可用于重现和分析缺陷、研究缺陷和程序其他模块的相关性; 非必需、但它是测试用例有力的补充,2. 探索性测试,网络性能评价与测试,2020/12/10,5,例:假设AB是一个20次循环,该程序图存在路径数: 520 + 519 + 518 + . + 51 + 510 =1013 +,观点:完全测试程序是不可能的,1毫秒1条路径,需要3170年才能测完,B,网络性能评价与测试,2020/12/
3、10,6,3.2 白盒测试的用例设计,白盒测试是以程序的内部逻辑为基础设计测试用例,被测对象是源程序或程序流程图。 单元测试经常采用白盒测试。 白盒测试关注测试用例对程序内部的逻辑覆盖程度;当程序中有循环或判断分支时,覆盖每条路径是不可能的,因此需要设计覆盖程度较高的或覆盖最有代表性的路径的测试用例,网络性能评价与测试,2020/12/10,7,1、基本路径测试,1) 概念:控制流图 控制流图(流图)是对程序流程图进行简化后得到的,它可更加突出的表示程序控制流的结构。 控制流图中包括两种图形符号:节点和控制流线。 节点由带标号的圆圈表示,可代表一个处理框序列和一个条件判定框(不含复合条件)。
4、控制流线由带箭头的弧或线表示,可称为边。它代表程序中的控制流。 对于复合条件,则可将其分解为多个单个条件,并映射成控制流图,网络性能评价与测试,2020/12/10,8,常见结构的控制流图,其中包含条件的节点被称为判定节点;由判定节点发出的边必须终止于某一个节点;由边和节点所限定的范围被称为区域,网络性能评价与测试,2020/12/10,9,环形复杂度也称为圈复杂度,是一种为程序逻辑复杂度提供定量描述的软件度量。 环形复杂度的应用可以将环形复杂度用于基本路径方法,它可以提供程序基本集的独立路径数量。环形复杂度是确保所有语句至少执行一次的测试数量上界。 独立路径是指程序中至少引入了一个新的处理语
5、句集合或一个新条件的程序通路。独立路径必须至少包含一条在本次定义路径之前不曾用过的边。 测试可以被设计为基本路径集的执行过程,但基本路径集通常并不唯一,2) 概念:环形复杂度,网络性能评价与测试,2020/12/10,10,计算环形复杂度的方法,环形复杂度以图论为基础,提供了有用的软件度量。可用如下三种方法之一来计算环形复杂度: 1) 控制流图中区域的数量对应于环形复杂度V(G)。 2) 给定控制流图G的环形复杂度V(G),定义为: V(G) = E-N+2 其中E是控制流图中边的数量,N是控制流图中的节点数量。 3) 给定控制流图G的环形复杂度V(G)也可定义为: V(G) = P+1 其中
6、P是控制流图G中判定节点的数量,网络性能评价与测试,2020/12/10,11,实例1) 根据下图给出的程序流程图,完成以下要求: (1)画出相应的控制流图。 (2)计算环形复杂度,包含有隐含路径,网络性能评价与测试,2020/12/10,12,将符合条件展开,消除隐含路径,网络性能评价与测试,2020/12/10,13,3) 基本路径测试法,在程序控制流图的基础上,通过分析程序的环性复杂度,导出基本可执行的路径集合,从而设计测试用例。设计出的测试用例要保证在测试中程序的每个执行语句至少执行一次。 基本路径测试用例的设计方法步骤如下: (1)画出程序的控制流图(流图); (2)计算环形复杂度。
7、 环形复杂度用于计算程序的基本的独立路径数目,为确保所有语句至少执行一次的测试数量的上界; (3)根据上面计算方法,导出基本路径集,列出程序的独立路径; (4)设计测试用例,网络性能评价与测试,2020/12/10,14,实例2) 使用基本路径测试方法测试以下程序段; Int IsLeap(int year) ;判断闰年 if(year4=0) if(year100=0) if (year400=0) leap = 1; else leap = 0; else leap = 1; else leap = 0; return leap;,说明:写在程序段某些行开头的数字()是对应语句的编号。 1
8、)画出程序的控制流图(用题中给出的语句编号表示); 2)计算上述程序段的环形复杂度; 3)导出基本路径集,列出程序的独立路径(用题中给出的语句编号表示); 4)假设输入的取值范围1000year2001,请根据3)中的独立路径设计测试用例的输入数据和预期输出,网络性能评价与测试,2020/12/10,15,网络性能评价与测试,2020/12/10,16,语句覆盖,测试用例覆盖程序中每条语句; 判定覆盖,也称分支覆盖。即使得程序中的每个判定至少都获得一次“真”值和“假”值; 条件覆盖,设计足够的测试用例,使得判定表达式中每个条件的各种可能的值至少出现一次。 判定/条件测试,设计足够的测试用例,使
9、得判定表达式每个条件的所有可能取值至少出现一次,并使每个判定表达式所有可能的结果也至少出现一次。 条件组合覆盖,是比较强的覆盖,测试用例使得每个判定表达式中条件的各种可能值的组合都至少出现一次,2、逻辑覆盖测试,网络性能评价与测试,2020/12/10,17,if A and B then Action1 if C or D then Action2 语句覆盖最弱,只需要让程序中的语句都执行一遍即可。上例中只需设计测试用例使得A=true,B=true,C=true即可。 判定覆盖:使程序中每个判断的真分支和假分支至少经历一次,即判断的真假均曾被满足。则设计测试用例使其分别满足下列条件即可:(
10、1) A=true,B=true,Ctrue,D=false;(2) A=true,B=false,Cfalse,D=false。 条件覆盖:要使得每个判断中的每个条件的可能取值至少满足一次。上例中第一个判断应考虑到A=true,A=false,B=true,B=false第二个判断应考虑到Ctrue,Cfalse,D=true,D=false,所以上例中可以设计测试用例满足下列条件:(1) A=true,B=true,Ctrue,D=true;(2) A=false,B=false,Cfalse,D=false,实例3,网络性能评价与测试,2020/12/10,18,路径覆盖:要求覆盖程序中
11、所有可能的路径。所以可设计测试用例满足下列条件: (1) A=true,B=true,Ctrue,D=true (2) A=false,B=false,Cfalse,D=false (3) A=true,B=true,Cfalse,D=false (4) A=false,B=false,Ctrue,D=true,网络性能评价与测试,2020/12/10,19,3、循环测试(等价类划分/边界值分析,注重于循环构造的有效性检查。循环结构测试用例的设计可划分以下几种形式: 1)简单循环。可使用下列测试集,n是循环最大次数。 跳过整个循环 只有一次循环 两次通过循环 m次通过循环,其中mn n-1,n
12、+1此通过循环,网络性能评价与测试,2020/12/10,20,2)嵌套循环。若将简单测试的方法用于嵌套循环,可能的测试数目就会随嵌套层数成几何级增加,一种减少测试数目的方法: 从最内层开始循环,将其他循环设置为最小值; 对内层循环使用简单循环,而外层循环参数最小、范围外的值或排除的值; 由内向外构造几个循环的测试,外层为最小值,并使其他嵌套循环为典型值,网络性能评价与测试,2020/12/10,21,3)串接循环。如果串接循环彼此独立,可以使用简单循环的策略测试。但如果串接循环中,第一个循环是第二个循环的初始值,则这两个循环不是独立的,推荐使用嵌套循环的方法测试。 4)无结构循环。无法进行测
13、试,需要按结构化程序设计的思想将程序结构化后,再进行测试,网络性能评价与测试,2020/12/10,22,4、程序插装(Instrumentation,是指在程序中设置断点或打印语句,在执行过程中了解程序的一些动态特性。相当于在运行程序以后,一方面检验测试结果数据,另一方面借助插入语句给出的信息里阿杰程序的动态执行特性。 此外还有其他一些白盒测试方法:如数据流测试、变异测试等方法,网络性能评价与测试,2020/12/10,23,黑盒测试是软件及网络测试的重要、不可缺少的测试阶段,是保证AUT(DUT)满足用户需求的重要手段。功能测试常采用黑盒测试技术。 然而要保证AUT(DUT)完全满足用户功
14、能需求。就需要数量繁多的测试用例。因此功能测试宜采用自动化测试技术,而且要采用慎密的测试技术,寻找典型的、有代表性的测试项。 下面简单介绍几种常用的黑盒测试用例设计方法,3.3 黑盒测试的用例设计,网络性能评价与测试,2020/12/10,24,1、等价类划分法,等价类划分是把所有可能的输入数据划分成若干子集,从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种常用的黑盒测试用例设计方法。 等价类是指某个输入域的子集合。在该子集合中,各个输入数据对于揭露程序中的错误都是等效的。并合理地假定:测试某等价类的代表值就等于对这一类其它值的测试。因此可把全部输入数据合理划分为若干等价类,在
15、每一个等价类中取一个数据作为测试的输入条件,就可用少量代表性的测试数据,取得较好的测试结果,网络性能评价与测试,2020/12/10,25,有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。无效等价类与有效等价类的定义恰巧相反。 设计测试用例时,要同时考虑这两种等价类。因为软件不仅要能接收合理的数据,也要能经受意外的考验。这样的测试才能确保软件具有更高的可靠性,等价类划分为两种情况:有效等价类和无效等价类,网络性能评价与测试,2020/12/10,26,等价类的确定要遵循一定原则,在输入条件规定了取值范围或
16、值的个数的情况下,则可以确立一个有效等价类和两个无效等价类。 在输入条件规定了输入值的集合或者规定了“必须如何”的条件的情况下,可确立一个有效等价类和一个无效等价类。 在输入条件是一个布尔量的情况下,可确定一个有效等价类和一个无效等价类。 在规定了输入数据的一组值(假定n个),且程序要对每个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 在规定了输入数据必须遵守的规则的情况下,可确立一个有效等价类(符合规则)和若干个无效等价类(从不同角度违反规则)。 在确知已划分的等价类中各元素在程序处理中的方式不同的情况下,则应再将该等价类进一步的划分为更小的等价类,网络性能评价与测试,20
17、20/12/10,27,在确立了等价类后,可建立等价类表(输入条件、有效等价类、无效等价类)并列出所有的等价类,然后从划分出的等价类中按以下三个原则设计测试用例: 为每一个等价类规定一个唯一的编号。 设计一个新的测试用例,使其尽可能多地覆盖尚未被覆盖地有效等价类,重复这一步,直到所有的有效等价类都被覆盖为止。 设计一个新的测试用例,使其仅覆盖一个尚未被覆盖的无效等价类,重复这一步,直到所有无效等价类都被覆盖为止,网络性能评价与测试,2020/12/10,28,实例4,使用等价类划分法为NextDate函数设计测试用例。 NextDate函数包含三个输入变量month、day和year (要求m
18、onth、day和year均为整数值,并且满足:1month12;1day31;1912year2050),函数的输出为输入日期后一天的日期。 (1) 分析NextDate函数的规格说明,列车输入域等价类表(包括有效和无效等价类)。 (2) 根据(1)中的等价类表,设计能覆盖所有等价类的测试用例,要求包括输入数据和预期输出,并指出各个测试用例所覆盖的等价类编号,网络性能评价与测试,2020/12/10,29,1) NextDate函数的输入域等价类表,网络性能评价与测试,2020/12/10,30,2) 根据等价类表设计的测试用例如下,网络性能评价与测试,2020/12/10,31,2、边界值
19、分析法,边界值分析方法是对等价类划分方法的补充。长期的测试经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。 使用边界值分析方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界是应着重测试的边界情况,应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据,网络性能评价与测试,2020/12/10,32,若输入条件规定了值的范围,则应取刚达到这个范围边界的值,及刚刚超越这个范围边界的值作为测试输入数据。 若输入条件规定了值的个数,则用最大个数,
20、最小个数,比最小个数少一,比最大个数多一的数作为测试数据。 根据规格说明的每个输出条件,使用前面原则。 根据规格说明的每个输出条件,应用前面原则。 若程序规格说明给出的输入域或输出域是有序集合,则应选取集合的第一个元素和最后一个元素作为测试用例。 如果程序中使用了一个内部数据结构,则应当选择这个内部数据结构的边界上的值作为测试用例。 分析规格说明,找出其它可能的边界条件,基于边界值分析方法选择测试用例的原则,网络性能评价与测试,2020/12/10,33,3、错误推测法,错误推测法即基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性的设计测试用例的方法。 错误推测方法的基本思想是列举
21、出程序中所有可能有的错误和容易发生错误的特殊情况,根据它们选择测试用例。例如,在单元测试时曾列出的许多在模块中常见的错误、以前产品测试中曾经发现的错误等,这些就是经验的总结。 还有,输入数据和输出数据为0的情况,输入表格为空或输入表格只有一行。 这些都是容易发生错误的情况,可选择这些情况作为测试用例,网络性能评价与测试,2020/12/10,34,4、因果图法,等价类划分方法和边界值分析方法,都是着重考虑输入条件,但未考虑输入条件之间的联系,相互组合等。 考虑输入条件之间的相互组合,可能会产生一些新的情况。但要检查输入条件的组合比较难,即使把所有输入条件划分成等价类,他们之间的组合情况也相当多
22、。因此必须考虑采用一种适合于描述对于多种条件的组合,相应产生多个动作的形式来设计测试用例,这就需要利用因果图。 因果图方法最终生成的就是判定表,它适合于检查程序输入条件的各种组合情况,网络性能评价与测试,2020/12/10,35,分析软件规格说明描述中哪些是原因(即输入条件或其等价类),哪些是结果(即输出条件),给每个原因和结果赋予一个标识符。 分析软件规格说明描述中的语义,找出原因与结果之间,原因与原因之间对应的关系。根据这些关系画出因果图。 由于语法或环境限制,有些原因之间、原因与结果之间的组合情况不可能出现,为表明这些特殊情况,在因果图上用一些记号表明约束或限制条件。 把因果图转换为判
23、定表。 把判定表的每一列拿出来作为依据,设计测试用例。 从因果图生成的测试用例包括了所有输入数据取TRUE与取FALSE的情况,构成的测试用例数目达到最少,且测试用例数目随输入数据数目的增加而线性地增加,利用因果图生成测试用例的基本步骤,网络性能评价与测试,2020/12/10,36,5、判定表驱动法,1)判定表简介 程序在一些数据处理问题中,某些操作是否产生依赖多个逻辑条件的取值,即逻辑条件取值组合决定了执行不同的操作。处理这类问题就需要用判定表(Decision Table)。 2)判定表组成 条件桩(Condition Stub):列出了问题的所有条件 动作桩(Action Stub):
24、列出了问题规定可能采取的操作 条件项:列出针对它所列条件取值,在所有可能情况下的真假值 动作项:列出在条件项的各种取值情况下应该采取的动作 规则:任何一个条件组合的特定取值及其相应要执行的操作 注:判定表中贯穿条件项和动作项的一列就是一条规则,网络性能评价与测试,2020/12/10,37,1) 确定规则的个数。假如有n个条件,每个条件有两个取值(0,1) ,故有2n种规则; (2) 列出所有的条件桩和动作桩; (3) 填入条件项; (4) 填入动作项,制定初始判定表; (5) 简化。合并相似规则或者相同动作。 4)判定表设计测试用例的条件 (1) 规格说明以判定表的形式给出,或很容易转换成判
25、定表; (2) 条件的排列顺序不影响执行哪些操作; (3) 规则的排列顺序不影响执行哪些操作; (4) 当某一规则的条件已经满足,并确定要执行的操作后,不必检验别的规则; (5) 如果某一规则要执行多个操作,这些操作的执行顺序无关紧要,3)判定表的建立(步骤,网络性能评价与测试,2020/12/10,38,6. 其他功能测试技术,正交试验法 功能图法 场景法 随机测试法 状态转换分析分法 等等,网络性能评价与测试,2020/12/10,39,3.4 测试用例的评审与维护,1. 测试用例的评审 测试用例在设计之后要经过评审,评审的内容如下: 1) 用例是否完整?是否每个需求都有其对应的测试用例来验证? 2) 是否每一个设计元素都有其对应的测试用例来验证? 3) 事件顺序能否产生唯一的测试目标行为? 4) 是否每隔测试用例都阐述了预期结果? 5) 是否每个测试用例(或每组相关的测试用例)都确定了初始的测试目标状态和测试数据状态? 6) 测试用例是否包含了所有单一的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版国有企业劳务派遣员工服务协议
- 2025房地产项目居间合同范本:可持续发展地产项目合作
- 2025电商代运营年度供应链管理服务合同范本
- 2025版钢构工程安装与绿色环保验收合同协议
- 2025版专业清洁公司劳务分包安全合作协议书
- 二零二五版深基坑定向钻施工与支护设计合同
- 2025版大学生创新创业项目投资合作协议
- 2025版二手商铺租赁合同租赁双方权利义务说明书
- 2025范本模板:内部股东退出及环境保护责任合同
- 2025版企业单位食堂外包服务托管合同协议书
- 岗位职责管理办法
- 3.1.4 认识除法算式(课件) 人教版数学二年级上册
- 2025版保育员理论考试试题试题(附答案)
- 基于无人机的公路路面及设施状况智能检测技术研究采购服务方案投标文件(技术方案)
- 履约能力提升培训大纲
- 农产品经纪人基础技能培训手册
- 2024年湖南省古丈县人民医院公开招聘医务工作人员试题带答案详解
- 海南省2024-2025学年高一下学期学业水平诊断(二)物理
- 2025年食品安全抽查考试复习题库模拟题及答案指导
- 海尔冰箱BCD-257DVC使用说明书
- 2025年高考真题-政治(河南卷) 含解析
评论
0/150
提交评论