题名 程序不变量到断言的自动转换方法研究及其应用
被引量:2
1
作者
邓超强
曾凡平
武飞
熊能
董齐兴
机构
中国科学技术大学计算机科学与技术学院
中国科学院软件研究所计算机科学国家重点实验室
安徽省计算与通讯软件重点实验室
出处
《计算机应用与软件》
CSCD
北大核心
2012年第11期177-180,189,共5页
基金
安徽省自然科学基金项目(11040606M131)
文摘
程序不变量可以揭示程序的内部属性和动态执行情况,已经成功应用于软件测试用例的生成与约简。然而,每新增一个用例都要在整个测试用例集合上重新提取程序不变量,时间开销较大。提出一种基于正则表达式的将程序不变量自动转换为对应断言的方法,并利用断言判断新用例是否冗余,仅当新用例非冗余时才提取程序不变量,从而大幅度减小时间开销。将这种基于断言的测试方法应用于回归测试,可以有效约简测试用例集合,识别程序改动所影响的元素,进而发现潜在的程序错误。实验结果表明,与其它测试用例选择方法相比,该方法时间消耗小、测试用例集合约简率高、揭错能力强。
关键词
程序不变量
断言
回归测试
错误识别
测试用例集合约简
Keywords
Program invariant Assertion Regression test Error identification Test suite reduction
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 基于程序不变量计算软件可靠性
被引量:4
2
作者
周远
丁佐华
机构
浙江理工大学理学院
浙江理工大学信息学院
出处
《软件学报》
EI
CSCD
北大核心
2015年第12期3075-3087,共13页
基金
国家自然科学基金(61210004
61170015)~~
文摘
现有的计算软件可靠性的方法采用测试的输入/输出结果,但这些数据并不能真实地反映软件内部的真实行为,如测试中会出现假性正确的情况以及测试不能显示一个输入有多个错误的输出情况.试图通过程序不变量来计算软件的可靠性,程序不变量可以描述程序的性质.首先选取测试用例集,动态地获取程序不变量,再从这些不变量中提取失效数据,最后,基于Nelson模型计算软件的可靠性.作为实验,对西门子程序包计算软件的可靠性.采用随机、分支覆盖和分块覆盖这3种不同的测试方法得到程序不变量,据此计算程序的可靠性.为了检查结果的可行性,采用传统方法计算这些软件的可靠性.两种可靠性比较后显示:它们的差别很小,而且不依赖于对测试方法的选择.通过进一步的方差分析得知,用所提出的方法计算的可靠性比用现有的方法计算的可靠性具有更小的波动,即更平稳.因此,前者更接近系统的真实可靠性.结论说明,可用程序不变量来计算软件的可靠性.
关键词
测试用例集
程序不变量
失效数据
Nelson模型
软件可靠性
Keywords
testing case
program invariant
failure data
Nelson model
software reliability
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 程序不变量检测技术
被引量:3
3
作者
刘树锟
阳小华
机构
湖南涉外经济学院计算机科学与技术学部
南华大学计算机科学与技术学院
出处
《计算机工程与科学》
CSCD
北大核心
2011年第3期108-112,共5页
基金
湖南省教育厅基金资助项目(08C516)
湖南省自然科学基金资助项目(05JJ30117)
文摘
基于合约的程序设计是提高软件质量的一种重要技术,已经得到了很大的发展。合约描述了程序内部的基本属性、程序良性运行的保证条件以及运行后的期望结果。作为合约的一种表达形式,程序不变量一般包含类不变量、前置条件和后置条件。程序不变量是程序中隐含的属性,它可以应用于程序验证、软件测试技术、逆向工程、程序质量保证等领域。本文结合当前主流的程序不变量研究的相关成果和基于合约的程序不变量程序设计方法,分别从源程序编配技术、测试用例生成技术、程序运行轨迹收集技术和程序不变量分析技术四个方面,对程序不变量挖掘的关键方法和原理进行了详细的剖析。
关键词
程序不变量
检测技术
程序 编配
运行追踪
Keywords
program invariant
detection technology
program instrument
running trace
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 非函数依赖程序不变量动态检测技术研究
被引量:1
4
作者
刘树锟
陈继锋
阳小华
机构
湖南涉外经济学院计算机科学与技术学部
西安交通大学计算机软件研究所
南华大学计算机科学与技术学院
出处
《计算机工程与应用》
CSCD
北大核心
2008年第35期158-162,共5页
基金
湖南省自然科学基金No.05JJ30117
湖南省教育厅基金资助课题(No.08C516)
湖南省教育厅重点基金资助课题(No.07A034)~~
文摘
讨论了程序不变量的内涵,研究并建立了程序不变量动态生成系统的理论模型。在该模型中,针对非函数依赖程序不变量动态生成理论、方法和技术进行了阐述。基于数据库的理论提出了一种新的非函数依赖程序不变量动态检测技术,针对各种常见非函数依赖程序不变量类型建立了一系列检测方法。此不变量检测技术通过数据库中提供的SQL条件查询功能,灵活地检测各种常见类型的非函数依赖程序不变量,并且可以根据用户的实际需要随时指定新的程序不变量查询条件。该方法和Daikon等现有的程序不变量检测工具检测方法比较具有明显的特色和优势:第一,基于关系数据库技术,具有良好的可扩展性;第二,使用SQL条件查询功能实现非函数依赖程序不变量检测,检测方法具有很好的灵活性。
关键词
程序不变量
非函数依赖
动态检测
软件质量
条件查询
Keywords
program invariant
non-functional dependence
dynamically detect
quality of software
condition query
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 基于合约的程序不变量动态检测模型研究
被引量:1
5
作者
刘树锟
阳小华
机构
湖南涉外经济学院计算机学部
南华大学计算机科学与技术学院
出处
《计算机工程与设计》
CSCD
北大核心
2008年第23期6177-6180,共4页
基金
湖南省教育厅基金项目(08C516)
湖南省自然科学基金项目(05JJ30117)。
文摘
讨论了程序不变量的内涵,研究并建立了程序不变量动态生成系统的理论模型。主要描述基于合约的似然程序不变量发现的基本理论模型,以及程序不变量发现的主体过程,并结合Java程序设计语言进一步阐明函数依赖程序不变量动态发现的一种方法。通过程序不变量动态生成技术,可以分析程序内部的关联属性,从而有助于设计高质量的程序代码以及规范化的程序架构。
关键词
程序不变量
合约
关联属性
动态发现
模型
Keywords
program invariant
contract
associate-attribute
dynamically discovering
model
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 Java建模语言在程序不变量动态发现过程中的应用
6
作者
刘树锟
阳小华
刘杰
机构
湖南涉外经济学院计算机科学与技术学部
南华大学计算机科学与技术学院
出处
《计算机工程与设计》
CSCD
北大核心
2007年第18期4536-4538,4545,共4页
基金
湖南省自然科学基金项目(05JJ30117)。
文摘
通过程序不变量动态生成技术,可以分析程序内部的关联属性,从而有助于设计高质量的程序代码以及规范化的程序架构。主要描述基于契约的似然程序不变量发现的基本理论模型,并结合Java建模语言进一步阐明程序断言动态生成技术及其现在产生的重点问题,针对提出的问题给出了相应的解决方法。
关键词
程序不变量
Java建模语言
重载
行为接口规范语言
契约
程序 断言
Keywords
program invariant
Java modeling language
override
behavior interface specification language
contract
program assertion
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 基于不变量的程序修复进化扩展模型
被引量:2
7
作者
何加浪
张琨
孟锦
张宏
机构
南京理工大学计算机科学与技术学院
出处
《计算机应用研究》
CSCD
北大核心
2010年第12期4533-4535,4540,共4页
基金
国家自然科学基金资助项目(90718021)
自主科研专项计划资助项目(2010ZYTS035)
文摘
为了有效解决程序修复进化中搜索空间过大和正常功能牺牲的问题,提出了一种基于不变量约束的扩展的程序修复进化模型(extended repair evolutionary model,EREM),利用程序不变量约束对搜索空间进行划分和约简以降低消耗,通过使用表达程序正常功能的正测试用例学习的不变量约束(称为正不变量约束)来保证程序不牺牲正常的功能,在适应度函数的设计上考虑测试用例通过数的同时也考虑了正不变量约束的保持数,对于破坏正不变量约束的个体适应度给予一定的惩罚值。最后通过实验对模型进行了验证,结果表明了模型的可行性和有效性。
关键词
程序不变量
进化计算
程序 修复
智能修复
Keywords
program invariants
evolutionary computing
software repair
intelligent repair
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 基于不变量的程序运行保护方法
8
作者
王勇
曾庆凯
机构
南京大学计算机软件新技术国家重点实验室
出处
《计算机工程与设计》
CSCD
北大核心
2008年第5期1069-1071,1075,共4页
基金
国家自然科学基金项目(60473053)
国家863高技术研究发展计划基金项目(2006AA01Z432)
江苏省自然科学基金项目(BK2005074)
文摘
程序不变量反映了程序在特定点上的安全属性,可以作为运行保护时的监控对象。提出了一种程序运行保护方法,通过动态监控程序不变量,保护程序安全运行。该方法根据检测出的程序不变量,配置程序保护策略。运行环境支持对程序插装保护代码,执行保护策略。实验表明方法是有效的且使用方便,保护带来的性能损失不大。
关键词
程序不变量
动态监控
运行保护
保护策略
保护代码
Keywords
program invariants
dynamic monitor
runtime protection
protection strategy
protecting code
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 不变量指导的随机测试用例生成
被引量:3
9
作者
曾凡平
袁园
潘能刚
邓超强
机构
中国科学技术大学计算机科学与技术学院
安徽省计算与通讯软件重点实验室
出处
《小型微型计算机系统》
CSCD
北大核心
2011年第11期2174-2181,共8页
基金
安徽省自然科学基金项目(11040606M131)资助
文摘
随机测试以其自动化程度高、揭错能力强的优势一直在测试用例的自动化生成领域占据着重要的地位,但其冗余度高、覆盖率低的缺陷限制了它的应用.程序不变量是程序的某个或某些特定的点上保持为真的属性,它可以提供程序运行时的有价值的信息.提出一种不变量指导下的随机测试用例的自动化生成方法.这种方法通过提取程序运行时的动态不变量,指导随机测试用例的生成,并且利用随机生成的无效用例的反馈信息,约简冗余的随机用例空间,增大了选中有效用例的概率.实验结果表明,该方法在保持随机测试的高揭错能力的前提下,可以有效的降低随机测试的冗余度,提高其覆盖率.
关键词
随机测试
程序不变量
约简随机空间
测试用例
Keywords
random testing
program invariant
reducing random space
test case
分类号
TP311
[自动化与计算机技术—计算机软件与理论]
题名 一种交互式的不变量动态发现编配工具
被引量:1
10
作者
刘杰
阳小华
罗扬
吴取劲
机构
南华大学计算机与科学技术学院
出处
《计算机应用与软件》
CSCD
北大核心
2008年第10期85-86,106,共3页
基金
湖南省自然科学基金项目(05JJ30117)
文摘
发现程序中隐含程序不变量是实现高层次行为合约、提高程序质量的关键。重点研究了不变量的动态发现方法与程序编配原理,并在传统的编配方法基础上实现了交互式的石鼓编配工具。该工具具有预设观测点和观测变量等功能,并通过将运行轨迹收集到数据库中来实现不变量分析。并详细说明了采用内嵌法的编配工具的总体结构及实现过程。实验证明石鼓编配工具能更方便有效地发现不变量。
关键词
程序不变量
动态发现
编配工具
Keywords
Program invariant Dynamically discovering Instrumenter
分类号
TP391
[自动化与计算机技术—计算机应用技术]
TG7
[金属学及工艺—刀具与模具]
题名 基于合约的程序分析技术研究
11
作者
李冠雄
机构
湖南涉外经济学院实验中心
湘潭市昭山农药厂
出处
《现代电子技术》
2012年第12期31-33,36,共4页
文摘
为了更好地保证并提高计算机软件质量,在软件设计过程中采用了合约式程序设计方法。以大量程序运行轨迹数据为基础,以SQL Server 2005为实验平台,在大量详实的检测程序中对类与类之间、变量之间以及接口与类之间的关系进行了程序动态分析实验。实验表明,在函数的入口处或者在类的开始点检测程序中应保持的隐含性质是相对较好并且合理的的检测位置。通过利用合约进行程序动态分析的基本过程,是一种新的软件质量保证的思维模式,利用这种模式可以进一步提高软件质量,从而保证软件的可用性。
关键词
合约
断言
程序不变量
程序 动态分析
Keywords
contract
assertion
program invariant
dynamic analysis of program
分类号
TN919-34
[电子电信—通信与信息系统]
题名 随机测试用例的自动化生成和约简
被引量:5
12
作者
潘能刚
曾凡平
曹青
机构
中国科学技术大学计算机科学与技术学院
安徽省计算与通讯软件重点实验室
出处
《小型微型计算机系统》
CSCD
北大核心
2011年第10期2035-2040,共6页
文摘
自动化生成高质量测试用例是软件测试的核心问题.随机测试能快速生成大量测试用例.程序不变量作为程序中保真的属性,能反映程序执行测试用例时的真实情况.本文针对Java语言设计实现了带预设值的随机测试用例自动生成器,并利用不变量提取技术进行约简,实现了高质量测试用例的全自动化生成和约简.实验证明,本文实现的技术有效提高了随机测试的代码覆盖率;测试用例约简效果明显;并能有效揭示程序中的错误.
关键词
软件测试
预设值
随机测试
测试用例
程序不变量
Keywords
software testing
preset-value
random testing
test case
program invariant
分类号
TP391
[自动化与计算机技术—计算机应用技术]