CN105718375B - 嵌入式系统的可恢复性度量方法 - Google Patents

嵌入式系统的可恢复性度量方法 Download PDF

Info

Publication number
CN105718375B
CN105718375B CN201610054581.6A CN201610054581A CN105718375B CN 105718375 B CN105718375 B CN 105718375B CN 201610054581 A CN201610054581 A CN 201610054581A CN 105718375 B CN105718375 B CN 105718375B
Authority
CN
China
Prior art keywords
embedded system
timer
test
restorability
measure
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
CN201610054581.6A
Other languages
English (en)
Other versions
CN105718375A (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.)
Huizhou Desay SV Automotive Co Ltd
Original Assignee
Huizhou Desay SV Automotive Co Ltd
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 Huizhou Desay SV Automotive Co Ltd filed Critical Huizhou Desay SV Automotive Co Ltd
Priority to CN201610054581.6A priority Critical patent/CN105718375B/zh
Publication of CN105718375A publication Critical patent/CN105718375A/zh
Application granted granted Critical
Publication of CN105718375B publication Critical patent/CN105718375B/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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • G06F11/0754Error or fault detection not based on redundancy by exceeding limits
    • G06F11/0757Error or fault detection not based on redundancy by exceeding limits by exceeding a time limit, i.e. time-out, e.g. watchdogs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

一种嵌入式系统的可恢复性度量方法,包括步骤:步骤一,嵌入式系统运行后,启动嵌入式系统的看门狗定时器,向嵌入式系统的当前运行任务注入一个测试文件;步骤二,嵌入式系统运行测试文件;步骤三,判断嵌入式系统运行测试文件后是否引起嵌入式系统的复位,若引起系统复位,则表示当前测试点出错时是可恢复的,否则表示当前测试点存在不可恢复的错误;以及步骤四,通过获取嵌入式系统的当前测试的代码地址和测试结果,分析和计算测试通过率;测试通过率用于度量嵌入式系统的可恢复性。本发明的嵌入式系统的可恢复性度量方法能够在嵌入式系统正常运行时对其出错恢复机制进行测试并度量其嵌入式系统的可恢复性以及测试的有效性。

Description

嵌入式系统的可恢复性度量方法
技术领域
本发明涉及软件测试领域,尤其是一种嵌入式系统的可恢复性度量方法。
背景技术
嵌入式系统是指用于执行独立功能的专用计算机系统,它由包括微处理器、定时器、微控制器、存储器、传感器等一系列微电子芯片与器件,和嵌入在存储器中的微型操作系统、控制应用软件组成,共同实现诸如实时控制、监视、管理、移动计算、数据处理等各种自动化处理任务。嵌入式系统必须根据应用需求对软件、硬件进行裁剪,满足应用系统的功能、可靠性、成本、体积等要求。嵌入式软件是为嵌入式系统服务的,因此要求嵌入式软件要与外部硬件和设备紧密联系。
随着嵌入式计算机技术的迅猛发展,嵌入式系统在各个行业中得到了越来越广泛的应用,目前已经广泛应用于国防、航空航天、医疗等重要行业中,确保它的稳定可靠是极为重要的任务。嵌入式系统的最大特点是以控制为主,软硬结合、功能性操作、以及模块相互间调用较多,外部工作环境复杂容易受到干扰或干扰别的设备,且执行错误的后果不仅仅是数据错误而是有可能导致不可恢复的灾难。随着当前应用系统规模的增大和复杂度的增加,嵌入式系统的可恢复性测试的成本也直线上升,同时也突出了当前所用测试工具和测试方法的局限性。
现有的对嵌入式系统的可恢复性进行测试的方法主要是以人工测试为主,一般是将嵌入式系统置于极端条件下或是模拟的极端条件下,通过人为的各种强制性手段让嵌入式系统的软件或硬件产生故障,然后检测嵌入式系统是否能够得到正确的恢复。由于人工测试需要耗费大量的人力物力,并且测试案例无法覆盖系统中的所有函数,测试有效性低,测试成本高。尤其是无法覆盖嵌入式系统在运行时的抢占性和随机性。采用人工测试的方法无法对嵌入式系统的可恢复性进行度量,也无法对测试的有效性进行度量。
发明内容
本发明的目的在于提供一种嵌入式系统的可恢复性度量方法,该方法能够在嵌入式系统正常运行时对其出错恢复机制进行测试并度量其嵌入式系统的可恢复性以及测试的有效性。
一种嵌入式系统的可恢复性度量方法,包括步骤:
步骤一,嵌入式系统运行后,启动嵌入式系统的看门狗定时器,向嵌入式系统的当前运行任务注入一个测试文件;
步骤二,嵌入式系统运行测试文件;
步骤三,判断嵌入式系统运行测试文件后是否引起嵌入式系统的复位,若引起系统复位,则表示当前测试点出错时是可恢复的,否则表示当前测试点存在不可恢复的错误;以及
步骤四,通过获取嵌入式系统的当前测试的代码地址和测试结果,分析和计算测试通过率;测试通过率用于度量嵌入式系统的可恢复性。
进一步地,测试通过率的计算方法为:Y=S/K,其中Y表示通过率,S表示测试通过的次数,K表示总的测试次数。
进一步地,步骤四还包括分析和计算函数覆盖率的步骤;函数覆盖率的计算方法为:X=N/T,其中X表示覆盖率,N表示进行测试的函数数量,T为总的函数数量;其中,函数通过代码地址获取。
进一步地,步骤四还包括分析和计算代码行覆盖率的步骤;代码行覆盖率的计算方法为:Z=M/P,其中Z表示代码行覆盖率,M表示测试过的指令数量,P表示整个嵌入式系统的汇编指令总数。
进一步地,步骤一具体包括以下步骤:
步骤a,在嵌入式系统运行后,启动第一定时器;以及
步骤b,第一定时器时间计时完毕后,执行第一定时器的中断服务程序;中断服务程序获取嵌入式系统的当前运行任务的地址;
步骤c,退出第一定时器之前,修改第一定时器的中断返回地址,触发嵌入式系统执行测试文件。
进一步地,第一定时器的定时时间在预设的时间范围内随机设定。
进一步地,第一定时器时间计时完毕后,嵌入式系统启动第二定时器;其中第二定时器的定时时间大于看门狗定时器的定时时间,第二定时器的定时时间为看门狗定时器的定时时间的2倍。
进一步地,步骤三包括:若在第二定时器计时完毕前,看门狗定时器引起嵌入式系统复位,则测试通过,停止第二定时器的计时,执行看门狗定时器的中断服务程序;若在第二定时器计时完毕时,看门狗定时器仍然没有引起嵌入式系统复位,则测试失败,执行第二定时器的中断服务程序。
进一步地,步骤三之后还包括步骤:使嵌入式系统恢复执行当前运行任务。
进一步地,测试文件为一段错误代码。
本发明的嵌入式系统的可恢复性度量方法具备以下有益效果:
(1)本发明通过向嵌入式系统注入测试文件的方式,随机触发嵌入式系统的失效条件,对嵌入式系统的出错恢复机制进行测试,从而对嵌入式系统的可恢复性进行测试,提高了测试的有效性;
(2)本发明的嵌入式系统的可恢复性度量方法能够有效地计算和分析嵌入系统在运行过程中的测试结果,通过分析和计算测试通过率判断嵌入式系统的可恢复性,通过分析和计算测试的函数覆盖率和代码行覆盖率判断测试的有效性;
(3)本发明的嵌入式系统的可恢复性度量方法是在嵌入式系统的运行过程中执行的测试,该测试方法能够覆盖嵌入式系统的抢占性和随机性,因此,能够有效地测试嵌入式系统在实际运行情况下的可恢复性,提高了测试的全面性;
(4)本发明通过随机注入一段错误代码的方式触发嵌入式系统的失效条件,可以实现对嵌入式系统的可恢复性的自动化测试,提高了测试效率。
具体实施方式
下面将结合具体实施例及附图对本发明嵌入式系统的可恢复性度量方法作进一步详细描述。
嵌入式系统通过包括一个或多个MCU(Microcontroller Unit,微处理器)或SoC(System on Chip,片上系统),在MCU或SoC的内部通常设置有硬件的看门狗定时器(Watchdog Timer)。实际上,看门狗定时器是一个硬件计数器,一般给看门狗定时器设置一个定时时间,嵌入式系统开始运行后看门狗定时器开始计时。如果嵌入式系统运行正常,则经过预定时间(该预定时间小于看门狗定时器的定时时间)后嵌入式系统发出指令让看门狗定时器复位,看门狗定时器重新开始计时。如果看门狗定时器定时时间结束则会认为嵌入式系统没有正常工作,看门狗定时器产生一个硬件复位信号或中断信号,强制整个嵌入式系统进行复位。嵌入式系统的基本运行单元称为任务(task),在有些操作系统中称为进程或线程等,在本文统称为任务。看门狗定时器通常会监控嵌入式系统的所有任务是否正常运行,当一个任务出错时,例如任务进入了一个错误的无限循环状态等,看门狗定时器会产生一个硬件复位信息复位MCU或SoC,从而对整个嵌入式系统进行复位。
本发明的嵌入式系统的可恢复性度量方法包括步骤:
步骤S1,在嵌入式系统运行后,启动嵌入式系统的看门狗定时器。
步骤S2,启动第一定时器。其中,第一定时器的定时时间在预设时间范围内随机设定,从而保证了本测试覆盖嵌入式系统的抢占性和随机性。
步骤S3,第一定时器计时完毕后,第一定时器的ISR(Interrupt ServiceRoutine,中断服务程序)获取嵌入式系统的当前运行任务的地址,通过UART(UniversalAsynchronous Receiver/transmitter,通用异步收发传输器)将嵌入式系统的当前状态信息输出到与嵌入式系统连接的计算机;同时,嵌入式系统启动第二定时器。其中,上述状态信息包括嵌入式系统的当前运行任务的地址。第二定时器的定时时间大于看门狗定时器的定时时间。优选地,第二定时器的定时时间为看门狗定时器的定时时间的2倍。
步骤S4,在退出第一定时器的ISR之前,修改第一定时器的ISR的中断返回地址,使第一定时器的ISR的中断返回地址指向一测试文件,从而触发嵌入式系统执行测试文件。其中,测试文件为一段错误代码,例如一段无限循环代码,可导致嵌入式系统运行出错。
步骤S5,在第二定时器的定时时间范围内,通过判断嵌入式系统运行测试文件后是否引起嵌入式系统的复位判断嵌入式系统是否通过测试。具体地,若在第二定时器计时完毕前,看门狗定时器引起嵌入式系统复位,则表示测试通过,当前测试点出错时是可恢复的,同时停止第二定时器的计时,执行看门狗定时器的ISR,继续执行步骤S6;若在第二定时器计时完毕后,看门狗定时器仍然没有引起嵌入式复位,则表示测试失败,当前测试点存在不可恢复的错误,执行第二定时器的ISR,继续执行步骤S6。
步骤S6,嵌入式系统通过UART 向计算机输出系统当前运行的状态信息。其中状态信息至少包括嵌入式系统的当前运行任务的相关信息、执行的测试文件信息、当前测试的代码地址、测试的函数信息以及测试结果等。测试的函数信息包括通过测试的函数数量、总函数数量、测试通过次数、总测试次数等。
步骤S7,使嵌入式系统恢复当前运行任务的运行。具体地,若在步骤5中看门狗定时器引起嵌入式系统复位,则修改看门狗定时器的中断返回地址,使嵌入式系统恢复当前运行任务的执行;若在步骤5中看门狗定时器没有引起嵌入式系统复位,则执行第二定时器的ISR,修改第二定时器的中断返回地址,使嵌入式系统恢复当前运行任务的执行。
步骤S8,重复步骤S1至S7,直到设定的测试时间结束测试。
步骤S9,计算机通过分析状态信息和测试数据来度量该嵌入式系统的可恢复性。嵌入式系统的软件编译链接后通常会生成一个内存分配描述文件,包含了每个函数的起始地址和占用空间等内容,因此可以通过此文件生成一个函数列表,列出所有的函数名和起始地址、结束地址。通过获取嵌入式系统的代码地址,可以查找到对应的函数。因此,可以通过分析测试过程中的测试通过率来判断嵌入式系统的可恢复性,通过分析函数覆盖率和代码行覆盖率来判断测试的有效性。
测试通过率的计算方法为:Y=S/K,其中Y表示通过率,S表示测试通过的次数,K表示总的测试次数,0<Y≦1。Y的值越大,表示测试通过率越高。测试通过率越高表示嵌入式系统的可恢复性越高。
函数覆盖率的计算方法为:X=N/T,其中X表示覆盖率,N表示进行测试的函数数量,T为嵌入式系统的总函数数量,0<X≦1。X的值越大,表示测试覆盖率越高。测试覆盖率越高,表示本发明的测试方法越有效。根据每一次测试的代码地址查找对应的函数,即可获得进行测试的函数数量(去掉重复测试的函数数量)。
代码行覆盖率(汇编指令级)Z=M/P,其中Z表示代码行覆盖率,M表示测试过的指令数量,P表示整个嵌入式系统的汇编指令总数,0<Z≦1。Z的值越大,表示代码行覆盖率越高。可通过编译产生的汇编文件统计嵌入式系统的汇编指令总数,每一次测试的代码地址对应一条汇编指令(去掉重复测试的指令数量),即可获得测试过的指令数量。
本发明的嵌入式系统的软件可靠性度量能够有效地度量嵌入式系统的可恢复性和测试有效性。
虽然对本发明的描述是结合以上具体实施例进行的,但是,熟悉本技术领域的人员能够根据上述的内容进行许多替换、修改和变化、是显而易见的。因此,所有这样的替代、改进和变化都包括在附后的权利要求的精神和范围内。

Claims (9)

1.一种嵌入式系统的可恢复性度量方法,其特征在于,包括步骤:
步骤一,嵌入式系统运行后,启动嵌入式系统的看门狗定时器,向所述嵌入式系统的当前运行任务注入一个测试文件,所述嵌入式系统包括先执行的第一定时器和在所述第一定时器执行完毕后执行的第二定时器;
步骤二,所述嵌入式系统运行所述测试文件;
步骤三,判断所述嵌入式系统运行所述测试文件后是否引起所述嵌入式系统的复位,若引起系统复位,则表示当前测试点出错是可恢复的,否则表示当前测试点存在不可恢复的错误;以及
步骤四,通过获取所述嵌入式系统的当前测试的代码地址和测试结果,分析和计算测试通过率;所述测试通过率用于度量嵌入式系统的可恢复性;
其中,所述步骤三包括:若在所述第二定时器计时完毕前,所述看门狗定时器引起所述嵌入式系统复位,则测试通过,停止第二定时器的计时,执行看门狗定时器的中断服务程序;若在所述第二定时器计时完毕时,所述看门狗定时器仍然没有引起所述嵌入式系统复位,则测试失败,执行第二定时器的中断服务程序。
2.根据权利要求1所述的嵌入式系统的可恢复性度量方法,其特征在于,所述测试通过率的计算方法为:Y=S/K,其中Y表示通过率,S表示测试通过的次数,K表示总的测试次数。
3.根据权利要求1所述的嵌入式系统的可恢复性度量方法,其特征在于,所述步骤四还包括分析和计算函数覆盖率的步骤;所述函数覆盖率的计算方法为:X=N/T,其中X表示覆盖率,N表示进行测试的函数数量,T为总的函数数量;其中,函数通过所述代码地址获取。
4.根据权利要求1所述的嵌入式系统的可恢复性度量方法,其特征在于,所述步骤四还包括分析和计算代码行覆盖率的步骤;所述代码行覆盖率的计算方法为:Z=M/P,其中Z表示代码行覆盖率,M表示测试过的指令数量,P表示整个嵌入式系统的汇编指令总数。
5.根据权利要求1所述的嵌入式系统的可恢复性度量方法,其特征在于,所述步骤一具体包括以下步骤:
步骤a,在所述嵌入式系统运行后,启动第一定时器;以及
步骤b,所述第一定时器时间计时完毕后,执行第一定时器的中断服务程序;所述中断服务程序获取所述嵌入式系统的当前运行任务的地址;
步骤c,退出所述第一定时器之前,修改第一定时器的中断返回地址,触发所述嵌入式系统执行所述测试文件。
6.根据权利要求5所述的嵌入式系统的可恢复性度量方法,其特征在于,所述第一定时器的定时时间在预设的时间范围内随机设定。
7.根据权利要求5所述的嵌入式系统的可恢复性度量方法,其特征在于, 所述第一定时器时间计时完毕后,所述嵌入式系统启动第二定时器;其中所述第二定时器的定时时间大于所述看门狗定时器的定时时间,所述第二定时器的定时时间为所述看门狗定时器的定时时间的2倍。
8.根据权利要求7所述的嵌入式系统的可恢复性度量方法,其特征在于,所述步骤三之后还包括步骤:使所述嵌入式系统恢复执行当前运行任务。
9.根据权利要求1-8任一项所述的嵌入式系统的可恢复性度量方法,其特征在于,所述测试文件为一段错误代码。
CN201610054581.6A 2016-01-27 2016-01-27 嵌入式系统的可恢复性度量方法 Active CN105718375B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610054581.6A CN105718375B (zh) 2016-01-27 2016-01-27 嵌入式系统的可恢复性度量方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610054581.6A CN105718375B (zh) 2016-01-27 2016-01-27 嵌入式系统的可恢复性度量方法

Publications (2)

Publication Number Publication Date
CN105718375A CN105718375A (zh) 2016-06-29
CN105718375B true CN105718375B (zh) 2018-09-25

Family

ID=56154292

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610054581.6A Active CN105718375B (zh) 2016-01-27 2016-01-27 嵌入式系统的可恢复性度量方法

Country Status (1)

Country Link
CN (1) CN105718375B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106776096B (zh) * 2016-12-27 2019-12-06 兴唐通信科技有限公司 一种嵌入式软件出错的可靠恢复方法
CN108038057A (zh) * 2017-12-20 2018-05-15 宣城新维保网络技术有限公司 一种嵌入式软件测试方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1952899A (zh) * 2006-11-22 2007-04-25 北京中星微电子有限公司 一种消息及时处理方法和嵌入式多任务操作系统
CN102436403A (zh) * 2011-08-17 2012-05-02 福建星网锐捷网络有限公司 中断向量表被篡改的检测方法、装置及网络设备
CN103226507A (zh) * 2013-04-28 2013-07-31 惠州市德赛西威汽车电子有限公司 一种嵌入式系统中防止系统崩溃的方法
CN104657263A (zh) * 2015-02-10 2015-05-27 上海创景计算机系统有限公司 基于jtag调试方式实现通用型目标码覆盖率测试系统和测试方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1952899A (zh) * 2006-11-22 2007-04-25 北京中星微电子有限公司 一种消息及时处理方法和嵌入式多任务操作系统
CN102436403A (zh) * 2011-08-17 2012-05-02 福建星网锐捷网络有限公司 中断向量表被篡改的检测方法、装置及网络设备
CN103226507A (zh) * 2013-04-28 2013-07-31 惠州市德赛西威汽车电子有限公司 一种嵌入式系统中防止系统崩溃的方法
CN104657263A (zh) * 2015-02-10 2015-05-27 上海创景计算机系统有限公司 基于jtag调试方式实现通用型目标码覆盖率测试系统和测试方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于ARM9的嵌入式监控终端设计与实现;吕盛林;《中国优秀硕士论文全文数据库 信息科技辑》;20111215;第2011年卷(第12期);正文11-13、37-50页 *

Also Published As

Publication number Publication date
CN105718375A (zh) 2016-06-29

Similar Documents

Publication Publication Date Title
US8141053B2 (en) Call stack sampling using a virtual machine
Cai et al. MagicFuzzer: Scalable deadlock detection for large-scale applications
CN110580226B (zh) 操作系统级程序的目标码覆盖率测试方法、系统及介质
Ning et al. Optimization of two-granularity software rejuvenation policy based on the Markov regenerative process
US9405315B2 (en) Delayed execution of program code on multiple processors
EP2565790A1 (en) Method and system for injecting simulated errors
Izadpanah et al. A methodology for performance analysis of non-blocking algorithms using hardware and software metrics
CN106919462A (zh) 一种生成处理器故障记录的方法及装置
US20170060727A1 (en) Breaking code execution based on time consumption
CN105718375B (zh) 嵌入式系统的可恢复性度量方法
US9411007B2 (en) System and method for statistical post-silicon validation
EP2735970B1 (en) Dynamic library profiling method
EP2156295A2 (en) Debugging tool
US20180285241A1 (en) Energy-interference-free debugger for intermittent energy-harvesting systems
CN105718326B (zh) 嵌入式系统的可恢复性测试方法
Skarin et al. Comparing and validating measurements of dependability attributes
Hernandez et al. Low-cost checkpointing in automotive safety-relevant systems
CN115391132B (zh) 一种监控诊断的装置以及芯片
CN108628637B (zh) 用于处理数据的装置和方法
US20110218794A1 (en) Concretization of abstracted traces
Okech et al. Inherent diversity in replicated architectures
CN109254898A (zh) 一种软件模块执行顺序监视方法及监视系统
US20020188889A1 (en) Performance measurement for embedded systems
Frtunikj et al. Qualitative evaluation of fault hypotheses with non-intrusive fault injection
Solet et al. Hw-based architecture for runtime verification of embedded software on sopc systems

Legal Events

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