专利名称::测试电子装置的制作方法测试电子装置
背景技术:
:电子装置通常包含源自于多个供应商的各种硬件组件和软件组件。如果电子装置出现问题,则可在硬件组件或软件组件中的每一个上运行诊断测试,以确定哪个组件可能是原因。在一些情况下,可能期望这些组件的供应商每个控制测试处理的不同方面。然而,允许在多方之间进行协作的测试系统可能涉及在它们之间共享专有信息。在附图中,相同的标号指代相同的组件或块。以下详细描述参照附图,其中图I是示出计算系统的一个示例的框图。图2是示出用于在两个可执行文件(executable)之间通信的协议的一个示例的框图。·图3是示出用于测试电子装置的方法的一个示例的流程图。图4是示出用于测试与电子装置相关的视频卡的方法的一个示例的框图。具体实施例方式电子装置通常由许多硬件和软件组件组成。当电子装置出现问题时,诊断测试系统可测试电子装置的各个组件以确定其原因。在一些情况下,可能期望允许一个计算机程序控制测试的某些方面(诸如测试何时运行以及测试结果如何显示)并且允许另一计算机程序控制测试的其他方面(诸如测试本身的实现细节)。如果由单独的各方售卖所述组件,则这样的诊断测试系统可能涉及在所述单独的各方之间共享专有信息。例如,售卖在个人计算机中使用的图形控制器的公司可能不愿意与个人计算机的卖方共享与其诊断测试相关的特定细节,但是个人计算机的卖方可能想要对在其计算机上运行的测试施加某种水平的控制。此外,现有的诊断测试系统在一些情况下涉及准备电子装置以进行测试,例如通过在测试之前引导操作系统或者安装在测试中使用的特定驱动程序。在一个实施例中,一种用于测试电子装置的方法允许第三方运行针对测试电子装置的可执行文件。例如,可在各方之间共享针对测试电子装置的可执行文件而非计算机代码本身,使得专有信息不被揭露。操作系统被引导之前的计算环境可以是单线程的环境,其中,两个应用可执行文件通常能够在彼此之间进行单向通信,使得一个应用可向另一应用发送通信,但反之不可。在一个实施例中,测试可执行文件被编译为驱动程序,使得它可从另一可执行文件接收通信并且可将通信发送给另一可执行文件。例如,针对一个或多个测试的管理的管理可执行文件可加载测试可执行文件,并向所述测试可执行文件发送通信,例如,用信号通知测试可执行文件启动对电子装置的测试的通信。测试可执行文件可起动对电子装置的测试并将关于测试结果的信息传递回至管理可执行文件,以便管理可执行文件准备对用户进行显示。在一个实施例中,用于测试电子装置的方法独立于操作系统。诸如统一可扩展固件接口(UEFI)协议的协议可被用于在操作系统的引导之前允许在两个可执行文件之间进行双向通信。统一可扩展固件接口协议是在许多计算机基本输入/输出系统(BIOS)中使用的用于在电子装置的操作系统引导之前控制电子过程的协议。在一些情况下,由统一可扩展固件接口论坛来发布统一可扩展固件接口协议的规范。然而,它可扩展为包括另外的协议。在一个实施例中,两个可执行文件对用于在它们之间进行通信的协议方法以外的实现细节并不知情。诸如统一可扩展固件接口协议方法的协议方法可被用于在操作系统引导之前测试电子装置,而无需安装特殊的驱动程序或其他程序。用于测试电子装置的实施例具有优点。例如,具有单独的管理和测试可执行文件允许管理可执行文件控制如何显示测试结果而无需知道关于测试本身的专有信息。管理可执行文件可按照终端用户更容易理解的方式来格式化从测试可执行文件接收的信息,诸如测试的进度或测试成功。例如,管理可执行文件可针对用户的类型(诸如商业用户或个人用户)来调整输出。在操作系统引导之前使用协议方法测试电子装置允许测试即使在问题如此严重到操作系统无法引导的情况下也能够运行。此外,独立于操作系统的测试可在具有不同类型的操作系统的电子装置上运行。实施例的实际应用包括其中第三方希望控制诊断测试的环境。例如,个人计算机厂商可能想要创建合并来自计算机的不同组件的厂商的测试可执行文件的测试系统,即使所述厂商不愿意共享他们的专有信息。从第三方测试可执行文件接收测试结果可允许计算机厂商在提供昂贵的替换物之前查明问题的原因。此外,单独的管理和测试可执行文件可在测试信息不是专有的、但是期望将系统的测试方面与系统的终端用户部分分离的情况下使用,例如通过创建多个测试,其中按照一致的方式给用户显示结果。图I是示出计算系统100的一个示例的框图。计算系统100可包括电子装置102,所述电子装置102可以是任何合适的电子装置,诸如个人计算机或移动电话。电子装置102可被连接到显示由电子装置102产生的数据的显示装置126。显示装置126可以是任何合适的显示装置,例如,监视器。电子装置102可包括例如处理器104和机器可读存储介质106。处理器104可以是中央处理单元(CPU)、基于半导体的微处理器或适合于检索和执行存储在机器可读存储介质106中的指令的任何其他硬件装置。处理器104可获取、解码并执行指令。机器可读存储介质106可以是存储可执行指令或其他数据的任何电子、磁性、光学或其他物理存储装置(例如,硬盘驱动器、随机存取存储器、闪存等)。机器可读存储介质106可包括例如测试可执行文件108和管理可执行文件110。在一个实施例中,管理可执行文件110和测试可执行文件108能够进行双向通信,使得管理可执行文件110将信息发送给测试可执行文件108,以及测试可执行文件108将信息发送给管理可执行文件110。测试可执行文件108可包括启动测试指令112和发送执令114。测试可执行文件108例如可执行启动测试指令112来启动对电子装置102的测试。测试可执行文件108可执行发送指令114以将关于测试的信息(诸如测试的结果)发送给管理可执行文件110。在一个实施例中,测试可执行文件108被编译为驱动程序,诸如引导服务驱动程序。这可允许测试可执行文件108起动测试并保持处于存储器中以在起动测试之前和起动测试之后将数据发送给其他程序,诸如管理可执行文件110。管理可执行文件110可包括诸如执行指令116、信号通知指令118和接收指令120的指令。在一个实施例中,执行指令116执行测试可执行文件108,信号通知指令118用信号通知测试可执行文件108起动对电子装置102的测试,以及接收指令120从测试可执行文件108接收关于由测试可执行文件108启动的测试的信息。在一个实施例中,管理可执行文件110还包括用于确定在显示装置126上显示数据的方式的显示指令122以及用于向测试可执行文件108请求信息的请求指令124。在一个实施例中,管理可执行文件110被编译为起动测试可执行文件108的应用。在一个实施例中,测试可执行文件108和管理可执行文件110安装在电子装置102(诸如个人计算机)上。例如,遇到计算机问题的用户可选择特定键或按钮来初始化管理可执行文件110以诊断计算机问题。在一些实施方式中,管理可执行文件Iio在电子装置102上的操作系统引导之前被初始化。图2是示出用于在两个可执行文件之间通信的协议的一个示例的框图。例如,管理协议202和测试协议204可被用于在管理可执行文件110和测试可执行文件108之间进行通信。在一个实施例中,管理可执行文件110的创建者不知道测试协议204的实现细节,以及测试可执行文件108的创建者不知道管理协议202的实现细节。在一个实施例中,管理可执行文件110和测试可执行文件108对彼此提供协议。例如,管理可执行文件110可注册管理协议202,以及测试可执行文件108可注册测试协议204。由不同厂商创建的测试可执行文件可使用相同的测试协议204。在一个实施例中,测试协议针对每个测试可执行文件可不同。例如,每个测试可执行文件可提供不同的方法以由管理可执行文件110用于与测试可执行文件108进行通信。任何合适的协议方法可被用于在管理可执行文件110和测试可执行文件108之间进行通信,并且代替图2中示出的那些协议,或者除了图2中示出的那些协议以外,可使用其他协议方法。测试协议204和管理协议202可以是用于在操作系统引导之前在可执行文件之间进行通信的任何合适的协议,诸如统一可扩展固件接口协议。在一个实施例中,管理可执行文件HO使用统一可扩展固件接口协议提供的方法和不同协议提供的方法两者来与测试可执行文件108进行通信。管理协议202可包括例如更新进度方法206、写属性方法208和调试日志方法210。测试可执行文件108可执行更新进度方法206以向管理可执行文件110发送关于测试的进度的信息。测试可执行文件108可执行写属性方法208以将关于测试的属性的信息(诸如与测试属性相关的测试值)发送给管理可执行文件110,以及测试可执行文件108可执行调试日志方法210以将要被添加到用于调试问题的信息日志的信息发送给管理可执行文件110。测试协议204可包括允许管理可执行文件110与测试可执行文件108进行通信的任何合适的方法。例如,其可包括允许管理可执行文件请求由测试可执行文件108启动的测试的名称的获取测试名称方法212、用于由管理可执行文件110请求关于测试的版本信息的获取测试版本方法214、允许管理可执行文件110请求关于测试要运行的时间长度的信息的获取测试运行时间方法216、以及用于管理可执行文件110用信号通知测试可执行文件108启动对电子装置102的测试的执行测试方法218。在一个实施例中,测试协议204包括允许管理可执行文件110将具有其对信息(所述信息诸如采取用于测试协议204的方法之一的参数的形式)的请求的信息发送给测试可执行文件108。这可能涉及管理可执行文件110的创建者知道关于特定测试可执行文件108的一些信息,诸如作为参数发送给测试可执行文件108的信息的类型。图3是示出由管理可执行文件110执行的用于测试电子装置102的方法300的一个示例的流程图。管理可执行文件110可起动测试可执行文件108并从测试可执行文件108接收诊断测试结果。在一个实施例中,管理可执行文件110随后确定用于在显示装置126上显示关于接收的测试结果的信息的方式。以块302开始,所述方法继续至块304,在块304中,处理器104通过执行管理可执行文件110执行指令116来执行可执行文件。可在电子装置102上的操作系统引导之前执行该可执行文件。该可执行文件可以是例如测试可执行文件108。执行指令116可调用标准统一可扩展固件接口协议的方法(诸如镜像协议方法)以加载和执行测试可执行文件108。在一个实施例中,在执行测试可执行文件108之后,管理可执行文件110执行请求指令124以向测试可执行文件请求信息。例如,参照图2,请求指令124可提供用于执行获取测试名称方法212、获取测试版本方法214或获取测试运行时间方法216的指令,以请求关于可由测试可执行文件108运行的测试的信息。在一个实施例中,管理可执行文件110将具有其对信息(所述信息例如采取利用方法发送的参数的形式)的请求的信息发送给测试可执行文件108。移到块306,处理器104执行管理可执行文件110信号通知指令118以用信号通知测试可执行文件108启动对电子装置102的测试。例如,管理可执行文件110可调用用于与测试可执行文件108进行通信的协议的方法(诸如执行测试方法218),以用信号通知测试可执行文件108启动对电子装置102的测试。作为响应,处理器可执行测试可执行文件108启动测试指令112,以启动对电子装置122的测试,例如,用于确定电子装置102是否正在正确运行的测试。所述测试可以是任何合适的测试,诸如对硬件设备或软件程序的测试。测试可执行文件108可被设计为测试电子装置102的单个组件或多个组件。测试可执行文件108还可在电子装置组件中的每一个上运行一个或多个测试。继续到块308,管理可执行文件在电子装置102上的操作系统引导之前并且在测试可执行文件108完成执行之前从测试可执行文件108接收关于测试的信息。管理可执行文件110接收指令120可包括用于通过管理协议202从测试可执行文件108接收信息的指令。例如,接收指令120可包括与管理协议202方法的实现细节相关的指令。接收指令120可包括用于经由统一可扩展固件接口协议方法(诸如提供给测试可执行文件108的方法)接收信息的指令。处理器104可诸如通过执行测试可执行文件108发送指令114来执行管理协议202方法,以将关于测试的信息发送给管理可执行文件110。所述信息可以是与测试相关的任何信息。测试可执行文件108可执行更新进度方法206以发送关于测试的进度的信息(诸如剩余的用于完成测试的时间或测试完成的百分比)。在一个实施例中,测试可执行文件108以特定间隔(诸如时间段间隔或百分比完成间隔)将进度信息发送给管理可执行文件110。由测试可执行文件108发送的并由管理可执行文件110接收的信息可包括关于在测试期间在电子装置102中发现的缺陷的信息。测试可执行文件108可在任何点将关于测试的信息发送给管理可执行文件110。例如,测试可执行文件108可在发现缺陷时、以定义的间隔或在测试完成时将关于测试的信息发送给管理可执行文件110。测试可执行文件108可通过执行写属性方法208来将任何合适的关于测试的结果的信息(诸如关于测试属性和测试值的信息)发送给管理可执行文件110。例如,测试可执行文件108可将关于视频卡存储器的属性和值(诸如128MB)发送给管理可执行文件110。在一个实施例中,测试可执行文件执行调试日志方法210以将关于在电子装置102中发现的缺陷的信息发送给管理可执行文件110。管理可执行文件110可使用接收的信息创建调试文件,诸如可扩展标记语言(XML)文件。在一个实施例中,测试可执行文件108将缺陷信息写入管理可执行文件110可读的文件。方法300随后继续至块310并停止。处理器104可通过执行管理可执行文件110显示指令122来确定用于在显示装置126上显示从测试可执行文件108接收的信息的方式。例如,显示指令128可提供用于总结接收的数据或创建接收的数据的图形表示的指令。管理可执行文件110可基于另外的因素(诸如观看数据的客户的类型或其中观看数据的环境)来调整数据。例如,管理可执行文件110可确定针对商业电子装置和消费者电子装置来不同地显示数据,并且针对处于办公室环境的电子装置和处于工厂环境的电子装置不同地显示数据。在一个实施例中,管理可执行文件HO执行多个测试可执行文件,每个测试可执行文件测试不同的电子装置组件或电子装置组件的不同方面。管理可执行文件110可允许按照相似的方式对用户显示来自不同厂商的多种类型的测试的数据。在一个实施例中,管理可执行文件110确定与成功测试相关的数据不应被显示在显示装置128上。关于电子装置102的测试的信息可被管理可执行文件110或被另一程序按照由管理可执行文件Iio确定的方式显示在显示装置126上。关于测试的数据可在任何点被显示在显示装置126上。例如,可在从测试可执行文件108接收到关于测试的进度的数据时显示关于测试的进度的数据。可在管理可执行文件110接收到关于缺陷的数据时,在测试完成时或者在另一时间段显示关于缺陷的数据。在一个实施例中,在电子装置102上的操作系统被引导之前,在显示装置126上显示关于测试的信息。图4是示出用于测试与电子装置102相关的视频卡的方法400的一个示例的框图。在一些情况下,视频卡厂商可能不愿意与电子装置厂商共享专有信息。使用经由用于在操作系统引导之前进行通信的协议(诸如统一可扩展固件接口协议)进行通信的两个可执行文件允许由视频卡厂商提供的测试可执行文件和由电子装置厂商提供的管理可执行文件即使在操作系统将不引导的情况下也彼此进行通信。例如,管理可执行文件110和测试可执行文件108可使用对每个可执行文件已知的协议(诸如图2中示出的管理协议202和测试204)来进行通信。以块404开始,管理可执行文件110加载并起动测试可执行文件108。移到块406,管理可执行文件110向测试可执行文件108请求关于由测试可执行文件108执行的测试的名称的信息。管理可执行文件110可例如通过执行与图2中示出的测试协议204相关的获取测试名称方法212来请求所述信息。继续到块408,测试可执行文件108将名称“视频卡测试”返回给管理可执行文件110。在一个实施例中,管理可执行文件110确定用于在显示装置126上显示关于测试名称的数据的方式。进行至块410,管理可执行文件110例如通过执行执行测试方法218来用信号通知测试可执行文件启动对视频卡的测试。移到块412,测试可执行文件108启动对视频卡的测试。进行到块414,测试可执行文件108更新管理可执行文件110:视频卡测试完成50%。移到块416,管理可执行文件110确定用于显示关于视频卡测试的进度的信息的方式。管理可执行文件110可在显示装置126上显示所述信息或者将所述信息发送到另一程序进行显示。继续到块418,测试可执行文件108例如通过执行与管理协议202相关的更新进度方法206来更新管理可执行文件110:视频卡测试完成100%。移到块420,管理可执行文件110确定用于显示信息的方式以示出视频卡测试完成,并且显示数据可显示在显示装置126上。进行到块422,测试可执行文件108将关于视频卡测试的结果的信息发送给管理可执行文件110。例如,测试可执行文件108可执行与管理协议202相关的写属性方法208或调试日志方法210。管理可执行文件106随后可将接收的信息记入日志。继续到块424,管理可执行文件110确定用于显示关于视频卡测试的结果的信息的方式。所述信息可显示在显示装置126上。以上讨论了用于测试电子装置的方法的一些实施例,但也预期其他实施例。实施例提供了许多重要的优点。一些实施例考虑到其中在单线程预操作系统环境下两个可执行文件可按照双向方式彼此通信的测试系统。这可允许在不在所述两个可执行文件的创建者之间共享专有信息的情况下进行通信。此外,一些实施例允许即使在操作系统无法引导的情况下也能够测试电子装置。这样的测试系统在故障排除环境中是有益的,其中期望在不控制诊断测试的细节的情况下控制测试信息的显示。权利要求1.一种编码有由处理器可执行的用于测试电子装置的指令的机器可读存储介质,所述机器可读介质包括用于执行可执行文件的指令;用于用信号通知所述可执行文件启动对电子装置的测试的指令;以及用于在所述电子装置上的操作系统引导之前并在所述可执行文件完成执行之前,从所述可执行文件接收关于所述测试的信息的指令。2.如权利要求I所述的机器可读存储介质,其中,所述可执行文件包括被编译为驱动程序的可执行文件。3.如权利要求I所述的机器可读存储介质,还包括用于确定显示接收的信息的方式的指令。4.如权利要求I所述的机器可读存储介质,还包括用于向所述可执行文件请求信息的指令。5.如权利要求4所述的机器可读存储介质,还包括用于在向所述可执行文件请求信息时将参数传送给所述可执行文件的指令。6.如权利要求I所述的机器可读存储介质,其中,用于接收信息的指令包括用于接收信息的统一可扩展固件接口协议方法。7.一种计算系统,包括处理器;以及编码有由处理器可执行的用于测试电子装置的指令的机器可读存储介质,所述机器可读介质包括编译为驱动程序的测试可执行文件;以及管理可执行文件,其被配置为在所述电子装置的操作系统的引导之前执行所述测试可执行文件;以及在所述测试可执行文件正在执行时将信息传递给所述测试可执行文件,其中,所述测试可执行文件被配置为启动对所述电子装置的测试;以及在所述测试可执行文件正在执行时将信息传递给所述管理可执行文件。8.如权利要求7所示的计算系统,其中,管理可执行文件被配置为通过执行统一可扩展固件接口协议方法来将信息传递给测试可执行文件。9.如权利要求7所述的计算系统,其中,测试可执行文件被配置为通过执行统一可扩展固件接口协议方法来将信息传递给管理可执行文件。10.一种用于测试电子装置的方法,包括由管理可执行文件执行测试可执行文件;由所述管理可执行文件用信号通知所述测试可执行文件启动对所述电子装置的测试;由所述测试可执行文件启动对所述电子装置的测试;以及在所述电子装置上的操作系统的引导之前并在所述测试可执行文件完成执行之前,由所述测试可执行文件将关于所述测试的信息发送给所述管理可执行文件。11.如权利要求10所述的方法,其中,将信息发送给管理可执行文件包括通过执行统一可扩展固件接口协议方法将信息发送给管理可执行文件。12.如权利要求10所述的方法,其中,测试可执行文件包括被编译为驱动程序的可执行文件。13.如权利要求10所述的方法,还包括由管理可执行文件向测试可执行文件请求关于测试的信息。14.如权利要求13所述的方法,还包括在请求信息时,由管理可执行文件将参数发送给测试可执行文件。15.如权利要求10所述的方法,还包括由管理可执行文件确定用于显示由测试可执行文件发送的关于测试的信息的方式。全文摘要公开的实施例涉及包括处理器和机器可读存储介质的电子装置,所述机器可读存储介质可包括用于测试电子装置的指令,所述指令包括用于执行可执行文件的指令以及用于用信号通知所述可执行文件启动对电子装置的测试的指令。所述机器可读存储介质还可包括用于在电子装置上的操作系统引导之前并在所述可执行文件完成执行之前,从所述可执行文件接收关于测试的信息的指令。文档编号G01R31/3181GK102812374SQ201080065881公开日2012年12月5日申请日期2010年3月31日优先权日2010年3月31日发明者D.D.佩龙,R.D.马修斯,T.G.阿恩申请人:惠普发展公司,有限责任合伙企业