CN116048958B - 医疗机器人控制软件测试数据的生成方法、注入方法 - Google Patents

医疗机器人控制软件测试数据的生成方法、注入方法 Download PDF

Info

Publication number
CN116048958B
CN116048958B CN202211439160.7A CN202211439160A CN116048958B CN 116048958 B CN116048958 B CN 116048958B CN 202211439160 A CN202211439160 A CN 202211439160A CN 116048958 B CN116048958 B CN 116048958B
Authority
CN
China
Prior art keywords
chromosome
generating
test
fitness value
software
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.)
Active
Application number
CN202211439160.7A
Other languages
English (en)
Other versions
CN116048958A (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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen 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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202211439160.7A priority Critical patent/CN116048958B/zh
Publication of CN116048958A publication Critical patent/CN116048958A/zh
Application granted granted Critical
Publication of CN116048958B publication Critical patent/CN116048958B/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
    • 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
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供了一种医疗机器人控制软件测试数据的生成方法、注入方法,生成方法包括步骤:S1、生成被测软件的CFG控制图;S2、计算CFG控制图内的有限路径数量;S3、以有限路径数量作为被测试软件的输入参数,进行总群的初始化;S4、若不存在未被覆盖的路径或者运行代数最大时,得到最佳染色体;S5、若存在未被覆盖的路径或者运行代数最大时,进行个体评价;S6、对染色体进行交叉操作和变异操作;S7、计算染色体的适应度值;S8、若适应度值不符合要求,则选择下一代个体,运行代数增加,并返回至步骤S4。采用本发明的方法能以更少的评估量提供更好的覆盖范围。

Description

医疗机器人控制软件测试数据的生成方法、注入方法
技术领域
本发明属于医疗机器人测试技术领域,涉及一种医疗机器人控制软件测试数据的生成方法、注入方法。
背景技术
嵌入式软件在医疗机器人、交通系统、工业控制领域等应用越来越广泛。其应用需求的不断增长对嵌入式软件的质量提出更高要求。软件测试是保证其软件可靠性的主要手段。
软件测试是一项繁琐、复杂的工作,自动化测试是提高效率、降低成本的有效途径,其中测试数据的生成是软件测试的关键,将智能优化算法如遗传算法、粒子群算法等应用到软件测试数据自动生成过程中,其生成的效率会有明显提高。
但这些单一算法都有不足之处,如遗传算法、粒子群算法均存在早熟和局部搜索能力差等缺陷,禁忌搜索算法过多依赖初始解和迭代次数,不少研究者对这些算法进行改进,测试数据生成效率较传统优化算法得到明显提高。其中运用最广泛的遗传算法在测试数据生成方面是一种实用的算法,但是其自身存在局限性,如过早收敛、优化效率低等,并且种群规模大,迭代分析次数过多,导致了算法运行时间长,且易受参数影响。
发明内容
本发明提供了一种医疗机器人控制软件测试数据的生成方法、注入方法,其能以更少的评估量提供更好的覆盖范围。
本发明采用的技术方案是:
一种医疗机器人控制软件测试数据的生成方法,包括步骤:
S1、生成被测软件的CFG控制图;
S2、计算CFG控制图内的有限路径数量;
S3、以有限路径数量作为被测试软件的输入参数,进行总群的初始化;
S4、若不存在未被覆盖的路径或者运行代数最大时,得到最佳染色体;
S5、若存在未被覆盖的路径或者运行代数最大时,进行个体评价;
S6、对染色体进行交叉操作和变异操作;
S7、计算染色体的适应度值;
S8、若适应度值不符合要求,则选择下一代个体,运行代数增加,并返回至步骤S4。
作为本发明的进一步改进,采用CFG内的循环数计算CFG控制图内的有限路径数量。
作为本发明的进一步改进,所述交叉操作包括:
以另一条染色体上的非重复测试用例对每条染色体上的重复测试用例进行替换。
作为本发明的进一步改进,所述变异操作包括:
找到染色体内所有重复的测试用例,选择其中一个测试用例进行突变。
作为本发明的进一步改进,所述计算染色体的适应度值的步骤中,以给定测试用例作为输入参数,根据测试用例遍历的路径集、有限路径数量计算得到测试用例的适应度值。
作为本发明的进一步改进,采用排序选择下一代个体。
作为本发明的进一步改进,若适应度值符合要求,则采用Q-learning,对测试用例进行了修改。
作为本发明的进一步改进,选择下一代个体时,采用memtic操作提高染色体的适应度。
作为本发明的进一步改进,在适应度值不符合要求时,采用额外的搜索步骤,选择下一代个体。
此外,本发明还提供了一种医疗机器人控制软件测试数据的注入方法,将由上述的生成方法生成的测试数据,注入到医疗机器人控制器的嵌入式软件中。
与现有技术相比,本发明的有益效果是:本发明的生成方法,考虑了覆盖所有有限路径的准则,将问题转化为一个搜索问题,并求解,较于现有技术而言,测试数据生成速度将会比许多现有的进化或元启发式算法更快,并且可以以更少的评估量提供更好的覆盖范围。
附图说明书
图1为种群中一个给定染色体的示意图;
图2为实施例1所述生成方法的流程图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的优点。本发明亦可通过其他不同的具体实例加以实施或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
名词解释:
CFG:控制流图(Control Flow Graph,CFG)也叫控制流程图,是一个过程或程序的抽象表现,是用在编译器中的一个抽象数据结构,由编译器在内部维护,代表了一个程序执行过程中会遍历到的所有路径。
SUT:(software under the test,SUT)处于测试中的软件,软件测试。
Memtic:(Memtic algorithm)本发明是结合了遗传算法和强化学习,作为其中的一个Memtic步骤。通过将Q-Learning作为Memtic algorithm以提高染色体的适应度。
Jaccard:Jaccard index,又称为Jaccard相似系数(Jaccard similaritycoefficient)用于比较有限样本集之间的相似性与差异性。Jaccard系数值越大,样本相似度越高。
Q-learning:Q-Learning是强化学习算法中value-based的算法,Q即为Q(s,a),就是在某一个时刻的state状态下,采取动作a能够获得收益的期望,环境会根据agent的动作反馈相应的reward奖赏,所以算法的主要思想就是将state和action构建成一张Q_table表来存储Q值,然后根据Q值来选取能够获得最大收益的动作。
实施例1
本实施例提供了一种医疗机器人控制软件测试数据的生成方法,如图1所示,包括步骤:
S1、生成被测软件的CFG控制图;CFG控制图的生成可以采用现有技术中的工具实现,如如pycfg,Visustin等。
S2、用CFG的循环数来计算CFG控制图内的有限路径数量Np
S3、如图2所示,为了开始在问题的整个状态空间中进行搜索,将首先生成一个随机总体。这个群体中的每条染色体都代表了被测试软件的一个测试集。假设被测试软件的输入参数的数量为Nv,对应CFG内的有限路径数为Np。然后每个染色体的形式为:ti=[ti(1),ti(2)……ti(Np)],其中每个ti(k)代表一个测试用例,用一组特定的输入参数评估被测试软件的情况。这里ti(k)=[xik(1),xik(2)……xik(Nv)],xik(1)为指定测试用例ti(k)中被测试软件的第l个输入参数。
S4、若不存在未被覆盖的路径或者运行代数最大时,得到最佳染色体,即得到测试数据。
S5、若存在未被覆盖的路径或者运行代数最大时,采用公式(1)进行个体评价;
S6、为了获得更好的性能,本实施例还引入了新的交叉操作和变异操作,更适合于自动化测试数据生成的问题。如果是交叉算子,则考虑每个父节点的子部分,并根据每个子部分中编码的信息选择重组索引。只有当一个染色体中有重复或重复的亚片段时,才会进行突变。
交叉操作包括:以另一条染色体上的非重复测试用例对每条染色体上的重复测试用例进行替换。
变异操作包括:找到染色体内所有重复的测试用例,选择其中一个测试用例进行突变,突变是通过在这个测试用例中随机改变其中一个输入参数来执行的。利用这种突变方法,可以确保突变染色体的适应度不低于原始染色体。
S7、计算染色体的适应度值ti,此时,需要运行被测试软件Nv次,每次都以给定的ti(k)作为输入参数。每个执行都遵循控制流图CFG中的一个特定路径。让这个路径用ρi(k)表示,将所有ti(k)遍历的路径集表示为ρi,然后根据公式(1)计算ti的适应度值。
其中,||表示集合ρi中元素的数量。
S8、若适应度值不符合要求,则选择下一代个体,运行代数增加,并返回至步骤S4。
具体地,采用排序选择下一代个体,同时采用memtic操作提高染色体的适应度,在这一阶段,根据由等式(1)给出的适应度函数是最好的染色体。让这条染色体成为最好。这条染色体通过一个memtic操作,以提高其适应度。如果tbest的适应度fbest为1,则可以找到解决方案,并且不需要进行其他操作。但是,如果fbest小于1,则意味着在最优中至少存在两个最优tbest(k)和tbest(m),它们对应的路径ρbest(k)和ρbest(m)并且它们是相同。此时,将这种测试用例称为重复的测试用例。同时,很明显,在这种情况下,Np中有一些路径没有被tbest所覆盖。随机选择这样一种路径ρr∈Np,以提高tbest的适应度。其想法是从染色体内的一个测试用例tbest(h)开始,其对应的路径ρbest(h)与ρr最为相似。
相似性是用Jaccard指数来度量的。然后修改此测试用例,目的是找到一个可以覆盖ρr的测试用例。如果这个过程成功了。那么,新识别的测试用例将被替换为染色体内的一个重复的测试用例。这样,染色体的适应度就会提高为了使修改tbest(h)的过程有效,在适应度值符合要求时,采用Q-learning,对测试用例进行了修改;
应用Jaccard相似度指数:
listi和listj是这两条路径。计算1与Jaccard(listi,listj)相似度之间的差值为Jaccard距离公式,即:
Distance(listi,listj)=1-Jaccard(listi,listj) (3)
对于每个tbest(k),计算距离(ρbest(k),ρr),并根据下面给出的公式(4)
确定ρbest(h)。然后,选择tbest(h)来进行下一步的memtic操作。ρr为未被tbest覆盖的路径,选tbest中与Jaccard距离最短的ρbest(k)为ρbest(h),并对tbest(h)进行修改。
选择tbest(h)后,tbest(h)=tcur(h)开始强化学习操作。利用Q-learning,对该测试用例进行了修改,希望能找到一个可以覆盖ρr的测试用例。我们将问题的状态数设置为Nv,被测试软件的输入参数的数量。即,将问题的状态空间定义为s={s(1),s(2),……,s(Nv)}。在每个状态s(l)中,都定义了动作,以更改tcur中相应的输入参数xcur(l)。让修改后的测试用例为tnext
为了防止一个被丢弃的测试用例覆盖的路径正好没有被被选择的染色体中所包含的测试用例覆盖,在适应度值不符合要求时,在每个遗传迭代结束时使用了一个额外的搜索步骤来检查是否存在这样的情况,如果是则用此测试用例替换种群最佳染色体中一个重复的测试用例。
在本实施例中,采用了一种结构性的方法来自动化测试数据的生成过程,并考虑了覆盖所有有限路径的准则。在结构方法中,将问题转化为一个搜索问题,并使用元启发式算法进行求解,提出一种模因算法,其中将强化学习作为遗传算法中的局部搜索方法。该方法在测试数据生成方面比许多现有的进化或元启发式算法更快,并且可以以更少的评估提供更好的覆盖率。此外,本实施例提出的算法的每条染色体都是一个测试集,由许多测试用例组成。强化学习部分接受迄今为止在遗传算法中发现的最佳测试集,并试图通过修改其一个测试用例来改进它,目的是覆盖CFG中的另一条路径。此外还设计了重组和突变算子,它们比遗传算法的标准算子更适合于这一问题,并且该方法在适应度评价的次数和成功率方面都明显优于现代这些算法。
实施例2
本实施例提供了一种医疗机器人控制软件测试数据的注入方法,将由实施例1生成方法所生成的测试数据,采用专用的软硬件接口和特定的API或数据格式,向在数字孪生仿真环境中运行的机器人控制器软件注入测试数据等作为激励,驱动机器人的机械臂运动,进行机器人控制器嵌入式软件的测试。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。

Claims (10)

1.一种医疗机器人控制软件测试数据的生成方法,其特征在于,包括步骤:
S1、生成被测软件的CFG控制图;
S2、计算CFG控制图内的有限路径数量;
S3、以有限路径数量作为被测试软件的输入参数,进行总群的初始化;
S4、若不存在未被覆盖的路径或者运行代数最大时,得到最佳染色体;
S5、若存在未被覆盖的路径或者运行代数最大时,进行个体评价;
S6、对染色体进行交叉操作和变异操作;
S7、计算染色体的适应度值;
S8、若适应度值不符合要求,则选择下一代个体,运行代数增加,并返回至步骤S4。
2.根据权利要求1所述的生成方法,其特征在于,采用CFG内的循环数计算CFG控制图内的有限路径数量。
3.根据权利要求1所述的生成方法,其特征在于,所述交叉操作包括:
以另一条染色体上的非重复测试用例对每条染色体上的重复测试用例进行替换。
4.根据权利要求1所述的生成方法,其特征在于,所述变异操作包括:
找到染色体内所有重复的测试用例,选择其中一个测试用例进行突变。
5.根据权利要求1所述的生成方法,其特征在于,所述计算染色体的适应度值的步骤中,以给定测试用例作为输入参数,根据测试用例遍历的路径集、有限路径数量计算得到测试用例的适应度值。
6.根据权利要求1所述的生成方法,其特征在于,采用排序选择下一代个体。
7.根据权利要求1所述的生成方法,其特征在于,若适应度值符合要求,则采用Q-learning,对测试用例进行了修改。
8.根据权利要求1所述的生成方法,其特征在于,选择下一代个体时,采用memtic操作提高染色体的适应度。
9.根据权利要求1所述的生成方法,其特征在于,在适应度值不符合要求时,采用额外的搜索步骤,选择下一代个体。
10.一种医疗机器人控制软件测试数据的注入方法,其特征在于,将由权利要求1~9任一项所述的生成方法生成的测试数据,注入到医疗机器人控制器的嵌入式软件中。
CN202211439160.7A 2022-11-17 2022-11-17 医疗机器人控制软件测试数据的生成方法、注入方法 Active CN116048958B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211439160.7A CN116048958B (zh) 2022-11-17 2022-11-17 医疗机器人控制软件测试数据的生成方法、注入方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211439160.7A CN116048958B (zh) 2022-11-17 2022-11-17 医疗机器人控制软件测试数据的生成方法、注入方法

Publications (2)

Publication Number Publication Date
CN116048958A CN116048958A (zh) 2023-05-02
CN116048958B true CN116048958B (zh) 2023-12-01

Family

ID=86115248

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211439160.7A Active CN116048958B (zh) 2022-11-17 2022-11-17 医疗机器人控制软件测试数据的生成方法、注入方法

Country Status (1)

Country Link
CN (1) CN116048958B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116775499A (zh) * 2023-08-21 2023-09-19 中国电信股份有限公司 测试数据生成方法、装置、计算机设备和存储介质
CN116861204B (zh) * 2023-09-05 2023-12-08 山东山森数控技术有限公司 基于数字孪生的智能制造设备数据管理系统

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成系统
CN104765690A (zh) * 2015-04-22 2015-07-08 哈尔滨工业大学 基于模糊遗传算法的嵌入式软件测试数据生成方法
CN107729241A (zh) * 2017-10-12 2018-02-23 中国矿业大学 一种基于变异体分组的软件变异测试数据进化生成方法
CN108509335A (zh) * 2018-01-31 2018-09-07 浙江理工大学 基于遗传算法优化的软件测试数据生成方法
CN109918307A (zh) * 2019-03-14 2019-06-21 牡丹江师范学院 基于否定选择遗传算法的路径覆盖测试数据生成方法
CN112052166A (zh) * 2020-08-26 2020-12-08 河海大学 一种基于支配关系的测试用例生成方法与装置
CN113918472A (zh) * 2021-12-13 2022-01-11 北京壁仞科技开发有限公司 算子库的测试方法、测试系统及存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101989802B1 (ko) * 2017-02-28 2019-06-18 주식회사 스패로우 테스트 케이스를 이용하여 테스트를 수행하는 방법 및 장치
CN108710575B (zh) * 2018-05-23 2020-11-24 华南理工大学 基于路径覆盖测试用例自动生成的单元测试方法
US11249887B2 (en) * 2019-08-27 2022-02-15 Nec Corporation Deep Q-network reinforcement learning for testing case selection and prioritization

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102331966A (zh) * 2011-01-10 2012-01-25 中国矿业大学 面向路径的软件测试数据进化生成系统
CN104765690A (zh) * 2015-04-22 2015-07-08 哈尔滨工业大学 基于模糊遗传算法的嵌入式软件测试数据生成方法
CN107729241A (zh) * 2017-10-12 2018-02-23 中国矿业大学 一种基于变异体分组的软件变异测试数据进化生成方法
CN108509335A (zh) * 2018-01-31 2018-09-07 浙江理工大学 基于遗传算法优化的软件测试数据生成方法
CN109918307A (zh) * 2019-03-14 2019-06-21 牡丹江师范学院 基于否定选择遗传算法的路径覆盖测试数据生成方法
CN112052166A (zh) * 2020-08-26 2020-12-08 河海大学 一种基于支配关系的测试用例生成方法与装置
CN113918472A (zh) * 2021-12-13 2022-01-11 北京壁仞科技开发有限公司 算子库的测试方法、测试系统及存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于UVM的仿真用例集约简技术研究;郑昌立;《CNKI硕士电子期刊》(第第02期期);全文 *
基于否定选择遗传算法的路径覆盖测试数据生成;夏春艳;张岩;万里;宋妍;肖楠;郭冰;;电子学报(第12期);全文 *

Also Published As

Publication number Publication date
CN116048958A (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
CN116048958B (zh) 医疗机器人控制软件测试数据的生成方法、注入方法
Ilievski et al. Efficient hyperparameter optimization for deep learning algorithms using deterministic rbf surrogates
JP3404532B2 (ja) 最適フィッティングパラメータ決定方法および装置、並びに最適フィッティングパラメータ決定プログラム
Lundy Applications of the annealing algorithm to combinatorial problems in statistics
Massim et al. Efficient combined immune-decomposition algorithm for optimal buffer allocation in production lines for throughput and profit maximization
CN104137095B (zh) 用于演进分析的系统
CN110738365B (zh) 一种基于粒子群算法的柔性作业车间生产调度方法
Yuguang et al. Solving multi-objective fuzzy flexible job shop scheduling problem using MABC algorithm
WO2019154215A1 (zh) 机器人运行路径生成方法、计算设备及存储介质
CN113468044B (zh) 一种基于改进的灰色预测演化算法的测试用例生成方法
CN109656798A (zh) 基于顶点重排序的超级计算机大数据处理能力测试方法
WO2022178660A1 (zh) 一种数据处理方法、装置、设备及介质
Stevens et al. Reducing run-time adaptation space via analysis of possible utility bounds
Zhang et al. Hierarchical multistrategy genetic algorithm for integrated process planning and scheduling
CN109977318A (zh) 书籍搜索方法、电子设备及计算机存储介质
Rezapoor Mirsaleh et al. A learning automata-based memetic algorithm
Welborn et al. Learning index selection with structured action spaces
CN109144498A (zh) 一种面向对象实例化任务的api自动推荐方法及装置
CN111190711B (zh) Bdd结合启发式a*搜索的多机器人任务分配方法
CN113762514A (zh) 数据处理方法、装置、设备及计算机可读存储介质
Lu et al. An efficient multiobjective backtracking search algorithm for single machine scheduling with controllable processing times
CN115936568A (zh) 动态车辆配送任务的路径规划方法、电子设备和存储介质
CN112948357B (zh) 一种面向多模数据库OrientDB的调优系统及其构建方法
CN113220437B (zh) 一种工作流多目标调度方法及装置
Salomie et al. Hybrid immune-inspired method for selecting the optimal or a near-optimal service composition

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