首页 > 知识点讲解
       方法简介
知识路径: > 测试技术的分类 > 白盒测试技术 > 白盒测试基本技术 > 程序插桩技术 > 
相关知识点:2个      
        程序插桩方法,简单地说,是借助往被测程序中插入操作,来实现测试目的的方法。
        我们在调试程序时,常常要在程序中插入一些打印语句。其目的在于,希望执行程序时,打印出我们最为关心的信息。进一步通过这些信息了解执行过程中程序的一些动态特性。比如,程序的实际执行路径,或是特定变量在特定时刻的取值。从这一思想发展出的程序插桩技术能够按用户的要求,获取程序的各种信息,成为测试工作的有效手段。
        如果我们想要了解一个程序在某次运行中所有可执行语句被覆盖(或称被经历)的情况,或是每个语句的实际执行次数,最好的办法是利用插桩技术。这里仅以计算整数X和整数Y的最大公约数程序为例,说明插桩方法的要点。下图所示给出了这一程序的流程图。图中虚线框并不是源程序的内容,而是为了记录语句执行次数而插入的。
        
        插桩后求最大公约数程序的流程图
        这些虚线框要完成的操作都是计数语句,其形式为:
        C(i)= C(i)+1i=1,2,…,6
        程序从入口开始执行,到出口结束。凡经历的计数语句都能记录下该程序点的执行次数。如果我们在程序的入口处还插入了对计数器C(i)初始化的语句,在出口处插入了打印这些计数器的语句,就构成了完整的插桩程序,它便能记录并输出在各程序点上语句的实际执行次数。如下图所示表示了插桩后的程序,图中箭头所指均为插入的语句(源程序语句略)。
        
        插桩程序中插入的语句
        通过插入的语句获取程序执行中的动态信息,这一做法如同在刚研制成的机器特定部位安装记录仪表一样。安装好以后开动机器试运行,我们除了可以从机器加工的成品检验得知机器的运行特性外,还可通过记录仪表了解其动态特性。这就相当于在运行程序以后,一方面可检验测试的结果数据,另一方面还可借助插入语句给出的信息了解程序的执行特性。正是这个原因,有时把插入的语句称为“探测器”,借以实现“探查”或“监控”的功能。
        在程序的特定部位插入记录动态特性的语句,最终是为了把程序执行过程中发生的一些重要历史事件记录下来。例如,记录在程序执行过程中某些变量值的变化情况,变化的范围等。又如本书前面章节中所讨论的程序逻辑覆盖情况,也只有通过程序的插桩才能取得覆盖信息。实践表明,程序插桩方法是应用很广的技术,特别是在完成程序的测试和调试时非常有效。
        设计插桩程序时需要考虑的问题包括:
        . 探测哪些信息;
        . 在程序的什么部位设置探测点;
        . 需要设置多少个探测点。
        
        插桩后求最大公约数程序的流程图
        其中前两个问题需要结合具体情况解决,并不能给出笼统的回答。至于第三个问题,需要考虑如何设置最少探测点的方案。例如,在如上图所示的程序入口处,若要记录语句Q=X和R=Y的执行次数,只需插入C(1)=C(1)+1这样一个计数语句就够了,没有必要在每个语句之后都插入一个计数语句。在一般的情况下,我们可以认为,在没有分支的程序段中只需一个计数语句。但程序中如果出现了多种控制结构,使得整个结构十分复杂,则为了在程序中设计最少的计数语句,需要针对程序的控制结构进行具体的分析。这里我们以Fortran程序为例,列举至少应在哪些部位设置计数语句:
        . 程序块的第一个可执行语句之前;
        . entry语句的前后;
        . 有标号的可执行语句处;
        . do、do while、do until及do终端语句之后;
        . block-if、else if、else及endif语句之后;
        . logical if语句处;
        . 输入/输出语句之后;
        . call语句之后;
        . 计算go to语句之后。
 
 相关知识点:
 
软考在线指南
优惠劵及余额
在线支付
修改密码
下载及使用
购买流程
取消订单
联系我们
关于我们
联系我们
商务合作
旗下网站群
高级资格科目
信息系统项目管理师 系统分析师
系统架构设计师 网络规划设计师
系统规划与管理师
初级资格科目
程序员 网络管理员
信息处理技术员 信息系统运行管理员
中级资格科目
系统集成项目管理工程师 网络工程师
软件设计师 信息系统监理师
信息系统管理工程师 数据库系统工程师
多媒体应用设计师 软件评测师
嵌入式系统设计师 电子商务设计师
信息安全工程师
 

本网站所有产品设计(包括造型,颜色,图案,观感,文字,产品,内容),功能及其展示形式,均已受版权或产权保护。
任何公司及个人不得以任何方式复制部分或全部,违者将依法追究责任,特此声明。
本站部分内容来自互联网或由会员上传,版权归原作者所有。如有问题,请及时联系我们。


工作时间:9:00-20:00

客服

点击这里给我发消息 点击这里给我发消息 点击这里给我发消息

商务合作

点击这里给我发消息

客服邮箱service@rkpass.cn


京B2-20210865 | 京ICP备2020040059号-5 |京公网安备 11010502032051号 | 营业执照 | Copyright ©2000-2023 All Rights Reserved 软考在线版权所有