CN116662189A - 一种程序测试方法、装置、设备和存储介质 - Google Patents

一种程序测试方法、装置、设备和存储介质 Download PDF

Info

Publication number
CN116662189A
CN116662189A CN202310658434.XA CN202310658434A CN116662189A CN 116662189 A CN116662189 A CN 116662189A CN 202310658434 A CN202310658434 A CN 202310658434A CN 116662189 A CN116662189 A CN 116662189A
Authority
CN
China
Prior art keywords
brushing
program
test
code
tested
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
Application number
CN202310658434.XA
Other languages
English (en)
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.)
Jiangsu Zhiyu Automobile Technology Co ltd
Original Assignee
Jiangsu Zhiyu Automobile Technology 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 Jiangsu Zhiyu Automobile Technology Co ltd filed Critical Jiangsu Zhiyu Automobile Technology Co ltd
Priority to CN202310658434.XA priority Critical patent/CN116662189A/zh
Publication of CN116662189A publication Critical patent/CN116662189A/zh
Pending legal-status Critical Current

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
    • G06F11/3688Test management for test execution, e.g. scheduling of test suites
    • 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/3696Methods or tools to render software testable
    • 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
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

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)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

本申请公开了一种程序测试方法,包括:从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码;在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果;在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果;在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。通过这种方法,可以对刷写程序可能存在的各种刷写场景进行测试,测试内容比较全面,提升了测试结果的准确度。

Description

一种程序测试方法、装置、设备和存储介质
技术领域
本申请属于程序测试技术领域,具体涉及一种程序测试方法、装置、设备和存储介质。
背景技术
随着计算机行业和电子行业的快速发展,各种电子设备的智能化程度也越来越高。目前已出现了多种可以存储运行计算机程序的控制单元,用于控制一些硬件电路并实现某些功能。而这些控制单元存储的计算机程序一般要通过刷写上位机和刷写上位机中的刷写软件来刷写进控制单元中。
刷写测试现有技术中,可以先部署刷写软件,然后生成测试用例,接着用刷写软件刷写这些测试用例,如果这些测试用例能够刷写成功,则刷写软件通过测试。
但是通过现有技术的方案进行测试,测试内容不够全面,导致测试结果准确度较差。
发明内容
本申请旨在提供一种程序测试方法、装置、电子设备及存储介质,以解决现有技术中刷写程序测试结果准确度差的问题。
为了解决上述技术问题,本申请是这样实现的:
一种程序测试方法,所述方法包括:
从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码;
在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果;
在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果;
在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
可选地,所述待测试功能单元的数量大于1,所述方法还包括:
在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过。
可选地,所述从目标刷写程序中确定待测试功能单元,包括:
通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到目标刷写结果;
在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元。
可选地,所述待测试功能单元包括刷新会话单元、数据读取单元、安全访问单元、下载请求单元、数据传输单元、退出传输请求单元、复位单元中的至少一个。
可选地,所述测试代码包括请求服务缺失代码、寻址异常代码、解锁异常代码、数据异常代码、校验码异常代码、模块丢失代码、中断代码中的至少一种;其中,所述请求服务缺失代码用于拦截请求服务,所述寻址异常代码用于改变寻址服务的目标地址,所述解锁异常代码用于执行数据解锁,所述数据异常代码用于修改数据长度、数据类型或数据进制,所述校验码异常代码用于修改校验码,所述模块丢失代码用于模拟模块丢失,所述中断代码用于模拟传输中断。
可选地,所述方法还包括:
在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过。
可选地,所述方法还包括:
在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,展示所述测试代码。
一种程序测试装置,所述装置包括:
第一获取模块,用于从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码;
第一执行模块,用于在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果;
第二执行模块,在所述第一刷写结果与预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果;
第一判定模块,用于在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
可选地,所述待测试功能单元的数量大于1,所述装置还包括:
第二判定模块,用于在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过。
可选地,所述第一获取模块包括:
执行子模块,用于通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到目标刷写结果;
确定子模块,用于在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元。
可选地,所述装置还包括:
判定模块,用于在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过。
可选地,所述装置还包括:
显示模块,在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,展示所述测试代码。
一种电子设备,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上所述的程序测试方法。
一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如上所述的程序测试方法。
本申请相比于现有技术,通过从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码,可以对刷写程序进行拆分,从而细化测试对象;在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果,可以使用测试代码模拟对应的测试场景从而对刷写程序进行测试;在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果,可以在完成测试代码对应的测试后,对测试代码对应的测试场景的适用性进行验证;在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过,可以在测试场景的适用性通过验证后,判定整个测试过程有效。通过上述方法,可以对刷写程序可能存在的各种刷写场景进行测试,测试内容比较全面,提升了测试结果的准确度。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,而可依照说明书的内容予以实施,并且为了让本申请的上述和其它目的、特征和优点能够更明显易懂,以下特举本申请的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本申请的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本申请实施例提供的一种程序测试方法的流程示意图;
图2为本申请实施例提供的另一种程序测试方法的流程示意图;
图3为本申请实施例提供的一种程序测试的原理图;
图4为本申请实施例提供的一种程序测试方法的具体实施方式的流程示意图;
图5为本申请实施例提供的一种程序测试装置的逻辑框图;
图6为本申请实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
参照图1,图1是本申请实施例提供的一种程序测试方法的流程示意图,该方法可以包括:
步骤101,从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码。
在本申请的实施例中,可以在程序刷写软件中获取用于刷写的刷写程序,称为目标刷写程序。可以在该目标刷写程序中确定一些程序段,作为待测试功能单元。这些程序段可以是程序内的一个执行语句,可以是一个子函数,也可以是一个循环或者其他的可以实现一个完整功能的代码块。
具体地说,用于执行刷写功能的刷写软件一般可以由前端面板和后端功能代码组成。前端面板可以包括一些用户界面,具体可以包括显示界面和操作界面;后端功能代码可以被储存在一些缓冲寄存器中。为了方便软件调试,一般情况下,每一个缓冲寄存器中可以存放一种功能的对应代码。该功能可以是刷写过程中具体地刷写步骤,例如读取被刷写文件、对被刷写文件进行编码、擦除被刷写设备的存储区、数据传输等。另外,每一个缓冲寄存器都有一个固定的虚拟地址,如果想对某一个缓冲寄存器中存放的功能代码进行调试,可以通过该虚拟地址进行写入和/或修改操作。在确定待测试功能单元后,可以在刷写上位机中获取该待测试功能单元对应的测试代码,用于对该待测试功能单元进行测试。需要说明的是,本申请实施例中涉及的刷写可以指将被刷写文件通过刷写软件刷写进接收终端设备的过程。被刷写文件可以是一些汇编语言程序,可以是一些应用软件,可以是一些操作***,本申请对此不做限定。
步骤102,在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果。
在本申请的实施例中,上位机通常可以是一些能够直接发出操控命令的计算机,用于直接控制与其连接的一些设备或硬件,而刷写上位机可以指搭载了刷写软件的上位机,刷写软件可以将一些被刷写文件写入与刷写上位机连接的设备和硬件,也就是接收终端设备。
在本申请的实施例中,刷写可以是这样一个过程:首先对刷写上位机和接收终端设备进行连接,然后启动刷写上位机上搭载的刷写软件,然后操作刷写软件载入被刷写文件,接着启动刷写软件将被刷写文件写入接收终端设备中,写入完成后,接收终端设备可以发送一个反馈信号,刷写上位机在收到反馈信号后,可以确认刷写成功。
在本申请的实施例中,在获取到对应的测试代码后,可以通过刷写软件的后台调试工具将该测试代码写入所述待测试功能单元的对应位置。之后,可以对写入结果进行标记和保存,这样就可以形成第一刷写程序。然后,刷写上位机可以启动刷写软件,进行刷写操作,进而可以获得该次刷写操作对应的刷写结果,称为第一刷写结果。
步骤103,在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果。
在本申请的实施例中,测试代码可以对应一种预期错误,例如,测试代码对待测试功能单元中的一个参数进行了二次赋值,从而在执行刷写操作后,出现的刷写错误应该是由这个二次赋值引起的,在这种情况下,可以认为第一刷写结果与该测试代码对应的预期错误相匹配。
因此,在第一刷写结果与该测试代码对应的预期错误相匹配的情况下,可以判定第一刷写程序的刷写测试通过,之后,可以通过刷写上位机执行目标刷写程序进行第二次刷写操作,进而可以获取第二次刷写操作的第二刷写结果。
需要说明的是,第二刷写结果仍然与该测试代码相对应,用来为该测试代码的整个测试过程提供参考。
步骤104,在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
在本申请的实施例中,由于第二刷写结果是基于目标刷写程序得到的,所以第二次刷写操作的预期结果可以是刷写成功。进而在第二刷写结果为刷写成功的情况下,可以判定该待测试功能单元测试通过。
在本申请的实施例中,可以将刷写上位机和车载控制器进行连接,进而可以通过刷写上位机被刷写文件刷写进车载控制器中。在刷写过程中,可以通过测试代码中断刷写过程以模拟刷写过程中掉线的场景,在确认该次刷写过程失败的情况下,可以删除测试代码,重新进行刷写操作,在确认第二次刷写过程成功的情况下,可以判定本次测试通过。
在本申请的实施例中,通过从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码,可以对刷写程序进行拆分,从而细化测试对象;在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果,可以使用测试代码模拟对应的测试场景从而对刷写程序进行测试;在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果,可以在完成测试代码对应的测试后,对测试代码对应的测试场景的适用性进行验证;在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过,可以在测试场景的适用性通过验证后,判定整个测试过程有效。通过上述方法,可以对刷写程序可能存在的各种刷写场景进行测试,测试内容比较全面,提升了测试结果的准确度。
参照图2,图2是本申请实施例提供的另一种程序测试方法的流程示意图,该方法可以包括:
步骤201,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到目标刷写结果。
在本申请的实施例中,可以先通过刷写上位机中的刷写软件执行一次刷写操作,进而可以得到本次刷写操作的结果,称为目标刷写结果,用来验证当前刷写软件对应的刷写程序,即目标刷写程序。目标刷写结果可以包括刷写成功和刷写失败。
步骤202,在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码。
在本申请的实施例中,待测试功能单元可以包括刷新会话单元、数据读取单元、安全访问单元、下载请求单元、数据传输单元、退出传输请求单元、复位单元中的至少一个。测试代码可以包括请求服务缺失代码、寻址异常代码、解锁异常代码、数据异常代码、校验码异常代码、模块丢失代码、中断代码等。其中,请求服务缺失代码用于拦截请求服务,寻址异常代码用于改变寻址服务的目标地址,解锁异常代码用于执行数据解锁,数据异常代码用于修改数据长度、数据类型或数据进制,校验码异常代码用于修改校验码,模块丢失代码用于模拟模块丢失,所述中断代码用于模拟传输中断,传输中断包括物理中断和一些其他情况导致的中断。
在本申请的实施例中,在目标刷写结果为刷写成功的情况下,可以从目标刷写程序中确定待测试功能单元,进而可以基于待测试功能单元的信息获取与待测试功能单元对应的测试代码。在本申请的实施例中,本步骤的其他实施内容可参考步骤101中的实施内容,此处不再进行赘述。
在本申请的实施例中,首先通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到目标刷写结果,然后在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码,可以在测试前对刷写程序进行验证,从而可以确保后续测试的有效性。
步骤203,在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果。
在本申请的实施例中,本步骤的实施内容可参考步骤102中的实施内容,此处不再进行赘述。
步骤204,在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果。
在本申请的实施例中,本步骤的实施内容可参考步骤103中的实施内容,此处不再进行赘述。
步骤205,在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
在本申请的实施例中,本步骤的实施内容可参考步骤104中的实施内容,此处不再进行赘述。
步骤206,在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过。
在本申请的实施例中,目标刷写程序中可以包含多个待测试功能单元,这些待测试功能单元都有各自对应的测试代码,这些测试代码可以用来模拟某种测试场景,以对各种情况下的刷写过程进行测试。
在本申请的实施例中,刷写上位机可以对目标刷写程序中的各个待测试功能单元进行遍历测试,得到各个待测试功能单元对应的刷写测试结果,其中,遍历测试可以是串行测试,即对各个待测试功能单元逐个进行测试,也可以是并行测试,即对各个待测试功能单元同时进行测试。在进行串行测试的情况下,对各个待测试功能单元进行测试的顺序可以自由确定,即可以不按照刷写流程展示的从上到下的顺序。另外,可以在各个待测试功能单元全部通过测试的情况下,判定目标刷写程序通过测试。此时,目标刷写程序的各个待测试功能单元对应的测试场景都完成了测试。
在本申请的实施例中,通过在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过的步骤,可以对整个刷写流程都进行测试,进而可以充分提升刷写测试的准确性。
步骤207,在所述目标刷写结果为刷写失败的情况下,发送刷写失败提示。
在本申请的实施例中,在目标刷写结果为刷写失败的情况下,可以发送刷写失败提示,供测试人员查看并及时处理测试问题。这种情况下,可以说明目标刷写程序存在问题,测试人员可以将该问题转交开发人员进行处理。
在本申请的实施例中,通过在所述目标刷写结果为刷写失败的情况下,发送刷写失败提示,能够有效避免在刷写程序存在错误的情况下进行的不必要的测试,能够在保证测试可靠性的同时节约测试的时间成本,进一步提升了刷写测试的准确度。
步骤208,在所述第一刷写结果与所述预期错误不匹配,或,所述第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过。
在本申请的实施例中,第一刷写结果可以包括多种情况,例如,与预期错误相匹配,与预期错误不匹配。在与预期错误不匹配的情况中,还包括预期之外的错误和刷写成功。第一刷写结果与预期错误不匹配通常可以由测试代码选取不当和/或测试代码的写入位置不当引起。因此在这种情况下,可以中断当前的测试,并且可以判定本次测试不通过,还可以展示该测试代码,以便测试人员基于该测试代码解决本次测试遇到的问题。
在本申请的实施例中,通过在所述第一刷写结果与所述预期错误不匹配,或,所述第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过的步骤,可以在第一刷写结果与所述预期错误不匹配时及时中断测试过程并判定刷写测试不通过,可以有效节约测试的时间成本。
步骤209,在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,展示所述测试代码。
在本申请的实施例中,由于已经进行了一次目标刷写程序的刷写操作,并且得到了刷写成功的结果,所以在大部分情况下,第二刷写结果都可以是刷写成功。但是,仍然存在第二刷写结果是刷写失败的可能性。由于刷写程序通常可以由刷写上位机对接收终端设备进行刷写操作,以将被刷写文件刷写进接收终端设备,所以,第二刷写结果为刷写失败的情况通常可以是由测试代码改变了接收终端设备的某些硬件中的端口的默认值引起的。因此可以认为,这种情况下,测试代码对应的测试场景超出了目标刷写程序的测试范围,测试人员在获取到第二刷写结果为刷写失败的情况时,可以将对应的测试代码删除,以避免进行不必要的刷写测试。
在本申请的实施例中,通过在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,展示所述测试代码,可以在刷写测试不通过的情况下显示对应的测试代码,有利于测试人员排除测试故障,保证了测试的可靠性。
在本申请的实施例中,可以通过所述刷写上位机运行所述刷写程序执行所述刷写操作,得到目标刷写结果,接着可以在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码,然后可以在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果,接着可以在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果,然后可以在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过,最后可以在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过,另外还可以在所述目标刷写结果为刷写失败的情况下,发送刷写失败提示,在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过以及展示所述测试代码。通过以上方法,可以在进行反向测试前进行一次先验测试,从而能够避免进行不必要的反向测试和正向测试,可以有效节约测试的时间成本,可以在第一刷写结果和第二刷写结果出现异常时及时中断刷写测试过程,可以有效节约时间成本,在中断刷写测试过程之后,还可以在刷写上位机中显示对应的测试代码,供测试人员查看参考,及时处理故障,可以进一步增加测试结果的准确性。
参照图3,图3是本申请实施例提供的一种程序测试的原理图。在正向刷写流程中,刷新会话控制对应刷新会话单元,读取数据服务对应数据读取单元,安全访问对应安全访问单元,下载请求对应下载请求单元,传输数据对应数据传输单元,请求退出传输对应退出传输请求单元,电控单元复位对应复位单元。反向测试场景包括请求服务缺失,服务寻址异常、不满足进入服务条件的场景、异常解锁的场景、模块丢失的场景、数据长度异常的场景、校验码异常的场景、刷写过程中异常断电的场景、刷写过程中网络中断的场景、刷写网络高负载率的场景等。在反向测试场景中,可以使用测试代码来模拟这些场景,其中,不满足进入服务条件的场景、刷写过程中异常断电的场景、刷写过程中网络中断的场景以及刷写网络高负载率的场景都可以用中断代码进行模拟。每一个反向测试场景都可以单独注入到刷写流程中,形成一个反向测试方案。
参照图4,图4是本申请实施例提供的一种程序测试方法的具体实施方式的流程示意图。其中,开始刷新会话0x10表示刷新会话单元的储存地址为0x10,0x10是一种16位地址表示方法,其中0x表示该地址为16位格式,10表示该地址的具***置;图4中其他类似表述的含义可参照0x10的解释。需要注意的是,对于某一待测试功能单元来说,并不一定适用全部的反向测试场景,因此可以对反向测试场景进行归类。其中,开始刷新会话对应的刷新会话单元可以适用请求服务缺失、服务寻址异常、服务的子功能不支持、不满足进入服务的场景以及刷写过程中网络中断;根据标识符读取数据对应的数据读取单元可以适用请求服务缺失、不满足进入服务的场景、标识符异常、抑制响应请求以及刷写过程中异常断电;安全访问对应的安全访问单元可以适用请求服务缺失、异常解锁、访问等级错误、请求顺序错误以及密钥(Key)发送错误;下载请求对应的下载请求单元可以适用请求服务缺失、服务寻址异常、子功能不一致、首地址错误以及数据长度异常;传输数据对应的数据传输单元可以适用请求服务缺失、服务寻址异常、超过模块最大的字节数、模块丢失以及刷写网络高负载率;请求退出传输对应的退出传输请求单元可以适用请求服务缺失、服务寻址异常、子功能不一致、校验码错误以及请求退出时机错误;电控单元复位对应的复位单元可以适用请求服务缺失、服务寻址异常、子功能不一致以及抑制肯定响应。需要说明的是,图4中的各个反向测试场景为图3中反向测试场景的具体描述,而非新的反向测试场景,例如,抑制肯定响应与抑制响应请求均属于中断中的一种。
参照图5,图5是本申请实施例提供的一种程序测试装置的逻辑框图,该程序测试装置300可以包括:
第一获取模块301,用于从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码;
第一执行模块302,用于在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果;
第二执行模块303,在所述第一刷写结果与预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果;
第一判定模块304,用于在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
可选地,所述待测试功能单元的数量大于1,所述装置300还包括:
第二判定模块,用于在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过。
可选地,所述第一获取模块301包括:
执行子模块,用于通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到目标刷写结果;
确定子模块,用于在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元。
可选地,所述装置300还包括:
判定模块,用于在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过。
可选地,所述装置300还包括:
显示模块,用于在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,展示所述测试代码。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
所述程序测试装置与前述实施例所述的程序测试方法相对于现有技术所具有的优势相同,此处不再赘述。
本申请实施例提供一种电子设备,参见图6,所述电子设备60包括:处理器601、存储器602以及存储在所述存储器602上并可在所述处理器601上运行的计算机程序6021,所述处理器601执行所述程序时实现前述实施例的程序测试方法。
本申请实施例提供一种可读存储介质,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行前述所述的程序测试方法。
本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由权利要求指出。
应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。

Claims (10)

1.一种程序测试方法,其特征在于,所述方法包括:
从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码;
在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果;
在所述第一刷写结果与所述测试代码对应的预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果;
在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
2.根据权利要求1所述的方法,其特征在于,所述待测试功能单元的数量大于1,所述方法还包括:
在各个所述待测试功能单元均测试通过的情况下,判定所述目标刷写程序测试通过。
3.根据权利要求1所述的方法,其特征在于,所述从目标刷写程序中确定待测试功能单元,包括:
通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到目标刷写结果;
在所述目标刷写结果为刷写成功的情况下,从目标刷写程序中确定待测试功能单元。
4.根据权利要求1所述的方法,其特征在于,所述待测试功能单元包括刷新会话单元、数据读取单元、安全访问单元、下载请求单元、数据传输单元、退出传输请求单元、复位单元中的至少一个。
5.根据权利要求1所述的方法,其特征在于,所述测试代码包括请求服务缺失代码、寻址异常代码、解锁异常代码、数据异常代码、校验码异常代码、模块丢失代码、中断代码中的至少一种;其中,所述请求服务缺失代码用于拦截请求服务,所述寻址异常代码用于改变寻址服务的目标地址,所述解锁异常代码用于执行数据解锁,所述数据异常代码用于修改数据长度、数据类型或数据进制,所述校验码异常代码用于修改校验码,所述模块丢失代码用于模拟模块丢失,所述中断代码用于模拟传输中断。
6.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
在所述第一刷写结果与所述预期错误不匹配,或,所述第二刷写结果为刷写失败的情况下,判定所述待测试功能单元测试不通过。
7.根据权利要求1至5任一所述的方法,其特征在于,所述方法还包括:
在所述第一刷写结果与所述预期错误不匹配,或,第二刷写结果为刷写失败的情况下,展示所述测试代码。
8.一种程序测试装置,其特征在于,所述装置包括:
第一获取模块,用于从目标刷写程序中确定待测试功能单元,获取所述待测试功能单元对应的测试代码;
第一执行模块,用于在所述目标刷写程序的所述待测试功能单元中写入所述测试代码,得到第一刷写程序,通过刷写上位机执行所述第一刷写程序进行刷写操作,得到与所述测试代码对应的第一刷写结果;
第二执行模块,在所述第一刷写结果与预期错误相匹配的情况下,通过所述刷写上位机执行所述目标刷写程序进行刷写操作,得到与所述测试代码对应的第二刷写结果;
第一判定模块,用于在所述第二刷写结果为刷写成功的情况下,判定所述待测试功能单元测试通过。
9.一种电子设备,其特征在于,所述电子设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如权利要求1至7中任一项所述的程序测试方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令或者至少一段程序,所述至少一条指令或者所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一项所述的程序测试方法。
CN202310658434.XA 2023-06-05 2023-06-05 一种程序测试方法、装置、设备和存储介质 Pending CN116662189A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310658434.XA CN116662189A (zh) 2023-06-05 2023-06-05 一种程序测试方法、装置、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310658434.XA CN116662189A (zh) 2023-06-05 2023-06-05 一种程序测试方法、装置、设备和存储介质

Publications (1)

Publication Number Publication Date
CN116662189A true CN116662189A (zh) 2023-08-29

Family

ID=87718675

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310658434.XA Pending CN116662189A (zh) 2023-06-05 2023-06-05 一种程序测试方法、装置、设备和存储介质

Country Status (1)

Country Link
CN (1) CN116662189A (zh)

Similar Documents

Publication Publication Date Title
US20050268195A1 (en) Apparatus and method for improving emulation speed of high-level languages in on-chip emulation systems
EP0111952B1 (en) Verification of a processor architecture having a partial instruction set
CN110704315B (zh) 一种嵌入式软件测试的故障注入装置
CN110688313B (zh) 一种VxWorks操作***下软件测试的故障注入方法
CN110704314A (zh) 一种嵌入式软件测试的故障注入方法
JP3173855B2 (ja) デジタル・テスト・ベクトルの編集方法
CN110737985A (zh) 运行数据验证方法、装置、计算机设备和可读存储介质
CN116909800B (zh) 崩溃信息的定位方法、崩溃信息的定位装置及存储介质
CN114664369A (zh) 一种存储芯片测试方法及装置
US6539338B1 (en) Self-diagnostic testing of a network interface adapter
US20070226471A1 (en) Data processing apparatus
CN116662050A (zh) 一种错误注入支持功能验证方法、装置、终端及介质
CN116662189A (zh) 一种程序测试方法、装置、设备和存储介质
CN115373929A (zh) 测试方法、装置、设备、可读存储介质及程序产品
US5903719A (en) Emulator apparatus and emulation method for efficiently analyzing program faults
CN110096888B (zh) 一种加快验证及分析smm安全隐患的方法及***
WO2021247074A1 (en) Resumable instruction generation
CN112346994A (zh) 一种测试信息关联方法、装置、计算机设备及存储介质
CN114048131B (zh) 一种基于fuzzing测试需校验流量的方法、装置及设备
CN113094221B (zh) 故障注入方法、装置、计算机设备以及可读存储介质
US20230305938A1 (en) Method and device for determining coverage in hil testing, and storage medium
CN114138588B (zh) 一种控制器的调试信息导出方法、***、设备以及介质
CN118173153B (zh) 一种坏块管理程序验证方法、产品及存储介质
US20240231347A1 (en) Fault injection test method and apparatus, and fault injection method
CN113434386B (zh) 模糊测试的方法、***及存储介质

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