




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
-程序分析技术,软件测试方法和技术,由安博测试空间技术中心,软件测试方法和技术,董瑞志/nature_dongEmail:hello_uMSN:nature_dong联系电话内容提要,程序分析的视角文本视角句法视角功能视角计算流视角程序分析技术故障插入变体分析数据流分析控制流分析程序切片程序插装,文本视角,从文本的视角来看,一个程序被看作是字符或记号的序列。文本视角提供的信息是物理的、基本的。它一般不对文本内容的语法和语义进行分析,而只对文本本身的基本内容进行分析。例如,分析文本的规模、行数、词汇数、词汇频度等内容。文本视角是其他视角分析的基础。,句法视角,一个程序可以被看成一个分层结构,它可以被分解到子程序,再被分解到语句组,然后被分解到语句等等,直到符号层。在这个分解中,每个最基本的元素以及元素间的组合关系是由程序语言的语法决定的。这种视角被称为句法视角。,功能视角,程序可以被看成是一个功能集,功能被认为是对一个有序对(x,y)集合的指示。其中y是由程序在输入x处阻塞而产生的输出。用输入x执行程序和观察它的输出(如果有的话)是一种分析技术,该技术提供了程序在给定输入上的直接证据。,计算流视角,一个程序可以被看成一个有限计算集的表示。一个计算是当程序执行特定输入时产生的数据状态的轨迹。通过一次执行来促使一个程序的计算流被完整分析,可以服务于估计在代码中遗留缺陷的数量、测试数据捕捉缺陷的能力和程序隐藏缺陷的可能性。,变体分析,变体分析(变异分析)使用故障插入来分析测试数据的属性。带有插入错误的程序称为一个变体或变异。变体分析在程序测试中的应用是相当广泛的,并且是一个相当重要的技术,可以用于验证测试的充分性。,Tobecontinue,变体分析,故障插入是一个统计的方法,用于评价遗留在一个程序中的故障数量和种类。首先,故障被插入到一个程序中,然后,程序被测试,并且发现故障的数量可用来估计还没有被发现故障的数量。主要目的是为了评价系统的哪些模块、哪些代码是危险模块、危险代码,容易出问题,从而评价系统的容错能力。,控制流分析,程序流程图:程序流程图是一种程序控制结构的图形表示方式。在程序流程图上的处理框内常常标明了处理要求或条件。,Tobecontinue,控制流分析,控制流图:为了更加突出控制流的结构,需要对程序流程图做些简化,这种简化了的流程图称为控制流图,即流图。,Tobecontinue,控制流分析,控制流图中的符号:节点:以标有编号的圆圈表示,代表程序流程图中矩形框所表示的处理、菱形表示的分支及多选择结构点。控制流线:以带箭头的直线或弧表示,与程序流程图中的数据流线是一致的,表明了控制的顺序。控制流线通常标有名字,如图中所标的a、b、c等。,Tobecontinue,控制流分析,为便于表示和处理控制流图,可以把控制流图表示成矩阵的形式,称为控制流图矩阵。控制流矩阵:nxn,n为控制流图中节点数量。,Tobecontinue,控制流分析,控制流图矩阵,数据流分析,数据流分析最初是随着编译系统要生成有效的目标码而出现的,这类方法主要用于代码优化。数据流分析方法在确认系统中也得到成功的运用,用以查找如引用未定义变量等程序错误,以及用来查找对未曾使用的变量再次赋值等数据流异常的情况。,数据流分析重要性,在程序测试中,找出这些错误是很重要的。因为这常常是常见程序错误的表现形式,如错拼名字、名字混淆或是丢失了语句。,数据流分析的两个概念,变量定义:如果程序中某一语句执行时能够改变某个变量V的值,则称V是被该语句定义的。变量引用:如果程序中某一语句的执行引用了内存中变量V的值,则说该语句引用变量V。,数据流分析案例,例如:1.语句X:Y十Z定义了X,引用了Y和Z;2.语句ifYZthengotoexit引用了Y和Z。,3.输入语句READX定义了X。4.输出语句WRITEX引用了X。,Tobecontinue,数据流分析案例,每个语句定义和引用的变量的列表。,Tobecontinue,数据流分析,程序中有两个错误:语句2使用了变量W,而在此之前并末对其定义。语句5、6使用变量V,这在第一次执行循环时也未对其定义过。程序中还包含两个异常:语句6对Z的定义从未使用过。语句8对W的定义也从未使用过。,程序切片,对于给定的一个程序行为的子集,通过切片技术把程序减小到一个最小化形式,并且仍旧能产生给定的行为。这个简化后的程序就称为切片。,Tobecontinue,程序切片,对于一个中等复杂的程序来说,要进行比较完整的测试其成本是非常高的。那么使用切片技术,可以把一个规模较大且较复杂的程序转换成多个使用一定切片标准而获得的切片程序,这些切片相对原来的程序来说,要简单且易于测试。,程序插装,程序插装是一种基本的白盒测试手段,在软件测试中有着广泛的应用。,Tobecontinue,程序插装,什么是程序插装?程序插装方法简单地说是借助在被测程序中插入检查点的方法,来实现白盒测试的目的。,Tobecontinue,程序插装的目的,通过测试这些检查点的信息,可以了解执行过程中程序的动态特性,如程序的实际执行路径,或是特定变量在特定时刻的取值。,Tobecontinue,程序插装,从这一思想发展出的程序插装技术能够按用户的要求,获取程序的各种信息,成为测试工作的有效手段。通过程序插装技术我们可以了解一个程序在某次运行中所有可执行语句被覆盖(或称被经历)的情况,或是每个语句的实际执行次数。,Tobecontinue,程序插装的应用,测试覆盖率和测试用例有效性度量;断言检测;数据流异常检测;路径智能分解,Tobecontinue,用于测试覆盖率和测试用例有效性度量的程序插装,可能的测试覆盖度量:程序中每个语句至少被执行一次;在流程图中的每个分支至少被经过一次;每个可能被执行的路径至少被经过一次。可能途径:在控制流中确定一个点集;在程序中的这些点上插入软件计数器;用一组测试用例测试这个程序;检查计数器的值以确定获得的覆盖率的范围。,Tobecontinue,程序插装,计数器的实现可以使用一个已命名的子程序或子过程。,Tobecontinue.,程序插装,以计算整数x和整数Y的最大公约数程序为例。,Tobecontinue.,程序插装,图中虚线框并不是原来程序的内容,而是为了记录语句执行次数而插入的。虚线框语句形式为:C(i)C(i)十1i1,2,6,Tobecontinue.,程序插装,程序从入口开始执行,到出口结束。凡经历的计数语句都能记录下该程序点的执行次数。如果我们在程序的入口处还插入了对计数器C(i)初始化的语句,在出口处插人了打印这些计数器的语句,就构成了完整的插装程序。经过插装的程序便能记录并输出在各程序点上语句的实际执行次数。,Tobecontinue.,程序插装,插装后的程序:,Tobecontinue.,程序插装,经过插装的程序,一方面可检验测试的结果数据,另一方面还可借助插入语句给出的信息了解程序的执行特性。所以,我们有时把插入的语句称为“探测器”或“探针”,借以实现“探查”或“监控”的功能。,Tobecontinue.,程序插装,在应用程序插装方法时,需要考虑的问题:探测哪些信息;在程序的什么部位设置探测点;需要设置多少个探测点。需要结合具体程序分析。需要考虑如何设置最少探测点,达到测试的目的。,Tobecontinue.,程序插装,实践表明,程序插装方法是应用很广的技术,特别是在完成程序的测试和调试时非常有效。,Tobecontinue,用于断言检测的程序插装,在程序的特定部位插入某些用以判断变量特性的语句,使这些语句在程序执行中得以证实,从而使程序的运行特性得以证实。把插入的这些语句称为断言。断言是程序插装技术的一个典型使用。程序员必须在程序的正确位置放人正确的断言,这不是一件容易的事情。,北京测试空间科技发展有限公司是注册于北京市海淀区高新技术园的软件企业,目前主要业务范围包括软件测试管理工具研发、软件测试项目外包和软件测试专业技术人才培养及派遣。在软件测试管理工具研发领域已成功开发
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- MEK1-2-PKM2通路介导巨噬细胞代谢重编程在心脏移植排斥反应中的作用及机制研究
- 美好的梦想心中的歌抒情作文5篇
- 单增李斯特菌铁摄取调控因子Fur调控环境适应和宿主感染的机理研究
- 2025至2030食品饮料灌装机行业项目调研及市场前景预测评估报告
- 我们的神奇校园写物作文15篇范文
- 桂林市主城区综合公园适老性评价及优化研究
- 渔夫和金鱼的故事解析:小学高年级语文童话寓言教学教案
- 老年真菌感染防治要点与诊疗策略
- 陕甘宁边区的防疫制度及践行研究
- 写人作文感谢您爷爷450字7篇
- 2019年盲样考核方案汇总
- 天医门符法修炼与祝由移病法
- 义务教育科学课程标准(2022年版)
- 美国CLIA88质量要求
- 货物运输托运单
- 年公开选拔副科级领导干部试题及答案
- 喉镜使用简单介绍PPT课件
- 赴美国自由行旅行英文行程单模板(面签)
- 不停车称重系统
- 中国重汽集团章丘工业园简介-12页word资料
- 检验科生物安全审批记录
评论
0/150
提交评论