




已阅读5页,还剩59页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章软件测试基础,本章要点白盒测试和黑盒测试的定义;常见的白盒和黑盒测试设计技术;白盒测试与黑盒测试的区别;测试计划和测试报告的编制;测试用例的定义和编制方法。,本章目标理解并掌握白盒测试和黑盒测试,以及二者的优缺点和各自的应用范围;能够熟练使用几种常见测试用例设计技术;了解测试计划和测试文档的作用,以及应该包含的内容和制定方法;了解测试报告的基本内容,以及测试用例的基本内容和编制方法。,2.1用于测试的离散数学和图论基础一般而言,在功能性测试中,通常要用到离散数学知识,而在结构性测试领域中,则要用到一些关于图论的知识。2.1.1集合论集合论可分为:自然和不言自明两种。自然的集合论把集合看作是基本术语,我们把集合看作一个单位,或一个整体引用多个事物。,集合的表示法有以下两种:1、将集合所有元素一一列出的表示法叫做“枚举法”,但有时也可以只列出一部分元素。M1=1月,2月,3月,4月2、用一个集合所具有的共同性质来刻画这个集合。N=t:t是等边三角形,集合的划分:划分的含义就是将一个整体分成小块,使得所有事物都在某个小块中,不会遗漏。划分的定义:给定集合B,以及B的一组子集A1,A2,A3,An,这些子集是B的一个划分,当且仅当A1A2An=B,且ij=AiAj=,划分的概念对于测试人员非常重要,在测试中往往一方面要保证B的所有元素都在某个子集中,另一方面要保证任意一个元素都不会同时出现在两个子集中。有效的划分可以保证功能测试时的完备性与无冗余性。防止有些内容没有被测试,而另一些内容被测试多遍的情况。功能性测试的主要困难之一,就是难以找到合适的划分。,2.1.2函数在数学领域函数是一种关系,这种关系使集合里的每一个元素对应到另一个集合里的唯一元素。函数是软件测试的核心概念,所有功能性测试的基础都是函数。函数是将唯一的输出值赋予每一输入的“法则”。函数最重要的性质是其决定性,同一输入总对应同一输出(反之未必成立)。可以将函数理解成“机器”或者“黑盒”。,2.1.3关系通俗的讲,关系就是客观世界一定范围的对象之间的某种特定联系。关系表示事物之间的某种联系,二元关系表示两个事物之间的关系,如果把这两个事物分别放在一边,如果某两个元素有关系,那么就在它们之间画一条有向线,用这种方式表示关系,称作关系图。,2.1.4命题逻辑凡是能分辨其真假的语句都叫做命题。命题逻辑有着和集合论相似的操作,表达式和标识。命题的真值只有两种,T代表真,而F代表假。,2.1.5概率论概率是随机事件发生的可能性的数量指标。在独立随机事件中,如果某一事件在全部事件中出现的频率,在更大的范围内比较明显的稳定在某一固定常数附近。就可以认为这个事件发生的概率为这个常数。对于任何事件的概率值一定介于0和1之间。,2.1.6用于测试的图图(又叫做线性图)是一种由两种集合定义的抽象数据结构,即一个节点集合和一个构成节点之间连接的集合。图中节点的度是以该节点作为端点的边的条数。在本节中将介绍的两种图:程序图有限状态机,1、程序图程序图定义:节点要么是整个语句,要么是语句的一部分,边表示控制流(从节点i到节点j有一条边,当且仅当对应节点j的语句或语句的一部分,可以立即在节点i对应的语句或语句的一部分之后执行)。程序的有向图公式化能够非常准确地描述基本结构化程序设计的构造,例如:串行、选择和循环等可以用有向图表示。,图2-1结构化程序设计构造的有向图,2、有限状态机有限状态机是需求规格说明的一种标准的表示方法。有限状态机是一种有向图,其中状态是节点,转移是边。图2-2是一个简单的自动柜员机(SATM)系统。该图描述了用于个人标识编号PIN尝试部分的有限状态机。这种机器包含5个状态(空闲、等待第一次PIN尝试等等)和8个用边表示的转移。转移上的标签所遵循的规则是,“分子”是引起转移的事件,“分母”是与该转移关联的行为。,图2-2用于PIN尝试的有限状态机,车库门有限状态机假设由两个按钮来控制门:一个称为开钮而另一个称为关钮。当门是在关闭状态,按住开钮会使得门进入上升状态,于此期间在马达控制之下,门将逐渐的开启。在门完全打开之后,即进入打开状态。再按住关钮会使门进入下降状态,于此期间门将逐渐的关闭。从状态途中可以清楚的看出门不能立即地从打开状态至关闭状态,反过来亦如此。而且,也可能轮流的按开钮与关扭,使门在上升与下降状态之间转变,使得门的动作像玩偶一样。最后,此模型说明当门是在关闭状态时按关钮或者门是在打开状态时按开钮,将不会引起任何状态的改变,所以什么事情都不会发生。,有限状态机与流程图的转换应用程序有两大类:1.一种是数据处理的程序,我们常常用算法来描述它,程序对某些输入数据进行预定的处理,以便得到某些输出的数据,程序目前的状态可以用资料目前的状态来描述,例如:人事薪资系统、仓储物流系统等等;,有限状态机与流程图的转换2.另外一类是与外界环境互动的系统,例如:操作系统、文书处理系统、航空管制系统、交通管制系统、游戏等等,这一类系统一般来说没有明确的输入/输出数据,但是有很多与外界不预期的互动,通常系统响应的方法与系统内部的状态有密切的关联,系统内部通常有许多记录状态的变量。,有限状态机与流程图的转换针对这两大类的程序,通常描述它们的方法也不太一样,对于前者,我们通常用控制流程图或是数据流程图来描述,对于后者则常用有限状态机或状态图来描述。流程图中最重要的部份是“处理过程单元,程序由几个主要的处理单元组合而成,有限状态机中最主要的是程序目前的状态,每一个状态总结记录程序由开始到目前所有接到的输入。,有限状态机与流程图的转换,有限状态机与流程图的转换,有限状态机与流程图的转换状态图明显在架构上比流程图要简单,包容的模型也比较丰富,需做的假设比较少。另外,状态图比较重视事件/动作的完成,比较不在意是哪一个程序完成的。流程图则很在意动作是如何完成的。,2.2白盒测试白盒测试是一种可视的测试软件的方法,即它把测试对象看作一个透明的盒子,测试人员要了解程序结构和处理过程,按照程序内部逻辑测试程序,检查程序中的每条通路是否按照预定要求正确工作。白盒测试的过程如图2-7所示:,2.2白盒测试,图2-7白盒测试过程示意图,白盒测试主要对程序进行的检查点:()保证一个模块中的所有独立执行路径至少测试一次;()对所有逻辑判定取值“true”和“false”的两种情况都至少测试一次;()在循环边界和运行界限内执行循环体;()测试内部数据结构的有效性。,在软件测试领域,白盒测试可以用在三种测试类型中:1、单元测试2、集成测试3、回归测试,2.2.1白盒测试与调试的异同1、从承担的任务来看,白盒测试同其他类型测试一样,它的任务是发现所开发的项目中的缺陷;但是,调试不属于测试,其任务是纠正软件中的缺陷。2、从最终的结果来看,白盒测试有预知的结果,不可预知的只是程序是否通过测试,并且成功测试的结果是发现错误的症状,从而引起调试的进行;而调试的结果是消除项目中的错误。,3、从执行的过程来看,测试是一个发现错误、改正错误、重新测试的过程;而调试是一个推理过程。4、从准备工作来看,测试从已知的条件开始,使用预先定义的程序;调试一般是以不可知的内部条件开始,做统一性调试。,5、从执行的计划性来看,测试是有计划的并要进行测试设计;而调试则不受时间约束。6、从执行的人员来看,测试经常是由独立的测试组在不了解软件设计的条件下完成的,而调试必须由程序员来完成。7、从所使用的工具来看,大多数白盒测试的执行和设计可有工具支持,而调试程序员能利用的工具主要是调试器。,2.2.2白盒测试的用例设计白盒测试用例设计技术就是研究如何用最少的测试用例最大限度地发现软件中的错误,目前主要有基本路径测试、等价类划分/边界值分析测试、覆盖测试、循环测试、数据流测试、程序插桩测试、变异测试等等方法。,2.2.2白盒测试的用例设计一、基本路径测试概念:基本路径测试就是在程序控制流图的基础上,通过分析控制构造的环形复杂性,导出基本可执行路径集合,从而设计测试用例的方法。设计出的测试用例要保证在测试中,程序的每一个可执行语句至少执行一次。,基本路径测试,前提条件测试进入的前提条件是在测试人员已经对被测试对象有了一定的了解,基本上明确了被测试软件的逻辑结构。测试过程过程是通过针对程序逻辑结构设计和加载测试用例,驱动程序执行,以对程序路径进行测试。测试结果是分析实际的测试结果与预期的结果是否一致。,基本路径测试,包括以下4个步骤:程序的控制流图:描述程序控制流的一种图示方法。程序圈复杂度:从程序的环路复杂性可导出程序基本路径集合中的独立路径条数,这是确定程序中每个可执行语句至少执行一次所必须的测试用例数目的上界。导出测试用例:根据圈复杂度和程序结构设计用例数据输入和预期结果。准备测试用例:确保基本路径集中的每一条路径的执行。,控制流图的符号,在介绍基本路径方法之前,必须先介绍一种简单的控制流表示方法,即流图。流图是对待测试程序过程处理的一种表示。流图使用下面的符号描述逻辑控制流,每一种结构化构成元素有一个相应的流图符号。,控制流图,流图只有二种图形符号图中的每一个圆称为流图的结点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流。任何过程设计都要被翻译成控制流图。,控制流图,在将程序流程图简化成控制流图时,应注意:在选择或多分支结构中,分支的汇聚处应有一个汇聚结点。边和结点圈定的区域叫做区域,当对区域计数时,图形外的区域也应记为一个区域。,控制流图,控制流图,如果判断中的条件表达式是由一个或多个逻辑运算符(OR,AND,NAND,NOR)连接的复合条件表达式,则需要改为一系列只有单条件的嵌套的判断。例如:1ifaorb2x3else4y对应的逻辑为:,独立路径,独立路径:至少沿一条新的边移动的路径,路径1:1-11路径2:1-2-3-4-5-10-1-11路径3:1-2-3-6-8-9-10-1-11路径4:1-2-3-6-7-9-10-1-11,对以上路径的遍历,就是至少一次地执行了程序中的所有语句。,基本路径测试,第一步:画出控制流图流程图用来描述程序控制结构。可将流程图映射到一个相应的流图(假设流程图的菱形决定框中不包含复合条件)。在流图中,每一个圆,称为流图的结点,代表一个或多个语句。一个处理方框序列和一个菱形决测框可被映射为一个结点,流图中的箭头,称为边或连接,代表控制流,类似于流程图中的箭头。一条边必须终止于一个结点,即使该结点并不代表任何语句。由边和结点限定的范围称为区域。计算区域时应包括图外部的范围。,例用基本路径测试法进行测试voidSort(intiRecord,intiType)intx=0;inty=0;while(iRecord-0)if(0=iType)x=y+2;break;elseif(1=iType)x=y+10;elsex=y+20;,基本路径测试,画出其程序流程图和对应的控制流图如下,基本路径测试-计算圈复杂度,第二步:计算圈复杂度圈复杂度是一种为程序逻辑复杂性提供定量测度的软件度量,将该度量用于计算程序的基本的独立路径数目。有以下三种方法计算圈复杂度:流图中区域的数量对应于环型的复杂性;给定流图G的圈复杂度V(G),定义为V(G)=E-N+2,E是流图中边的数量,N是流图中结点的数量;给定流图G的圈复杂度V(G),定义为V(G)=P+1,P是流图G中判定结点的数量。,基本路径测试-计算圈复杂度,对应上面图中的圈复杂度,计算如下:流图中有四个区域;V(G)=10条边-8结点+2=4;V(G)=3个判定结点+1=4。,基本路径测试-导出测试用例,第三步:导出测试用例根据上面的计算方法,可得出四个独立的路径。(一条独立路径是指,和其他的独立路径相比,至少引入一个新处理语句或一个新判断的程序通路。V(G)值正好等于该程序的独立路径的条数。)路径1:4-14路径2:4-6-7-14路径3:4-6-8-10-13-4-14路径4:4-6-8-11-13-4-14根据上面的独立路径,去设计输入数据,使程序分别执行到上面四条路径。,基本路径测试-准备测试用例,第四步:准备测试用例为了确保基本路径集合中的每一条路径的执行,根据判断结点给出的条件,选择适当的数据以保证某一条路径可以被测试到.,基本路径测试-准备测试用例,路径1:4-14输入数据:iRecord0,或者取iRecord0)if(0=iType)x=y+2;break;elseif(1=iType)x=y+10;elsex=y+20;,基本路径测试再举例,例:下例程序流程图描述了最多输入50个学生分数(以1作为输入结束标志),计算其中有效的学生分数的个数、总分数和平均值。,开始,i=1,n1=n2=0,sum=0,Scorei-1ANDn20ANDscorei0,average=sum/n1,average=1,返回,F,F,F,T,T,T,1,2和3,4,5和6,7,8,9,10,11,12,步骤1:导出过程的流图。,步骤2:确定环形复杂性度量V(G):1)V(G)=6(个区域)2)V(G)=EN+2=1612+2=6其中E为流图中的边数,N为结点数;3)V(G)=P+1=5+1=6其中P为结点的个数。在流图中,结点2、3、5、6、9是结判定点。,基本路径测试再举例,基本路径测试再举例,步骤3:确定基本路径集合(即独立路径集合)。于是可确定6条独立的路径:路径1:1-2-9-10-12路径2:1-2-9-11-12路径3:1-2-3-9-10-12路径4:1-2-3-4-5-8-2路径5:1-2-3-4-5-6-8-2路径6:1-2-3-4-5-6-7-8-2,步骤4:为每一条独立路径各设计一组测试用例,以便强迫程序沿着该路径至少执行一次。1)路径1(1-2-9-10-12)的测试用例:scorek=有效分数值,ki;scorei=1,2i50;期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。,2)路径2(1-2-9-11-12)的测试用例:score1=1;期望的结果:average=-1,其他量保持初值。3)路径3(1-2-3-9-10-12)的测试用例:输入多于50个有效分数,即试图处理51个分数,要求前51个为有效分数;期望结果:n1=50、且算出正确的总分和平均分。,4)路径4(1-2-3-4-5-8-2)的测试用例:scorei=有效分数,当i100,ki;期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。,6)路径6(1-2-3-4-5-6-7-8-2)的测试用例:scorei=有效分数,当i50;期望结果:根据输入的有效分数算出正确的分数个数n1、总分sum和平均分average。,基本路径测试,必须注意,一些独立的路径,往往不是完全孤立的,有时它是程序正常的控制流的一部分,这时,这些路径的测试可以是另一条路径测试的一部分。,voidReadName(CStringname)if(name=zhao)Operation(0);elseif(name=qian)Operation(1);elseif(name=sun)Operation(2);elseif(name=li)Operation(3);elseif(name=zhou)Operation(4);elseOperation(5);return;,基本路径法练习题【问题1】请画出以上代码的流程框图和控制流图(自由设计流程编号)。【问题2】请根据公式计算上述控制流图的圈复杂度V(G)。【问题3】请给出路径,并
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 多跳自组网安全-洞察及研究
- 主题教育经验交流
- 绿色包装材料-洞察及研究
- 增强现实技术提升学习者沉浸度-洞察及研究
- 新疆维吾尔自治区阿勒泰地区福海县2025-2026学年八年级上学期9月月考数学试题(含答案)
- 山东省德州市2025-2026学年高三上学期九月月考联考历史试题(含答案)
- 知识产权法律服务合同样书5篇
- 关节置换微创器械开发-洞察及研究
- 学生见习安全培训课件
- 学生离校安全协议培训课件
- GB/T 23902-2021无损检测超声检测超声衍射声时技术检测和评价方法
- 邀请函模板完整
- 2020新译林版高中英语选择性必修二全册课文及翻译(英汉对照)
- 大学物理第14章光的衍射课件
- 家长会 课件(共44张ppt) 九年级上学期
- 钻孔灌注桩施工安全控制培训教材课件
- 福建省莆田市各县区乡镇行政村村庄村名明细
- 大班幼儿随访电访记录表内有内容
- 干细胞精品课件
- 太阳能路灯说明书完整版
- 中国老龄化社会的潜藏价值(中英)
评论
0/150
提交评论