基于内存建模的测试数据自动生成方法研究

来源 :北京邮电大学 | 被引量 : 3次 | 上传用户:sticker2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件测试是保证软件质量和提高软件可靠性的主要手段,其关键和核心问题之一是测试数据的生成。测试数据自动生成技术可以降低软件的开发成本,大大提高软件测试的效率,是当今软件测试自动化领域的一个研究重点。结构测试是一种重要的软件测试方法,其针对程序内部结构的语句覆盖、分支覆盖和条件覆盖等测试问题都可以归结为面向路径的测试数据生成问题。目前已经提出的面向路径的测试数据自动生成方法主要分三类:基于符号执行的静态方法、基于程序实际执行的动态方法和基于动态符号执行的动静结合的方法。这些方法大部分针对数值型变量的测试数据自动生成。复杂结构体、字符串和数组是C语言中常用的数据类型,并且在实际程序中有广泛的应用。传统的符号执行方法很难模拟这些变量在程序执行过程中的操作语义,而动态方法又很难构造适合这些变量的适应值函数。为此,本文提出一种静态的基于内存建模的测试数据自动生成方法,该方法可以自动生成能执行被测路径的复杂结构体、字符串和数组测试数据。本文主要完成了以下工作:(1)创建了一种由四个抽象内存表构建的抽象内存模型:元变量抽象内存表PMTable、结构变量抽象内存表STMTable、字符串变量抽象内存表SRMTable和数组变量抽象内存表ARMTable。该抽象内存模型可以精准的记录复杂结构体、字符串和数组变量在程序执行过程中的状态。(2)设计了复杂结构体、字符串和数组变量在抽象内存模型中的操作规则:通过对抽象内存模型的操作可以模拟指向复杂结构体和字符串的指针操作;字符串常用的库函数操作可以准确的映射到对抽象内存模型的操作;通过对抽象内存模型的操作可以模拟动态下标对应的数组元素的操作。(3)提出了基于该抽象内存模型的复杂结构体、字符串和数组测试数据自动生成算法。利用此抽象内存模型辅助符号执行被测路径,把路径执行过程中复杂结构体、字符串和数组变量的语义操作映射到对抽象内存的操作,通过抽象内存来精准的记录路径的约束条件。并设计了一种分两步进行字符串和数组路径约束条件求解的方法,首先对字符串长度、字符串中受约束字符的位置、数组长度和数组中动态下标变量进行约束求解,之后再对字符串中确定位置的字符元素和数组中确定下标的元素进行求解,从而提高了求解效率并且解决了数组动态下标问题。(4)对所提算法进行实例分析,并且在自动单元测试系统UATS基础上对该方法进行了实验,实验结果证明了该方法的可行性。
其他文献
在胚胎早期发育过程中,存在易停留在某个阶段的现象,称之为发育阻滞,如小鼠胚胎的2-细胞阻滞等。从分子结构及功能、调控活性氧水平和作用网络方面,综述了p66^Shc基因调控早
随着大数据时代的到来,县域经济的不断发展和城市化水平的不断提高,人们获取知识呈现多元化和复杂化。县级公共图书馆作为公共文化服务体系的重要组成部分,本文分析探讨了大数据
<正> 苏联每年生产钢筋混凝土预制板已超过1.3亿m~3,要起吊运输和安装这些建筑构件,必须使用安装吊环。生产制造这种吊环将消耗50万吨钢铁。以后这些钢铁大部分成为废物,因为
在马克思是否是欧洲中心论者的问题上,一些学者持肯定态度,认为马克思是欧洲中心论的典型代表并加以批判。从直接论据的角度看,这些学者对马克思“欧洲中心论批判”主要集中在三
红螯螯虾的养殖技术分布及特征红螯螯虾主要分布在澳大利亚的东北海岸,适应性较强,但其生物学目前尚知之甚少。试养始于1985年,现已扩展到一些新的地区,包括昆士兰州和新南威尔士州东
<正> 公元一二一○年南宋爱国诗人陆游在临终前以“不见九州同”为憾,写了一首有名的《示儿》诗。大约过了七十年,另一爱国诗人林景熙在陆游诗卷后题了一首七古。最末一段,他
思想政治教育是培养高素质人才的重要措施,在新时期高职教育中发挥着重要的作用。将思想政治教育与校园文化建设相互结合,使彼此既相互独立又相互渗透。这是新时期高等教育精神
荀子的政治思想对后世产生了深远影响,其思想具有很高的实践价值。本文对荀子的政治思想进行了探析,首先分析荀子政治思想的逻辑基础、逻辑起点,然后介绍荀子政治思想的主要
随着医疗事业的不断发展,医院的工作也随之变化,为了更好地适应社会和医院的发展,加强医院的档案管理是必然的。本文通过结合目前医院档案管理工作中的现状进行分析,找出存在的问
在当前迅猛发展的信息社会下,档案信息化和档案信息化建设已经成为档案事业应对迅猛发展的信息社会的必然选择。从党和国家明确提出的“以信息化带动工业化”的要求,到国家档案