CN116149975A - 对功能安全软件的白盒测试方法及相关设备 - Google Patents
对功能安全软件的白盒测试方法及相关设备 Download PDFInfo
- Publication number
- CN116149975A CN116149975A CN202111374610.4A CN202111374610A CN116149975A CN 116149975 A CN116149975 A CN 116149975A CN 202111374610 A CN202111374610 A CN 202111374610A CN 116149975 A CN116149975 A CN 116149975A
- Authority
- CN
- China
- Prior art keywords
- test cases
- test case
- execution time
- initial test
- local optimization
- 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.)
- Pending
Links
- 238000010998 test method Methods 0.000 title description 4
- 238000012360 testing method Methods 0.000 claims abstract description 216
- 238000005457 optimization Methods 0.000 claims abstract description 130
- 238000013101 initial test Methods 0.000 claims abstract description 106
- 239000002245 particle Substances 0.000 claims abstract description 39
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 27
- 230000004044 response Effects 0.000 claims abstract description 27
- 238000000034 method Methods 0.000 claims description 32
- 230000008859 change Effects 0.000 claims description 5
- 230000001133 acceleration Effects 0.000 claims description 4
- 238000004590 computer program Methods 0.000 claims description 3
- 230000005484 gravity Effects 0.000 claims description 3
- 238000004891 communication Methods 0.000 description 12
- 238000004364 calculation method Methods 0.000 description 5
- 238000001514 detection method Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000002068 genetic effect Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013522 software testing Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007257 malfunction Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- WBWWGRHZICKQGZ-HZAMXZRMSA-M taurocholate Chemical compound C([C@H]1C[C@H]2O)[C@H](O)CC[C@]1(C)[C@@H]1[C@@H]2[C@@H]2CC[C@H]([C@@H](CCC(=O)NCCS([O-])(=O)=O)C)[C@@]2(C)[C@@H](O)C1 WBWWGRHZICKQGZ-HZAMXZRMSA-M 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000011164 primary particle Substances 0.000 description 1
- 238000012029 structural testing Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3684—Test management for test design, e.g. generating new test cases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3668—Software testing
- G06F11/3672—Test management
- G06F11/3688—Test management for test execution, e.g. scheduling of test suites
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请提供一种对功能安全型软件的白盒测试方法及相关设备包括根据功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,多个初始测试用例分别对应坐标系中的多个位置;将多个初始测试用例分别代入选择分支中执行得到多个初始测试用例各自的执行时间;响应于确定多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例;基于多个位置中与所述局部优化测试用例对应的目标位置,以多个初始测试用例作为粒子群,利用粒子群算法迭代更新所述多个位置,得到多个初始测试用例的全局优化测试用例;利用全局优化测试用例对功能安全软件进行白盒测试,节省测试时间提高测试效率。
Description
技术领域
本申请涉及软件测试技术领域,尤其涉及一种对功能安全软件的白盒测试方法及相关设备。
背景技术
软件被用于汽车、轨道交通或飞机等安全关键系统时,就具备了安全属性的要求。因此功能安全型软件是在相关应用场景下,进行了充分安全分析,具备高可靠性和高可用性的软件。
将软件功能用程序流程图表示的话,软件的入口、出口和分支判断都视为节点,而节点之间的顺序执行语句则视为路径。功能安全型软件与非功能安全性软件的区别就是采用了足够多的措施来确保软件路径的顺利执行。因此对于功能安全性软件的白盒测试,主要的测试目标就是要验证防护措施是否完备,也就是要发现可能导致系统功能的错误执行或执行超时的情况。
然而,传统的白盒测试方法需要覆盖程序分支的各种判定情况,对于选择分支为n的程序,最多需要编写2n条测试用例才能确保对程序所有执行路径的覆盖,确保软件功能安全的完整性。可见,在现有测试技术中随着程序分支数量(n)的增加,测试用例数量呈指数型增长,大幅降低了白盒测试的执行效率。
发明内容
有鉴于此,本申请的目的在于提出一种对功能安全软件的白盒测试方法及相关设备,用于提升对功能安全软件的测试效率。
基于上述目的,本申请提供了一种对功能安全软件的白盒测试方法,包括:
根据所述功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,所述多个初始测试用例分别对应于坐标系中的多个位置;
通过将所述多个初始测试用例分别代入所述选择分支中执行,得到所述多个初始测试用例各自的执行时间;
响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例;
基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例;
利用所述全局优化测试用例对所述功能安全软件进行白盒测试。
可选的,所述响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例,包括:
确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,对所述初始测试用例的迭代次数进行检测;
响应于确定所述迭代次数超出预设迭代阈值,将所述初始测试用例作为所述局部优化测试用例;
响应于确定所述迭代次数不超出预设迭代阈值,将所述初始测试用例再次代入所述选择分支中执行,得到所述局部优化测试用例。
可选的,所述基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例,包括:
响应于确定所述局部优化测试用例的数量大于预设阈值,根据所述局部优化测试用例进行粒子群算法迭代;
响应于确定所述局部优化测试用例的数量小于预设阈值,将所述局部优化测试用例作为所述全局优化测试用例。
可选的,所述响应于确定所述局部优化测试用例的数量大于预设阈值,则根据所述局部优化测试用例进行粒子群算法迭代,包括:
将所述局部优化测试用例代入程序分支中执行,并记录所述局部优化测试用例的执行时间;
将所述局部优化测试用例的执行时间与预先得到的平均执行时间进行比对;
响应于确定所述执行时间超出所述平均执行时间,将所述局部优化测试用例作为所述全局优化测试用例;
响应于确定所述执行时间小于所述平均执行时间,对所述局部优化测试用例在坐标系中的位置进行更新,并将更新后的所述局部优化测试用例再次代入程序分支中执行。
可选的,所述响应于确定所述执行时间小于所述平均执行时间,则对所述局部优化测试用例在坐标系中的位置进行更新,并将更新后的所述局部优化测试用例再次代入程序分支中执行,包括:
通过如下公式更新所述局部优化测试用例在坐标系中的速度和位置,并将更新后的所述局部优化测试用例再次代入程序分支中执行:
d∈{1,2,3,...,Q}
c1+c2=1
其中,为分支i中粒子的速度,/>为分支i中粒子的位置,α为约束因子,J为历史局部最优值,k为全局最优值,c1、c2为加速常数,用于调整历史局部最优值J与全局最优值k的比重,r为在0到1之间随机取值的变化因子,/>为分支i的局部最优位置。
可选的,通过以下操作获得所述平均执行时间:
获取所述多个初始测试用例各自的执行时间;
响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间小于预设时间阈值,则获取所述多个初始测试用例的执行时间,根据所述多个初始测试用例的执行时间,计算得到平均执行时间。
基于同一发明构思,本说明书一个或多个实施例还提供了一种对功能安全软件的白盒测试装置,包括:
设置模块,被配置为根据所述功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,所述多个初始测试用例分别对应于坐标系中的多个位置;
执行模块,被配置为通过将所述多个初始测试用例分别代入所述选择分支中执行,得到所述多个初始测试用例各自的执行时间;
确定模块,被配置为响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例;
迭代模块,被配置为基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例;
测试模块,被配置为利用所述全局优化测试用例对所述功能安全软件进行白盒测试。
可选的,所述迭代模块,包括:
响应于确定所述局部优化测试用例的数量大于预设阈值,根据所述局部优化测试用例进行粒子群算法迭代;
响应于确定所述局部优化测试用例的数量小于预设阈值,将所述部优化测试用例作为所述全局优化测试用例。
基于同一发明构思,本说明书一个或多个实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上任意一项所述的方法。
基于同一发明构思,本说明书一个或多个实施例还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行如上任一所述方法。
从上面所述可以看出,本申请提供的功能安全软件的白盒测试方法,通过采用优化的粒子群算法,根据程序的结构及历史测试情况,对每个测试用例的执行情况进行筛选和优化选择,可以有效地选取执行时间异常的用例,从而,以最小的成本达到最大的覆盖率实现了快速定位问题,提高了测试效率。
附图说明
为了更清楚地说明本申请或相关技术中的技术方案,下面将对实施例或相关技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例的对功能安全软件的白盒测试方法流程图;
图2为本申请实施例的初始测试用例在二维坐标系中的示意图;
图3为本申请实施例的对功能安全软件的白盒测试装置示意图;
图4为本申请实施例的电子设备结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本申请进一步详细说明。
需要说明的是,除非另外定义,本申请实施例使用的技术术语或者科学术语应当为本申请所属领域内具有一般技能的人士所理解的通常意义。本申请实施例中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。“包括”或者“包含”等类似的词语意指出现该词前面的元件或者物件涵盖出现在该词后面列举的元件或者物件及其等同,而不排除其他元件或者物件。
如背景技术部分所述,现有的白盒测试方法中,由于需要覆盖程序分支的各种判定情况,对于选择分支为n的程序,最多需要编写2n条测试用例才能确保对程序中所有执行路径的覆盖,从而确保对每个选择分支都进行检测,达到应检尽检。然而,随着程序分支数量(n)的增加,测试用例数量呈指数型增长,大大影响了白盒测试的执行效率,为功能安全软件的测试带来了很大的的挑战。
在实现本申请的过程中,申请人发现,在对功能安全软件的测试中,测试用例在出错的分支中的执行时间会远多于在正常的分支中的执行时间,因此,执行时间可以作为衡量分支是否出错的重要指标。并且,通过对测试用例进行优化不仅可以减少测试用例的数量,还可以在保证测试质量的同时达到优化测试结果的效果、减少测试的时间。
针对于上述现有技术中存在的问题,并基于前述申请人的发现,本申请提供了一种对功能安全软件的白盒测试方法,主要包括取值区间划分、用例初值设置、算法策略、用例迭代以及优化过程,通过取值区间的划分确定初始测试用例的数量和数值,通过算法策略对初始测试用例进行迭代和优化,从而得到优化后的测试用例,根据优化后的测试用例进行测试,不仅保证了测试过程中的精准定位,同时还达到了优化测试结果的效果、减少测试的时间。
参考图1,本申请的对功能安全软件的白盒测试方法,包括:
步骤101、根据所述功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,所述多个初始测试用例分别对应于坐标系中的多个位置。
步骤102、通过将所述多个初始测试用例分别代入所述选择分支中执行,得到所述多个初始测试用例各自的执行时间。
步骤103、响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例。
步骤104、基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例。
步骤105、利用所述全局优化测试用例对所述功能安全软件进行白盒测试。
在一些实施方式中,程序代码的选择分支会明示或暗示分支判断的依据,因此,在测试之初就可以确定程序有几条执行路径,并根据判断条件划分取值区间,进而根据取值区间确定初始测试用例,其中,每个初始测试用例对应坐标系中的一个位置,其中,坐标系可以为二维坐标系、三维坐标系或者多维坐标系,其维度根据判断条件确定。例如,参考图2,此时判断条件的取值区间为:a>3&b>2,则此时测试用例可以为a=4&b=3、a=4&b=5、a=4&b=6、a=7&b=3甚至更多进行测试。在二维坐标系中,横轴为a,纵轴为b,当a=4&b=3时,则可以得到a=4&b=3在坐标系中对应的位置,如图2所示,同理,当a、b为任何取值时在二维坐标系中均有对应的位置。其中,测试用例也可能为由3个取值确定的,例如,由a>3&b>2&c>4确定一个测试用例,则此时初始测试用例的位置可能对应在三维坐标系中。
在一些实施方式中,获取所述多个初始测试用例的执行时间;将所述多个初始测试用例的执行时间与预设执行时间进行对比,将超出所述预设执行时间的所述初始测试用例作为所述局部优化测试用例;根据所述多个初始测试用例的执行时间,计算得到所述平均执行时间。
进一步的,根据如下公式在每次迭代对每个所述初始测试用例的速度和位置进行更新:
d∈{1,2,3,...,M}
其中的速度为初始测试用例到局部优化测试用例的数值的变化,例如初始测试用例包括a=4&b=3、a=6&b=7,若此时经过一次执行后的局部优化测试用例为a=6&b=7,则将测试用例a=4&b=3更新为a=6&b=7,则,将数值的变化记为粒子的速度。
在一些实施方式中,将每一个初始测试用例均带入程序分支中进行执行,并输出执行结果以及记录每个初始测试用例在程序分支中的执行时间,根据每个初始测试用例在程序分支中的执行时间进行计算,得到平均执行时间。
在一些实施方式中,根据所述局部最优测试用例在二维坐标系中的位置,对所述初始测试用例进行迭代,每次迭代对每个所述初始测试用例的速度和位置进行更新;响应于确定超出预设迭代次数,则将所述初始测试用例的位置更新为局部优化测试用例的位置。
在一些实施方式中,将超出预设预设执行时间的初始测试用例作为局部最优测试用例,若此时迭代次数未到达预设的迭代次数,则将局部最优测试用例作为输入用值输入到程序分支中进行执行,直到迭代次数达到最大迭代次数,则将当前迭代中得到的优化测试用例作为局部优化测试用例。
在一些实施方式中,根据所述局部优化测试用例的数量,进行所述全局优化测试用例的计算;响应于确定所述局部优化测试用例的数量大于预设阈值,则根据所述局部优化测试用例进行所述全局优化测试用例的计算;响应于确定所述局部优化测试用例的数量小于预设阈值,则将所述局部优化测试用例作为所述全局优化测试用例。
进一步的,响应于确定所述局部优化测试用例的数量大于预设阈值,则将所述局部优化测试用例带入程序分支中进行执行,并记录所述局部优化测试用例的执行时间;当所述执行时间超出所述平均执行时间,则所述局部优化测试用例作为所述全局优化测试用例。
其中,根据如下公式对局部优化测试用例进行迭代更新速度和位置:
d∈{1,2,3,...,Q}
c1+c2=1
其中,为分支i中粒子的速度,/>为分支i中粒子的位置,α为约束因子,J为坐标系中的历史局部最优值,k为坐标系中的全局最优值,c1、c2为加速常数,用于调整历史局部最优值J与全局最优值k的比重,r为变化因子(0到1之间的随机取值),/>为分支i的局部最优位置。
在一些实施方式中,当局部优化测试用例数量较多时,说明程序代码的规模较大或结构较为复杂,还需要依据局部优化测试用例进行计算,得到全局优化测试用例。
具体的,所述计算包括:将局部优化测试用例作为输入值输入程序分支中进行执行,记录每个局部优化测试用例在分支中的执行时间,同时将每个局部优化测试用例在分支中的执行时间与平均执行时间进行对比,确认执行局部优化测试用例的分支是否存在异常,如果局部优化测试用例在分支中的执行时间大于平均执行时间,则将局部优化测试用例记为全局优化测试用例。如果局部优化测试用例在分支中的执行时间小于平均执行时间,则对局部优化测试用例在坐标系中的位置进行再次更新,将局部优化测试用例的位置更新为当前局部最优的测试用例在坐标系中对应的位置,并将更新后的局部优化测试用例输入程序分支中再次进行执行,并且执行中再次将执行时间与平均执行时间进行比对,若小于平均执行时间则再次进行位置更新后输入,以此循环多次,直到有局部优化测试用例的执行时间超出平均执行时间则记为全局最优测试用例。
进一步的,找到全局最优测试用例后,对迭代的次数进行检测,若迭代的次数小于预设的迭代次数,则将已得到的全局最优测试用例输入程序再次进行执行,直到执行次数超出或等于预设的执行次数,则完成迭代,将全局最优测试用例输出。
在一些实施方式中,通过粒子群算法对多个测试用例进行优化,根据优化后的全局最优测试用例进行检测,不仅减少了不必要的执行次数,而且提高了测试效率。
白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,即清楚盒子内部的东西以及里面是如何运作的。"白盒"法全面了解程序内部逻辑结构、对所有逻辑路径进行测试。"白盒"法是穷举路径测试。在使用这一方案时,测试者必须检查程序的内部结构,从检查程序的逻辑着手,得出测试数据。贯穿程序的独立路径数是天文数字。
功能安全软件即在上下或者假设应用中,进行了充分安全分析并且采用了当前最新技术水平进行开发的高可靠性高可用性软件。这概括中包含了两个概念和一个目的。两个概念一个是软件必须进行安全分析,另一个是软件必须采用当前最新的技术水平(stateof art)进行开发。一个目的是,达到高可靠性和高可用性的要求。
所谓的软件安全软件测试(分析),概括来看可以细分为两个大类一个是概念设计的安全分析,一个相关失效的安全分析。
在软件系统的应用方面,如果系统完整性丧失会导致系统出现不正确操作即故障功能(malfunction),例如汽车上的误导性提示信息,汽车的意外加速或者意外制动转向,民航上的TCAS系统(Traffic Collision Avoidance System,简称TCAS,也就是防撞系统)错误推荐等等。为了保持系统的完整性,通常会要求架构设计时采取一些措施来预防或者中和故障(fault)。这些架构措施包括异构冗余(不同的算法实现同样的功能),故障检测,功能降级等来阻止这些完整性相关故障或者从这些完整性故障中保护系统。所以,系统设计时需要提出故障检测和响应或者故障控制需求,这些就是汽车行业常见的安全需求和安全目标。
在自动驾驶不断推进的今天,系统不仅要保持完整性还需要保持可用性。可用性和完整性的不同在于,可用性要求系统在所有可预见的操作条件下(无论是正常的还是异常的)持续保持功能或者可恢复。也就是说无论是随机的硬件故障还是软件出现的系统性故障,在故障发生时或者发生后,关键功能必须保持可用。高可用性通常要求系统具备高可靠性的冗余设计。如果通过冗余来保证可用性,那么系统需要能够检测故障并能快速恢复。可见,软件测试对于软件系统的正常运行起到至关重要的作用。通过测试保证系统的完整性和可用性。
从上面所述可以看出,本申请提供的功能安全软件的白盒测试方法,通过采用优化的粒子群算法,根据程序的结构及历史测试情况,对每个测试用例的执行情况进行筛选和优化选择,可以有效地选取执行时间异常的用例,从而,以最小的成本达到最大的覆盖率实现了快速定位问题,提高了测试效率。
对比现有技术中基于遗传算法优化白盒测试的方法,本申请中的粒子群算法简化了遗传算法中的交叉变异过程,计算方式简单,测试效率更高。
以一个处理以太网通信的程序为例,该程序执行时需要输入的参数为6个,存在8个条件分支。最后一个条件分支因为数据宽度设置有误,在循环执行程序多次之后,有概率造成内存地址访问越界,导致程序异常退出。传统人工方式要满足全部条件覆盖,需编写28=256个用例,每个用例需要设计6个输入参数。在顺序执行近90%的用例之后,才有可能执行到最后一个条件分支并发现程序问题。
通过遗传算法对白盒测试的优化,需要根据条件分支的执行情况多次调整交叉变异参数,如果调整过程顺利,可以只执行50%左右的用例便执行到最后一个条件分支并发现程序问题。
通过本发明的粒子群算法进行优化,只需要调整一次粒子速度和权重参数,即可达到遗传算法的优化结果,即只执行50%左右的用例便执行到最后一个条件分支,并发现程序问题。
需要说明的是,本申请实施例的方法可以由单个设备执行,例如一台计算机或服务器等。本实施例的方法也可以应用于分布式场景下,由多台设备相互配合来完成。在这种分布式场景的情况下,这多台设备中的一台设备可以只执行本申请实施例的方法中的某一个或多个步骤,这多台设备相互之间会进行交互以完成所述的方法。
需要说明的是,上述对本申请的一些实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于上述实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种对功能安全软件的白盒测试装置。
参考图3,所述对功能安全软件的白盒测试装置,包括:
设置模块,被配置为根据所述功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,所述多个初始测试用例分别对应于坐标系中的多个位置;
执行模块,被配置为通过将所述多个初始测试用例分别代入所述选择分支中执行,得到所述多个初始测试用例各自的执行时间;
确定模块,被配置为响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例;
迭代模块,被配置为基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例;
测试模块,被配置为利用所述全局优化测试用例对所述功能安全软件进行白盒测试。
在一些实施方式中,所述迭代模块,包括:
响应于确定所述局部优化测试用例的数量大于预设阈值,则根据所述局部优化测试用例进行粒子群算法迭代;
响应于确定所述局部优化测试用例的数量小于预设阈值,则将所述部优化测试用例作为所述全局优化测试用例。
为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本申请时可以把各模块的功能在同一个或多个软件和/或硬件中实现。
上述实施例的装置用于实现前述任一实施例中相应的对功能安全软件的白盒测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上任意一实施例所述的对功能安全软件的白盒测试方法。
图4示出了本实施例所提供的一种更为具体的电子设备硬件结构示意图,该设备可以包括:处理器1010、存储器1020、输入/输出接口1030、通信接口1040和总线1050。其中处理器1010、存储器1020、输入/输出接口1030和通信接口1040通过总线1050实现彼此之间在设备内部的通信连接。
处理器1010可以采用通用的CPU(Central Processing Unit,中央处理器)、微处理器、应用专用集成电路(Application Specific Integrated Circuit,ASIC)、或者一个或多个集成电路等方式实现,用于执行相关程序,以实现本说明书实施例所提供的技术方案。
存储器1020可以采用ROM(Read Only Memory,只读存储器)、RAM(Random AccessMemory,随机存取存储器)、静态存储设备,动态存储设备等形式实现。存储器1020可以存储操作系统和其他应用程序,在通过软件或者固件来实现本说明书实施例所提供的技术方案时,相关的程序代码保存在存储器1020中,并由处理器1010来调用执行。
输入/输出接口1030用于连接输入/输出模块,以实现信息输入及输出。输入输出/模块可以作为组件配置在设备中(图中未示出),也可以外接于设备以提供相应功能。其中输入设备可以包括键盘、鼠标、触摸屏、麦克风、各类传感器等,输出设备可以包括显示器、扬声器、振动器、指示灯等。
通信接口1040用于连接通信模块(图中未示出),以实现本设备与其他设备的通信交互。其中通信模块可以通过有线方式(例如USB、网线等)实现通信,也可以通过无线方式(例如移动网络、WIFI、蓝牙等)实现通信。
总线1050包括一通路,在设备的各个组件(例如处理器1010、存储器1020、输入/输出接口1030和通信接口1040)之间传输信息。
需要说明的是,尽管上述设备仅示出了处理器1010、存储器1020、输入/输出接口1030、通信接口1040以及总线1050,但是在具体实施过程中,该设备还可以包括实现正常运行所必需的其他组件。此外,本领域的技术人员可以理解的是,上述设备中也可以仅包含实现本说明书实施例方案所必需的组件,而不必包含图中所示的全部组件。
上述实施例的电子设备用于实现前述任一实施例中相应的对功能安全软件的白盒测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
基于同一发明构思,与上述任意实施例方法相对应的,本申请还提供了一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使所述计算机执行如上任一实施例所述的对功能安全软件的白盒测试方法。
本实施例的计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。
上述实施例的存储介质存储的计算机指令用于使所述计算机执行如上任一实施例所述的对功能安全软件的白盒测试方法,并且具有相应的方法实施例的有益效果,在此不再赘述。
需要说明的是,本申请的实施例还可以以下方式进一步描述:
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本申请的范围(包括权利要求)被限于这些例子;在本申请的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,步骤可以以任意顺序实现,并存在如上所述的本申请实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。
另外,为简化说明和讨论,并且为了不会使本申请实施例难以理解,在所提供的附图中可以示出或可以不示出与集成电路(IC)芯片和其它部件的公知的电源/接地连接。此外,可以以框图的形式示出装置,以便避免使本申请实施例难以理解,并且这也考虑了以下事实,即关于这些框图装置的实施方式的细节是高度取决于将要实施本申请实施例的平台的(即,这些细节应当完全处于本领域技术人员的理解范围内)。在阐述了具体细节(例如,电路)以描述本申请的示例性实施例的情况下,对本领域技术人员来说显而易见的是,可以在没有这些具体细节的情况下或者这些具体细节有变化的情况下实施本申请实施例。因此,这些描述应被认为是说明性的而不是限制性的。
尽管已经结合了本申请的具体实施例对本申请进行了描述,但是根据前面的描述,这些实施例的很多替换、修改和变型对本领域普通技术人员来说将是显而易见的。例如,其它存储器架构(例如,动态RAM(DRAM))可以使用所讨论的实施例。
本申请实施例旨在涵盖落入所附权利要求的宽泛范围之内的所有这样的替换、修改和变型。因此,凡在本申请实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种对功能安全软件的白盒测试方法,其特征在于,包括:
根据所述功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,所述多个初始测试用例分别对应于坐标系中的多个位置;
通过将所述多个初始测试用例分别代入所述选择分支中执行,得到所述多个初始测试用例各自的执行时间;
响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例;
基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例;
利用所述全局优化测试用例对所述功能安全软件进行白盒测试。
2.根据权利要求1所述的方法,其特征在于,所述响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例,包括:
确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,对所述初始测试用例的迭代次数进行检测;
响应于确定所述迭代次数超出预设迭代阈值,将所述初始测试用例作为所述局部优化测试用例;
响应于确定所述迭代次数不超出预设迭代阈值,将所述初始测试用例再次代入所述选择分支中执行,得到所述局部优化测试用例。
3.根据权利要求1所述的方法,其特征在于,所述基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例,包括:
响应于确定所述局部优化测试用例的数量大于预设阈值,根据所述局部优化测试用例进行粒子群算法迭代;
响应于确定所述局部优化测试用例的数量小于预设阈值,将所述局部优化测试用例作为所述全局优化测试用例。
4.根据权利要求3所述的方法,其特征在于,所述响应于确定所述局部优化测试用例的数量大于预设阈值,则根据所述局部优化测试用例进行粒子群算法迭代,包括:
将所述局部优化测试用例代入程序分支中执行,并记录所述局部优化测试用例的执行时间;
将所述局部优化测试用例的执行时间与预先得到的平均执行时间进行比对;
响应于确定所述执行时间超出所述平均执行时间,将所述局部优化测试用例作为所述全局优化测试用例;
响应于确定所述执行时间小于所述平均执行时间,对所述局部优化测试用例在坐标系中的位置进行更新,并将更新后的所述局部优化测试用例再次代入程序分支中执行。
5.根据权利要求4所述的方法,其特征在于,所述响应于确定所述执行时间小于所述平均执行时间,则对所述局部优化测试用例在坐标系中的位置进行更新,并将更新后的所述局部优化测试用例再次代入程序分支中执行,包括:
通过如下公式更新所述局部优化测试用例在坐标系中的速度和位置,并将更新后的所述局部优化测试用例再次代入程序分支中执行:
d∈{1,2,3,...,Q}
c1+c2=1
6.根据权利要求4所述的方法,其特征在于,通过以下操作获得所述平均执行时间:
获取所述多个初始测试用例各自的执行时间;
响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间小于预设时间阈值,则获取所述多个初始测试用例的执行时间,根据所述多个初始测试用例的执行时间,计算得到平均执行时间。
7.一种对功能安全软件的白盒测试装置,其特征在于,包括:
设置模块,被配置为根据所述功能安全软件的程序流程图中包含的选择分支的取值区间,设置多个初始测试用例,所述多个初始测试用例分别对应于坐标系中的多个位置;
执行模块,被配置为通过将所述多个初始测试用例分别代入所述选择分支中执行,得到所述多个初始测试用例各自的执行时间;
确定模块,被配置为响应于确定所述多个初始测试用例中的一个初始测试用例的执行时间大于预设时间阈值,将该初始测试用例作为局部优化测试用例;
迭代模块,被配置为基于所述多个位置中与所述局部优化测试用例对应的目标位置,以所述多个初始测试用例作为粒子群,利用粒子群算法迭代地更新所述多个位置,以得到所述多个初始测试用例的全局优化测试用例;
测试模块,被配置为利用所述全局优化测试用例对所述功能安全软件进行白盒测试。
8.根据权利要求7所述的装置,其特征在于,所述迭代模块,包括:
响应于确定所述局部优化测试用例的数量大于预设阈值,根据所述局部优化测试用例进行粒子群算法迭代;
响应于确定所述局部优化测试用例的数量小于预设阈值,将所述局部优化测试用例作为所述全局优化测试用例。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如权利要求1至6中任意一项所述的方法。
10.一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令用于使计算机执行权利要求1至6中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111374610.4A CN116149975A (zh) | 2021-11-19 | 2021-11-19 | 对功能安全软件的白盒测试方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111374610.4A CN116149975A (zh) | 2021-11-19 | 2021-11-19 | 对功能安全软件的白盒测试方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116149975A true CN116149975A (zh) | 2023-05-23 |
Family
ID=86356854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111374610.4A Pending CN116149975A (zh) | 2021-11-19 | 2021-11-19 | 对功能安全软件的白盒测试方法及相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116149975A (zh) |
-
2021
- 2021-11-19 CN CN202111374610.4A patent/CN116149975A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9612922B2 (en) | Computer system and method for comparing output signals | |
CN111078459B (zh) | 半导体芯片的测试方法、装置及系统 | |
CN109032872B (zh) | 基于贝叶斯网络的设备故障诊断方法及系统 | |
US20180276321A1 (en) | Method and apparatus for testing design of satellite wiring harness and signal processing units | |
CN110207643B (zh) | 折叠角度检测方法、装置、终端及存储介质 | |
CN109753391A (zh) | 处理器的一个或多个结构的功能测试的系统、装置和方法 | |
CN110032505B (zh) | 软件质量确定装置和方法以及非暂态计算机可读介质 | |
CN108108262B (zh) | 具有检查所选择的存储器访问的硬件检查单元的集成电路 | |
KR101420750B1 (ko) | 무인기 비행제어 소프트웨어 검증 방법 | |
US8565910B2 (en) | Manufacturing execution system (MES) including a wafer sampling engine (WSE) for a semiconductor manufacturing process | |
WO2019142266A1 (ja) | テストケース生成装置、テストケース生成方法およびテストケース生成プログラム | |
CN116149975A (zh) | 对功能安全软件的白盒测试方法及相关设备 | |
US20140149797A1 (en) | Dynamic concolic execution of an application | |
CN116734891A (zh) | 交会成像敏感器测量数据的有效性判断方法和装置 | |
JP6375200B2 (ja) | 計算機システムの異常予兆検出装置および方法 | |
CN110427278A (zh) | 异常检测方法和装置 | |
CN112242177A (zh) | 存储器测试方法、装置、计算机可读存储介质及电子设备 | |
US11989560B2 (en) | Method and device for executing instructions to perform artificial intelligence | |
CN115543716A (zh) | 验证图形处理单元的处理逻辑 | |
JP6993472B2 (ja) | 深層学習チップを検出する方法、装置、電子機器、およびコンピュータ記憶媒体 | |
EP3134789B1 (en) | Monitor performance analysis | |
CN114817047A (zh) | 编译器测试方法、用例生成方法及装置、指令存储结构 | |
CN116802640A (zh) | 用于确定安全相关逻辑中的故障类型的结构分析 | |
US10684908B2 (en) | Method for fault detection in an operating system | |
Granig et al. | Dependability considerations of redundant sensor systems |
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 |