CN1142490C - 用于定制计算机系统的软件安装、测试方法及系统 - Google Patents

用于定制计算机系统的软件安装、测试方法及系统 Download PDF

Info

Publication number
CN1142490C
CN1142490C CNB981176542A CN98117654A CN1142490C CN 1142490 C CN1142490 C CN 1142490C CN B981176542 A CNB981176542 A CN B981176542A CN 98117654 A CN98117654 A CN 98117654A CN 1142490 C CN1142490 C CN 1142490C
Authority
CN
China
Prior art keywords
order
computer system
steps
sequence
file
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 - Lifetime
Application number
CNB981176542A
Other languages
English (en)
Other versions
CN1221147A (zh
Inventor
���¡�D��������
理查德·D·安伯格
W
罗杰·W·翁
A
迈克尔·A·布伦德里奇
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.)
Dell USA LP
Original Assignee
Dell USA LP
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 Dell USA LP filed Critical Dell USA LP
Publication of CN1221147A publication Critical patent/CN1221147A/zh
Application granted granted Critical
Publication of CN1142490C publication Critical patent/CN1142490C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/28Error detection; Error correction; Monitoring by checking the correct order of processing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • G06F8/63Image based installation; Cloning; Build to order

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Debugging And Monitoring (AREA)

Abstract

为含有多个部件的定制计算机系统进行软件安装和/或测试的方法包括多个基本模块。该系统有一个相关的步骤序列。该序列含多个步骤,各步骤都至少含有一命令,且一个步骤与一相应的部件描述符相联系。一个部件描述符对应该系统的一个相应部件。该方法包括:访问步骤序列中的一个命令;生成一个含有开始执行指示的文件;执行该命令;当该命令完成执行后删除该含有开始执行指示的文件;以及,对该多个步骤重复访问、生成、执行和删除处理。

Description

用于定制计算机系统的软件安装、测试方法及系统
本申请与下述申请有关,其整体在这里引用作为参考:待审批美国专利申请,流水号08/919,959,代理人登记号M-5022US,与本申请同日递交,标题为“Software Installation And Testing For ABuild-To-Order Computer System(定制计算机系统的软件安装和测试)”,发明人:Richard D.Amberg、Roger W.Wong和Michael A.Brundridge。
本申请与下述申请有关,其整体在这里引用作为参考:待审批美国专利申请,流水号08/921,438,代理人登记号M-5216US,与本申请同日递交,标题为“Database For Facilitating Software InstallationAnd Testing For A Build-To-Order Comprter System(用于实施定制计算机系统软件安装和测试的数据库)”,发明人:Richard D.Amberg、RogerW.Wong和Michael A.Brundridge。
技术领域
本发明涉及计算机系统诊断,较具体地,涉及一种为计算机系统的软件安装和/或测试安排步骤序列的方法。
背景技术
个人计算机,特别是IBM兼容个人计算机,因能为社会各界提供计算能力而已得到了广泛的应用。通常,个人计算机系统可以定义为桌面、地面或便携式微计算机,其中包括:一个带有系统处理器及相应的非永久性和永久性存储器的系统单元,一个显示监视器,一个键盘;一个或几个软盘驱动器,一个固定磁(光)盘存储装置,以及任选地,一个打印机。
已经知道,在计算机系统发运给商务客户或个人客户之前,要在其上安装软件并进行测试。软件安装和测试的目的是有效地生产出有用、可靠的计算机系统,当它们被送交给商务客户或个人时将不会出错而且立即可以运行。通常,测试是要探测出计算机系统硬件部分和软件部分中出现的错误并对之进行分析。计算机系统硬件测试的一个不完全的清单可以包括:对例如处理器、存储器、磁(光)盘存储装置、声响装置、绘图装置、键盘、鼠标器和打印机等硬件部件的诊断。软件安装通常包括:把所希望的软件包安装到计算机系统上,为计算机准备适当的环境变量,以及对所安装软件准备适当的初始化文件。软件测试通常包括:确认已给计算机系统安装了软件的希望版本,并且计算机系统已具有适当的驱动器。
在工业界众所周知,在把计算机系统发送给客户之前,要通过执行固定的程序来在制造过程中安装软件和测试该系统。例如,要生成一个含有适合于某一种类的计算机系统的某些诊断测试的软盘。该软盘包含了指导软件安装和诊断处理的冗长且常常是复杂的一些批文件。该软盘还包含用于对被购计算机系统进行测试的全部执行文件。
每一个被制造的计算机系统都提供有一个相应的这种软盘的拷贝。在制造过程中,在厂房内这些软盘始终伴随着正在制造的计算机系统,根据上述批文件中的固有次序在各个计算机上进行测试。如果需要对处理过程作出修改,则需要通过向/从批文件代码添加/删除一些部分来对批文件进行相应的修改。由于各个计算机系统共用同样的批文件诊断程序,所以批文件的改变将造成每个后面的被制造计算机系统的测试参数(包括测试进行的步骤)也都将发生相应的改变。
虽然对提高发运前计算机系统的可靠性来说这样的诊断安排具有一定程度的有效性,但仍留有改进的余地。例如,随着测试不断地变得愈来愈复杂和彻底,诊断测试的批文件和执行文件常常会超出软盘的存储容量。而且,对于单个的定制计算机系统或者某一类计算机系统要做专门的测试和软件安装程序而不修改对其他系统或其他种类的测试往往是困难的或不可能的。还有,对于单个的定制计算机系统或某一类计算机系统修改软件安装或测试的次序而不修改对其他系统或种类的次序是困难的或不可能的。最后,目前批文件结构的常常是复杂的性质,使得制造者要快速和有效地进行找错或维护测试和软件安装程序变得困难。从而,希望要设计一种在计算机系统发运给客户之前对它们进行软件安装和测试的改进的方法。
发明内容
一种为带有多个部件的定制计算机系统进行软件安装和/或测试的方法包括多个基本模块。计算机系统有一个相关的步骤序列。该步骤序列包括多个步骤,其中每个步骤都至少含有一个命令,并且一个步骤与一个相应的部件描述符相联系。一个部件描述符对应于计算机系统的一个相应部件。该方法包括:访问步骤序列中的一个命令;生成一个含有开始执行指示的文件;执行该命令;当完成命令执行时删除含有开始执行指示的文件;以及,对上述多个步骤重复访问、生成、执行和删除的处理。
在一个优选实施例中,一种为含有多个部件的定制计算机系统进行软件安装和/或测试的方法包括多个基本模块。该计算机系统有一个相关的步骤序列。该步骤序列包括多个步骤,其中每个步骤都至少含有一个命令,并且一个步骤与一个相应的部件描述符相联系。一个部件描述符对应于计算机系统的一个相应部件。该方法包括:从步骤序列中读出一个命令;在计算机系统的一个当地驱动器中搜索该命令;如果该命令存储在计算机系统的一个当地驱动器中,则执行来自当地驱动器的该命令;如果该命令没有存储在计算机系统的当地驱动器中,则执行来自一个服务器的该命令。
在另一个优选实施例中,一种为含有多个部件的定制计算机系统进行软件安装和/或测试的方法包括多个基本模块。该计算机系统有一个相关的步骤序列。该步骤序列包括多个步骤,其中每个步骤都至少含有一个命令,并且一个步骤与一个相应的部件描述符相联系。一个部件描述符对应于计算机系统的一个相应部件。该方法包括:从步骤序列中读出一个命令;在该计算机系统上执行该命令;生成一个指明该命令何时开始执行的开始时间标记;以及生成一个指明该命令何时结束执行的结束时间标记。
这样,所说明的方法提供了有效的软件安装和计算机测试,它使得能实现直接的找错和对定制计算机的特定化。该方法的模块式设计有利地使得能进行对测试系统的基本维护和为新计算机系统和种类快速地生成步骤序列。
附图说明
通过审阅下面对优选实施例的详细说明,本发明的上述和其他目的、特征和优点将得到进一步说明和更容易的理解。
图1是示出软件安装和测试的概要图。
图2是根据另一实施例的软件安装和测试的概要图。
图3A是根据本发明的把计算机订单转换成系统描述符记录的流程图。
图3B示出示例性计算机订单、基本组件记录(BAR)文件、和系统描述符记录的一部分。
图4是生成和提供一个步骤序列的流程图。
图5是生成一个步骤序列的更详细的流程图。
图6示出一个数据库的结构。
图7是修改系统描述符记录和步骤序列的流程图。
图8示出执行前的步骤文件的例子。
图9示出执行后的步骤文件的例子。
图10是执行步骤序列的程序的操作流程图。
图11是执行步骤序列的图10程序的更详细的操作流程图。
具体实施方式
下面将给出实施本发明的最佳设想模式的详细说明。该说明的目的是说明性的,不应看成是限制性的。在各附图中,相同或相似的单元和模块可能会用相同的代号表示。在说明中,一个模块的定义是一个命令或一组命令。
图1是软件安装和测试系统90的概要图。在操作中,订单92的目的是要购买定制的目标计算机系统160。目标系统160要制造得含有多个硬件和软件部件。例如,目标系统160可能要含有某一牌号的硬驱,特定型号的监视器,某一牌号的处理器,和特定版本的操作系统。在目标系统160被发运给客户之前,要安装和测试这多个部件。这样的软件安装和测试将有利地保证有一个到货后便能运行的可靠的和工作正常的计算机系统。
因为不同种类的计算机系统和不同的个人计算机部件需要不同的软件安装和测试步骤,所以有必要确定在目标系统160上需要进行哪些测试以及以怎样的次序来进行这些测试,才能做到有效的软件安装和测试处理。步骤制作器140是一个计算机系统,它设计得能安排准备对目标系统160运行的软件安装和测试步骤序列。为了安排软件安装和/或测试步骤序列,步骤制作器140,或者更具体地是驻留在步骤制作器140上的排序程序204,首先从描述符文件96中读出多个部件描述符。描述符文件96是通过转换模块94把对应于具有所希望部件的所希望计算机系统的订单92转换成计算机可读的格式而得到的。
部件描述符是关于其部件由订单92所定义的目标系统160的各部件的计算机可读的说明。在本优选实施例中,各个部件描述符被含在一个称之为“系统描述符记录”的描述符文件内,这个文件是一个计算机可读的文件,它含有关于准备安装到目标系统160的部件,包括硬件部件和/或软件部件,的一个清单。排序程序204在读出了多个部件描述符之后,通过网络连接110从数据库100提取出多个对应于各部件描述符的软件安装和/或测试步骤。网络连接110可以是本技术领域所熟知的任何网络连接,例如局域网、内部网、或互连网。含在数据库100内的信息可以通过由箭头130所示的修改予以更新。
提取了适合于目标系统160的软件安装和/或测试步骤之后,排序程序204根据对应于各个步骤的序列号按预定的次序把这些步骤安排成序列。安排好目标系统160所需的步骤序列后,排序程序204在步骤盘150上写入一系列的输出文件。在图1给出的实施例中,输出文件包括一些含有一些适合于对目标系统160执行适当的软件安装和/或测试步骤的命令行的文本文件。这个执行根据对应于各步骤的序列号按预定次序进行。步骤盘150在厂房内始终伴随着目标系统160,并直接根据该步骤盘150或者根据通过网络连接180连接在目标系统160上的文件服务器190进行测试。网络连接180最好是一个插入在目标系统的一个相应网络端口上的通用网络器件。在执行了软件安装和测试步骤之后,安装和测试的结果通过网络连接180被回录到文件服务器190上。
图2是根据本发明另一实施例的软件安装和测试系统192的概要图。客户给出要购买定制目标计算机系统160的订单92。目标系统160准备制造得含有多个部件,包括硬件部件和/或软件部件。在目标系统的被发运给客户之前,要安装和测试多个部件。这种安装和测试有利地保证了有一个客户收到后便能运行的可靠的工作正常的计算机系统。
为了安排软件安装和测试步骤序列,排序程序204从描述符文件96读出多个部件描述符。订单92由转换模块94转换成描述符文件。部件描述符是关于目标系统160的各个部件的一些计算机可读的说明。在本优选实施例中,各部件描述符被含在一个称作系统描述符记录的描述符文件内,这是一个包含有关于准备安装到目标系统160上的每一个部件,包括硬件和软件,的一个清单。系统描述符记录可以直接存储在文件服务器202中。排序程序204从数据库100提取出多个对应于各部件描述符的软件安装和/或测试步骤。提取了关于目标系统160的适当的软件安装和/或测试步骤之后,排序程序204根据对应于各个步骤的序列号按预定次序对这些步骤排序。进行了目标系统160所需的步骤排序之后,排序程序204按预定次序通过网络连接195和180指导对目标系统160执行这些软件安装和测试步骤。希望网络连接200是一个插入在目标系统160的相应端口中的通用网络器件。网络连接195可以是本技术领域所熟知的任何网络连接。在执行了软件安装和/或测试步骤之后,安装和测试的结果通过网络连接200被回录到文件服务器202上,或者存储在一个适当的数据库中。从图中明显地可以看出,这里不需要图1所示的独立的步骤制作器计算机系统140。此外,也不需要步骤盘150。反之,在厂房内只需要有一个支持盘(boot disk)220伴随着目标系统160,该支持盘220设计得能支持目标系统160。
在概括地说明了软件安装和测试系统之后,现在将把注意力转换到更详细地说明图1和2所给出的系统的操作过程。
图3A示出把对计算机系统的一个订单转换成一个计算机可读的系统描述符记录的优选过程。较具体地说,在项300中,接收到一个对目标计算机系统的订单。这个订单可以是无数种形式中的任何一种形式。例如,各种不同的订单格式和订单递交机制都是可能的。例如,对目标计算机系统的订单可以通过电话、邮件、或计算机网络(如互连网)送来。不论取得订单的途径如何,也不论订单的形式如何,订单总是包含有客户所希望的目标计算机系统的类型,可能还含有关于客户希望目标计算机系统所包含的某些特定部件的明确的清单。接收到订单之后,控制转移到发送模块310,在这期间,目标计算机系统的订单将通过一个计算机网络被发送给一个生产该目标计算机系统的制造系统(未示出)。目标计算机系统的订单也还被提供给软件安装和测试系统,在那里该订单又被传送到一个位在模块320内的转换程序中。用于模块320的计算机网络可以是本技术领域所熟知的任何一种。
转换程序把目标计算机系统订单转换成一个对制造过程有用的记录。较具体地说,在模块330中转换程序首先把该计算机订单转换成一个称作BAR(基本组件记录)文件的记录。BAR文件最好含有一个能标明该正在制造的特定目标计算机系统的独有的识别符。BAR文件还含有准备包含在目标系统中的各部件的详细清单,这些部件可能既有硬件又有软件。此外,还希望BAR文件含有关于每个部件的特定制造商的零件号或者其他有用的识别符。最后,BAR文件还可以含有与客户有关的信息,例如姓名、地址和电话号码等。
在模块330中生成了BAR文件之后,在模块340中生成一个系统描述符记录。在本优选实施例中,系统描述符记录是一个对准备含在目标计算机系统中的硬件和软件的计算机可读的说明性文件。在一个优选实施中,系统描述符记录含有一个目标系统部件的清单,其格式包括硬件标签、软件标签、信息标签和附注。硬件标签向排序程序204指明位在该标签后面的是关于硬件部件的信息。类似地,软件标签指明位在该标签后面的是关于软件部件的信息。信息标签指明跟随在其后的是一般信息。附注使得各种叙述都可以被包含到系统描述符记录中,不过排序程序204将不会理会它。希望系统描述符记录是一个文本文件,它是自然人可读并易于理解的。这样的文件将有利于在安装和测试过程中容易地找错和维护。应该看到,系统描述符记录可以是一些独特识别符的任何清单,这些识别符对应于一组独特的标记,例如在一个简单的例子中系统描述符记录可以是一张零件号表。
图3B示出示例性的目标计算机系统订单350、相应的BAR文件360、以及相应的系统描述符记录370。目标计算机系统订单350含有计算机种类的名称,在图中为“X”类。计算机系统订单350还含有3个示例性的硬件部件:一个Pentium(奔腾)处理器,一个硬驱,和一个监视器。通过对目标计算机系统订单350运行转换程序得到BAR文件360,如图3A的模块320所示。BAR文件360含有一个关于属于X类的特定目标计算机系统的独有识别符。BAR文件360还含有关于列出在目标计算机订单中的每一个部件的特定制造商的零件号。此外,BAR文件360还含有能指明每个部件所希望的数量的识别符和关于准备含在目标计算机系统中的每个部件的文字说明。系统90利用BAR文件360来生成系统描述符记录370。
如图所示,系统描述符记录370也含有关于属于X类的特定目标计算机系统的独有识别符。此外,系统描述符记录370还含有一些相应的标签,它们在这里指明处理器、硬驱和监视器全都是硬件部件而不是软件部件。系统描述符记录370还用文字说明的形式来说明这些部件。还有,该示例性的系统描述符记录370还含有指明某个软件应该安装到该属于X类的目标计算机系统中或者在其上进行测试的软件标签。例如,软件标签可能会指明某个用于Pentium处理器的操作系统总是应该安装到属于X类的目标计算机系统的硬驱上。
在图4中,给出了安排软件安装和测试步骤序列的优选总体方法。在模块400中,为目标计算机系统160产生独有的目标计算机系统识别符。在图1所示的实施例中,坐在步骤制作器计算机系统140前的用户把该独有的识别符(例如起着跟踪码作用的BAR识别符)提供给步骤制作器140的排序程序204。或者,在图2所示的实施例中,在接收到目标计算机订单后该独有的识别符被自动地读入到排序程序204中。
在模块410中,设置对应于BAR识别符的系统描述符记录。在图1的实施例中,或者由网络连接110,或者由网络连接195来设置系统描述符记录。在图2的实施例中,由网络连接195设置系统描述符记录。在模块420中,所设置的系统描述符记录被提供给排序程序204。在图1实施例中,排序程序驻留在步骤制作器计算机系统140上,而在图2实施例中,排序程序驻留在文件服务器202上。排序程序204和图1、图2中的数据库100一起工作,为目标计算机系统160安排软件安装和测试步骤序列。当安排好了适合于特定目标计算机系统的软件安装和测试步骤序列后,排序程序204将立即产生输出文件,如模块430所示。
在图1的实施例中,输出文件最好以6个分开的文件的形式写入到步骤盘150(见图1)上。这6个文件是:(1)一个步骤文件,(2)一个Setenv.bat(设定环境.批)文件,(3)一个Qt.txt(快速测试.文本)文件,(4)一个Et.txt(扩展测试1.文本)文件,(5)一个Etlast.txt(扩展测试2.文本)文件,以及(6)一个Ft.txt(最后测试.文本)文件。希望步骤文件是一个ASCII(美国信息交换标准码)文本文件,其中含有一个关于一些用来执行定制目标计算机系统的各软件安装和测试步骤的适当的命令行的清单。在一个优选实施例中,步骤文件还含有一些可能是循环型的命令。较具体地说,步骤文件允许命令重复执行一定的次数,或者执行一定的时间长度。这样的格式有利于允许软件安装测试步骤以计算得到的预定方式重复。Setenv.bat(设定环境.批)文件最好在目标计算机系统上设定环境变量。应该指出,在一种操作模式中,对于安装和测试只需要步骤文件和Setenv.bat文件。步骤文件和Setenv.bat文件是ASCII文本文件,其中含有一个关于一些用来执行目标计算机系统的安装和测试步骤的适当的命令行的清单。Qt.txt,Et.txt,Etlast.txt和Ft.txt文件最好全都是ASCII文本文件,其中分别包含目标计算机系统在制造的快速测试(Qt)阶段、扩展测试1(Et)阶段、扩展测试2(Etlast)阶段和最后测试(Ft)阶段中的关于执行目标计算机系统的软件安装和测试步骤的一些适当命令行的清单。
另一方面,在图2的实施例中,输出文件不被写入到图1的步骤盘中。反之,输出文件被驻留在文件服务器202或文件服务器190中,输出文件被驻留在文件服务器202或文件服务器190中,在那里它们被用来指导软件安装和/或测试步骤在目标计算机160上的执行。
图5示出图1和2中所示排序程序操作204的较详细的流程图。在模块500中,对应于目标计算机系统160的系统描述符记录被提供给排序程序204。在模块510中,从系统描述符记录中读出一个部件描述符。每个部件描述符都描述目标计算机系统的一个相应硬件或软件部件。
回到图3B,模块370的系统描述符记录中的含有Pentium处理器的那一行是部件描述符的一个例子。在模块520中,排序程序204生成对应于目标计算机系统160的多个部件的多个导出目标(文件)。在本优选实施例中,这些导出目标用来存储从数据库100获得的关于需要对目标计算机系统160运行的软件安装和测试步骤的信息。在模块550中,从数据库100提取出与目标计算机系统160的各个部件有关的软件安装和测试步骤,并把它们存储在相应的导出目标中。在图1的实施例中,这些步骤是通过网络连接110提取的;而在图2的实施例中,这些步骤可以直接从文件服务器202提取。为了说清楚在本优选实施例中这些步骤是如何从数据库100提取的,首先需要说明该数据库的优选结构。
图6示出数据库100的设计。数据库100把一些按预定次序排列的软件安装和/或测试步骤序列与各个计算机系统种类联系起来。此外,数据库100还设计得把各种计算机系统部件与各个计算机系统种类联系起来。还有,数据库100还把各软件安装和/或测试步骤与计算机系统的各部件联系起来。
数据库100最好是一个关系数据库。数据库100含有几个表格,每个表格都含有一些适合于生成上述联系的属性。
数据库100含有:步骤表102,系统种类表104,系统步骤序列表106,部件表108,系统部件表112,以及部件步骤表114。在本优选实施例中,每个表都含有一个属性清单,下面划了线的属性用作基本索引(primary key)。
步骤表102含有一组软件安装和测试步骤,这些步骤在所有种类的计算机的各个部件之间是可共用的。在本优选结构中,步骤表102的属性包括:步骤ID(ID:识别符),阶段,名称,命令,命令类型,后码(AfterCode),和最大事例。“步骤ID”是每个软件安装或测试步骤的独有的识别符号码。“阶段”指明该步骤应在哪个制造阶段执行。例如,“阶段”是从制造计算机系统的4个阶段中选出的一个相应整数,这4个制造阶段是:(1)快速测试,(2)扩展测试1,(3)扩展测试2,和(4)最后测试。“名称”是一个字符串,它指定了描述该步骤的一个名称。“命令”是一个字符串,它指定了一个用来在目标系统160(见图1和图2)上执行软件安装或测试步骤的可执行命令行。“后码”是一个识别符,它规定了在执行了该软件安装或测试步骤之后是要暂停还是要再支持(reboot)。“最大事例”是一个识别符,它指明了该步骤允许运行的最多次数。最后,“类别ID”确定了与该软件安装或测试步骤相关的部件的某种类型。
系统种类表104用属性“系统ID”中所规定的一个识别整数来确定计算机系统的某一种类。系统种类表中还有一个指明了种类名称的字符串。
系统步骤序列表106是一个关系表,其中含有步骤表102和系统种类表104之间的一些关系。系统步骤序列表106含有:一个在属性“系统ID”中规定的种类识别整数,指明计算机系统的某一特定种类(根据系统种类表104);一个在属性“步骤ID”中规定的步骤识别整数(根据表102),它指明了相应于该种类的一组特定的步骤;以及一个序列号。序列号最好含在属性“序列号”中,它代表与一个特定种类相对应的各个步骤准备以某一预定的次序运行。测试工程师指定在各个制造阶段中是唯一的各个序列号,这种序列号所对应的次序应选择得对于一个特定的目标系统来说是最为有效的。应该指出,也可以采用其他指定序列号的方法。
部件表108包括所有可能含在制造中的计算机系统内的部件。这个表的属性最好有:“部件ID”,它给每个部件指定一个识别符;“名称描述”,它给每个部件指定一个字符串名称;以及“类别ID”,它对应于部件的类型(例如硬驱、CD-ROM(光盘只读存储器)驱动器等)。
系统部件表112是一个关系表,它含有一个计算机系统种类和一组能含在该种类中的部件之间的关系。系统部件表112的属性有:在属性“系统ID”中规定的计算机种类识别整数(根据系统种类表104)和在属性“部件ID”中规定的部件识别整数(根据部件表108)。
部件步骤表114是一个关系表,它含有一个部件和关于该部件的一组软件安装和测试步骤之间的一些关系。部件步骤表114的属性有:在属性“部件ID”中规定的部件识别整数(根据部件表108)和在属性“步骤ID”中规定的步骤识别整数(根据步骤表102)。
下面将用图3B所示的示例性目标计算机系统来说明上述数据库设计是如何用来提取软件安装和测试步骤的。系统描述符记录中指明种类X的计算机种类识别符导致系统种类表104中的系统ID将对应于种类X。用部件表108来检查目标计算机系统订单中所列的目标计算机系统部件是否“合法”(允许)。换言之,排序程序和数据库检查含在图3B系统描述符记录内的处理器、硬驱、监视器和软件在部件表108中是否有相应的条目和由部件ID所规定的对应整数。如果有一个部件不合法(也即如果系统描述符记录中有一个部件没有被含在部件表108中),则将举起一个出错旗标。系统部件表112是一个关系表,它含有来自部件表108和系统种类表104的映射关系。系统部件表112含有所有可以被包含在属于种类X的目标计算机系统中的合法部件。所以系统部件表112可以用来检查是否目标系统的所有部件都是合法的。换言之,排序程序和数据库将确定含在图3B系统描述符记录中的处理器、硬驱、监视器和软件在系统部件表112中是否都有对应关系。如果有一个部件不合法(也即如果系统描述符记录中有一个部件不可以被含在属于种类X的目标系统内),则将举起一个出错旗标。
在系统步骤序列表106这个关系表中含有来自步骤表102和系统种类表104的映射关系。系统步骤序列表106含有所有可以合法地对属于种类X的目标计算机系统运行的软件安装和测试步骤。此外,正是在这个系统步骤序列表106中,序列和阶段号被与每一个软件安装和测试步骤相联系。这些序列和阶段号代表着某一特定种类的计算机系统在运行各步骤时应有的正确次序。因此,系统步骤序列表106既含有准备要在X类的目标计算机系统上运行的各个步骤的清单,又含有代表在执行各步骤时应遵从的预定次序的序列和阶段号。
部件步骤表114是一个关系表,它含有来自部件表108和步骤表102的映射关系。部件步骤表114含有准备对目标计算机系统的处理器、硬驱、监视器和软件运行的软件安装和测试步骤。
关于准备含在目标计算机系统中的各个部件运行的软件安装和测试步骤的提取,涉及到执行一个对系统部件表112和部件步骤表114的联合操作,通过该联合操作将得到一个关于一组步骤的中间清单,这些步骤将对目标计算机系统160的各部件执行。
联合操作的结果是一个步骤清单,这些步骤将对列出在图3B系统描述符记录上的处理器、硬驱、监视器和软件执行。然后系统部件表112和部件步骤表114的联合结果将与含有种类X的所有步骤的系统步骤序列表106相联合。这个联合操作的结果是以序列号和阶段号的形式表现的排序信息,其中在一个特定的阶段内各序列号是特有的。这样,系统部件表112、部件步骤表114和系统步骤序列表106这三个表的联合为在目标计算机160上安装和/或测试软件产生了一些适当的软件安装和测试步骤以及形式为一些序列号和阶段号的排序信息。
如果第一个联合操作(系统部件表112和部件步骤表114的联合)的结果是一个空组,则因为空组意味着准备含在目标系统中的某个部件不属于列在系统描述符记录中的种类,于是将示出一个出错情况。下面说明这方面的一个例子。假定一个系统描述符记录正确地指明了某一目标计算机系统属于Y种类。同时再假定该系统描述符记录又不正确地指明,一个只属于种类X的目标系统的硬驱(硬驱Z)要包含到种类Y的目标系统中。在此情况下,部件步骤表114含有与硬驱Z相对应的步骤。系统部件表112含有对应于种类Y的部件。于是部件步骤表114与系统部件表112的联合将产生一个空组,其原因是硬驱Z不是一个对应于种类Y的部件(实际上它仅仅对应于种类X)。从上述例子明显可以看出,该数据库的优选设计有利地使人们可以肯定:某一种类的目标系统只会含有适合于该种类的部件。
再次参见图5,当提取了关于准备包含在目标系统中的部件的步骤之后,在模块560中排序程序204将通过读出系统描述符记录和生成一个对应于准备包含在目标系统中的各部件的环境文件,为目标计算机系统准备好一些环境变量。例如,读出图3B中的系统描述符记录,并对应于系统描述符记录中的处理器硬件部件可能会准备出像“set cpu=pentium(把CPU(中央处理单元)设定为Pentium)”这样的环境变量。
在图5的模块570中,由上述“三表联合”所提取的多个软件安装和测试步骤被按预定的次序排序。这个排序是根据用来提供步骤序列的各个序列号和阶段号来进行的。排序本身是利用本技术领域熟知的许多分类算法中的任一种算法来完成的。
在模块580中,排序程序204输出一些文件。如前所述,在图1的实施例中这些输出文件最好以6个分开的文件的形式写入到步骤盘150(见图1)上。这些文件是:(1)步骤文件,(2)Setenv.bat文件,(3)Qt.txt文件,(4)Et.txt文件,(5)Etlast.txt文件,和(6)Ft.txt文件。希望步骤文件是一个ASCII文本文件。在一个优选实施例中,步骤文件还含有一些可能是循环性的命令。较具体地说,步骤文件允许命令有确定的次数的重复或迭代,或者允许命令在一个确定的时间长度内重复或迭代。Setenv.bat文件对目标计算机系统设定一些环境变量。步骤文件含有准备分别在目标计算机系统的快速测试(Qt)、扩展测试1(Et)、扩展测试2(Etlast)、和最后测试(Ft)等各制造阶段执行的步骤。另一方面,在图2的实施例中,输出文件不写入到图1的步骤盘上。反之,输出文件将驻留在文件服务器202或文件服务器190上,在那里它们可用来指导目标计算机系统160上的软件安装和测试步骤的执行。
再次回到图1和2,箭头130表示可以对数据库100进行修改。例如,如果出现了计算机系统的一个新种类,则人们可以相应地修改数据库100。较具体地说,在系统种类表104的系统ID中指定一个新种类的识别符,对系统种类表104的名称属性为该新种类指定一个名称。给系统步骤序列表106添加一个软件安装步骤和测试步骤的清单,这些步骤代表着在新种类的计算机系统上需要运行些什么步骤和以怎样的预定次序运行。如果新的计算机系统种类与已有的种类共有一些相似性,则有可能通过对系统步骤序列表106中的已有种类的条目进行修改而产生新种类的一些条目。如果有必要为新的计算机系统种类生成任何新的步骤,则这些步骤应添加到步骤表102中。类似地,如果新的计算机系统种类伴随有任何新的部件,则这些部件应添加到部件表108中。部件步骤表114也应被更新以使新种类计算机系统的每个部件都与对应于该系统的软件安装和测试的步骤联系起来。如果新种类仅仅使用数据库中已有的部件,则这个表不需修改。系统部件表112也要更新,使得可以含在新种类中的各种部件的清单都出现在数据库中。特别地,有可能需要把新计算机系统的系统ID与每个允许部件的部件ID相联系。同样,这也可能可以通过对一个原有计算机系统种类的已有条目进行拷贝和修改来完成。
应该指出,在根据本优选实施例构筑数据库时,存在着某些重大的优点。特别地,数据库的模块式设计有利于容易地为新计算机系统种类设定软件安装和测试步骤。此外,可以单独地修改关于某一特定计算机系统种类或某一特定部件的软件安装和测试步骤,而不会影响其他的软件安装和测试步骤。
图7示出如何能够通过对一个系统描述符记录和一个步骤序列进行修补而实现对根据本发明的软件安装和测试处理的模块式修改。在模块600中,生成一个系统描述符记录。在模块610中,利用对系统描述符记录的修补来修改该系统描述符记录。在本优选实施例中,这种修补是模块式的,使得修补可以对某一指定的目标计算机系统、对计算机系统的某一特定种类、或者对某一特定的部件进行。例如,如果某一天制造商希望对某一计算机系统种类用一种牌号的硬驱来替换另一种牌号的硬驱,则可以在模块610中进行这样一个修补,它将修改所有含有待替换硬驱的系统描述符记录并完成替换。在模块620中,如前简述地那样确定一个步骤序列。在模块630中,利用对步骤序列的修补来修改该步骤序列。在本优选实施例中,这种修补是模块式的,使得修补可以对某一指定的目标计算机系统、对计算机系统的某一特定种类、或者对某一特定的部件进行。例如,如果某一天制造商希望关于某一部件的某个测试步骤先于另一步骤执行,则可以形成这样一种修补,它将修改所有含有要修改次序步骤的步骤序列,并在模块640中相应地改变执行次序。
现在把注意力转向对目标系统160执行步骤序列。利用一个能读出、解释(interpret)和执行对应于目标计算机系统160的步骤序列的程序,对目标计算机系统执行软件安装和测试步骤。在本优选实施例中,这个程序叫做Runstep(运行步骤),在图1的实施例中它位在步骤盘150上,在图2的实施例中它位在文件服务器202上。
图8示出在执行任何软件安装和测试步骤之前含在步骤文件中的一个步骤序列的一部分。如前所述,步骤序列含有一些用于对定制目标计算机系统安装软件和/或测试的命令。而且,步骤文件中的步骤序列允许命令重复执行确定次数的迭代或确定的时间长度。还有,步骤文件可以含有附注,Runstep程序将不理会这些附注。在本步骤文件中,记号800用来分离步骤序列的各个场。项810是用于测试目标计算机系统160的一些命令。这些命令例如包括用来测试存储器的命令(memtest)(810a)和测试小计算机系统接口(SCSI)装置的命令(scsitest)(810b)。从图可以看出,每个命令都可以含有适用于特定测试环境的开关,例如“-0”。项820是一个不被Runstep程序理会的附注。项810c是一个按时间循环的命令。在本优选结构中,“begin-time-loop(开始—时间—循环)”指令指明一个循环的开始点。“end-time-loop(结束—时间—循环)”指令指明一个循环的结束点。“begin-time-loop”指令结合有一个场,这个场指明循环迭代的时间长度。例如,这里的命令810c将运行1小时30分钟。项810d是一个根据重复次数的循环命令(SCSI光驱测试)。在本优选实施例中,“begin-iterate-loop(开始—重复—循环)”命令告诉Runstep程序将执行一个重复循环。“end-iterate-loop(结束—重复—循环)”命令指明该循环命令的结束。这里,命令810d将运行三次。
当Runstep程序执行步骤序列时,它将把时间标记信息设置到步骤文件中,这将有利于对软件安装和测试处理的容易的找错和跟踪。
图9示出执行了各步骤之后的图8步骤序列的一部分。如图所示,Runstep程序把一些时间标记信息插入到了步骤序列中。项830示出存储器测试开始于何时,项832示出该测试结束于何时。项834示出测试的最后一次重复开始于何时。项836和838分别示出scsi HD(SCSI硬驱)测试何时开始和何时结束。项840确认该重复循环已进行了三次。最后,项842和844分别示出scsi CD(SCSI光驱)测试的最后一次重复于何时开始和何时结束。在已执行命令的附近插入时间标记信息有利于对软件安装和测试处理的有效找错和跟踪。
图10示出Runstep程序的优选总体流程图。Runstep程序860与一个Runstep(运行步骤)批文件870一起以循环方式运行。Runstep程序860从一个步骤序列中读出和解释一个步骤并把来自步骤序列的准备要运行的命令写入到批文件870。然后运行批文件870,对目标计算机系统160执行该步骤。完成了一个步骤之后,控制从批文件返回到Runstep程序860,然后后者读出和解释步骤序列的下一行。
图11示出Runstep程序的较详细的流程图。如模块900所示,Runstep程序首先检查是否存在一个名称为Re-Run.bat(再运行.批)的文件。Re-Run.bat文件在根据步骤序列执行任一个命令之前生成,并在成功地完成了该命令之后被删除。Re-Run.bat的存在向处于模块900的Runstep程序表明尚未成功地完成前一命令的运行。所以Re-Run.bat起着一种执行开始指示的作用。如果确实存在Re-Run.bat,则在模块904中将询问操作者是否还要继续该软件安装和测试处理还是想要进行找错。如果操作者选择继续处理,则控制转移到执行模块928,重新执行Runstep.bat文件。(如果没有作出肯定的选择,则这一情况为缺省选择)。如果选择了找错,则像本技术领域所熟知的那样进行找错。
如果不存在Re-Run.bat,则Runstep程序可以肯定前一命令已正确地完成,于是,控制前进到模块910,在那里读出最好是含在步骤文件中的步骤序列的一个行。读出一行后Runstep程序在模块912中判断是否存在有一个开始或结束时间标记。如果存在有开始或结束时间标记,则Runstep程序在模块914中判断刚读出的这个行是否只有开始时间标记。如果只有开始时间标记,则Runstep程序在模块916中假定一个软件安装或测试步骤刚刚结束,并在模块918中填入一个结束时间标记。填入了结束时间标记后,控制返回到模块900。
如果在Runstep程序所读出的那一行中不仅只有一个开始时间标记,则Runstep程序在模块906中判断是否既有开始又有结束时间标记。如果是这样,则Runstep程序将在模块908中假定该步骤已被执行,于是控制返回到模块900。如果Runstep程序在模块912处遇到既无开始又无结束时间标记的情况,则Runstep程序在模块920中填入开始时间标记,并准备运行它刚读出的步骤序列那一行上的步骤。
在模块922中,Runstep程序判断准备运行的命令是否存储在当地驱动器上(步骤文件控制着系统中哪个驱动器是当地驱动器)。当地驱动器例如可以是步骤盘,目标系统的硬驱,目标系统的RAM(随机存取存储器)驱动器,或者网络驱动器。如果命令不位在当地驱动器上,则Runstep程序将假定准备运行的测试含在网络某处的一个文件服务器上。在模块932中Runstep程序判断它自身是否已连接到该网络上。如果没有,则Runstep程序将在模块936中把一个向该网络登录的命令植入到Runstep.bat中。因此,在Runstep.bat通过网络连接180对目标计算机系统160执行该步骤之前就进行了网络连接。
在模块936之后,控制进入到模块926。如果Runstep程序已经登录到网络上,则由于若已存在有网络连接就不再需要另外的登录步骤,Runstep程序将在模块934中从Runstep.bat内删去向网络登录的命令。然后再是控制进入模块926。如果准备运行的步骤恰好在步骤盘150上,则Runstep程序不需要向网络登录。所以Runstep程序在模块924中从Runstep.bat内删去向网络登录的命令。然后再是控制时入模块926。在模块926中,Runstep程序把准备运行的适当的命令植入到Runstep.bat和Re-Run.bat中。这样植入的命令是从最好是含在步骤文件中的步骤序列取得的。在模块928中,通过运行Runstep.bat执行该步骤,并且如果执行成功,则删去Re-Run.bat。如果该步骤没有执行成功,则不删除Re-Run.bat,并且控制转移到失败状态929。然后控制返回到模块900,使得能够从步骤序列读出另一行。这个处理不断进行直到完成所有的软件安装和测试步骤。
执行了步骤序列之后,目标系统就经过了测试,并且软件被安装上了。在图1的实施例中,某一选定数目的测试可以直接根据步骤盘150运行,但大多数测试还是通过网络连接180根据文件服务器190来运行的。根据文件服务器190运行测试有利地消除了由步骤盘150这样的软盘的存储容量所造成的限制。
在图2的实施例中,各步骤是通过网络连接180根据文件服务器190来运行的。只需要有一个软盘,这里是支持盘220,来支持目标计算机系统160。这样的系统有利地简化了软件安装和测试处理。
再次返回到图1和2,箭头210表示软件安装和测试的结果可以回录到文件服务器190或文件服务器202上。这些结果最好包括是否所有的步骤都成功地完成了,以及遇到了什么类型的失败(如果有的话)。登录结果可以只是简单地保存或写入执行了步骤序列之后的步骤文件的修改形式,因为如前所述,这时步骤文件已被Runstep程序加上了时间标记。这样的系统有利地允许在计算机系统制造过程中改进找错能力。
虽然示出和说明了本发明的一些特定实施例,但对于熟悉本技术领域的人们来说,显然可以在不偏离本发明的广义特征的情况下做出各种改变和修改,因此,所附的权利要求将把所有落在本发明真正精神和范畴内的所有这种改变和修改包含在它们的范畴之内。

Claims (35)

1、一种为含有多个部件的计算机系统安装软件的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应于该计算机系统的一个相应部件,该方法包括:
访问步骤序列中的一个命令;
生成一个含有执行开始指示的文件;
执行该命令;以及
当完成命令的执行时删除含有执行开始指示的文件;以及
对多个步骤重复进行访问、生成、执行和删除操作。
2、根据权利要求1的方法,它还包括:
在访问步骤序列中的一个命令之前,判断是否存在含有执行开始指示的文件;以及
如果存在含有执行开始指示的文件,则判断是否出现出错情况。
3、根据权利要求2的方法,它还包括:
当出现出错情况时,询问操作者是否愿意继续进行软件安装;以及
当操作者愿意继续进行软件安装时,执行命令。
4、根据权利要求2的方法,它还包括:
当出现出错情况时,询问操作者是否愿意转移到找错操作模式;以及
当操作者愿意这样做时,转移到找错操作模式。
5、一种为含有多个部件的计算机系统安装软件的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应于该计算机系统的一个相应部件,该方法包括:
从步骤序列读出一个命令;
在计算机系统的当地驱动器中搜索该命令;
如果该命令存储在计算机系统的当地驱动器上,则执行来自该当地驱动器的命令;
如果该命令没有存储在计算机系统的当地驱动器上,则执行来自一个服务器的命令。
6、根据权利要求5的方法,它还包括:
判断该计算机系统是否已登录到一个网络上;以及
如果该计算机系统尚未登录到网络上,则把它登录到网络上。
7、根据权利要求6的方法,它还包括:
如果该命令位在一个连接在与该计算机系统有通信联系的网络上的文件服务器上,则在一个批文件中植入一些向网络登录的登录指令;
把命令植入到该批文件中;
运行该批文件以在该计算机系统上执行命令。
8、根据权利要求6的方法,其中步骤序列中的一个步骤是向网络登录的命令;并且它还包括:
如果该计算机系统已登录到网络上,则从步骤序列中删除该向网络登录的命令。
9、一种为含有多个部件的计算机系统安装软件的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应于该计算机系统的一个相应部件,该方法包括:
从步骤序列读出一个第一命令;
如果该第一命令位在一个连接在与该计算机系统有通信联系的网络上的文件服务器上,则把一些向网络登录的登录指令植入到第一和第二批文件中;
如果该第一命令位在该目标系统的一个当地驱动器上,则从第一和第二批文件中删除网络登录指令;
把该第一命令植入到第一和第二批文件中;
运行第一批文件以在该计算机系统上执行该第一命令;
当成功地完成该第一命令时,删除第二批文件;
如果已删除了第二批文件,则从步骤序列读出一个第二命令。
10、一种为含有多个部件的计算机系统安装软件的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应于该计算机系统的一个相应部件,该方法包括:
从步骤序列读出一个命令;
在该计算机系统上执行该命令;
生成一个指明该命令于何时开始执行的开始时间标记;以及
生成一个指明该命令于何时结束执行的结束时间标记。
11、根据权利要求10的方法,其中该命令重复地执行确定的时间长度。
12、根据权利要求11的方法,其中开始和结束时间标记分别指明该命令最后一次重复的执行于何时开始和结束。
13、根据权利要求10的方法,其中该命令重复地执行确定的次数。
14、根据权利要求13的方法,其中开始和结束时间标记分别指明该命令最后一次重复的执行于何时开始和结束。
15、根据权利要求10的方法,其中开始和结束时间标记被写入到步骤序列中该命令的附近。
16、根据权利要求10的方法,其中该命令位在该计算机系统的一个软盘上。
17、根据利要求10的方法,其中该命令位在一个与该计算机系统有通信联系的文件服务器上。
18、一种为含有多个部件的计算机系统进行软件测试的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应该计算机系统的一个相应部件,该方法包括:
访问步骤序列中的一个命令;
生成一个含有开始执行指示的文件;
执行该命令;以及
当完成命令的执行时,删除该含有开始执行指示的文件;以及
对该多个步骤重复访问、生成、执行和删除操作。
19、根据权利要求18的方法,它还包括:
在访问步骤序列中的一个命令之前,判断是否已经存在该含有开始执行指示的文件;以及
如果该含有开始执行指示的文件已经存在,则判定出现了出错情况。
20、根据权利要求19的方法,它还包括:
当出现该出错情况时,询问操作者是否愿意继续进行软件测试;以及
如果操作者愿意继续进行软件测试,则执行命令。
21、根据权利要求19的方法,它还包括:
当出现该出错情况时,询问操作者是否愿意转移到找错操作模式;以及
如果操作者愿意这样做,则转移到找错操作模式。
22、一种为含有多个部件的计算机系统进行软件测试的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应该计算机系统的一个相应部件,该方法包括:
从步骤序列读出一个命令;
在该计算机系统的一个当地驱动器上搜索该命令;
如果该命令存储在该计算机系统的当地驱动器上,则执行来自该当地驱动器的该命令;
如果该命令没有存储在该计算机系统的当地驱动器上,则执行来自一个服务器的该命令。
23、根据权利要求22的方法,它还包括:
判断该计算机系统是否已登录到一个网络上;以及
如果该计算机系统没有登录到网络上,则将它登录到网络上。
24、根据权利要求23的方法,它还包括:
如果该命令位在一个连接在与该计算机系统有通信联系的网络上的文件服务器上,则把向该网络登录的一些登录指令植入到一个批文件中;
把该命令植入到该批文件中;
运行该批文件以在该计算机系统上执行该命令。
25、根据权利要求23的方法,其中步骤序列中的一个步骤是一个向网络登录的命令;并且该方法还包括:
如果该计算机系统已登录到网络上,则从步骤序列中删去该向网络登录的命令。
26、一种为含有多个部件的计算机系统进行软件测试的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应该计算机系统的一个相应部件,该方法包括:
从步骤序列中读出一个第一命令;
如果该第一命令位在一个连接在与该计算机系统有通信联系的网络上的文件服务器上,则把一些向该网络登录的登录指令植入到第一和第二批文件中;
如果该第一命令位在该目标系统的一个当地驱动器上,则从第一和第二批文件中删除这些网络登录指令;
把该第一命令植入到第一和第二批文件中;
运行第一批文件以在该计算机系统上执行第一命令;
成功完成了第一命令后,删除第二批文件;
如果第二批文件已被删除,则从步骤序列读出一个第二命令。
27、一种为含有多个部件的计算机系统进行软件测试的方法,该计算机系统有一个相关的步骤序列,该步骤序列含有多个步骤,每个步骤都至少含有一个命令,一个步骤与一个相应的部件描述符相联系,一个部件描述符对应该计算机系统的一个相应部件,该方法包括:
从步骤序列读出一个命令;
在该计算机系统上执行该命令;
生成一个指明该命令于何时开始执行的开始时间标记;以及
生成一个指明该命令于何时结束执行的结束时间标记。
28、根据权利要求27的方法,其中该命令重复执行确定的时间长度。
29、根据权利要求28的方法,其中开始和结束时间标记分别指明该命令最后一次重复的执行于何时开始和结束。
30、根据权利要求27的方法,其中该命令重复执行确定的次数。
31、根据权利要求30的方法,其中开始和结束时间标记分别指明该命令最后一次重复的执行于何时开始和结束。
32、根据权利要求27的方法,其中开始和结束时间标记被写入到步骤序列中该命令的附近。
33、根据权利要求27的方法,其中该命令位在该计算机系统的一个当地驱动器上。
34、根据权利要求27的方法,其中该命令位在一个与该计算机系统有通信联系的文件服务器上。
35、一种计算机系统,它包括:
一个处理器;
一个与该处理器相耦合的部件;以及
一个与该处理器相耦合的存储器,该存储器含有安装在其上的软件,该软件是这样被安装的:
访问一个含有多个步骤的步骤序列中的一个软件安装命令;
生成一个含有开始执行指示的文件;
执行该命令;以及
当该命令完成执行后,删除该含有开始执行指示的文件;以及
对该多个步骤重复访问、生成、执行和删除处理。
CNB981176542A 1997-08-29 1998-08-28 用于定制计算机系统的软件安装、测试方法及系统 Expired - Lifetime CN1142490C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/920,773 1997-08-29
US08/920,773 US5991543A (en) 1997-08-29 1997-08-29 Software installation and testing for a build-to-order computer system

Publications (2)

Publication Number Publication Date
CN1221147A CN1221147A (zh) 1999-06-30
CN1142490C true CN1142490C (zh) 2004-03-17

Family

ID=25444370

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB981176542A Expired - Lifetime CN1142490C (zh) 1997-08-29 1998-08-28 用于定制计算机系统的软件安装、测试方法及系统

Country Status (12)

Country Link
US (1) US5991543A (zh)
JP (1) JPH11161477A (zh)
KR (1) KR100513551B1 (zh)
CN (1) CN1142490C (zh)
AU (1) AU756135B2 (zh)
BR (1) BR9802224A (zh)
DE (1) DE19836333C2 (zh)
FR (1) FR2767945B1 (zh)
GB (1) GB2329051B (zh)
IT (1) IT1303244B1 (zh)
MY (1) MY114954A (zh)
TW (1) TW389873B (zh)

Families Citing this family (107)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038597A (en) * 1998-01-20 2000-03-14 Dell U.S.A., L.P. Method and apparatus for providing and accessing data at an internet site
US6182275B1 (en) * 1998-01-26 2001-01-30 Dell Usa, L.P. Generation of a compatible order for a computer system
US6615406B1 (en) 1998-04-08 2003-09-02 Dell Usa, L.P. Apparatus for use in the manufacture of a computer system
US6327706B1 (en) * 1998-04-08 2001-12-04 Dell Usa, L.P. Method of installing software on and/or testing a computer system
US6279156B1 (en) * 1999-01-26 2001-08-21 Dell Usa, L.P. Method of installing software on and/or testing a computer system
US6735625B1 (en) 1998-05-29 2004-05-11 Cisco Technology, Inc. System and method for automatically determining whether a product is compatible with a physical device in a network
US6690984B1 (en) 1998-06-04 2004-02-10 Gateway, Inc. System and method for assembly integration
US6859924B1 (en) 1998-06-04 2005-02-22 Gateway, Inc. System restore apparatus and method employing virtual restore disk
US6795814B1 (en) * 1998-06-04 2004-09-21 Gateway, Inc. System and method for CMOS integration
US6922831B1 (en) * 1998-06-04 2005-07-26 Gateway Inc. Method and system for providing software utilizing a restore medium and a network
US6735757B1 (en) 1998-06-04 2004-05-11 Gateway, Inc. Apparatus and method for checking component compatibility in a build to order computer system
US6775829B1 (en) 1998-06-04 2004-08-10 Gateway, Inc. Method for configuring software for a build to order system
US6167568A (en) * 1998-06-30 2000-12-26 Sun Microsystems, Inc. Method and apparatus for implementing electronic software distribution
US6282594B1 (en) * 1998-10-15 2001-08-28 Dell Usa, L.P. Pallet, system and method for use in testing and/or installing software onto a personal computer system unit
US6507870B1 (en) * 1998-12-31 2003-01-14 Qwest Communications International Inc. xDSL web ordering tool
US6347371B1 (en) * 1999-01-25 2002-02-12 Dell Usa, L.P. System and method for initiating operation of a computer system
US6370641B1 (en) * 1999-01-26 2002-04-09 Dell Usa, L.P. Method and apparatus for determining the drive letter assignment of a CD-ROM drive during initial system setup of a computer system
US6928644B1 (en) 1999-04-13 2005-08-09 Gateway Inc. Method for configuring software for a build to order system
US6421671B1 (en) 1999-04-30 2002-07-16 Dell Products L.P. Method and system for automated distribution of software
DE19922767A1 (de) * 1999-05-18 2000-12-07 Dell Usa Lp Verfahren zum Installieren von Software und/oder zum Testen eines Computersystems
DE19922768A1 (de) * 1999-05-18 2000-12-07 Dell Usa Lp Verfahren zum Installieren von Software und/oder zum Testen eines Computersystems
DE19922766A1 (de) * 1999-05-18 2000-12-07 Dell Usa Lp Vorrichtung zur Verwendung bei der Herstellung eines Computersystems
US8046270B2 (en) 2000-05-19 2011-10-25 Eastman Kodak Company System and method for providing image products and/or services
US6836617B1 (en) 2000-03-24 2004-12-28 Eastman Kodak Company Purchasing configured photographic film products
US7111317B1 (en) * 2000-03-24 2006-09-19 Eastman Kodak Company Method for providing image goods and/or services to a customer
US7587337B1 (en) 2000-03-24 2009-09-08 Eastman Kodak Company Leasing configured camera system
US6937997B1 (en) 1999-06-02 2005-08-30 Eastman Kodak Company Configuring and purchasing imaging devices
US6606716B1 (en) 1999-10-06 2003-08-12 Dell Usa, L.P. Method and system for automated technical support for computers
US6560726B1 (en) 1999-08-19 2003-05-06 Dell Usa, L.P. Method and system for automated technical support for computers
US6760708B1 (en) 1999-08-19 2004-07-06 Dell Products L.P. Method and system for migrating stored data to a build-to-order computing system
US6535915B1 (en) * 1999-09-24 2003-03-18 Dell Usa, L.P. Automatic reduction of data noise in installation packages for a computer system
US6556431B1 (en) 1999-10-06 2003-04-29 Dell Usa, L.P. System and method for converting alternating current into direct current
US6564220B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for monitoring support activity
US6574615B1 (en) 1999-10-06 2003-06-03 Dell Usa, L.P. System and method for monitoring support activity
US6563698B1 (en) 1999-10-06 2003-05-13 Dell Usa, L.P. System and method for providing a computer system with a detachable component
US6317316B1 (en) 1999-10-06 2001-11-13 Dell Usa, L.P. Method and system for integrated personal computer components
US6598223B1 (en) * 1999-10-06 2003-07-22 Dell Usa, L.P. Method and system for installing and testing build-to-order components in a defined configuration computer system
US6539499B1 (en) 1999-10-06 2003-03-25 Dell Usa, L.P. Graphical interface, method, and system for the provision of diagnostic and support services in a computer system
US6668375B1 (en) * 1999-12-15 2003-12-23 Pitney Bowes Inc. Method and system for providing build-to-order software applications
US7424444B1 (en) 1999-12-20 2008-09-09 Dell Usa, L.P. Apparatus and method for configuring computers
US6711798B2 (en) 2000-01-18 2004-03-30 Dell Products L.P. Method for manufacturing products according to customer orders
US6892104B2 (en) 2000-01-18 2005-05-10 Dell Products L.P. System and method for manufacturing products according to customer orders
US6631606B2 (en) 2000-01-18 2003-10-14 Dell Products L.P. System and method for accommodating atypical customer requirements in a mass customization manufacturing facility
US7231359B2 (en) * 2000-03-24 2007-06-12 Eastman Kodak Company Configuring image storage devices to enable imaging services
US6691253B1 (en) 2000-05-10 2004-02-10 Dell Usa L.P. System and method for sequencing and performing very high speed software downloads concurrent with system testing in an automated production environment
US6658652B1 (en) 2000-06-08 2003-12-02 International Business Machines Corporation Method and system for shadow heap memory leak detection and other heap analysis in an object-oriented environment during real-time trace processing
US7389497B1 (en) * 2000-07-06 2008-06-17 International Business Machines Corporation Method and system for tracing profiling information using per thread metric variables with reused kernel threads
US6735758B1 (en) 2000-07-06 2004-05-11 International Business Machines Corporation Method and system for SMP profiling using synchronized or nonsynchronized metric variables with support across multiple systems
US6904594B1 (en) 2000-07-06 2005-06-07 International Business Machines Corporation Method and system for apportioning changes in metric variables in an symmetric multiprocessor (SMP) environment
US6662359B1 (en) 2000-07-20 2003-12-09 International Business Machines Corporation System and method for injecting hooks into Java classes to handle exception and finalization processing
US6742178B1 (en) 2000-07-20 2004-05-25 International Business Machines Corporation System and method for instrumenting application class files with correlation information to the instrumentation
US7240336B1 (en) * 2000-07-25 2007-07-03 Sci Systems, Inc. Interpretive simulation of software download process
US6785805B1 (en) 2000-08-08 2004-08-31 Vi Technology, Inc. Network-based configuration method for systems integration in test, measurement, and automation environments
US6938243B1 (en) * 2000-09-22 2005-08-30 Dell Products L.P. Diagnostic architecture for use with an interface between an operating system and platform firmware
US6487522B1 (en) * 2000-11-01 2002-11-26 Dell Products, L.P. System and method for selectively executing a computer program based on the presence of associated hardware
US6694206B2 (en) 2001-01-25 2004-02-17 Dell Products L.P. Method and system for manufacturing and servicing a computing product with the assistance of a wireless communication subsystem attached to a peripheral port
US6567714B2 (en) * 2001-01-26 2003-05-20 Dell Products L.P. Method and system for manufacturing a computer system with the assistance of a wireless information network
US7191438B2 (en) * 2001-02-23 2007-03-13 Lenovo (Singapore) Pte, Ltd. Computer functional architecture and a locked down environment in a client-server architecture
US6853978B2 (en) * 2001-02-23 2005-02-08 Power Measurement Ltd. System and method for manufacturing and configuring intelligent electronic devices to order
US7085824B2 (en) 2001-02-23 2006-08-01 Power Measurement Ltd. Systems for in the field configuration of intelligent electronic devices
US6634506B2 (en) 2001-03-05 2003-10-21 Dell Products L.P. Reusable container management system and method
US6529797B2 (en) 2001-03-05 2003-03-04 Dell Products L.P. System and method for automatically releasing collections of goods for shipment
US6615092B2 (en) 2001-03-05 2003-09-02 Dell Products L.P. Method, system and facility for controlling resource allocation within a manufacturing environment
US6560509B2 (en) 2001-03-05 2003-05-06 Dell Products L.P. System and method for automated management of a distribution facility
US6816746B2 (en) 2001-03-05 2004-11-09 Dell Products L.P. Method and system for monitoring resources within a manufacturing environment
US6505094B2 (en) 2001-03-05 2003-01-07 Dell Products L.P. System and method for shipping items from a distribution facility
US6611727B2 (en) 2001-03-05 2003-08-26 Dell Products L.P. Method and system for simulating production within a manufacturing environment
US7146612B2 (en) * 2001-05-18 2006-12-05 Dell Products L.P. Method and system for receiving a software image from a customer for installation into a computer system
JP4134536B2 (ja) * 2001-07-27 2008-08-20 株式会社日立製作所 情報機器の取引方法
US20030055932A1 (en) * 2001-09-19 2003-03-20 Dell Products L.P. System and method for configuring a storage area network
US6993760B2 (en) * 2001-12-05 2006-01-31 Microsoft Corporation Installing software on a mobile computing device using the rollback and security features of a configuration manager
US20030233264A1 (en) * 2002-06-14 2003-12-18 Jones Kevin Thomas Manufacturing order scheduling and materials replenishment system
US20040117230A1 (en) * 2002-12-16 2004-06-17 Jones Kevin Thomas Recalculating planned requests
US20040162857A1 (en) * 2003-02-14 2004-08-19 Butts David A. System for managing and dynamically recreating factory environments
US7360211B2 (en) * 2003-06-30 2008-04-15 Dell Products L.P. System for automated generation of config to order software stacks
US20050049932A1 (en) * 2003-09-03 2005-03-03 Howell James A. Process for managing subscription service purchases
US20050055688A1 (en) * 2003-09-08 2005-03-10 Barajas Gaston M. Integrated rapid install system for generic software images
US20050066015A1 (en) * 2003-09-09 2005-03-24 Dandekar Shree A. Method and system for automated validation, scripting, dissemination and installation of software
US20050071270A1 (en) * 2003-09-26 2005-03-31 Ramirez Christopher W. Process for remote recovery and creation of machine specific authentication keys for systems
US20050125524A1 (en) * 2003-12-08 2005-06-09 Chandrasekhar Babu K. Cache system in factory server for software dissemination
US20050172284A1 (en) * 2004-01-30 2005-08-04 Dandekar Shree A. Method and system for automated generation of customized factory installable software
US20050228678A1 (en) * 2004-04-07 2005-10-13 Howell James A Jr Proactive after point of sale qualified subscription product presentation
TW200535602A (en) * 2004-04-16 2005-11-01 Hon Hai Prec Ind Co Ltd A system and method for testing motherboards automatically
US20050267815A1 (en) * 2004-06-01 2005-12-01 Howell James A Jr Customized support experiences based on POS choices
US20060074761A1 (en) * 2004-09-21 2006-04-06 Dandekar Shree A Tracking after point of sale (APOS) related sales for peripherals
US20060122894A1 (en) * 2004-12-03 2006-06-08 Mcgary Jon User configured order status updates
US7271996B2 (en) 2004-12-03 2007-09-18 Electro Industries/Gauge Tech Current inputs interface for an electrical device
CN100349119C (zh) * 2004-12-30 2007-11-14 杭州华三通信技术有限公司 软件安装与集成的方法
US20060193462A1 (en) * 2005-02-28 2006-08-31 Gregg Hansen System for optimizing configurable information handling systems
US20060291645A1 (en) * 2005-06-08 2006-12-28 Vasu Mekala Needs based offer
US7623684B2 (en) * 2005-07-19 2009-11-24 Dell Products, L.P. System and method for information handling system software registration code management
US20070078721A1 (en) * 2005-09-07 2007-04-05 Dandekar Shree A Process of auto-renewing limited time software and services agreement
US8065204B2 (en) * 2005-09-29 2011-11-22 Sony Corporation System and method for software integration and factory deployment
KR100755697B1 (ko) * 2005-11-09 2007-09-05 삼성전자주식회사 소프트웨어 설치 방법, 장치, 및 시스템
US7712094B2 (en) 2005-12-22 2010-05-04 Alan Joshua Shapiro Method and apparatus for replicating a panoplex onto a storage medium from a master
CN101390050B (zh) 2005-12-22 2018-04-24 艾伦·J·薛比洛 通过相减性安装达成选择性分配软件资源的装置与方法
US7308330B2 (en) * 2006-03-31 2007-12-11 Dell Products L.P. Dynamic order swapping in BTO environment
US20080059321A1 (en) * 2006-08-31 2008-03-06 Zucker Brian T Online Sales Method for Information Handling Systems and Related Peripherals
US7685413B2 (en) * 2006-11-01 2010-03-23 Dell Products L.P. Use driven configurator and system optimization
US8898659B2 (en) * 2006-11-21 2014-11-25 Dell Products L.P. Method and apparatus to customize and configure multiple operating systems on a server
US8332819B2 (en) * 2007-05-03 2012-12-11 Siemens Industry, Inc. Diagnostic and trouble-shooting methods in a wireless control and sensor network
US7660539B2 (en) * 2007-07-11 2010-02-09 Dell Products, L.P. Printer consumable ordering direct from printer
US8234629B2 (en) * 2007-07-31 2012-07-31 Dell Products L.P. Ready-to-use media center systems through custom preconfiguration
US20090217272A1 (en) * 2008-02-26 2009-08-27 Vita Bortnikov Method and Computer Program Product for Batch Processing
US20100005452A1 (en) * 2008-07-07 2010-01-07 Anson Douglas M Methods and systems for factory configuration of existing customer system settings
US10678645B2 (en) * 2017-11-09 2020-06-09 Bank Of America Corporation Dynamic rerouting of the execution for automated server builds
CN107767594A (zh) * 2017-11-09 2018-03-06 福州汇思博信息技术有限公司 一种预安装软件的检测方法及系统

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5142680A (en) * 1989-04-26 1992-08-25 Sun Microsystems, Inc. Method for loading an operating system through a network
JPH0820975B2 (ja) * 1990-03-29 1996-03-04 インターナショナル・ビジネス・マシーンズ・コーポレイション コンピュータシステムおよびコンピュータ上で実行されるトレース方法
US5291585A (en) * 1991-07-29 1994-03-01 Dell Usa, L.P. Computer system having system feature extension software containing a self-describing feature table for accessing I/O devices according to machine-independent format
US5715463A (en) * 1992-03-31 1998-02-03 International Business Machines Corporation Installation utility for device drivers and utility programs
EP0592079A2 (en) * 1992-09-20 1994-04-13 Sun Microsystems, Inc. Automated software installation and operating environment configuration on a computer system
US5432941A (en) * 1992-10-13 1995-07-11 Microsoft Corporation Method and system for dynamically configuring a software system using configuration groups
US5463766A (en) * 1993-03-22 1995-10-31 Dell Usa, L.P. System and method for loading diagnostics routines from disk
BR9402027A (pt) * 1993-05-28 1994-12-13 Xerox Corp Processo para gerenciar uma configuração e assegurar compatibilidade entre componentes num sistema de computação, e, processo para eliminar incompatibilidades entre software residente e software de migração num sistema de computador automatizado
JP3386232B2 (ja) * 1994-07-15 2003-03-17 富士通株式会社 テスト計算機システム
JPH0887460A (ja) * 1994-09-19 1996-04-02 Seiko Epson Corp インストールシステム
US5842024A (en) * 1995-02-27 1998-11-24 Ast Research, Inc. Method of software installation
US5742829A (en) * 1995-03-10 1998-04-21 Microsoft Corporation Automatic software installation on heterogeneous networked client computer systems
US5745568A (en) * 1995-09-15 1998-04-28 Dell Usa, L.P. Method of securing CD-ROM data for retrieval by one machine
GB2309104B (en) * 1996-01-11 2000-06-07 Ibm Preloading software onto a computer system
US5835777A (en) * 1996-03-20 1998-11-10 Hewlett-Packard Company Method of automatically generating a software installation package
US5828887A (en) * 1996-05-23 1998-10-27 Electronic Data Systems Corporation Network based program loader system and method of operation
US5826090A (en) * 1997-03-17 1998-10-20 International Business Machines Corporation Loadable hardware support

Also Published As

Publication number Publication date
AU8089698A (en) 1999-03-11
TW389873B (en) 2000-05-11
DE19836333C2 (de) 2003-07-10
KR100513551B1 (ko) 2005-12-16
GB2329051A (en) 1999-03-10
MY114954A (en) 2003-02-28
CN1221147A (zh) 1999-06-30
IE980484A1 (en) 1999-03-10
KR19990023213A (ko) 1999-03-25
JPH11161477A (ja) 1999-06-18
BR9802224A (pt) 2000-09-12
AU756135B2 (en) 2003-01-02
US5991543A (en) 1999-11-23
GB2329051B (en) 2003-02-19
ITTO980720A1 (it) 2000-02-21
ITTO980720A0 (it) 1998-08-21
GB9816127D0 (en) 1998-09-23
FR2767945A1 (fr) 1999-03-05
GB2329051A8 (en) 1999-04-16
DE19836333A1 (de) 1999-03-04
IT1303244B1 (it) 2000-11-02
FR2767945B1 (fr) 2003-03-28

Similar Documents

Publication Publication Date Title
CN1142490C (zh) 用于定制计算机系统的软件安装、测试方法及系统
CN1148655C (zh) 用于实施定制计算机系统的软件安装和测试的系统设备及方法
CN1170222C (zh) 用于定制的计算机系统的软件安装、测试方法及系统
CN1245692C (zh) 确定计算机系统配置的方法和生成计算机系统订单的系统
US6182245B1 (en) Software test case client/server system and method
US8881131B2 (en) Method and apparatus for populating a software catalogue with software knowledge gathering
US6757893B1 (en) Version control system for software code
JP4129819B2 (ja) データベース検索システム及びその検索方法並びにプログラム
CN1691679A (zh) 用于异类系统配置的方法
CN1541348A (zh) 实验管理系统、方法与介质
CN1647038A (zh) 软件分发方法与系统
CN100518192C (zh) 创建轻量目录访问协议数据交换格式片段的方法与计算机
US20040148601A1 (en) Method and system for calculation and use of a disk image identifer
CN112035357A (zh) 智能测试方法、装置、设备及存储介质
CN1734458A (zh) 电子设备建模的方法和系统
EP1454266A2 (en) Preparing associated files for storage in a server
CN1848083A (zh) 一般软件要求分析器
CN1622312A (zh) 一种验证芯片硬件行为与软件模拟行为的一致性的方法
CN111488313B (zh) 基于Tribon的模型名称的批处理方法和系统
US7930625B2 (en) Method and system for designing and implementing shapes in a software module
EP1746501A1 (en) Method and apparatus for populating a software catalogue with software knowledge gathering
CN115203057B (zh) 低代码测试自动化方法、装置、设备及存储介质
CN113806304B (zh) 一种获取软件文件路径的方法及系统
CN1281182A (zh) 在计算机系统上安装软件和对其进行测试的方法
US7739654B2 (en) Model curation for integrated circuit designs

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
CX01 Expiry of patent term
CX01 Expiry of patent term

Granted publication date: 20040317