多线程自动测试方法

文档序号:6599067阅读:302来源:国知局
专利名称:多线程自动测试方法
技术领域
本发明是为一种测试方法,特别是指应用于计算机硬件测试中的多线程自动测试方法。
2、存在潜在的测试漏洞。上述串行测试法没有考虑到多硬件共同测试的情况。
为了消除串行测试法的缺点,可采用并行测试法。最基本的方法是为每个测试项生成一个测试线程,如

图1B所示,所有测试项同时进行测试。
但并行测试法的问题是不同测试项的间同时测试可能会产生冲突。例如,不能同时进行硬盘的Sequential Seek测试和Random Seek测试。
为解决上述缺失,这时需要一种既有并行测试法的高效率高质量的优点,又可避免测试冲突的测试方法。
本发明提供一种多线程自动测试方法,至少包括下列步骤确定待测试项的唯一标识;
根据唯一标识的间的互斥关是自动生成测试逻辑表;及根据测试逻辑表规定的测试逻辑执行多线程测试过程。
有关本发明的详细内容及技术,兹就配合图式说明如下
其中,附图标记说明如下步骤201 确定待测试项的唯一标识步骤202 根据唯一标识的间的互斥关是自动生成测试逻辑表步骤203 根据逻辑表规定的测试逻辑执行多线程测试过程步骤301 取得所有待测试项的唯一标识,并将唯一标识写入测试逻辑表中步骤302 分析该唯一标识所对应的“设备名称”,并写入测试逻辑表中步骤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”代表相应的测试项不可以同时并行测试。例如,HD1.Sequential Seek可与HD2.Sequential Seek进行并行测试,但不能与HD1.Random Seek进行并行测试。
请参考图3,图3为本发明所提的多线程自动测试方法中自动生成测试逻辑表的流程图,说明如下首先取得所有测试项的“唯一标识”,并将该唯一标识写入测试逻辑表中(如图8所示)(步骤301);分析该唯一标识对应的“设备名称”,并写入测试逻辑表中(步骤302);比较两测试项的设备名称(步骤303);如果该两个测试项的“设备名称”相同,则该两个测试项不能并行测试,测试逻辑表对应字段的逻辑值设为no(表明该两个测试项的间互斥)(步骤304);否则,如果该两个测试项“设备名称”不同,则能够并行测试,测试逻辑表对应字段的逻辑值设为yes(表明该两个测试项的间不互斥)(步骤305);然后将得到的逻辑值填入测试逻辑表的相应字段中(步骤306);判断当前所有测试项是否已经比较完毕(步骤307);如果是,则流程结束;如果否,则返回步骤302。
如图8所示的“测试逻辑表”中,由于“HD1.Sequential Seek”与“HD1.Random Seek”的“设备名称”相同,因此不能并行测试,其测试逻辑表中相应字段的逻辑值为no。
上述的测试逻辑表定义了各测试项的间的互斥关是,即规定了某测试项是否能与其它测试项进行并行测试。测试逻辑表由系统根据各测试项的“逻辑设备名称”自动生成。
系统生成“测试逻辑表”以后,就可以利用多线程方式,进行测试项的测试。为此,系统使用两个队列测试项队列及调度队列。测试项队列里容纳了所有待执行的测试项。调度队列容纳了某时刻正在执行的测试项。
请参阅图4,图4为本发明所提的多线程自动测试方法中执行多线程测试过程的流程图,其说明如下首先,起始时,测试项队列容纳了全部待测试项,调度队列为空(步骤401),然后,系统从测试项队列中取得一个测试项放入调度队列,并产生相应的测试线程(步骤402),接着,扫描测试项队列中所有测试项,从中找出所有与调度队列中的测试项能够并行运行的测试项,如果找到,则将此测试项移入调度队列中,并产生相应的测试线程(步骤403),最后,如果调度队列中的某一测试项执行完毕,则将其从调度队列中移除,同时移除该测试项对应的测试线程(步骤404);判断测试项队列中的所有测试项是否执行完毕(步骤405),如果没有,则重复步骤(403)、(404),直至所有该测试项队列中的所有测试项执行完毕。
上述步骤403中扫描的规则是按照测试逻辑表中确定的测试逻辑而决定。
请参阅图5A-5F,为本发明所提的多线程自动测试方法中多线程调度过程的示意图,其以4个待测试项为例。
图5A表示初始状态,测试项队列容纳了全部待测试项,调度队列为空。
图5B、5C表示系统首先将测试项1放入调度队列,并产生测试线程1。然后继续扫描测试项队列中与调度队列中的所有项都能并行测试的项目(假设为测试项3),移入调度队列,并产生测试线程3。测试项是否能并行测试的依据为系统根据测试项而自动生成的测试逻辑表。
图5D、5E、5F表示如果某测试项(如测试项1)执行完毕,则将其移除出调度队列,并再次扫描,重复上述步骤,直至所有测试项执行完毕。
在本发明中,各个测试不是必须以串行方式或并行方式进行,而是适当采用并行方式,使互无冲突的各测试项以并行方式执行。所以总体完成时间缩短,生产效率提高。
本发明中,系统并不是毫无规则地将所有测试项全部同时投入测试,而是在系统内部自动产生“测试逻辑表”,系统根据“测试逻辑表”中指定的状态决定哪些测试项是并行执行,哪些测试项需串行执行,避免不同测试之间产生冲突。自动产生多线程的执行逻辑,无需用户手动设定,简便了操作。在本发明中,系统可以通过测试项的唯一标识(如逻辑设备名称),在系统内部自动产生“测试逻辑表”。此表无需用户逐项手工填写,因此简化了用户操作,减少了出错的概率。
以上所述为本发明的较佳实施例之一,并非用以限定本发明,任何本领域的普通技术人员在本发明的领域内,依本发明所做的变化或修饰,皆应属于本发明权利要求所保护的范围。
权利要求
1.一种多线程自动测试方法,应用于一计算机硬件的测试过程,至少包括如下步骤确定待测试项的唯一标识;根据唯一标识的间的互斥关是自动生成测试逻辑表;及根据测试逻辑表规定的测试逻辑执行多线程测试过程。
2.如权利要求1所述的多线程自动测试方法,其中该唯一标识是待测试项的逻辑设备名称。
3.如权利要求1所述的多线程自动测试方法,其中该唯一标识的数据格式是由“设备名称”和“测试项名称”两部分组成。
4.如权利要求1所述的多线程自动测试方法,其中该自动生成测试逻辑表步骤,更包含下列步骤取得所有待测试项的唯一标识,并将唯一标识写入测试逻辑表中;分析该唯一标识所对应的“设备名称”,并写入测试逻辑表中;比较两测试项的设备名称;根据比较结果将得到的逻辑值填入测试逻辑表的相应字段中;及判断当前所有测试项是否已经比较完毕,如果没有,则重新分析比较。
5.如权利要求4所述的多线程自动测试方法,其中该根据比较结果将得到的逻辑值填入测试逻辑表的相应字段中的步骤,如果该两个测试项的“设备名称”相同,则逻辑值设为no;如果该两个测试项“设备名称”不同,则逻辑值设为yes。
6.如权利要求1所述的多线程自动测试方法,其中该唯一标识的间的互斥关是是根据待测试项的逻辑设备名称的“设备名称”是否相同而决定,如果相同,则满足互斥关是,如果不同,则不满足互斥关是。
7.如权利要求1所述的多线程自动测试方法,其中该执行多线程测试过程的步骤中,系统使用两个队列测试项队列和调度队列。
8.如权利要求1所述的多线程自动测试方法,其中该执行多线程测试过程的步骤,更包含下列步骤起始时,测试项队列容纳了全部待测试项,调度队列为空;系统从测试项队列中取得一个测试项放入调度队列,并产生相应的测试线程;扫描在测试项队列中所有测试项,从中找出所有与调度队列中的测试项都能够并行运行的测试项,如果找到,则将此测试项移入调度队列中,并产生相应的测试线程;如果调度队列中的某一测试项执行完毕,则将其从调度队列中移除,同时移除该测试项对应的测试线程;及判断测试项是否执行完毕,直至所有测试项执行完毕。
9.如权利要求8所述的多线程自动测试方法,其中该步骤(3)中扫描的规则是按照测试逻辑表中确定的测试逻辑而决定的。
10.如权利要求7所述的多线程自动测试方法,其中该测试项队列中容纳了所有待执行的测试项。
11.如权利要求7所述的多线程自动测试方法,其中该调度队列中容纳了某时刻正在执行的测试项。
全文摘要
一种多线程自动测试方法,是应用于一计算机硬件的测试过程,其可根据待测试项的唯一标识的间的互斥关是自动产生多线程的执行逻辑,在避免了测试冲突的情况下,采用适当的并行方式,为每一个互无冲突的各测试项分别建立测试线程,使其多线程并行执行测试,从而提高了测试效率和质量。该方法至少包含下列步骤确定待测试项的唯一标识;根据唯一标识的间的互斥关是自动生成测试逻辑表;根据测试逻辑表规定的测试逻辑执行多线程测试过程。
文档编号G06F11/25GK1432916SQ0214991
公开日2003年7月30日 申请日期2002年11月1日 优先权日2002年11月1日
发明者宋建福, 刘文涵, 史永军 申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1