本发明涉及计算机技术领域,尤其涉及基于有限状态机的系统诊断方法、装置、设备及存储介质。
背景技术:
随着系统测试的不断发展,系统的一致性测试变得愈加重要。
就系统的一致性测试而言,鉴于某一系统会存在着多种系统状态,系统状态之间的跳转方式将基于该系统设计本身。
但是,若系统中的系统状态在进行状态跳转时,并没有如系统规定的跳转方式进行跳转,或者,并没有得到预期的跳转后状态,此时,难以诊断或者定位出系统中发生的具体故障。
可见,目前,存在着难以诊断出系统错误的技术问题。
技术实现要素:
为了解决难以诊断出系统错误的技术问题,本发明实施例提供基于有限状态机的系统诊断方法、装置、设备及存储介质。
第一方面,本发明实施例提供一种基于有限状态机的系统诊断方法,包括:
根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,所述测试序列、所述预设有限状态机均与待诊断系统对应,所述测试序列中包括所述待诊断系统对应的各系统状态之间的转换行为;
从所述测试结果中获取与初始症状对应的冲突集,所述初始症状为所述测试结果中第一个状态转换失误的转换行为;
通过所述冲突集中的转换行为构建转换失误行为集;
根据所述转换失误行为集确定待验证行为;
通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误。
优选地,所述通过所述冲突集中的转换行为构建转换失误行为集,具体包括:
根据冲突集的可疑度从所述冲突集中确定目标冲突集;
根据转换行为的可疑度从所述目标冲突集中确定第一转换行为;
在不包含所述第一转换行为的冲突集中确定第二转换行为;
根据所述第二转换行为与所述第一转换行为构建第一转换失误行为集。
优选地,所述根据所述转换失误行为集确定待验证行为,具体包括:
若所述第一转换失误行为集中的转换行为并非所述初始症状,则确定与所述第一转换失误行为集中的转换行为对应的第一错误推定状态集,并将所述第一错误推定状态集记为待验证行为。
优选地,所述若所述第一转换失误行为集中的转换行为并非所述初始症状,则确定与所述第一转换失误行为集中的转换行为对应的第一错误推定状态集,并将所述第一错误推定状态集记为待验证行为之后,所述基于有限状态机的系统诊断方法还包括:
对所述第一错误推定状态集进行验证;
若验证失败,则舍弃所述第一转换失误行为集;
从不包含所述第一转换行为的冲突集中选取除所述第二转换行为之外的第三转换行为;
根据所述第三转换行为与所述第一转换行为构建第二转换失误行为集;
若所述第二转换失误行为集中的转换行为为所述初始症状,则确定与所述第二转换失误行为集中的转换行为对应的第二错误推定状态集,并将所述第二错误推定状态集作为新的待验证行为。
优选地,所述从所述测试结果中获取与初始症状对应的冲突集,具体包括:
将所述测试结果与预设预期结果进行比较,以确定所述测试结果中的初始症状;
以所述初始症状为分界从所述测试结果中截取出转换行为,并通过截取出的转化行为构建冲突集。
优选地,所述通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误,具体包括:
通过所述测试序列中的证例与反例对所述待验证行为进行验证;
若验证成功,则将所述待验证行为记为所述待诊断系统的系统错误。
优选地,所述若验证成功,则将所述待验证行为记为所述待诊断系统的系统错误之后,所述基于有限状态机的系统诊断方法还包括:
修正所述待诊断系统中存在着的所述待验证行为;
对修正后的待诊断系统进行验证;
若验证成功,则修正操作结束。
第二方面,本发明实施例提供一种基于有限状态机的系统诊断装置,包括:
测试模块,用于根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,所述测试序列、所述预设有限状态机均与待诊断系统对应,所述测试序列中包括所述待诊断系统对应的各系统状态之间的转换行为;
冲突集确定模块,用于从所述测试结果中获取与初始症状对应的冲突集,所述初始症状为所述测试结果中第一个状态转换失误的转换行为;
行为集确定模块,用于通过所述冲突集中的转换行为构建转换失误行为集;
行为确定模块,用于根据所述转换失误行为集确定待验证行为;
系统诊断模块,用于通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误。
第三方面,本发明实施例提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序时实现本发明第一方面提供的一种基于有限状态机的系统诊断方法的步骤。
第四方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现本发明第一方面提供的一种基于有限状态机的系统诊断方法的步骤。
本发明实施例提供的基于有限状态机的系统诊断方法、装置、设备及存储介质,先根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,测试序列、预设有限状态机均与待诊断系统对应,测试序列中包括待诊断系统对应的各系统状态之间的转换行为;从测试结果中获取与初始症状对应的冲突集,初始症状为测试结果中第一个状态转换失误的转换行为;通过冲突集中的转换行为构建转换失误行为集;根据转换失误行为集确定待验证行为;通过对待验证行为的验证操作诊断出待诊断系统的系统错误。可见,本发明实施例先通过冲突集中的转换行为构建出转换失误行为集,接着,根据转换失误行为集确定待验证行为,进而根据待验证行为进行系统错误的确定,如此可以较为准确地锁定系统错误,解决了难以诊断出系统错误的技术问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于有限状态机的系统诊断方法的流程图;
图2为本发明又一实施例提供的一种基于有限状态机的系统诊断方法的流程图;
图3为本发明又一实施例提供的第一fsm模型示意图;
图4为本发明又一实施例提供的第二fsm模型示意图;
图5为本发明再一实施例提供的一种基于有限状态机的系统诊断方法的流程图;
图6为本发明实施例提供的一种基于有限状态机的系统诊断装置的结构示意图;
图7为本发明实施例提供的一种电子设备的实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例提供的一种基于有限状态机的系统诊断方法的流程图,如图1所示,该方法包括:
s1,根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,所述测试序列、所述预设有限状态机均与待诊断系统对应,所述测试序列中包括所述待诊断系统对应的各系统状态之间的转换行为。
在具体实现中,有限状态机(fsm,finitestatemachine)作为一种系统描述方式,随着系统一致性测试的不断发展,fsm可被应用至系统的一致性测试操作中。
就fsm而言,某一个系统将存在着多种系统状态。
至于待诊断系统的系统类型,此处不作限制,可为多个网页之间互相跳转的网页系统,可为传感器采集数据的数据采集系统等。
可以理解的是,为了对某个系统进行错误诊断,以准确地找出系统中出现的错误,可使用测试序列。
比如,若待诊断系统对应的系统状态有6个,分别为,s0、s1、s2、s3、s4及s5。测试序列将基于系统状态展开,比如,某一测试序列可为s0-s2-s3-s5,即表示着,先从s0转换至s2,再从s2转换至s3,再从s3转换至s5。可见,测试序列为基于预设顺序的系统状态的组合。
其中,测试序列s0-s2-s3-s5,可记为tc2。
此外,同时使用的测试序列可有多个,比如,可能还有tc1、tc3等。所以,可存在包含测试序列的测试序列集。
s2,从所述测试结果中获取与初始症状对应的冲突集,所述初始症状为所述测试结果中第一个状态转换失误的转换行为。
应当理解的是,测试序列s0-s2-s3-s5中的转换行为是根据正常运行下的待诊断系统设置的。若待诊断系统中存在着系统错误,将异常运行,而状态之间的转换带来的实际结果可能并不能如预设结果一样。
鉴于fsm模型是一个六元组,可表征为m=(s,i,o,s0,δ,λ)。其中,s是有穷的状态集合,i是有穷的输入集合,o是有穷的输出集合,s0为系统初始状态,δ为状态转换函数,λ为输出函数。
具体地,s0是fsm模型的初始状态,且s0∈s;至于δ,可表征为δ:s×i→s,即某一状态在输入信息后转变为另一状态;至于λ,可表征为λ:s×i→o,即某一状态在输入信息后将得到某一输出信息。
可举例解释,若用
可以理解的是,测试结果中将包括实际发生的转换行为,并不一定按照测试序列预期发生。
比如,可能
所以,可从测试结果中截取部分的转换行为,以构成冲突集。
其中,转换行为是系统状态之间进行转换的状态转换行为。
至于构成的冲突集可与初始症状对应,初始症状为测试结果中状态转换失误的转换行为。
具体地,对比于测试序列对应的预期输出序列,可将第一次出现状态转换失误的转换行为记为初始症状。
比如,若测试序列中存在4个系统状态,而第3个系统状态对应的输出信息与预期输出信息不同,则可将第3个系统状态记为初始症状。
至于构建的冲突集,可基于前3个系统状态构建冲突集。比如,可基于测试序列s0-s2-s3-s5构建出冲突集s0-s2-s3。
s3,通过所述冲突集中的转换行为构建转换失误行为集。
接着,可通过冲突集内的转换行为来进行转换失误行为的确定,转换失误行为即为测试序列中转换失误的那个转换行为,推定出来的转化失误行为多以一个组合的形式存在,此处的转化失误行为的组合即为此处的转换失误行为集。
s4,根据所述转换失误行为集确定待验证行为。
接着,可基于转化失误行为的组合中可能正确或者可能错误的转化失误行为确定待验证行为,待验证行为与转化失误行为对应,待验证行为是与转化失误行为对应的错误可能行为。
s5,通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误。
接着,通过这些错误可能行为进行验证,以识别出哪个错误可能行为为待诊断系统中确实发生的系统错误。可见,从而准确定位出了一个实际系统中的具体错误信息。
本发明实施例提供的基于有限状态机的系统诊断方法,先根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,测试序列、预设有限状态机均与待诊断系统对应,测试序列中包括待诊断系统对应的各系统状态之间的转换行为;从测试结果中获取与初始症状对应的冲突集,初始症状为测试结果中第一个状态转换失误的转换行为;通过冲突集中的转换行为构建转换失误行为集;根据转换失误行为集确定待验证行为;通过对待验证行为的验证操作诊断出待诊断系统的系统错误。可见,本发明实施例先通过冲突集中的转换行为构建出转换失误行为集,接着,根据转换失误行为集确定待验证行为,进而根据待验证行为进行系统错误的确定,如此可以较为准确地锁定系统错误,解决了难以诊断出系统错误的技术问题。
图2为本发明又一实施例提供的一种基于有限状态机的系统诊断方法的流程图,本发明又一实施例基于上述图1所示的实施例。
本实施例中,所述通过所述冲突集中的转换行为构建转换失误行为集,具体包括:
若所述冲突集之间的交集为空,则通过所述冲突集中的转换行为构建转换失误行为集。
在具体实现中,鉴于可能存在着多个冲突集,可对多个冲突集取交集,若交集为空,则表明系统中存在着大于等于2个的错误,可通过本发明实施例描述的系统诊断方法去诊断多个错误。
这是因为,本发明实施例并未预先假定或者规定系统中同时仅存在着一个系统错误,这是常规的基于fsm的错误诊断算法中的普遍操作。同时,本发明实施例提供的方案也确实适用于多个系统错误的诊断。
比如,常规的ghedamsi算法以及ghedamsi算法的改进算法,均仅能诊断单个系统错误。
本发明实施例提供的基于有限状态机的系统诊断方法,区别于常规的fsm方案中仅能诊断一个系统错误,本发明实施例可同时进行多个系统错误的诊断操作。
此外,若冲突集之间的交集不为空,则表明存在着一个系统错误,可直接基于交集中的转换行为构建转换失误行为集。后面的大部分操作类比于交集不空的处理方式,比如,根据构建出的转换失误行为集确定待验证行为,通过对待验证行为的验证操作诊断出待诊断系统的系统错误。
在上述实施例的基础上,优选地,所述s3,具体包括:
s31,根据冲突集的可疑度从所述冲突集中确定目标冲突集。
可以理解的是,为了提高系统错误诊断的诊断效率,可应用可疑度作为衡量指标进行冲突集的构建以及转换行为的选取。
具体地,若存在着多个测试序列,每个发生状态转换失误的测试序列均将对应生成一个冲突集。
至于冲突集的可疑度的计算公式如下,
其中,suspiciness(cs(e0))表示冲突集cs(e0)的可疑度,failed(cs(e0))表示包含冲突集cs(e0)的反例个数,totalfailed表示全部反例的数量。
此处的反例是指测试序列中出现转换失误的测试序列的数量,也为冲突集的总数。
此外,failed(cs(e0))存在的原因是,不同的出现转换失误的测试序列可能会包含相同的冲突集。
所以,在确定出多个可疑度后,可依据可疑度从冲突集中选择可疑度的数值最大的冲突集作为目标冲突集。
s32,根据转换行为的可疑度从所述目标冲突集中确定第一转换行为。
应当理解的是,鉴于目标冲突集中可能存在着多个转换行为,可确定每个转换行为的可疑度,从中选择可疑度的数值最大的转换行为作为后续待使用的第一转换行为。
至于转换行为的可疑度的计算公式如下,
其中,suspiciness(t)表示转换行为t的可疑度,passed(t)表示包含转换行为t的证例数量,totalpassed表示全部证例的数量,failed(t)表示包含转换行为t的反例数量,totalfailed表示全部反例的数量,系数
s33,在不包含所述第一转换行为的冲突集中确定第二转换行为。
接着,在选出可疑度最大的冲突集中的可疑度最大的转换行为后,可假定目标冲突集表示为
然后,可在不包含第一转换行为的冲突集中确定可疑度最大的转换行为,并记为第二转换行为。
比如,此时的第二转换行为可为
s34,根据所述第二转换行为与所述第一转换行为构建第一转换失误行为集。
可将第二转换行为
可见,本发明实施例在枚举可能为转化失误行为的转换行为时,先通过计算每个冲突集的可疑度,选择最可疑的冲突集,然后,通过计算每个转换行为的可疑度,选择最可疑的转换行为进行诊断分析,如此提高了诊断效率。
在上述实施例的基础上,优选地,所述s4,具体包括:
s41,若所述第一转换失误行为集中的转换行为并非所述初始症状,则确定与所述第一转换失误行为集中的转换行为对应的第一错误推定状态集,并将所述第一错误推定状态集记为待验证行为。
其中,转换失误行为集包括第一转换失误行为集。
具体地,第一转换失误行为集可为
就
至于错误推定状态集的生成方式可依据转换错误的含义生成,errorset表征着转换错误的含义,比如,
就
当然,
此外,此处的举例仅为了解释说明s41对应的文字内容,并不限定实现数据即为如此,同时,也不保证在实际操作时此例子的数理合理性。
其中,系统错误包括转换错误;转换错误是指尾状态错误,此处的尾状态可为除了正确的尾状态之外的其他所有状态,此即为转换错误的含义。
若具体解释转换错误,若待诊断系统中预先规定的某一转换行为可表征为t:
接着,可将第一转换失误行为集获得的全部错误推定状态集统一记为第一错误推定状态集。
在上述实施例的基础上,优选地,所述若所述第一转换失误行为集中的转换行为并非所述初始症状,则确定与所述第一转换失误行为集中的转换行为对应的第一错误推定状态集,并将所述第一错误推定状态集记为待验证行为之后,所述基于有限状态机的系统诊断方法还包括:
对所述第一错误推定状态集进行验证;
若验证失败,则舍弃所述第一转换失误行为集;
从不包含所述第一转换行为的冲突集中选取除所述第二转换行为之外的第三转换行为;
根据所述第三转换行为与所述第一转换行为构建第二转换失误行为集;
若所述第二转换失误行为集中的转换行为为所述初始症状,则确定与所述第二转换失误行为集中的转换行为对应的第二错误推定状态集,并将所述第二错误推定状态集作为新的待验证行为。
可以理解的是,可先对第一错误推定状态集进行验证。
比如,若测试序列存在多个,可为,tc1-tc12共12个。若将测试序列的实际测试结果与预期结果进行比较,二者一致,则可将该测试序列记为证例;若二者不一致,存在错误,则可将该测试序列记为反例。
其中,证例存在的原因为,已经存在的系统错误可能不会影响到证例对应的测试序列的运行操作。
比如,tc1、tc4和tc10可为证例,其余的测试序列可为反例。
在具体实现中,可先通过证例对第一错误推定状态集进行验证,若验证失败,即证例对应的实际测试结果与预期结果也不一致,则可排除掉此第一错误推定状态集。若验证成功,则将第一错误推定状态集记为待诊断系统的系统错误。
这是因为,若第一错误推定状态集导致证例也不再正确,这就说明,第一错误推定状态集对应的错误在本系统中是不存在的,所以,可排除掉这种情况。
其中,错误推定状态集也可称为错误可能集。
接着,可再次生成错误推定状态集。
具体地,为了再次生成错误推定状态集,可先确定不包含第一转换行为的冲突集,即
鉴于使用过该冲突集中的第二转换行为
比如,可从剩余的转换行为中选择可疑度的数值最大的转换行为作为后续待使用的第三转换行为。
若确定的第三转换行为为
接着,就
其中,输出错误为输出信息与对应的预期结果不同的错误。
若具体解释输出错误,若待诊断系统中预先规定的某一转换行为可表征为t:
此外,本发明实施例可预先进行设置一个假设前提,即一个转换行为不会同时发生转换错误和输出错误。
其中,错误推定状态集的生成方式可为
当然,第二错误推定状态集还将包括
可见,本发明实施例通过实验数据证明,相比于常规方案,本发明实施例可通过较低的诊断代价、较高的错误诊断率诊断出多个错误。
此外,为了更具体地进行实现方式的解释,可给出了一个详细的实现方式的例子,比如,可参考图3、图4,图3中所示的第一fsm模型为待诊断系统的预设合法fsm模型,图4中所示的第二fsm模型为待诊断系统测试时所表征的实时fsm模型。
其中,s0-s5表示不同的系统状态;a/0、a/1、b/0以及b/1等用于表示输入信息与输出信息的组合,比如,a/0中,a表示输入信息,0表示输出信息。
明显地,第一fsm模型与第二fsm模型之间的区别有,第一fsm模型中的
若以图3、图4为例,可应用测试序列tc1-tc12对第二fsm模型进行测试,比如,tc1-tc12的测试序列可参见下表1,
表1.测试序列tc1-tc12的预期输出信息与实际输出信息
其中,测试序列中包括对应转换路径,即包含有连续的转换行为。
比如,若以tc1为例,tc1的测试序列为s0-s1-s2-s5,在第一fsm模型中初始记为一个r,s0到s1的输入信息为a,s1到s2的输入信息为a,s2到s5的输入信息为b,所以,输入信息可记为raab。同理,第一fsm模型中s0-s1-s2-s5的预设输出信息为000。而第二fsm模型中s0-s1-s2-s5的实际输出信息也为000。
可见,tc1至tc12中,tc1、tc4和tc10的连续的预设输出信息与实际输出信息相同,所以,tc1、tc4和tc10可记为证例,剩余的可记为反例。
至于构建出的初始症状冲突集可发现一些测试序列对应的初始症状冲突集是一样的,比如,tc2与tc7对应的冲突集均为
所以,可记为
图5为本发明再一实施例提供的一种基于有限状态机的系统诊断方法的流程图,本发明再一实施例基于上述图1所示的实施例。
本实施例中,所述s2,具体包括:
s21,将所述测试结果与预设预期结果进行比较,以确定所述测试结果中的初始症状。
在具体实现中,若将包含测试序列的测试序列集记为
tc={tc1,tc2,…,tcn},
其中,每个tc都是一个测试序列。
测试序列集对应的输入序列为im={im1,im2,…,imp},对应的预期输出序列为om={om1,om2,…,omp},实际输出序列为o′m={o′m1,o′m2,…,o′mp},其中,m1至mp均为序号。
若将表征实际输出的测试结果与表征预期输出的预设预期结果进行比较,若存在oij≠o′ij,则称其为症状(symptom)。
若存在oij≠o′ij,且对任意1≤k≤j有oik=o′ik,则称oij≠o′ij为测试序列tci的初始症状,其中,i为测试序列的序号,j为测试序列中的第j个转换行为。可以将初始症状理解为第一个发生错误的转换行为。
所以,可找出测试结果中的初始症状。
s22,以所述初始症状为分界从所述测试结果中截取出转换行为,并通过截取出的转化行为构建冲突集。
接着,可截取出冲突集。
比如,可提取出初始症状之前测试序列所经过的全部转换行为,并构建成该初始症状对应的冲突集,记为cs(e),e表示该初始症状。
其中,冲突集中可包括初始症状本身。
本发明实施例提供的基于有限状态机的系统诊断方法,给出了一类冲突集的构建方式。
在上述实施例的基础上,优选地,所述通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误,具体包括:
通过所述测试序列中的证例与反例对所述待验证行为进行验证;
若验证成功,则将所述待验证行为记为所述待诊断系统的系统错误。
可以理解的是,可先确定多个测试序列中的证例与反例,证例为测试序列集中的测试结果与预设期望结果相同的测试序列,反例为测试序列集中的测试结果与预设期望结果不同的测试序列。
可通过证例与反例对表征一类或几类错误可能性的待验证行为进行验证,待验证行为可为
当然,若验证失败,可基于上述原理再生成新的待验证行为,直至验证成功。
可见,本发明实施例可准确地定位系统中的系统错误。
在上述实施例的基础上,优选地,所述若验证成功,则将所述待验证行为记为所述待诊断系统的系统错误之后,所述基于有限状态机的系统诊断方法还包括:
修正所述待诊断系统中存在着的所述待验证行为;
对修正后的待诊断系统进行验证;
若验证成功,则修正操作结束。
具体地,鉴于本发明实施例可准确地识别出系统错误,而且,可具体到转换行为这个维度。所以,可直接对待验证行为进行修正,替换为待诊断系统中对应的预设合法转换行为,从而完成对于待诊断系统的修正。
若修正后,通过测试序列对修正后的待诊断系统进行验证,若均验证成功,则可结束修正操作。
可见,本发明实施例在准确地定位至系统错误后,还可对系统错误进行修正。
图6为本发明实施例提供的一种基于有限状态机的系统诊断装置的结构示意图,如图6所示,该装置包括:测试模块301、冲突集确定模块302、行为集确定模块303、行为确定模块304以及系统诊断模块305;
测试模块301,用于根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,所述测试序列、所述预设有限状态机均与待诊断系统对应,所述测试序列中包括所述待诊断系统对应的各系统状态之间的转换行为;
冲突集确定模块302,用于从所述测试结果中获取与初始症状对应的冲突集,所述初始症状为所述测试结果中第一个状态转换失误的转换行为;
行为集确定模块303,用于通过所述冲突集中的转换行为构建转换失误行为集;
行为确定模块304,用于根据所述转换失误行为集确定待验证行为;
系统诊断模块305,用于通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误。
本发明实施例提供的基于有限状态机的系统诊断装置,先根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,测试序列、预设有限状态机均与待诊断系统对应,测试序列中包括待诊断系统对应的各系统状态之间的转换行为;从测试结果中获取与初始症状对应的冲突集,初始症状为测试结果中第一个状态转换失误的转换行为;通过冲突集中的转换行为构建转换失误行为集;根据转换失误行为集确定待验证行为;通过对待验证行为的验证操作诊断出待诊断系统的系统错误。可见,本发明实施例先通过冲突集中的转换行为构建出转换失误行为集,接着,根据转换失误行为集确定待验证行为,进而根据待验证行为进行系统错误的确定,如此可以较为准确地锁定系统错误,解决了难以诊断出系统错误的技术问题。
本发明实施例提供的装置实施例是为了实现上述各方法实施例的,具体流程和详细内容请参照上述方法实施例,此处不再赘述。
图7为本发明实施例提供的一种电子设备的实体结构示意图,如图7所示,该电子设备可以包括:处理器(processor)401、通信接口(communicationsinterface)402、存储器(memory)403和总线404,其中,处理器401,通信接口402,存储器403通过总线404完成相互间的通信。通信接口402可以用于电子设备的信息传输。处理器401可以调用存储器403中的逻辑指令,以执行包括如下的方法:
根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,所述测试序列、所述预设有限状态机均与待诊断系统对应,所述测试序列中包括所述待诊断系统对应的各系统状态之间的转换行为;
从所述测试结果中获取与初始症状对应的冲突集,所述初始症状为所述测试结果中第一个状态转换失误的转换行为;
通过所述冲突集中的转换行为构建转换失误行为集;
根据所述转换失误行为集确定待验证行为;
通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误。
此外,上述的存储器403中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明上述各方法实施例的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明实施例还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的方法,例如包括:
根据测试序列对预设有限状态机进行测试,以得到测试结果,其中,所述测试序列、所述预设有限状态机均与待诊断系统对应,所述测试序列中包括所述待诊断系统对应的各系统状态之间的转换行为;
从所述测试结果中获取与初始症状对应的冲突集,所述初始症状为所述测试结果中第一个状态转换失误的转换行为;
通过所述冲突集中的转换行为构建转换失误行为集;
根据所述转换失误行为集确定待验证行为;
通过对所述待验证行为的验证操作诊断出所述待诊断系统的系统错误。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如rom/ram、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。