首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到19条相似文献,搜索用时 500 毫秒
1.
运用程序控制流图,可以方便地度量程序的逻辑复杂度,确定软件测试中控制结构独立路径的基本集合。文章提出了根据程序设计的伪码,自动生成程序控制流图的数据结构和详细的算法,为进行控制优化、软件基本路径测试以及程序控制相关性分析提供了良好的基础。  相似文献   

2.
基本路径测试方法之圈复杂度计算   总被引:2,自引:0,他引:2  
软件测试是软件开发过程中不可缺少的重要组成部分,贯穿整个软件开发过程。在软件测试方法中,白盒测试和黑盒测试是经常使用的测试技术。白盒测试中的基本路径测试方法是解决复杂路径测试最有效的方法,而圈复杂度的计算则是基本路径测试方法中非常重要的环节。实践经验表明,圈复杂度和程序可能存在的缺陷数量有着很大的相关性,本文就基本路径测试方法中如何正确计算圈复杂度进行了探讨。  相似文献   

3.
周晟伊  曾红卫 《计算机科学》2021,48(12):107-116
程序的最坏执行路径是计算程序复杂度的一项重要指标,有助于发现系统可能存在的复杂性漏洞.近年来将符号执行应用于程序复杂度分析的研究取得了不小的进展,但现有方法存在通用性较差、分析时间较长的问题.文中提出一种面向最坏路径探测的进化算法——EvoWca,其核心思想是利用程序在较小输入规模下的已知最坏路径特征指导较大输入规模下初始路径集合的构建,然后模拟进化算法,对路径进行组合、突变和选择迭代,使得在搜索范围内探测到的最坏路径逼近于最坏时间复杂度对应的路径.基于该算法实现了一个用于程序复杂度分析的原型工具EvoWca2j,使用该工具和已有技术对一组Java程序进行最坏路径探索和执行效率评估,实验结果表明,相比现有方法,EvoWca2j的通用性和探索效率都有明显提高.  相似文献   

4.
路径覆盖测试是基于白盒的软件测试中覆盖率最高的测试方法;为了实现复杂程序的全路径覆盖测试,提出了一种基于谓词的全路径覆盖软件测试方法;首先研究了谓词覆盖的基本理论,然后对移除谓词后的孤立链进行测试,根据集成测试的观点,将谓词和对应孤立链集成以实现全路径覆盖,同时在算法中加入基本路径覆盖以实现对程序主要路径的重点测试;应用结果表明,该方法实用、高效,具有一定的推广价值。  相似文献   

5.
一种多项式时间的路径敏感的污点分析方法   总被引:1,自引:0,他引:1  
提出了一种解决静态污点分析方法在进行路径敏感的分析时面临的路径爆炸的问题的方法.该方法将污圹点分析问题转化为加权下推自动机的广义下推后继问题,进一步利用污点数据在程序中的可达性,减少后续分析中需要精确执行的路径数.从而该方法能够以多项式的时间复杂度实现程序状态空间遍历,并能在发现程序违反安全策略时自动生成反例路径.设计实验使用该方法对击键记录行为进行了刻画,对恶意代码程序和合法软件进行了两组分析实验,并与现有的方法进行了对比分析.实验证明本文的方法可以有效地对具有较多分支的程序进行路径敏感的污点分析,同时具有较小的时间复杂度和空间复杂度  相似文献   

6.
陈永郑  李龙澍 《微机发展》2007,17(12):113-115
软件测试是软件开发过程的一个重要组成部分,是进行软件有效性检查、提高软件质量的重要手段。随着软件规模的不断增大、复杂度的不断提高,传统的软件测试技术在处理大规模复杂软件系统时会出现许多问题。程序切片是一种程序分解术,主要是通过寻找程序内部的相关性来分解程序,从而达到快速错误定位或理解程序的目的。主要探讨将程序切片技术引入到软件测试中,尤其是分析在回归测试中切片方法是如何提高效率的。  相似文献   

7.
路径覆盖是软件测试中一种十分重要的方法,它使程序的每个分支至少执行一次;针对嵌入式软件测试的特点,提出了嵌入式软件路径覆盖测试的策略,通过模拟测试通用型智能水量计量仪C430主控程序的各个步骤,运用基本路径插桩策略分析计算插桩探针的位置、个数,统计计算整个探针的覆盖面,构造基本路径和实际程序执行路径;测试覆盖率达到71.1%,取得了一定的效果,对增强软件测试方案设计的系统性,提高软件测试质量和效率,起到了较好的作用.  相似文献   

8.
软件测试是软件开发过程的一个重要组成部分,是进行软件有效性检查、提高软件质量的重要手段。随着软件规模的不断增大、复杂度的不断提高,传统的软件测试技术在处理大规模复杂软件系统时会出现许多问题。程序切片是一种程序分解术,主要是通过寻找程序内部的相关性来分解程序,从而达到快速错误定位或理解程序的目的。主要探讨将程序切片技术引入到软件测试中,尤其是分析在回归测试中切片方法是如何提高效率的。  相似文献   

9.
基于DDGRAPH图的路径覆盖研究   总被引:3,自引:0,他引:3  
软件测试分为静态分析、路径选择、测试数据生成和动态分析四个阶段,而路径选择的自动生成是软件测试的关键技术之一。路径覆盖是软件测试中一种十分重要的方法,它使程序的每个分支至少执行一次。文中通过对DDGRAPH图的分析,提出了DDGRAPH图中弧的支配树和蕴含树的表示方法,然后给出由支配树和蕴含树确定非限制弧的方法,通过近似最少谓词覆盖策略以确定覆盖所有非限制弧的路径测试子集。  相似文献   

10.
路径表达式的构造方法及路径测试   总被引:3,自引:1,他引:2  
软件测试是软件设计中一个重要阶段,也是保证软件可靠性的重要手段。路径测试是软件测试中一种重要方法,而测试的关键是确定路径数目和设计测试用例。程序路径表达式是路径测试中路径的一种表示方法。本文讨论了利用程序图进行路径测试中的路径表达式的构造方法。  相似文献   

11.
精确的程序静态分析   总被引:12,自引:3,他引:9  
程序的静态分析是程序语言和编译领域的一个重要研究方向,已经被研究了很多年.近年来,它也引起形式方法和软件工程领域的重视,被用于程序测试和正确性验证.文中从程序的语法特征、所关心的数据类型和程序性质等方面比较了一些静态分析技术.着重描述基于路径的分析方法,特别是符号执行技术,讨论了程序路径可行性分析问题及其分类、复杂度.针对程序分析精度的一种量化指标,说明了其计算方法.  相似文献   

12.
程序复杂性度量的一种新方法   总被引:5,自引:1,他引:5  
通过分析传统的程序复杂性度量方法的不足之处,首先提出了一种基于程序分解机制的路径复杂性度量方法,然后给出了计算路径复杂度的算法,最后给出了实例。新的度量方法指出了一个程序需要的完全测试路径数目。  相似文献   

13.
代码混淆可有效对抗逆向工程等各类 MATE 攻击威胁,作为攻击缓和性质的内生安全技术发展较为成熟,对代码混淆效果的合理度量具有重要价值。代码混淆度量研究相对较少,针对代码混淆弹性的度量方法与泛化性、实用性度量方法相对缺乏。符号执行技术广泛应用于反混淆攻击,其生成遍历程序完整路径输入测试集的难度可为混淆弹性度量提供参考,然而基于程序嵌套结构的对抗技术可显著降低符号执行效率,增加其混淆弹性参考误差。针对上述问题,提出结合符号执行技术和N-scope复杂度的代码混淆度量方法,该方法首先基于程序符号执行时间定义程序混淆弹性;其次提出适配符号执行的N-scope复杂度,定义程序混淆强度同时增强符号执行对多层嵌套结构程序的混淆弹性度量鲁棒性;进而提出结合动态分析与静态分析的混淆效果关联性分析,通过对程序进行符号执行与控制流图提取量化混淆效果。面向 C 程序构建了该度量方法的一种实现框架并验证,实验对3个公开程序集及其混淆后程序集约4 000个程序进行混淆效果度量,度量结果表明,提出的度量方法在较好地刻画混淆效果的同时拥有一定的泛化能力与实用价值;模拟真实混淆应用场景给出了该度量方法的使用样例,为混淆技术使用人员提供有效的混淆技术度量与技术配置参考。  相似文献   

14.
数据流分析是编译系统中的一个重要的内容,也是程序静态分析的一个方面。论文按程序执行路径对数据流分析问题进行分类,这有利于建立数据流分析的统一的描述模型,并以此为基础论述了数据流分析框架与数据流分析的内在联系,这为并发程序的数据流分析奠定了良好的基础。  相似文献   

15.
相关路径静态分析中协同式逆向推理方法   总被引:1,自引:1,他引:0  
郭曦  王盼 《软件学报》2015,26(1):1-13
相关路径生成,是程序动态分析中的一种重要方法.通过对目标执行路径的获取和分析来生成与其相关的近邻执行路径,在程序行为特征分析、编译优化和调试等研究方向有重要的作用.现有的方法主要通过改变路径节点序列来生成近邻的路径集合,由于缺乏关键节点的路径引导信息,导致生成大量冗余或者无效的路径集合.提出采用协同式逆向分析的近邻路径生成方法,针对目标路径的后置条件,采用逆向符号分析方法产生程序各个基本块的前置条件作为执行路径的引导信息.同时,通过调整距离因子k的取值,可以有针对性地生成与目标路径的编辑距离不超过k的近邻路径集合.实验结果表明:与现有方法相比,该方法在准确性和效率方面有明显的优势.  相似文献   

16.
以程序结构测试自动生成为研究背景,提出了一种重叠路径结构用以描述程序路径,并以此为基础设计了一种多路径测试数据生成适应值算法,实现了一次搜索完成多条路径的测试数据生成。算法通过目标路径间共享遗传算法产生的中间个体减少单一路径搜索始于随机产生的无序个体的初期迭代,从而加快搜索收敛的速度。应用于常用的基准程序和取自实际项目的程序,该算法与典型的分支谓词距离算法相比平均消耗时间缩短了70.6%。  相似文献   

17.
曾志民  张晨  冯春燕  丁炜 《计算机应用》2005,25(10):2247-2249
研究实现动态并行路径的集中式流量工程,利用遗传算法提出流量优化算法,基于网络拥塞信息动态精简优化对象,基于网络链路利用率动态确定并行路径的采用,同时给出在并行路径间可行、简洁的流量分配方案简化算法的进化选择。仿真结果验证了提出的算法简化了解空间、降低了复杂度、提高了收敛速度,可同时确保优化性能。  相似文献   

18.
攻击图的两种形式化分析   总被引:9,自引:1,他引:8  
陈锋  张怡  苏金树  韩文报 《软件学报》2010,21(4):838-848
攻击图是一种基于模型的网络脆弱性分析技术,可以自动分析目标网络内脆弱性之间的关系和由此产生的潜在威胁.攻击图主要有状态攻击图和属性攻击图两类.前者由于存在状态爆炸问题不适应于大规模网络,目前主要的研究大多是基于后者.基于属性攻击图研究了含圈攻击路径问题和最优弥补集问题.针对含圈攻击路径问题,定义了反映真实攻击想定的n-有效攻击路径,提出了一种计算关键属性集所有n-有效攻击路径的迭代算法;针对最优弥补集问题,在定义了所有的风险源为属性攻击图的初始属性的基础上,将该问题转化为带权重的集合覆盖问题,从而归结为NP完全性问题,提出了可应用于大规模攻击图的具有多项式时间复杂度的近似算法.  相似文献   

19.
用Delphi编写上位机串口通信程序   总被引:1,自引:0,他引:1  
蓝永 《计算机与网络》2008,34(11):42-43
随着信息技术在工业领域里的深入应用,上位机串口通信程序成为了这一领域中的重要通信程序。虽然它的编写规模不大,但与普通的程序相比有一定的复杂度,需要一定的开发方法和技巧。本文以Delphi为开发工具,介绍了编写上位机串口通信程序的方法。同时,对其中的几个关键问题进行了阐述和讨论。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号