CN108509336A - 一种操作系统规范形式化验证与测试方法 - Google Patents

一种操作系统规范形式化验证与测试方法 Download PDF

Info

Publication number
CN108509336A
CN108509336A CN201810179502.3A CN201810179502A CN108509336A CN 108509336 A CN108509336 A CN 108509336A CN 201810179502 A CN201810179502 A CN 201810179502A CN 108509336 A CN108509336 A CN 108509336A
Authority
CN
China
Prior art keywords
operating system
formal
semantic model
correct
test
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810179502.3A
Other languages
English (en)
Other versions
CN108509336B (zh
Inventor
郭建
朱晓冉
张民
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
East China Normal University
Original Assignee
East China Normal University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by East China Normal University filed Critical East China Normal University
Priority to CN201810179502.3A priority Critical patent/CN108509336B/zh
Publication of CN108509336A publication Critical patent/CN108509336A/zh
Application granted granted Critical
Publication of CN108509336B publication Critical patent/CN108509336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3684Test management for test design, e.g. generating new test cases
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3668Software testing
    • G06F11/3672Test management
    • G06F11/3692Test management for test results analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/436Semantic checking

Abstract

本发明公开了一种操作系统规范形式化验证与测试方法,首先提取操作系统规范中关于系统服务执行的前置条件和后置条件的约束;根据所提取的约束规范建立形式化语义模型;对形式化语义模型以及操作系统应用进行验证,若验证不通过修正形式化语义模型或操作系统应用,直至两者都满足规范;使用模型检查的方法从正确的形式化语义模型中自动生成操作系统内核实现的测试用例;测试操作系统内核实现的正确性;验证后的应用分别在形式化语义模型和操作系统内核实现中执行并提取两条执行轨迹,应用互模拟的方法对比两条执行轨迹的一致性,若不一致则修正操作系统内核实现直至正确。本发明应用到操作系统规范的形式化验证以及操作系统内核实现的测试中,以提高操作系统的安全性、可靠性。

Description

一种操作系统规范形式化验证与测试方法
技术领域
本发明涉及操作系统领域,具体涉及一种操作系统规范形式化验证与测试方法。
背景技术
操作系统的正确性对于一个计算机系统起着至关重要的作用,为了保证操作系统在设计实现过程中的正确性与可靠性,通常操作系统的开发需要遵循相关的规范。遵守相关规范开发的操作系统为用户程序提供了统一的系统服务接口,从而增强了用户程序的重用性。在操作系统设计实现后,投入实现之前需要对其进行测试,以保证操作系统的功能正确性和实现与规范的一致性。用来对操作系统进行测试的测试用例是从规范中提取的。
目前常见的操作系统规范是用自然语言描写的,自然语言描述的规范不可避免的会有二义性。这样不仅在实现过程中可能会误导开发人员,同样也会影响到测试人员对测试用例的提取和设计。另外,由于操作系统的正确性会直接影响整个系统的安全性,仅仅对操作系统做测试是不能达到安全性要求的。本发明提出了对操作系统规范进行形式化建模以及根据模型对操作系统规范和操作系统应用进行验证,同时从形式化规范出发自动生成测试用例的方法。本发明方法建立了操作系统规范的形式语义模型,并通过模型检测方法验证操作系统应用是否满足性质规范,那么可以保证该性质规范在任何时候都是成立的,同时,采用基于形式化模型的测试用例生成方法,可以保证测试用例的正确性和规范一致性。将形式化建模的方法引入操作系统中,可以提高其安全性和正确性。
发明内容
本发明提出了一种操作系统规范的形式化验证与测试方法,包括:
步骤一:根据已有的操作系统自然语言规范建立形式化语义模型,并从自然语言规范中提取性质,用形式化语言来描述性质;
步骤二:通过所建立的形式化语义模型中对操作系统应用进行验证;若不满足要求,则对所述形式化语义模型或操作系统应用进行修正直至所述形式化语义模型及应用满足要求,若满足,则保留形式化语义模型;
步骤三:根据正确的形式化语义模型,使用基于模型的测试用例生成方法生成操作系统内核的测试用例集;
步骤四:使用自动生成的测试用例对已实现的操作系统内核代码进行测试,若测试不通过,则需要修复操作系统内核代码的错误,并重新再开发板上编译测试,直至通过所有的测试用例;若测试通过,则可判断操作系统内核实现在一定程度上的正确性;
步骤五:将通过验证的操作系统应用在所建立的形式化语义模型中执行,同时在实际的操作系统实现中执行操作系统应用,使用互模拟的方法来检查操作系统内核实现的正确性,即若操作系统应用在形式化语义模型中的行为与在具体内核实现中的行为不一致,则修改操作系统内核代码的错误,并重新执行互模拟操作,直至互模拟检查通过。
本发明提出的操作系统形式化验证与测试方法中,所述步骤一建立语义模型包括以下步骤:
步骤A1:从操作系统规范中提取所要建模与描述的系统服务、操作系统任务调度、资源管理、事件管理与报警机制相关的自然语言规范;
步骤A2:根据自然语言规范提取性质规范,并用形式化语言描述;
步骤A3:使用形式化语义模型定义自然语言规范中系统服务、任务调度、资源管理操作系统内核管理机制的执行规则;
步骤A4:定义用来实现操作系统应用程序的程序语言语义,并与步骤A3中建立的形式化语义模型结合,形成形式化规范。
本发明提出的操作系统形式化验证和测试方法中,所述步骤二对模型进行验证以及修正包括以下步骤:
步骤B1:检验操作系统自然语言规范是否正确,若错误,在修正所述规范文件,并修正其相对应的形式化语义模型;
步骤B2:验证所建立的形式化语义模型是否正确,若错误,则修正所述形式化语义模型;若正确,则继续下一步骤;
步骤B3:检验所述性质是否符合规范且描述正确,若错误,则修正所述性质描述;若正确,则继续下一步骤;
步骤B4:验证所述操作系统应用是否正确,若错误,则修正操作系统应用代码,将修正后的代码放入形式化语义模型中重新验证,直至所有性质验证通过为止。
本发明提出的所述的操作系统形式化验证与测试方法中,通过K框架使用模型检测的方法对所述形式化语义模型及操作系统应用程序进行形式化验证;若验证通过,则所述形式化语义模型及应用程序均符合规范,否则形式化语义模型或应用中存在错误。
本发明提出的所述的操作系统形式化验证与测试方法中,所述步骤三生成测试用例包括以下步骤:
步骤C1:配置操作系统对象的相关属性,如任务是否可抢占、资源优先级、报警器所对应时钟等;
步骤C2:根据所配置的操作系统对象的属性,给出系统服务的执行要满足的约束,也就是操作系统在执行系统服务之前的初始状态;
步骤C3:根据操作系统对象的配置,给出操作系统可能到达的末状态,从而生成可以从初始状态到末状态的系统服务序列集合。
本发明提出的所述操作系统形式化验证与测试方法中,所述步骤四中对操作系统内核代码实现进行测试包括以下步骤:
步骤D1:对操作系统对象进行与步骤三中完全相同的配置;
步骤D2:在操作系统内核实现中分别执行步骤三中生成的系统服务序列集合中每一个序列元素;
步骤D3:若系统服务序列在操作系统内核实现中执行后不能到达步骤三中所设置的终止状态,则操作系统实现错误,需要修正操作系统实现代码直至其正确为止;否则,操作系统实现正确,继续下一步骤。
本发明提出的所述操作系统形式化验证与测试方法中,所述步骤五中对形式化模型以及操作系统实现进行互模拟包括以下步骤:
步骤E1:分别在操作系统实现和形式化模型上执行验证后的操作系统应用,并记录执行完每条系统服务后的系统状态变化轨迹;
步骤E2:对比步骤E1中得到的两条系统状态变化轨迹,若两条轨迹不同,则需要修正操作系统实现代码直至其正确为止;否则操作系统实现正确,得到正确的操作系统实现。
本发明提出的所述的操作系统形式化验证与测试方法中,所述步骤B1、C3均是通过工具K框架来分别对形式化模型进行验证和测试用例生成的。
本发明操作系统规范的形式化验证及测试方法,将操作系统规范运用语义学方法中的操作语义进行了建模,能够运用模型检测的方法对该模型以及操作系统应用进行全自动化的验证,若验证不通过还可得到反例,以便于更快的模型或操作系统应用中的错误。同时由于操作语义的可执行性,可以得到操作系统应用执行的状态变化轨迹,从而使用互模拟的方法来检查操作系统实现代码的正确性。
附图说明
图1表示本发明操作系统形式化验证与测试方法的流程示意图。
图2表示本发明操作系统形式化验证与测试方法中建立形式化模型的工作流程图。
图3表示本发明操作系统形式化验证与测试方法中形式化验证的工作流程图。
具体实施方式
结合以下具体实施例和附图,对本发明作进一步的详细说明。实施本发明的过程、条件、实验方法等,除以下专门提及的内容之外,均为本领域的普遍知识和公知常识,本发明没有特别限制内容。
本发明的操作系统形式化验证与测试方法主要通过定义操作系统中系统服务的操作语义来建立操作系统规范的形式化模型,并提取操作系统内核及应用相关性质进行验证和测试用例生成。首先通过定义系统服务的执行规则建立操作系统规范的形式化语义模型,然后对该形式化语义模型以及操作系统应用进行验证,验证的方法可以运用各种形式化的验证方法,如模型检测、可达性检查等。在验证形式化语义模型的正确性后,基于该形式化语义模型生成测试用例,所生成的测试用例可以用来测试操作系统内核实现的正确性。同时,由于所建立的形式化语义模型的可执行性,可以在形式化语义模型上执行验证后的操作系统应用,通过比较操作系统应用在形式化语义模型上的执行轨迹以及操作系统应用在操作系统内核实现上的执行轨迹来检查操作系统内核实现的正确性。
实施例
如图1所示,是本发明应用在OSEK/VDX车载操作系统规范2.2.3版本中验证与测试流程图,本发明包括以下步骤:
步骤一:分析并抽取出OSEK/VDX车载操作系统规范中所定义的系统服务执行的前置条件后置条件,以及关于操作系统中调度机制、资源管理机制、报警机制等的定义。同时,提取所要验证的操作系统性性质,如无死锁性、任务执行的周期性、无饥饿性等,为步骤二的建模做准备。
步骤二:根据步骤一中整理抽取OSEK/VDX车载操作系统规范,结合操作系统应用实现语言(OIL语言:OSEK Implementation Language),定义操作系统规范的形式化模型。如图2所示,首先需要用形式化语言定义OSEK/VDX车载操作系统规范实现语言的语法、系统服务语法、以及操作系统应用实现语言语法;同时,由于定义操作语义时需要确定要观察和描述哪些系统状态的变迁,需要确定操作语义中操作系统内核的配置,即要观察和描述的系统状态,如当前正在执行的程序语句,任务当前的状态(就绪、运行、挂起),当前的时钟值,报警器的报警时间等。
在完成OIL语言语法和操作系统内核配置的定义后,需要根据车载操作系统规范和程序语言规范定义系统服务的执行规则以及操作系统应用实现语言中语句的执行规则。所述的执行规则也就是相关语言的操作语义,以某种语言实现的程序需要按照所定义的操作语义规则执行。
上述所定义的OSEK/VDX操作系统实现语言的语法和操作语义一起构成了操作系统规范的形式化模型。该模型不仅可以通过形式化验证的方法验证模型的性质,同时由于操作语义的可执行性且操作系统内核是操作系统应用的运行平台,因此可以在形式化模型上执行OSEK/VDX操作系统应用并且验证操作系统应用的相关性质。
如图3所示,是本发明的应用于OSEK/VDX操作系统中的形式化验证与测试方法中的验证流程图,首先在上述建立的形式化语义模型中验证基于OSEK/VDX的操作系统应用是否满足规范;若不满足,则执行修正过程,直至形式化语义模型及操作系统应用均满足规范,若满足,则保留形式化语义模型以及应用。具体地,先验证该操作系统应用是否符合规范,若操作系统应用发生错误,则对操作系统应用进行修正。修正过程包括通过仿真或者模型检验的方法找出一条路径,在这条路径上违背了性质,根据给出的这条路径可以得到相关信息,根据该信息修改操作系统应用相应部分的代码,对修改后的代码进行重新验证。
若基于OSEK/VDX规范的操作系统应用实现符合规范,继续验证所建立的形式化语义模型是否正确,同样根据模型检验所给的反例路径查找模型可能发生错误的地方,模型错误的原因可能是人对自然语言规范理解的偏差,或者在转换成数学公式过程中转换错误。若模型发生错误,则需要对模型进行修正并重新验证。
在检查过操作系统应用、形式化语义模型都正确后,检查对性质的描述是否正确,若有错误,则需要修改性质描述中的错误。修改后,重新对形式化语义模型和操作系统应用进行验证,若验证正确,则说明建立的形式化语义模型、操作系统应用的实现代码是正确的,可以在此基础上做后续的检查操作系统内核实现正确性的操作。
步骤三:根据步骤二中得到的正确的形式化语义模型和操作系统应用生成操作系统内核的测试用例。具体步骤为,给出操作系统对象的配置文件,设置系统的初始状态和末状态,由于模型检测可以搜索系统所有可能的路径,故以模型检测方法为基础,可以生成所有可能从初始状态到达末状态的系统服务序列的集合。
步骤四:使用步骤三生成的测试用例对操作系统内核实现进行测试,若操作系统内核实现通过测试,则操作系统内核实现正确,否则需要根据未通过的测试用例定位相关的系统服务实现代码,并修正代码中的错误。修正后重新对操作系统内核实现进行测试,直至其可以通过全部的测试用例。
步骤五:通过互模拟的方法来判断操作系统内核实现的正确性。互模拟的步骤如下:由于所建立的形式化语义模型是操作语义模型,且操作语义具有可执行性,可以在所定义的操作系统模型上执行操作系统应用,并记录操作系统应用执行过程中状态变化轨迹;同时,在操作系统内核实现上执行同样的操作系统应用,并记录操作系统应用执行过程中的状态变化轨迹。最后比较得到的两条轨迹是否一致,若一致则操作系统内核实现正确,否则通过分析两条轨迹不一致的起始点来定位操作系统内核实现的错误位置,然后修正操作系统内核代码。修正后,再次通过互模拟的方法来检查操作系统内核实现的正确性。
本具体实例以OSEK/VDX车载操作系统规范为例,对其进行形式化建模,并对形式化语义模型以及基于OSEK/VDX规范的操作系统应用进行形式化验证和分析。验证后的模型可用来生成操作系统内核实现的测试用例,并且在该模型上执行操作系统应用,获取操作系统应用的执行轨迹,通过互模拟的方法与操作系统应用在其内核实现中的运行轨迹做对比,从而进一步验证该操作系统内核实现的正确性。OSEK/VDX操作系统规范中定义了静态的实时操作系统,不支持在运行过程中动态修改操作系统对象的各属性。基于OSEK/VDX规范的操作系统中最重要的资源包括任务、时间和中断,为了更好的对操作系统中的各个资源进行管理,OSEK/VDX规范提供了一个轻量级的系统服务库,包括26个用户功能接口。
本具体事例中,运用本发明的操作系统规范的形式化验证与测试方法对OSEK/VDX规范进行形式化建模和验证,另外,使用验证过的模型自动生成操作系统内核的测试用例,并且使用互模拟的方法进一步验证操作系统内核实现的正确性,具体步骤如下:
步骤一:分析并提取OSEK/VDX规范中关于系统服务的规范描述,并从OSEK/VDX规范中提取所要验证的操作系统应用性质以及操作系统内核性质。
根据OSEK/VDX规范,系统服务是在任务中调用并执行的,且系统服务的执行可能改变任务的状态变化。基于OSEK/VDX规范的任务包括两种,分别为基本任务和扩展任务,基本任务可以在就绪、运行和挂起三种状态之间转换,扩展任务的状态在基本任务的基础上增加了等待状态,任务的各个状态之间的转换是通过系统调度实现的。无论是基本任务还是扩展任务,都只能在运行状态时调用和执行系统服务,扩展任务可以调用与事件相关的系统服务,从而在等待状态、就绪状态和运行状态之间转换,而基本任务不能访问任何与事件相关的系统服务。
所提取的性质包括操作系统应用性质和操作系统内核性质,操作系统应用性质主要针对应用本身的实现是否可能引起任务多重激活或者饿死等现象,操作系统内核性质主要针对操作系统本身对资源管理机制和系统服务的实现是否会引起优先级反转、任务不能互斥执行等现象。
根据步骤一中提取的关于OSEK/VDX规范中系统服务的规范约束建立形式化语义模型,并使用形式化语言描述性质规范。
形式化语义模型是以系统服务的操作语义形式描述的,首先,定义了OSEK/VDX实现语言OIL(OSEK Implementation Language),由于基于OSEK/VDX的操作系统应用是使用C语言来实现的,故还需定义部分C语言的语法。完成语法定义后,提取OSEK/VDX规范中所需要观察和描述的操作系统对象属性,作为操作语义的配置。最后使用重写逻辑的方法定义OSEK/VDX的规范中26条系统服务的执行规则,除此之外,还对操作系统内核中的报警机制处理以及调度处理进行了定义。另外,针对所述的部分C语言语法,定义其相对应C语言语句的操作语义。
性质规范是使用线性时态逻辑公式描述的,针对基于OSEK/VDX规范提取的性质主要集中在功能正确性和实时性等方面的六条性质,包括:在操作系统的运行过程中要求无死锁现象出现;在同一时刻不能有两个任务处于运行状态;操作系统的执行过程中不会出现优先级反转;若一个扩展任务处于等待状态则该任务等待的事件终会被设置;对于周期性任务来说,该任务一定要在其时间周期内执行结束;对于被设置成单次激活的任务,不可能出现多次激活的情况。
步骤二:利用工具K框架,使用模型检查的方法对所述形式化语义模型以及操作系统应用进行性质验证,验证形式化语义模型和操作系统应用均满足OSEK/VDX规范。
步骤三:使用工具K框架,由步骤二中得到的正确的形式化语义模型自动生成操作系统内核实现的测试用例集。
步骤四:使用步骤三中生成的测试用例集对操作系统内核实现进行测试和修正。
步骤五:在操作系统内核实现中执行在步骤四中验证过的操作系统应用,并记录操作系统应用执行的轨迹,同时在验证后的正确的形式化语义模型上执行同样的操作系统应用并记录其执行轨迹,然后将两条轨迹作对比,使用互模拟的方法验证操作系统内核实现的正确性。
本发明的保护内容不局限于以上实施例。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为保护范围。

Claims (8)

1.一种操作系统规范的形式化验证与测试方法,其特征在于,包括以下步骤:
步骤一:根据已有的操作系统自然语言规范建立形式化语义模型,并从自然语言规范中提取性质,用形式化语言来描述性质;
步骤二:通过所建立的形式化语义模型中对操作系统应用进行验证;若不满足要求,则对所述形式化语义模型或操作系统应用进行修正直至所述形式化语义模型及应用满足要求,若满足,则保留形式化语义模型;
步骤三:根据正确的形式化语义模型,使用基于模型的测试用例生成方法生成操作系统内核的测试用例集;
步骤四:使用自动生成的测试用例对已实现的操作系统内核代码进行测试,若测试不通过,则需要修复操作系统内核代码的错误,并重新再开发板上编译测试,直至通过所有的测试用例;若测试通过,则可判断操作系统内核实现在一定程度上的正确性;
步骤五:将通过验证的操作系统应用在所建立的形式化语义模型中执行,同时在实际的操作系统实现中执行操作系统应用,使用互模拟的方法来检查操作系统内核实现的正确性,即若操作系统应用在形式化语义模型中的行为与在具体内核实现中的行为不一致,则修改操作系统内核代码的错误,并重新执行互模拟操作,直至互模拟检查通过。
2.如权利要求1所述的操作系统形式化验证与测试方法中,其特征在于,所述步骤一建立形式化语义模型包括以下步骤:
步骤A1:从操作系统规范中提取所要建模与描述的系统服务、操作系统任务调度、资源管理、事件管理与报警机制相关的自然语言规范;
步骤A2:根据自然语言规范提取性质规范,并用形式化语言描述;
步骤A3:使用形式化语义模型定义自然语言规范中系统服务、任务调度、资源管理操作系统内核管理机制的执行规则;
步骤A4:定义用来实现操作系统应用程序的程序语言语义,并与步骤A3中建立的形式化语义模型结合,形成形式化规范。
3.如权利要求2所述的操作系统形式化验证和测试方法中,其特征在于,所述步骤二对形式化语义模型进行验证以及修正包括以下步骤:
步骤B1:检验操作系统自然语言规范是否正确,若错误,在修正所述规范文件,并修正其相对应的形式化语义模型;
步骤B2:验证所建立的形式化语义模型是否正确,若错误,则修正所述形式化语义模型;若正确,则继续下一步骤;
步骤B3:检验所述性质是否符合规范且描述正确,若错误,则修正所述性质描述;若正确,则继续下一步骤;
步骤B4:验证所述操作系统应用是否正确,若错误,则修正操作系统应用代码,将修正后的代码放入形式化语义模型中重新验证,直至所有性质验证通过为止。
4.如权利要求3所述的操作系统形式化验证与测试方法中,其特征在于,所述B2,B4中通过K框架使用模型检测的方法对形式化语义模型及操作系统应用程序进行形式化验证;若验证通过,则形式化语义模型及应用程序均符合规范,否则形式化语义模型或应用中存在错误。
5.如权利要求1的所述的操作系统形式化验证与测试方法中,其特征在于,所述步骤三生成测试用例包括以下步骤:
步骤C1:配置操作系统对象的相关属性,如任务是否可抢占、资源优先级、报警器所对应时钟等;
步骤C2:根据所配置的操作系统对象的属性,给出系统服务的执行要满足的约束,也就是操作系统在执行系统服务之前的初始状态;
步骤C3:根据操作系统对象的配置,给出操作系统可能到达的末状态,从而生成可以从初始状态到末状态的系统服务序列集合。
6.如权利要求5所述的操作系统形式化验证与测试方法,其特征在于,所述步骤C3通过工具K框架来对测试用例生成。
7.如权利要求1的所述操作系统形式化验证与测试方法中,其特征在于,所述步骤四中对操作系统内核代码实现进行测试包括以下步骤:
步骤D1:对操作系统对象进行与步骤三中完全相同的配置;
步骤D2:在操作系统内核实现中分别执行步骤三中生成的系统服务序列集合中每一个序列元素;
步骤D3:若系统服务序列在操作系统内核实现中执行后不能到达步骤三中所设置的终止状态,则操作系统实现错误,需要修正操作系统实现代码直至其正确为止;否则,操作系统实现正确,继续下一步骤。
8.如权利要求1的所述操作系统形式化验证与测试方法中,其特征在于,所述步骤五中对形式化模型以及操作系统实现进行互模拟包括以下步骤:
步骤E1:分别在操作系统实现和形式化模型上执行验证后的操作系统应用,并记录执行完每条系统服务后的系统状态变化轨迹;
步骤E2:对比步骤E1中得到的两条系统状态变化轨迹,若两条轨迹不同,则需要修正操作系统实现代码直至其正确为止;否则操作系统实现正确,得到正确的操作系统实现。
CN201810179502.3A 2018-03-05 2018-03-05 一种操作系统规范形式化验证与测试方法 Active CN108509336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810179502.3A CN108509336B (zh) 2018-03-05 2018-03-05 一种操作系统规范形式化验证与测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810179502.3A CN108509336B (zh) 2018-03-05 2018-03-05 一种操作系统规范形式化验证与测试方法

Publications (2)

Publication Number Publication Date
CN108509336A true CN108509336A (zh) 2018-09-07
CN108509336B CN108509336B (zh) 2021-05-25

Family

ID=63376958

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810179502.3A Active CN108509336B (zh) 2018-03-05 2018-03-05 一种操作系统规范形式化验证与测试方法

Country Status (1)

Country Link
CN (1) CN108509336B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109783380A (zh) * 2019-01-04 2019-05-21 北京航空航天大学 一种并发系统组合验证装置
CN109814924A (zh) * 2019-01-28 2019-05-28 华东师范大学 一种软件复杂度计算方法
CN109995948A (zh) * 2018-12-06 2019-07-09 平安科技(深圳)有限公司 基于测试工具的提示音的测试方法、装置、计算机设备
CN110119358A (zh) * 2019-05-15 2019-08-13 杭州电子科技大学 Fbd程序的测试方法及装置
CN110245085A (zh) * 2019-04-08 2019-09-17 华东师范大学 利用在线模型检验的嵌入式实时操作系统验证方法及系统
CN110851141A (zh) * 2019-11-18 2020-02-28 电子科技大学 一种基于Coq的C++编译器变量作用域形式化方法
CN111209203A (zh) * 2020-01-06 2020-05-29 华东师范大学 一种基于源代码的模型验证方法
CN111224985A (zh) * 2020-01-06 2020-06-02 上海丰蕾信息科技有限公司 通信协议可信性验证方法
CN111245676A (zh) * 2020-01-06 2020-06-05 上海丰蕾信息科技有限公司 通信协议可信性验证装置
CN111240972A (zh) * 2020-01-06 2020-06-05 华东师范大学 一种基于源代码的模型验证装置
CN111400716A (zh) * 2020-02-25 2020-07-10 华东师范大学 一种基于操作系统的安全机制验证方法
CN111428242A (zh) * 2020-02-25 2020-07-17 华东师范大学 一种基于操作系统的安全机制验证装置
CN111506513A (zh) * 2020-06-04 2020-08-07 南京大学 一种基于层次化模型的文件系统测试方法
CN111679964A (zh) * 2020-04-21 2020-09-18 华东师范大学 基于边界模型检测技术的微内核操作系统接口的形式化验证方法
CN115687167A (zh) * 2023-01-05 2023-02-03 军事科学院系统工程研究院网络信息研究所 一种群体智能操作系统的形式化验证方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295079A1 (en) * 2003-10-30 2008-11-27 P.R.E-Pozitive Requirements Engineering Ltd. System and Method for Verifying and Testing System Requirements
CN101872322A (zh) * 2009-04-27 2010-10-27 武汉大学 一种基于需求模型的软件特性检测方法
CN102193556A (zh) * 2011-04-18 2011-09-21 华东师范大学 汽车电子器件中断安全隐患检测系统及其检测方法
CN102999325A (zh) * 2011-07-11 2013-03-27 霍尼韦尔国际公司 用于验证模型等价性的系统和方法
CN106708730A (zh) * 2016-11-22 2017-05-24 北京控制工程研究所 一种针对嵌入式实时操作系统形式化验证方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080295079A1 (en) * 2003-10-30 2008-11-27 P.R.E-Pozitive Requirements Engineering Ltd. System and Method for Verifying and Testing System Requirements
CN101872322A (zh) * 2009-04-27 2010-10-27 武汉大学 一种基于需求模型的软件特性检测方法
CN102193556A (zh) * 2011-04-18 2011-09-21 华东师范大学 汽车电子器件中断安全隐患检测系统及其检测方法
CN102999325A (zh) * 2011-07-11 2013-03-27 霍尼韦尔国际公司 用于验证模型等价性的系统和方法
CN106708730A (zh) * 2016-11-22 2017-05-24 北京控制工程研究所 一种针对嵌入式实时操作系统形式化验证方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAVID SANÁN等: "CSimpl: A Rely-Guarantee-Based Framework for Verifying Concurrent Programs", 《TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS》 *
徐丙凤: "构件化嵌入式软件安全性分析方法研究", 《万方学位论文》 *
李国拯等: "基于带数据约束实时系统的互模拟检测方法", 《计算机技术与发展》 *

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109995948A (zh) * 2018-12-06 2019-07-09 平安科技(深圳)有限公司 基于测试工具的提示音的测试方法、装置、计算机设备
CN109783380A (zh) * 2019-01-04 2019-05-21 北京航空航天大学 一种并发系统组合验证装置
CN109814924B (zh) * 2019-01-28 2020-10-02 华东师范大学 一种软件复杂度计算方法
CN109814924A (zh) * 2019-01-28 2019-05-28 华东师范大学 一种软件复杂度计算方法
CN110245085A (zh) * 2019-04-08 2019-09-17 华东师范大学 利用在线模型检验的嵌入式实时操作系统验证方法及系统
CN110245085B (zh) * 2019-04-08 2023-03-31 华东师范大学 利用在线模型检验的嵌入式实时操作系统验证方法及系统
CN110119358A (zh) * 2019-05-15 2019-08-13 杭州电子科技大学 Fbd程序的测试方法及装置
CN110119358B (zh) * 2019-05-15 2023-08-08 杭州电子科技大学 Fbd程序的测试方法及装置
CN110851141A (zh) * 2019-11-18 2020-02-28 电子科技大学 一种基于Coq的C++编译器变量作用域形式化方法
CN111245676B (zh) * 2020-01-06 2022-03-04 上海丰蕾信息科技有限公司 通信协议可信性验证装置
CN111240972A (zh) * 2020-01-06 2020-06-05 华东师范大学 一种基于源代码的模型验证装置
CN111245676A (zh) * 2020-01-06 2020-06-05 上海丰蕾信息科技有限公司 通信协议可信性验证装置
CN111224985B (zh) * 2020-01-06 2022-06-03 上海丰蕾信息科技有限公司 通信协议可信性验证方法
CN111224985A (zh) * 2020-01-06 2020-06-02 上海丰蕾信息科技有限公司 通信协议可信性验证方法
CN111209203A (zh) * 2020-01-06 2020-05-29 华东师范大学 一种基于源代码的模型验证方法
CN111400716A (zh) * 2020-02-25 2020-07-10 华东师范大学 一种基于操作系统的安全机制验证方法
CN111428242A (zh) * 2020-02-25 2020-07-17 华东师范大学 一种基于操作系统的安全机制验证装置
CN111679964A (zh) * 2020-04-21 2020-09-18 华东师范大学 基于边界模型检测技术的微内核操作系统接口的形式化验证方法
CN111679964B (zh) * 2020-04-21 2022-07-26 华东师范大学 基于边界模型检测技术的微内核操作系统接口的形式化验证方法
CN111506513A (zh) * 2020-06-04 2020-08-07 南京大学 一种基于层次化模型的文件系统测试方法
CN115687167A (zh) * 2023-01-05 2023-02-03 军事科学院系统工程研究院网络信息研究所 一种群体智能操作系统的形式化验证方法及装置

Also Published As

Publication number Publication date
CN108509336B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN108509336A (zh) 一种操作系统规范形式化验证与测试方法
Cimatti et al. OCRA: A tool for checking the refinement of temporal contracts
Baker et al. Model-driven testing: Using the UML testing profile
CN108536581B (zh) 一种针对源代码的运行时形式化验证方法
Bahig et al. Formal verification of automotive design in compliance with ISO 26262 design verification guidelines
Bonfanti et al. Design and validation of a C++ code generator from abstract state machines specifications
Brown et al. Software testing
Caliebe et al. Dependency-based test case selection and prioritization in embedded systems
Lau et al. X-MAN: An MDE tool for component-based system development
Zalila et al. Leveraging formal verification tools for DSML users: a process modeling case study
Yacoub et al. DEv-PROMELA: modeling, verification, and validation of a video game by combining model-checking and simulation
Michael et al. The verification and validation of software architecture for systems of systems
Dadeau et al. Test Generation and Evaluation from High-Level Properties for Common Criteria Evaluations--The TASCCC Testing Tool
Di Ruscio et al. Simulating upgrades of complex systems: The case of Free and Open Source Software
Duhil et al. Early Detection of Flaws in System Architecture Model by means of Model Simulation
Bahig et al. Formal verification framework for automotive UML designs
Dadeau et al. Scenario‐based testing using symbolic animation of B models
Kim et al. Assessment of high integrity software components for completeness, consistency, fault-tolerance, and reliability
Briand Software verification—a scalable, model-driven, empirically grounded approach
Kinoshita et al. Describing software specification by combining SysML with the B method
Zeiß Quality assurance of test specifications for reactive systems
Schneider et al. The validation suite approach to safety qualification of tools
Bae et al. Semantics based cohesion and coupling metrics for evaluating understandability of state diagrams
Ali et al. Formalizing the iso/iec/ieee 29119 software testing standard
Nguyen et al. A Graph Analysis Based Approach for Specification-Driven Testing of Model Transformations

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant