1、“.....。动态检测程序不变量可以送入到个自动化系统,减少人们全手动注释程序必要,去支持不变量属性项很少程序员会擅长或享受任务。,∗楚。比如,关于个程序论证是有效这么个前提陈述,可以作为程序功能不变量或访问者使用属性,并注意不要提供提供不合法值。在正式详细文献上,如果前提条件,如果符合,并保证了后置条件在出口处为真,则退出。所有由所报告前提条件和后置条件要符合此准则,即使前提条件不会成为最弱前提条件。使用内容在解释文档操作或个数据结构使用功能界限文档时很有用。因为功能不变量和使用属性间区别与程序员工作状态有关,我们会从此把检测作为首要目标。不变量使用不变量对人类和工具,程序所有方面,包括设计,编程,测试,优化以及维护都很有用。这章节列了不变量些应用,去作为程序员们为什么关注它们并从程序中跟踪它们并是很值得目标动力。编写更好程序......”。
2、“.....能区分它有意操作并在完成时指示。更正式思考代码能影响更多有规律设计和执行,即使是非正规使用不变量也对程序员有帮助,其他作者建议把不变量作为注释个必要部分,在程序中定义个说明。虽然这些使用是有用,论文关注不变量在已构建程序中使用。文档代码。不变量注重程序执行些方面和提供有用程序操作文档,算法和数据结构。例如,他们认为程序理解在些程度上是每个程序运算先提条件。文档是从至今为止程序中自动提取出来,不像人们所写信息,当代码变了时则需被更新。定义文档。自动关联不变量对已注注释文档,断言陈述,或规格说明代码很有用。先关联不变量能检查和定义编程提供不变量程序自检通常过时,无效或不正确。此外,人们相互检查是比较弱因为不同人倾向于犯同样错。检查假定......”。
3、“.....程序类型是另种这样假设,能在编译,运行,或两者都是时被检查。避免缺陷。不变量能阻止程序员因疏忽而违反程序正确行为假设而做改变。当改变时,现有程序中明确不变量缺失使得程序员更易产生。在点上确定不变量可能依赖于其它地方,但如果原始不变量不是被文档化,少依赖,那么程序员很容易会违反它,在程序个远部分产生。程序维护产生以及更多,大多数是因为违反不变量。帮助程序员避免产生是最初动态不变量检测动力。这个活动和检测缺陷样有价值即使数量困难少量,因为阻止个问题比后来再修改更简单也更便宜。不管是静态还是动态区分不变量都作为以上所述使用除了第个,用于程序设计。其它运用,动态检测不变量比静态不变量检测更有用。形成范围。个程序范围是程序任何可度量属性或它执行。例子包括程序执行行集或路径,输出大小,运行时间,或静态属性,例如资源复杂。通常,个范围可以当做个摘要或哈希代码程序范围不同能指出或描绘程序......”。
4、“.....动态检测不变量也能形成程序范围,能指出变化程序属性或输入并能作为另范围使用。找出不同条件。不寻常或异常情况能指示或特别情况,进而引起程序员注意。个近而真不变量能指示环境需要特别注意或个异常输入。有效测试套件。动态检测不变量能揭露程序本身测试套件,因为属性反映了程序在运行测试套件。个不变量可能会揭露程序只能操作小值,或些值经常存在相互间特别关系。这些属性可能会指示程序值和状态覆盖不足和程序行为锻炼不足,即使套件覆盖程序每行或路径。这些不变量能帮助测试用例以个或两个不同方式产生。新测试能明显违反不变量,通过扩大值覆盖来提升套件类似扩大而不是操作范围,它需要两个值必须有不同值。相互,新测试能观察在程序运行不变量,测试套件能描程序或部件实际,正确使用。优化公共用例。简介直接编译使用信息聚集在先前运行来优化。如果个特别值或情况是普遍,便宜去测试......”。
5、“.....并假设制约。举个例子,不变量命名别名是在运行时点同等测试,专业化程序版本中已别名和未别名用例比普通用例更有效。低级执行信息用于预置文件编辑通常是最常用单变量值,它能扩张高级不变量,更好优化普通用例。不变量是数据结构,而不是内存位置或寄存器不变量,能使整个数据结构作业,避免或优化。自举证明。原理证明,流量分析,模型检查,以用其它自动或半自动机制,能通过观察,确认安全属性例如在执行时边界溢出或空指针引用,建立或终止响应,以及其它方法来在执行时增加,分辨程序正确性。然而,它们是单调而易出错,人们很难去区分将证明属性,现在系统难以假设它们些研究者认为任务比演示证明更难,。动态检测程序不变量可以送入到个自动化系统,减少人们全手动注释程序必要,去支持不变量属性项很少程序员会擅长或享受任务。,∗,,,,楚。比如......”。
6、“.....可以作为程序功能不变量或访问者使用属性,并注意不要提供提供不合法值。在正式详细文献上,如果前提条件,如果符合,并保证了后置条件在出口处为真,则退出。所有由所报告前提条件和后置条件要符合此准则,即使前提条件不会成为最弱前提条件。使用内容在解释文档操作或个数据结构使用功能界限文档时很有用。因为功能不变量和使用属性间区别与程序员工作状态有关,我们会从此把检测作为首要目标。不变量使用不变量对人类和工具,程序所有方面,包括设计,编程,测试,优化以及维护都很有用。这章节列了不变量些应用,去作为程序员们为什么关注它们并从程序中跟踪它们并是很值得目标动力。编写更好程序。些作者已经注明了好程序对代码轨迹有影响当不变量运用在他们设计时不变量准确正式化代码合约,能区分它有意操作并在完成时指示......”。
7、“.....如可存在断言语句,形式化规格说明,或不变式描述。例如数组不包含复制子节点父亲节点给所有节点以及有向无环图。不变量表明了程序数据结构和变量运算规则,并且有利于程序维护。例如,当修改代码时他们定义程序属性必须保存。尽管有这些优势,不变量还是经常在编程中丢失。此外程序员应能从程序中自动推断出疑似不变量来充分注释代码。动态技术研究专注于动态技术从运行轨迹中发现不变量。个程序不变量动态检测是检查变量在系列测试用例值并记录在这些值中属性和关系。本章节讨论了如何获得不变量章节,介绍动态不变量检测章节,讨论关于两个与动态技术运用有关观点测试集在章节,属性使用在章节,列举不变量使用章节,列举关于论文贡献者章节,给出其余文件路线图章节。获取不变量方法程序员在写程序或者用其他方式操作程序时......”。
8、“.....因为这样可以很好把握系统运行情况,可以清楚描述数据结构以及表达变量之间关系等。但是比较可惜是,这主张在实际编码过程中几乎没有得到应用,因此大多数程序完全缺乏正式或者非正式不变量分析。另方面,程序员应在用不变量注释代码时能自动推测出不变量。不变量检测包含在设计空间隐藏部分程序员脑海里所想不变量。不变量检测是动态或静态。静态分析检测程序测试并找出可能执行和运行时间状态。最普遍静态分析是数据流分析,用抽象作为其理论解释依据。传统,健全分析结果能保证所有可能执行为真由于编译器和其它些系统不是面向用户,它在些对正确性要求严格时非常合适。静态分析有局限性。它不能真实报告除了不可判定属性或程序上下文属性。在静态分析程序中运用了语言特征,例由于堆栈近似值精度缺失而难以表示并会产生较弱结果,指针会余留在技术状态那边。动态分析在这些执行中运行程序,检查执行并报告属性......”。
9、“.....动态不变量检测本研究主要专注动态发现不变量这个技术是通过执行个关于程序集输入以及从获得不变量轨迹中推测出不变量。图显示是以亚洲人命名不变量检测工具高层体系结构。动态不变量检测从程序执行中发现疑似不变量,通过指令目标程序去产生些确定值,通过测试套件运行机器程序,推论编译不变量并获得未在程序中显露不变量。所有步骤都是自动除了选择测试套件。现在存在工具是资源到资源翻译我们使用是工具和前后交互模式。推论步骤测试可能不变量对于那些从指令值获得值。满足所有值,并能满足其它测试,例如数据合理性,不被相关联值,不被其它报告不变量所包含属性才称为可能不变量。运行程序动态分析需要执行目标程序。个好测试套件好处大于它花费,即使是没有动态不变量检测下,它还能使用于其它动态技术例如回归测试。确,个程序缺少测试套件不能运行或没有可能会出现很多问题,并应在不变量检测前用标准技术来改正之......”。
1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。