CN1212569C - 多线程自动测试方法 - Google Patents

多线程自动测试方法 Download PDF

Info

Publication number
CN1212569C
CN1212569C CN 02149912 CN02149912A CN1212569C CN 1212569 C CN1212569 C CN 1212569C CN 02149912 CN02149912 CN 02149912 CN 02149912 A CN02149912 A CN 02149912A CN 1212569 C CN1212569 C CN 1212569C
Authority
CN
China
Prior art keywords
test
item
test item
scheduling queue
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.)
Expired - Fee Related
Application number
CN 02149912
Other languages
English (en)
Other versions
CN1432916A (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.)
Wang Xiaohua
Original Assignee
Inventec Corp
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 Inventec Corp filed Critical Inventec Corp
Priority to CN 02149912 priority Critical patent/CN1212569C/zh
Publication of CN1432916A publication Critical patent/CN1432916A/zh
Application granted granted Critical
Publication of CN1212569C publication Critical patent/CN1212569C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Tests Of Electronic Circuits (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)

Abstract

一种多线程自动测试方法,是应用于一计算机硬件的测试过程,其可根据待测试项的唯一标识的间的互斥关是自动产生多线程的执行逻辑,在避免了测试冲突的情况下,采用适当的并行方式,为每一个互无冲突的各测试项分别建立测试线程,使其多线程并行执行测试,从而提高了测试效率和质量。该方法至少包含下列步骤:确定待测试项的唯一标识;根据唯一标识的间的互斥关是自动生成测试逻辑表;根据测试逻辑表规定的测试逻辑执行多线程测试过程。

Description

多线程自动测试方法
技术领域
本发明是为一种测试方法,特别是指应用于计算机硬件测试中的多线程自动测试方法。
背景技术
通常情况下,在Windows环境中对计算机中硬件进行测试时,一般采用串行测试法,如图1A所示,即:先将一个硬件测试项测试完成后,再进入下一个测试项的测试。这种方法虽具有各个测试互不干扰的优点,但存在以下缺点:
1、影响测试效率。一个测试需要上一个测试完成后才能开始,如果将计算机中所有硬件测试项全部测试完成,需要耗费较长的时间,从而必然影响到生产线的产能。
2、存在潜在的测试漏洞。上述串行测试法没有考虑到多硬件共同测试的情况。
为了消除串行测试法的缺点,可采用并行测试法。最基本的方法是为每个测试项生成一个测试线程,如图1B所示,所有测试项同时进行测试。
但并行测试法的问题是不同测试项的间同时测试可能会产生冲突。例如,不能同时进行硬盘的Sequential Seek测试和Random Seek测试。
为解决上述缺失,这时需要一种既有并行测试法的高效率高质量的优点,又可避免测试冲突的测试方法。
发明内容
有鉴于此,本发明乃为解决上述问题而提供一种多线程自动测试方法,根据待测试项的唯一标识之间的互斥关是自动产生多线程的执行逻辑,在避免了测试冲突的情况下,采用适当的并行方式,为每一个互无冲突的各测试项分别建立线程,使其多线程并行执行测试,从而提高了测试效率和质量。
本发明提供一种多线程自动测试方法,至少包括下列步骤:
确定待测试项的唯一标识,其中该唯一标识的数据格式是由“设备名称”和“测试项名称”两部分组成;取得所有待测试项的唯一标识,并将唯一标识写入测试逻辑表中;比较两测试项的设备名称;根据比较结果将得到的逻辑值填入测试逻辑表的相应字段中;判断当前所有测试项是否已经比较完毕,如果没有,则重新分析比较;
根据唯一标识的间的互斥关是自动生成测试逻辑表;以及
根据测试逻辑表规定的测试逻辑执行多线程测试过程,其中系统使用两个队列,即测试项队列和调度队列,该测试项队列容纳了全部待测试项,该调度队列中容纳了某时刻正在执行的测试项;系统从该测试项队列中取得一个测试项放入一调度队列,并产生相应的测试线程;扫描在该测试项队列中所有测试项,从中找出所有与该调度队列中的测试项都能够并行运行的测试项,如果找到,则将此测试项移入该调度队列中,并产生相应的测试线程;如果调度队列中的某一测试项执行完毕,则将其从该调度队列中移除,同时移除该测试项对应的测试线程;以及判断测试项是否执行完毕,直至所有测试项执行完毕。
有关本发明的详细内容及技术,兹就配合图式说明如下:
附图说明
图1A是传统串行测试方法示意图;
图1B是传统并行测试方法示意图;
图2是本发明所提的多线程自动测试方法的流程图;
图3是本发明所提的多线程自动测试方法中自动生成测试逻辑表的流程图;
图4是本发明所提的多线程自动测试方法中执行多线程测试过程的流程图;
图5A-5F是本发明所提的多线程自动测试方法中多线程调度过程的示意图;
图6是运用本发明的某测试情况下,所有测试项的树形结构图;
图7是运用本发明的某测试情况下,测试项的唯一标识的数据格式示意图;及
图8是运用本发明的某种测试情况下所生成的测试逻辑表。
其中,符图标记说明如下:
步骤201确定待测试项的唯一标识
步骤202根据唯一标识的间的互斥关是自动生成测试逻辑表
步骤203根据逻辑表规定的测试逻辑执行多线程测试过程
步骤301取得所有待测试项的唯一标识,并将唯一标识写入测试逻辑表中
步骤303比较两测试项的设备名称步骤304将测试逻辑表对应字段的逻辑值设为no
步骤305将测试逻辑表对应字段的逻辑值设为yes
步骤306将得到的逻辑值填入测试逻辑表的相应字段中
步骤307判断当前所有测试项是否已经比较完毕
步骤401起始时,测试项队列容纳了全部待测试项,调度队列为空
步骤402系统从测试项队列中取得一个测试项放入调度队列,并产生相应的测试线程
步骤403扫描在测试项队列中所有测试项,从中找出所有与调度队列中的测试项都能够并行运行的测试项,如果找到,则将此测试项移入调度队列中,并产生相应测试线程
步骤404如果调度队列中的某一测试项执行完毕,则将其从调度队列中移除
步骤405测试项是否执行完毕
具体实施方式
本发明是提出一种多线程自动测试方法,特别针对传统技艺中,在对计算机硬件进行测试时所普遍采用的串行或并行测试法中存在的问题而提出的一种多线程自动测试方法。本方法利用待测试项的唯一标识的间的互斥关是自动生成测试逻辑表,然后按照逻辑表规定的测试逻辑执行多线程测试过程。
本发明以一较佳实施例说明本方法的具体可行性,参照图2,为本发明所提的多线程自动测试方法的流程图,其说明如下:
首先,确定待测试项的唯一标识(步骤201),然后,根据唯一标识之间的互斥关是自动生成测试逻辑表(步骤202),最后,根据逻辑表规定的测试逻辑执行多线程测试过程(步骤203),并结束本流程。
上述的待测试项的唯一标识可以是待测试项的逻辑设备名称,其依各测试项本身的特性而由各测试项自行提供,并指出了该测试项是针对何种设备进行的测试。名称的设定标准是,将所有测试项归纳入若干相关树形结构中。
请参阅图6,为运用本发明的某测试情况下,所有测试项的树形结构图。在图6中,第一硬盘(HD1)的Sequential Seek测试项的逻辑设备名称为:“System.Hard Disk.HD1.Sequential Seek”。同理,软盘驱动器(Floppy Disk)测试项(FD Test)的逻辑设备名称为:“System.Floppy Disk.FD Test”。
请参阅图7,为逻辑设备名称的数据格式。为了便于描述,我们可将“逻辑设备名称”理解为由两部分组成:“设备名称”和“测试名称”。如“System.Hard Disk.HD1.Sequential Seek”的“设备名称”是“System.HardDisk.HD1”,“测试名称”是“Sequential Seek”。
请参阅图8,其为某种测试情况下所生成的测试逻辑表。表中“yes”代表相应的测试项可以同时并行测试,“no”代表相应的测试项不可以同时并行测试。例如,System.HardDisk.HD1.Sequential Seek可与System.HardDisk.HD2.Sequential Seek进行并行测试,但不能与System. HardDisk.HD1.Random Seek进行并行测试。
请参考图3,图3为本发明所提的多线程自动测试方法中自动生成测试逻辑表的流程图,说明如下:
首先取得所有测试项的“唯一标识”,并将该唯一标识写入测试逻辑表中(如图8所示)(步骤301);比较两测试项的设备名称(步骤303);如果该两个测试项的“设备名称”相同,则该两个测试项不能并行测试,测试逻辑表对应字段的逻辑值设为no(表明该两个测试项的间互斥)(步骤304);否则,如果该两个测试项“设备名称”不同,则能够并行测试,测试逻辑表对应字段的逻辑值设为yes(表明该两个测试项的间不互斥)(步骤305);然后将得到的逻辑值填入测试逻辑表的相应字段中(步骤306);判断当前所有测试项是否已经比较完毕(步骤307);如果是,则流程结束;如果否,则返回步骤303。
如图8所示的“测试逻辑表”中,由于“System.HardDisk.HD1.Sequential Seek”与“System.HardDisk.HD1.Random Seek”的“设备名称”相同,因此不能并行测试,其测试逻辑表中相应字段的逻辑值为no。
上述的测试逻辑表定义了各测试项的间的互斥关是,即规定了某测试项是否能与其它测试项进行并行测试。测试逻辑表由系统根据各测试项的“逻辑设备名称”自动生成。
系统生成“测试逻辑表”以后,就可以利用多线程方式,进行测试项的测试。为此,系统使用两个队列:测试项队列及调度队列。测试项队列里容纳了所有待执行的测试项。调度队列容纳了某时刻正在执行的测试项。
请参阅图4,图4为本发明所提的多线程自动测试方法中执行多线程测试过程的流程图,其说明如下:
首先,起始时,测试项队列容纳了全部待测试项,调度队列为空(步骤401),然后,系统从测试项队列中取得一个测试项放入调度队列,并产生相应的测试线程(步骤402),接着,扫描测试项队列中所有测试项,从中找出所有与调度队列中的测试项能够并行运行的测试项,如果找到,则将此测试项移入调度队列中,并产生相应的测试线程(步骤403),最后,如果调度队列中的某一测试项执行完毕,则将其从调度队列中移除,同时移除该测试项对应的测试线程(步骤404);判断测试项队列中的所有测试项是否执行完毕(步骤405),如果没有,则重复步骤(403)、(404),直至所有该测试项队列中的所有测试项执行完毕。
请参阅图5A-5F,为本发明所提的多线程自动测试方法中多线程调度过程的示意图,其以4个待测试项为例。
图5A表示初始状态,测试项队列容纳了全部待测试项,调度队列为空。
图5B、5C表示系统首先将测试项1放入调度队列,并产生测试线程1。然后继续扫描测试项队列中与调度队列中的所有项都能并行测试的项目(假设为测试项3),移入调度队列,并产生测试线程3。测试项是否能并行测试的依据为系统根据测试项而自动生成的测试逻辑表。
图5D、5E、5F表示如果某测试项(如测试项1)执行完毕,则将其移除出调度队列,并再次扫描,重复上述步骤,直至所有测试项执行完毕。
在本发明中,各个测试不是必须以串行方式或并行方式进行,而是适当采用并行方式,使互无冲突的各测试项以并行方式执行。所以总体完成时间缩短,生产效率提高。
本发明中,系统并不是毫无规则地将所有测试项全部同时投入测试,而是在系统内部自动产生“测试逻辑表”,系统根据“测试逻辑表”中指定的状态决定哪些测试项是并行执行,哪些测试项需要串行执行,避免不同测试之间产生冲突。自动产生多线程的执行逻辑,无需用户手动设定,简便了操作。在本发明中,系统可以通过测试项的唯一标识(如逻辑设备名称),在系统内部自动产生“测试逻辑表”。此表无需用户逐项手工填写,因此简化了用户操作,减少了出错的概率。
以上所述为本发明的较佳实施例之一,并非用以限定本发明,任何本领域的普通技术人员在本发明的领域内,依本发明所做的变化或修饰,皆应属于本发明权利要求所保护的范围。

Claims (4)

1.一种多线程自动测试方法,应用于一计算机硬件的测试过程,至少包括如下步骤:
确定待测试项的唯一标识,其中该唯一标识的数据格式是由“设备名称”和“测试项名称”两部分组成;
取得所有待测试项的唯一标识,并将唯一标识写入测试逻辑表中;
比较两测试项的设备名称;
根据比较结果将得到的逻辑值填入测试逻辑表的相应字段中;
判断当前所有测试项是否已经比较完毕,如果没有,则重新分析比较;
根据唯一标识之间的互斥关系自动生成测试逻辑表;
根据测试逻辑表规定的测试逻辑执行多线程测试过程,其中系统使用两个队列,即测试项队列和调度队列,该测试项队列容纳了全部待测试项,该调度队列中容纳了某时刻正在执行的测试项;
系统从该测试项队列中取得一个测试项放入一调度队列,并产生相应的测试线程;
扫描在该测试项队列中所有测试项,从中找出所有与该调度队列中的测试项都能够并行运行的测试项,如果找到,则将此测试项移入该调度队列中,并产生相应的测试线程;
如果调度队列中的某一测试项执行完毕,则将其从该调度队列中移除,同时移除该测试项对应的测试线程;以及
判断测试项是否执行完毕,直至所有测试项执行完毕。
2.如权利要求1所述的多线程自动测试方法,其中该唯一标识是待测试项的逻辑设备名称。
3.如权利要求1所述的多线程自动测试方法,其中该根据比较结果将得到的逻辑值填入测试逻辑表的相应字段中的步骤,如果该两个测试项的“设备名称”相同,则逻辑值设为no;如果该两个测试项“设备名称”不同,则逻辑值设为yes。
4.如权利要求1所述的多线程自动测试方法,其中该唯一标识之间的互斥关系是根据待测试项的逻辑设备名称的“设备名称”是否相同而决定,如果相同,则满足互斥关系,如果不同,则不满足互斥关系。
CN 02149912 2002-11-01 2002-11-01 多线程自动测试方法 Expired - Fee Related CN1212569C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02149912 CN1212569C (zh) 2002-11-01 2002-11-01 多线程自动测试方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02149912 CN1212569C (zh) 2002-11-01 2002-11-01 多线程自动测试方法

Publications (2)

Publication Number Publication Date
CN1432916A CN1432916A (zh) 2003-07-30
CN1212569C true CN1212569C (zh) 2005-07-27

Family

ID=27628734

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02149912 Expired - Fee Related CN1212569C (zh) 2002-11-01 2002-11-01 多线程自动测试方法

Country Status (1)

Country Link
CN (1) CN1212569C (zh)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7614054B2 (en) 2003-12-31 2009-11-03 Intel Corporation Behavioral model based multi-threaded architecture
US8271986B2 (en) * 2003-12-31 2012-09-18 Intel Corporation Visual and graphical data processing using a multi-threaded architecture
CN100365588C (zh) * 2004-03-16 2008-01-30 鸿富锦精密工业(深圳)有限公司 计算机硬件快速诊断测试系统及方法
CN100336027C (zh) * 2004-04-13 2007-09-05 英业达股份有限公司 多种互斥条件下的多模式测试系统及其方法
CN100435113C (zh) * 2005-03-08 2008-11-19 中国科学院软件研究所 基于c++映射的ttcn-3测试系统及测试方法
US7730491B2 (en) * 2005-08-30 2010-06-01 Intel Corporation Fair scalable reader-writer mutual exclusion
CN102169455A (zh) * 2010-02-26 2011-08-31 国际商业机器公司 用于软件性能测试的调试方法和系统
CN106612213B (zh) * 2015-10-26 2020-06-23 中国移动通信集团公司 设备测试方法及装置
CN106598859A (zh) * 2016-12-16 2017-04-26 四川长虹电器股份有限公司 Appium多线程实现系统及方法
CN108366383A (zh) * 2017-12-29 2018-08-03 杭州雄伟科技开发股份有限公司 冲突调度方法、装置及系统
CN112578260B (zh) * 2019-09-29 2022-06-28 北京君正集成电路股份有限公司 一种基于多线程技术提高芯片测试效率的方法
CN112636994A (zh) * 2019-10-09 2021-04-09 中兴通讯股份有限公司 设备测试方法、系统、网络设备和可读存储介质
CN111506465A (zh) * 2020-04-20 2020-08-07 北京易点淘网络技术有限公司 电脑功能测试方法及装置
CN113495498B (zh) * 2021-07-06 2024-05-28 中国工商银行股份有限公司 用于硬件设备的模拟方法、模拟器、设备和介质

Also Published As

Publication number Publication date
CN1432916A (zh) 2003-07-30

Similar Documents

Publication Publication Date Title
CN1212569C (zh) 多线程自动测试方法
US20080271042A1 (en) Testing multi-thread software using prioritized context switch limits
CN100340997C (zh) 一种应用程序的自动测试方法
CN1264083C (zh) 用于在执行被转换指令时维持环境的方法和装置
CN1275187C (zh) 基于全局脊线的指纹识别方法
CN1234218C (zh) 通信设备中具有等级结构事件的处理方法
CN1684040A (zh) 能够使用过去处理空间的信息处理器
CN1361489A (zh) 一种日志信息的自动循环存储方法和系统
CN1877544A (zh) 关键字驱动的自动化测试系统及方法
CN1874538A (zh) 一种呼叫事件并发处理方法
CN1818875A (zh) 嵌入式操作系统分组硬实时任务调度的实现方法
CN1551237A (zh) 具有先进的数据选通脉冲电路的半导体内存装置
CN1924816A (zh) 提高多核系统访问临界资源速度的方法和装置
CN1752916A (zh) 磁盘阵列的控制器及其工作方法
CN1831782A (zh) 网络信息系统异地数据镜像方法
CN101030211A (zh) 用于从测试数据中导出丢失数据对象的方法和系统
CN1564489A (zh) 一种通信系统有限状态机的测试方法
CN1975675A (zh) 一种适合移动分布式实时数据库的安全实时并发控制协议
CN1567249A (zh) 计算机系统的内存管理方法
CN1851648A (zh) 一种嵌入式系统运行时堆栈溢出保护方法
CN112596895B (zh) 一种sql语义感知的弹性倾斜处理方法及系统
CN100336027C (zh) 多种互斥条件下的多模式测试系统及其方法
CN101059758A (zh) 屏幕转换程序生成方法及设备
CN1851679A (zh) 一种usb设备自动初始化的方法及装置
CN1449520A (zh) 用于重放转换的指令的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CB03 Change of inventor or designer information
CB03 Change of inventor or designer information

Inventor after: Wang Xiaohua

Inventor before: Song Jianfu

Inventor before: Liu Wenhan

Inventor before: Shi Yongjun

TR01 Transfer of patent right

Effective date of registration: 20170915

Address after: Yongxing District of Hebei city of Langfang province Xianghe County Yulong Ji Xing District 7 Building 1 unit 302 room

Patentee after: Wang Xiaohua

Address before: Taipei City, Taiwan, China

Patentee before: Inventec Corporation

TR01 Transfer of patent right
CP02 Change in the address of a patent holder

Address after: 541399 South 50 meters south of Xingan County, Xingan County, Guilin City, the Guangxi Zhuang Autonomous Region

Patentee after: Wang Xiaohua

Address before: Yongxing District of Langfang city in 065000 Hebei County of Xianghe province Xing Ji Yulong District 7 Building 1 unit 302 room

Patentee before: Wang Xiaohua

CP02 Change in the address of a patent holder
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20050727

Termination date: 20171101

CF01 Termination of patent right due to non-payment of annual fee