技术新讯 > 测量装置的制造及其应用技术 > 一种状态机测试方法、装置、电子设备及可读存储介质与流程  >  正文

一种状态机测试方法、装置、电子设备及可读存储介质与流程

  • 国知局
  • 2024-09-14 14:23:31

本发明涉及测试,特别涉及一种状态机测试方法、装置、电子设备及可读存储介质。

背景技术:

1、状态机可以在多个状态之间跳转,当状态机处于不同状态时,会输出不同的状态值,状态机通过响应输出的信号而运行,当输入状态机的信号满足状态跳转条件时,将导致状态机从一个状态跳转到另一个状态。状态机正广泛应用于各个领域中,许多场景都会使用到状态机,例如自动驾驶、电子商务等领域。在状态机的应用过程中,会经常需要对状态机进行测试。

2、相关技术中,为了对状态机进行测试,技术人员需要采用人工测试的方式,向状态机输入合适的测试信号,使状态机发生跳转,并记录状态机跳转后输出的状态值,然后判断状态机输出的状态值是否正确,测试人员需要不断重复上述过程,以采用尽可能多的测试信号对状态机进行测试。

3、但是,由于状态机的状态变化复杂,采取人工测试的方式需要消耗测试人员大量的时间和精力,同时测试效率也较低,且由于人工测试的不稳定性,容易导致测试结果不准确。

技术实现思路

1、有鉴于此,本发明旨在提出一种状态机测试方法、装置、电子设备及可读存储介质,以解决现有技术中对状态机进行测试时,效率低下且测试结果不准确的问题。

2、为达到上述目的,本发明的技术方案是这样实现的:

3、获取状态机输出的第一状态值;

4、根据所述第一状态值确定第一信号;其中,所述第一信号用于将所述状态机输出的状态值调整为所述第一信号对应的目标状态值;

5、将所述第一信号发送至所述状态机,并获取所述状态机响应于所述第一信号后输出的第二状态值;

6、根据所述第二状态值与所述目标状态值生成测试结果。

7、可选地,所述根据所述第一状态值确定第一信号,包括:

8、获取测试用例集合对应的起始状态值;其中,所述测试用例集合中的测试用例由起始状态值、目标状态值,以及用于将所述状态机输出的状态值,由所述起始状态值调整为所述目标状态值的测试信号构成;

9、将所述第一状态值与所有测试用例集合对应的起始状态值进行匹配,确定所述第一状态值对应的第一测试用例集合;

10、从所述第一测试用例集合中获取第一测试用例,并根据所述第一测试用例的测试信号确定第一信号。

11、可选地,所述方法包括:

12、确定所述状态机对应的状态值切换方式;其中,所述状态值切换方式由起始状态值和目标状态值构成;

13、针对每个所述状态值切换方式,生成所述状态值切换方式对应的测试信号;其中,所述测试信号用于将状态机输出的状态值,由所述状态值切换方式对应的起始状态值调整至所述状态值切换方式对应的目标状态值;

14、针对每个所述状态值切换方式,采用所述状态值切换方式对应的测试信号、起始状态值和目标状态值,生成所述状态值切换方式对应的测试用例集合。

15、可选地,所述从所述第一测试用例集合中获取第一测试用例,包括:

16、根据历史测试信息确定所述第一测试用例集合中已经测试过的历史测试用例;

17、从所述第一测试用例集合中去除所述历史测试用例,得到目标测试用例集合;

18、从所述目标测试用例集合中获取第一测试用例。

19、可选地,所述根据所述第二状态值与所述目标状态值生成测试结果,包括:

20、确定所述第二状态值对应的第二测试用例集合,并采用基于所述第二测试用例集合的测试用例确定的第二信号,对所述状态机进行测试,直至遍历所有测试用例集合中的所有测试用例;

21、根据所述状态机针对所有测试用例集合中每个测试用例输出的状态值,生成测试结果。

22、可选地,所述确定所述第二状态值对应的第二测试用例集合,包括:

23、在所述第二状态值与所述目标状态值相匹配的情况下,确定所述第二状态值对应的第二测试用例集合;

24、在所述第二状态值与所述目标状态值不匹配的情况下,终止测试流程并向用户输出所述第一测试用例和所述第二状态值。

25、可选地,所述根据所述状态机针对所有测试用例集合中每个测试用例输出的状态值,生成测试结果,包括:

26、在所述状态机针对所有测试用例集合中每个测试用例输出的状态值,均与对应测试用例的目标状态值匹配的情况下,确定测试结果为测试通过;

27、在所述状态机针对所有测试用例集合中至少一个测试用例输出的状态值,与对应测试用例的目标状态值不匹配的情况下,确定测试结果为测试不通过。

28、一种状态机测试装置,所述装置包括:

29、获取模块,用于获取状态机输出的第一状态值;

30、确定模块,用于根据所述第一状态值确定第一信号;其中,所述第一信号用于将所述状态机输出的状态值调整为所述第一信号对应的目标状态值;

31、发送模块,用于将所述第一信号发送至所述状态机,并获取所述状态机响应于所述第一信号后输出的第二状态值;

32、结果模块,用于根据所述第二状态值与所述目标状态值生成测试结果。

33、可选地,所述确定模块包括:

34、起始状态值子模块,用于获取测试用例集合对应的起始状态值;其中,所述测试用例集合中的测试用例由起始状态值、目标状态值,以及用于将所述状态机输出的状态值,由所述起始状态值调整为所述目标状态值的测试信号构成;

35、第一测试用例集合子模块,用于将所述第一状态值与所有测试用例集合对应的起始状态值进行匹配,确定所述第一状态值对应的第一测试用例集合;

36、第一信号子模块,用于从所述第一测试用例集合中获取第一测试用例,并根据所述第一测试用例的测试信号确定第一信号。

37、可选地,所述装置包括:

38、状态值切换方式子模块,用于确定所述状态机对应的状态值切换方式;其中,所述状态值切换方式由起始状态值和目标状态值构成;

39、测试信号生成子模块,用于针对每个所述状态值切换方式,生成所述状态值切换方式对应的测试信号;其中,所述测试信号用于将状态机输出的状态值,由所述状态值切换方式对应的起始状态值调整至所述状态值切换方式对应的目标状态值;

40、测试用例集合生成子模块,用于针对每个所述状态值切换方式,采用所述状态值切换方式对应的测试信号、起始状态值和目标状态值,生成所述状态值切换方式对应的测试用例集合。

41、可选地,所述第一信号子模块包括:

42、历史测试用例子模块,用于根据历史测试信息确定所述第一测试用例集合中已经测试过的历史测试用例;

43、目标测试用例集合子模块,用于从所述第一测试用例集合中去除所述历史测试用例,得到目标测试用例集合;

44、第一测试用例子模块,用于从所述目标测试用例集合中获取第一测试用例。

45、可选地,所述结果模块包括:

46、遍历测试子模块,用于确定所述第二状态值对应的第二测试用例集合,并采用基于所述第二测试用例集合的测试用例确定的第二信号,对所述状态机进行测试,直至遍历所有测试用例集合中的所有测试用例;

47、测试结果子模块,用于根据所述状态机针对所有测试用例集合中每个测试用例输出的状态值,生成测试结果。

48、可选地,所述遍历测试子模块包括:

49、第二测试用例集合子模块,用于在所述第二状态值与所述目标状态值相匹配的情况下,确定所述第二状态值对应的第二测试用例集合;

50、终止子模块,用于在所述第二状态值与所述目标状态值不匹配的情况下,终止测试流程并向用户输出所述第一测试用例和所述第二状态值。

51、可选地,所述测试结果子模块包括:

52、第一测试结果子模块,用于在所述状态机针对所有测试用例集合中每个测试用例输出的状态值,均与对应测试用例的目标状态值匹配的情况下,确定测试结果为测试通过;

53、第二测试结果子模块,用于在所述状态机针对所有测试用例集合中至少一个测试用例输出的状态值,与对应测试用例的目标状态值不匹配的情况下,确定测试结果为测试不通过。

54、一种电子设备,所述电子设备包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述状态机测试方法。

55、一种可读存储介质,所述可读存储介质上存储程序或指令,所述程序或指令被处理器执行时实现上述状态机测试方法。

56、相对于现有技术,本发明所述的一种状态机测试方法、装置、电子设备及可读存储介质具有以下优势:

57、综上,本发明实施例提供了一种状态机测试方法,包括:获取状态机输出的第一状态值;根据第一状态值确定第一信号;其中,第一信号用于将状态机输出的状态值调整为第一信号对应的目标状态值;将第一信号发送至状态机,并获取状态机响应于第一信号后输出的第二状态值;根据第二状态值与目标状态值生成测试结果。本发明实施例中,可以根据状态机输出的状态值自动选取合适的信号对状态机进行测试,避免了人工测试状态机可能发生的错误,同时,通过自动确定测试信号、自动生成测试结果,提高了对状态机进行测试的测试效率。

本文地址:https://www.jishuxx.com/zhuanli/20240914/293797.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。