用于测试和监测软件的动态探测认证方法及系统的制作方法

文档序号:6476469阅读:167来源:国知局
专利名称:用于测试和监测软件的动态探测认证方法及系统的制作方法
技术领域
本发明涉及软件的测试,尤其涉及用于动态探测认证(dynamic probe authentication)的方法及系统。
背景技术
在软件开发者当中,最重要的需求之一是软件的可靠性。可靠性是 指软件能够在特定的环境中没有差错地工作特定量的时间的能力。为了 确保足够高等级的可靠性,在发布之前必须对软件彻底进行测试和调试。 通常,将整个软件程序作为一个整体进行测试,并且对实现软件程序的 独立的功能部件(例如,函数调用、子程序)进行测试。通常,产生了 包括软件和/或一个或更多个功能部件所需的变量的一系列值的测试矢 量。选择这些变量值以表示软件希望在其中运行的各种类型的使用条件 以及环境。然后将这些测试矢量应用于软件和/或一个或更多个功能部件, 并且对这些变量值进行观察和记录。经常执行的测试类型之一是回归分析(regression analysis),或者有 时也称作验证测试(verification testing)。回归分析包括对为修复已知的 问题而已经修改了的软件进行选择性的重新测试。执行选择性的重新测 试是为了确保识别出的问题被修复,并且没有其它之前工作的功能部件 由于该修复而发生错误。这种类型的测试基本上是质量控制测试以确保修改后的代码仍然与其指定的需求兼容,并且任何没有修改的代码不会受到维护行为的影响。 具体而言在回归分析中以及通常而言在软件测试中的一个重要特征是观察由测试矢量产生的变量值的能力。对软件和/或其功能部件的变量 值的观察的早期尝试包括在源码本身手动地设置断点和其它陷阱(trap)。 近来,诸如Texas Instruments (德州仪器公司)的Code Composer Studio 以及National Instruments (国家仪器公司)的LabV正W,的软件开发工 具包括可以被插入到要测试的代码中的软件探测器(softwareprobe)。软 件探测器使得能够随着软件的执行而实时地观察要测试的代码中的变 量。但是,后者这些解决方法仅仅基于从要测试的代码中取出变量值(例 如,因此它们能够被观察),而不允许在软件的执行期间改变变量值。换 言之,这些现有的软件探测器仅仅是单程或者单向探测器的原因在于只 允许数据从要测试的代码流向测试系统。它们不允许数据传输的方向逆 向以使得数据从测试系统流向要测试的代码中。其它探测器是双向的原因在于这些探测器允许数据从要测试的代码 流向测试系统或者反之从测试系统流向要测试的代码。在2003年5月1 日提交的美国专利申请序列号No.l0/428733,名称为"BI-DIRECTIONAL PROBING OF SOFTWARE"中可以找到双向探测器的示例。但是,在现有的解决方法中,单向探测器和双向探测器两者都工作 在静态模式,这意味着这些探测器必须在要测试的软件的编辑期间中确 定。如果在编辑期间没有引入这些探测器,则引入这些探测器的唯一方 法是对要测试的软件进行重建,而这是不期望的。同时,即使探测器不 活动,其仍然消耗少量的存储器,对于整个系统这有可能累计为大量的 存储器。从PCT/EP2006/066620中更早地了解到提供了在运行期间而不是编 辑期间对软件安装探测器的可能性的动态探测技术。这些探测器可以根 据需要引入和移除,并且只有安装的探测器消耗存储器。可以在任何测 试系统中实现这种动态探测技术。所述探测器被列表为多个表格。随着要测试的软件中的探测器的数 量增加,手动处理和更新这种表格将很快变得吃力和缓慢。要花费大量 时间来手动生成所述表格并且/或者改变一个或更多个表格中的内容。还 期望不使所有探测器激活而运行应用程序软件的某个部分的测试。如果 在每次测试运行期间所有的探测器都被激活,则将产生许多不需要的数 据。此外,平台开发者将某些探测器产生的信息视为秘密,因此希望对 所述探测器的可接入性进行控制。发明内容本发明的目的在于解决现有技术以上讨论的缺点。本发明的一种实施方式是一种用于认证配置的方法,该方法用于对 电子移动设备中的要测试的软件模块中的软件探测器进行配置,该方法 包括至少以下步骤通过插入认证签名、探测器标识(PID)和探测器位 置(PL)来创建、签名并发布至少一个配置文件。本发明的另一种实施方式是一种用于认证配置的系统,该系统用于 对与所述系统的测试控制设备连接的电子移动设备中的要测试的软件模 块中的软件探测器进行配置。所述测试设备适于通过将认证签名、探测 器标识(PID)和探测器位置(PL)插入到所述配置文件而进行创建、签 名和发布。本发明的再一种实施方式是一种计算机可读设备,该计算器可读设 备适于保存用于执行上述方法中的任何一个步骤的数字数据和软件指 令。


图1是例示了本发明的实施方式的框图。图2是例示了将配置文件加载到要测试的设备的方法的流程图。 图3是例示了使用被测试设备的配置文件运行测试进程的方法的流程图。
具体实施方式
图1示出了用于实现本发明的测试系统100、测试和验证平台。测 试系统IOO包括测试控制设备102和被测试设备104,这两者之间彼此通 信。测试控制设备102是具有多个功能部件(包括CPU106、输入/输出 接口单元108和存储单元110)的典型计算机。这些部件对于计算机领域 的技术人员来说是公知的,因此这里仅简单地进行介绍。CPU 106处理 测试控制设备102上的所有软件程序(包括操作系统和运行在其上的任何软件)的运行。接口单元108用作测试控制设备102与被测试设备104 以及与其连接的任何输入/输出设备(例如,键盘、鼠标、显示单元、打 印机等)的接口。接口单元108能够使用用于此目的的任何协议(例如, 测试和验证协议(Testing and Verification :TVP))来处理测试控制设备102 与被测试设备104之间的通信。TVP能够利用软件测试工具112来控制 正在测试的任何软件的探测,并对探测的数据进行分析。具体而言,TVP 允许根据用户的决定从要测试的代码中捕获数据、以及允许将数据注入 要测试的代码中,或者进行上述两者的操作。这使得用户更容易和更方 便地监测和测试要测试的代码的操作和可靠性。存储单元110为运行在 测试控制设备102上操作系统以及软件的执行所需要的任何软件程序和/ 或数据提供临时存储(例如,RAM)和长期存储(例如,硬驱动)。保存在存储单元110中的是多个软件应用程序,包括软件开发或测 试工具112。软件测试工具112以与现有的软件开发工具(例如Texas Instruments (德州仪器公司)的Code Composer Studio 禾口 National Instruments (国家仪器公司)的LabV正WTM或其它类似的软件开发工具) 相同的方式进行工作并且具有许多与它们相同的特性。在本实施方式,在分立的单元(即,与测试控制设备102进行通信 的被测试设备104)上运行包括探测指令的被测试代码。与测试控制设备 102类似,被测试设备104包括具有多个功能部件(包括至少一个CPU、 输入/输出接口单元109和至少一个存储单元114)的处理装置。被测试 设备104的这些部件在功能上与测试控制设备102中的它们的对应部件 类似,因此这里将不进行介绍。关键在于,与测试控制设备102分立地 保存和运行要被测试的代码(包括要被探测的源码和探测器指令以及实 现)。由电子移动设备(诸如移动无线终端平台)示例的被测试设备104 包括至少一个中央处理单元CPU。平台包括软件(SW)和在其中处理、 保存软件(SW)的硬件(HW)两者等。在平台的示例性实施方式中介绍了包括3个CPU的中央处理单元配 置。该CPU配置包括一个接入CPU(CPU1 101)和两个应用CPU (CPU)——第一应用CPU (CPU2 103)和第二应用CPU (CPU3 105)。所介绍 的配置仅仅是示例,不能被视为对本发明的范围的限制。本发明可与任 何配置的处理装置(诸如CPU、微处理器等)结合应用。本领域的技术 人员能够意识到本发明可应用于包括一个或更多个中央处理单元、CPU 处理软件代码指令的其它设备。每个CPU连接到相应的存储单元,该存储单元可包含可以分成软件 模块的软件指令(诸如要测试的代码)。探测器可以位于所述模块之间或 之内,以搜集用于辅助软件开发者增强应用性能的信息。优选的是在软 件开发期间将探测器插入软件模块中,并且根据本发明的实施方式,无 需改变探测器来被激活或无效,也无需将探测器动态地插入软件。CPU1 101分别连接到CPU1 103和CPU2 105中的每一个的TVP客 户端。CPU 103和105各能够与其它CPU分离地运行,但是处于CPU1的 独立控制下。CPU1 101通过输入/输出接口 109和适当的协议(诸如TVP)与测 试控制设备102进行通信。此外,CPU101连接到存储单元114,该存储 单元114可包括要测试的软件、数据、文件等。存储单元114连接到I/0 接口 109以为测试控制设备102提供直接访问所述存储单元的可能性。CPU1 101适于执行和运行TVP服务器120。所述TVP服务器120 能够处理在测试会话(test session)初始化时创建的临时数据库118。将 结合图3中介绍的测试方法更详细地介绍所述数据库。如说明书中所讨论的,结合本发明所要解决的问题的介绍,手动地 产生所述表格和/或改变一个或更多个表格的内容要花费大量的时间。还 期望进行应用软件的某个部分的测试而无需使所有探测器激活。如果在 每次测试中激活所有的探测器,将产生许多不需要的数据,这将使分析 该测试的日志列表的人迷惑或烦躁。此外,平台制造商或随后的开发者 将由某些探测器产生的信息视为秘密,因此希望通过认证过程来对所述 探测器的可接入性进行控制。对所讨论的问题的创造性解决方案是在测试和验证平台(TVP)(优选地在被测试设备104中)的存储器中加载并保存包括特定探测器和认 证信息的配置文件。此后将所述文件表示为配置文件(PSA;探测器设备和认证文件)。图1示出了一个PSA文件,但是存储器可以包括几个PSA 文件。具体而言,PSA文件可以按照母PSA文件(parent PSA file)和几 个下层PSA文件(underlying PSA file)的链的方式进行链接。当开始了测试会话时,测试控制设备102通过访问PSA文件或文件 组而打开会话。当会话被打开时,TVP遍历(traverse) PSA文件并根据 PSA文件的许可来创建包括所有可用探测器的列表的中间虚拟数据库 118。原则是下层PSA文件的许可不能激活多于其上层母PSA文件或文 件组的探测器。所述中间虚拟数据库是临时的,当进程关闭时将被删除。 中间虚拟数据库提供了使能/激活或禁用在要测试的软件中的顾客许可的 探测器的可能性。当在数据库中创建列表时,验证是否允许用户/顾客/ 客户激活某个探测器并且确定探测器的位置。如果探测器位于属于几个 CPU (此后有时将其表示为节点)的软件中,测试系统的用户可以选择 激活所列出的CPU中哪个CPU或者激活探测器所属的所有CPU。因为 该临时数据库,无需访问PSA文件,因此减少了文件系统的负荷。如果用户将探测器的模式设置为注入(inject),则如果该探测器存在 于几个节点,则必须对节点进行指定。可以以各种格式(例如,XML语言、可扩展的标记(Markup)语言) 来写PSA文件。文件优选地包括以下参数一认证签名;例如,软件开发者、电话制造商、网络运营商一探测器标识(PID);一探测位置(PL)。PSA文件的文件结构可以设计如下<签名> <许可> <探测器〉<探测器IDx/探测器ID> <节点〉</节点〉<注入></注入></探测器> </许可>许可定义了使用接入参数(诸如探测器ID、节点和注入)的签名的 接入权限。<探测器10 >部分包括位于一个或几个节点(即CPU)的一个或更 多个探测器标识PID。<节点>部分包括探测位置PL并且通知探测器位于哪个CPU。<注入>部分说明探测器是否允许用于注入模式。通常,为由其签名限定的有意的用户各创建一个PSA文件。例如, 软件开发者创建包括用于CPU的程序的软件。通常,探测器被同时创建。 软件开发者还创建具有所限定的接入权限的PSA文件或文件组(也针对 软件开发者自身)。通过签名来控制每个有意的用户的接入权限。因此, 可以通过密钥对(key pairs)和证书来认证签名。上述参数探测器ID、 节点和注入定义了各个软件开发商、电话制造商和/或网络运营商的相关 接入权限。可以通过证书链来连接PSA文件。上述技术使得能够基于认证用户(例如,软件开发商、电话制造商 和/或网络运营商)来激活探测器而不需要被测试设备104的任何改变或 自适应。每个用户还可以选择来对要激活的允许的探测器的子集进行选 择。这使得执行测试的人在需要时能灵活地激活探测器。同样,因为能 够使探测器无效,因此在探测器已经执行了期望的测试之后使不活动的 探测器无效能够减少CPU的负荷。图2中,介绍了创建根据本发明的配置文件并加载到要测试的设备 的过程的实施方式的流程图。过程200的第一步骤202是通过插入认证签名、探测器标识(PID) 和探测器位置(PL)来创建、签名并发布至少一个配置文件PSA。当己 经发布了配置文件PSA时,在步骤204,将该PSA文件提供给被测试设 备104 (例如,诸如PDA (个人数字助理)、或通信设备、或移动无线平 台等的电子移动设备)。在设备104中,将所述配置文件PSA116保存在与CPU 101连接的存储器114中。合适的是,针对每个有益的用户创建 一个PSA文件。在步骤207停止加载处理。文件PSA被保存在这里直到 其被打开并被用作测试会话为止。此外,例如软件开发者可发布具有不同的相关接入权限的不同签名 的PSA文件。这些签名可以属于软件开发商、电话制造商和/或网络运营 商。自然地,原始的软件开发者具有最宽范围的接入权限。同样,电话 制造商可以利用证书链将其签名与网络运营商的签名链接起来使得网络 运营商可以对电话制造商的接入权限的子集进行接入。从而可以根据当 前的用户动态地处理不同的接入权限而无需改变被测试设备104。图3示出了利用被测试设备104中的配置文件PSA运行测试会话的 发明的方法300的实施方式。当测试控制设备102启动(步骤301)时,用户/顾客能够开始被测 试设备(在此示例中为电子移动设备)的测试会话。当执行了步骤302 时,本方法继续进行下一步骤304,通过包含在设备104的配置文件PSA 中的信息来创建临时参数接入数据库118,该参数接入数据库118包括用 于接入插入于要测试的软件中的至少一个探测器的接入参数。临时数据 库118现在包括可根据当前用户的签名的签名而被激活和设置的探测器 的列表。假设用户执行至少一个认证签名。否则,过程在此处停止。然 后,在步骤306,执行用于设置探测器的认证的初始控制步骤。在步骤310中,用户能够将要测试的代码(软件SW)的允许探测 器设置成活动状态或非活动状态。当设置了所有感兴趣的期望探测器时,在步骤312执行软件的测试 直到会话结束为止。然后,在步骤314,执行结果的输出。测试会话可包括在一连串会话进程(session run)中执行的多个子测 试会话。用户有可能希望在各个会话进程之间改变要测试的软件模块。 因此,在步骤308,向用户提供了利用被设置为激活的新探测器来继续新 测试会话的机会,而将使用过的以及不再需要的探测探测器设置为不活 动。如果执行了新的测试进程("是"条件为真),则再次运行包括步骤310、 312和314的测试循环。如果结束了测试运行,则满足"否"的条件,在步骤316,执行使活动探测器集合不活动的步骤,而在步骤318,执行删除 临时参数接入数据库118的步骤。然后在步骤319停止测试进程。"清除 步骤"(步骤316和318)将确保对PSA文件以外的所有创建的数据和数 据文件进行删除并且在被测试设备104中没有剩余。因为PSA文件被加 载在被测试设备104的存储单元114中,因此将其保留。PSA文件如常 规那样由签名进行保护以使其不被非认证的人修改。PSA文件只是进行 等待,以便要执行新的测试进程时被重新读取。因此,参照图1,用于认证配置的发明的测试系统IOO用于对与系 统的测试控制设备102连接的被测试设备104中的要测试的软件模块中 的软件探测器进行配置,该系统包括通过将认证签名、探测器标识(PID) 和探测器位置(PL)插入所述配置文件而进行创建、认证和发布的装置。 所述装置可以实现为计算机可读软件指令。此外,将测试控制设备设计 成包括提供装置,诸如能够向设备104提供至少一个认证和发布的配置 文件的输入/输出接口 108、 109。测试控制设备102包括处理装置106,该处理装置106利用包括在 设备104的配置文件内的信息来创建临时参数接入数据库118,该临时参 数接入数据库118包括用于访问插入于要测试的软件中的至少一个探测 器的访问参数。系统100还包括处理装置101、 103、 105和106,处理装置101、 103、 105和106用于开始控制用于允许设置探测器的认证,以及当用参数接入 数据库确认了接入权限时,对探测器进行设置。根据本发明的一种实施方式的系统IOO包括控制装置101、 103、 105 和106,该控制装置IOI、 103、 105和106适于执行要测试的软件的测试 并且适于从该测试中输出结果数据。根据本发明的一种实施方式的系统IOO还包括控制装置101、 103、 105和106。该控制装置IOI、 103、 105和106适于使活动的探测器集合 中的至少一个探测器不活动,并且适于删除临时参数接入数据库。可以将发明的方法可以实现为保存在计算机可读设备中的计算机可 读软件代码,所述计算机可读设备适于保存用于执行所发明的方法的步骤中的任何一个步骤的数字数据和软件指令,在所述计算机可读设备中 保存有配置文件,所述文件包括至少一个认证签名、探测器标识(PID)和探测器位置(PL)。应强调的是,在此说明书中使用的术语"包括/包含"是指所阐述的特 征、整件、步骤或部件的存在,但是不排除一个或更多个其它特征、整 件、步骤或部件及其组合的存在或添加。虽然已经例示并说明了本发明的特定实施方式和应用,但是应了解, 本发明不仅限于此处公开的精确解释和组成,在不脱离由所附权利要求 所限定的本发明范围的情况下可以对上述内容进行变型和修改。
权利要求
1、一种用于认证配置的方法,该认证配置方法用于对电子移动设备(104)中的要被测试的软件模块中的软件探测器进行配置,其特征在于,该方法至少包括以下步骤-通过插入认证签名、探测器标识(PID)和探测器位置(PL)来创建、签名并发布(202)至少一个配置文件(116)。
2、 根据权利要求1所述的方法,其中,为有意的用户各创建一个由 其签名限定的PSA文件。
3、 根据权利要求1或2所述的方法,所述方法还包括以下步骤向 所述电子移动设备提供(203)至少一个被签名并发布了的配置文件。
4、 根据权利要求1至3中任一项所述的方法,所述方法还包括以下 步骤利用包括在配置文件(116)内的信息来在电子移动设备(104) 中创建临时参数接入数据库(118),该临时参数接入数据库(118)包括 用于接入要被测试的软件中的至少一个探测器的接入参数。
5、 根据权利要求4所述的方法,所述方法还包括以下步骤在临时 数据库(118)中创建根据当前用户的认证签名能够被激活和设置的探测 器的列表。
6、 根据权利要求1至5中任一项所述的方法,所述方法还包括以下 步骤开始控制用于设置探测器的认证(306),以及当利用参数接入数 据库(118)确认了认证时,允许对探测器进行设置。
7、 根据前述权利要求中的任一项所述的方法,所述方法还包括以下步骤一执行要测试的软件的测试(312);—输出该测试的结果数据(314)。
8、 根据权利要求4至7中任一项所述的方法,所述方法还包括以下 步骤一使活动的探测器的集合不活动(316); 一删除临时参数接入数据库(318)。
9、 根据权利要求1至8中任一项所述的方法,其中,所述电子移动 设备(104)为PDA (个人数字助理)或通信设备或移动无线平台。
10、 一种用于认证配置的系统(100),该系统用于对与所述系统的 测试控制设备(102)连接的电子移动设备(104)中的要被测试的软件 模块中的软件探测器进行配置,其特征在于,所述测试控制设备(102) 适于通过将认证签名、探测器标识(PID)和探测器位置(PL)插入到所 述配置文件而进行创建、签名和发布。
11、 根据权利要求10所述的系统,其中,为由有意的用户各创建一 个其签名限定的PSA文件。
12、 根据权利要求10或11所述的系统,其中,所述测试控制设备 (102)被设计成包括提供装置(106、 108),该提供装置(106、 108)能够向所述电子移动设备(104)提供至少一个被签名并发布了的配置文 件(116)。
13、 根据权利要求10至12中任一项所述的系统,其中,所述测试 控制设备(102)包括处理装置(106),该处理装置(106)用于利用包 括在配置文件(114)内的信息在所述电子移动设备(104)中创建临时 参数接入数据库(118),该临时参数接入数据库(118)包括用于接入要 被测试的软件中的至少一个探测器的接入参数。
14、 根据权利要求13所述的系统,其中,所述测试控制设备(102) 包括处理装置(106),该处理装置(106)用于在所述临时数据库(118) 中创建可以根据当前用户的认证签名能够激活和设置的探测器的列表。
15、 根据权利要求10至14中任一项所述的系统,所述系统还包括 处理装置(101),该处理装置(101)用于开始控制用于允许设置探测器 的认证,以及当利用参数接入数据库(116)确认了权限时,对探测器进 行设置。
16、 根据权利要求10至15中任一项所述的系统,所述系统还包括 控制装置(101、 103、 105),该控制装置(101、 103、 105)适于执行要被测试的软件的测试并且适于输出所述测试的结果数据。
17、 根据权利要求13至16中任一项所述的系统,所述系统还包括控制装置(101),该控制装置(101)适于使设置的活动的探测器中的至少一个探测器不活动,并且适于删除临时参数接入数据库(116)。
18、 根据权利要求10至17中任一项所述的系统,其中,所述电子 移动设备(104)为PDA (个人数字助理)或通信设备或移动无线平台。
19、 一种计算机可读设备(116),该计算器可读设备(116)适于保 存用于执行权利要求1至9中任何一个步骤的数字数据和软件指令,在 该计算机可读设备中保存有配置文件(114),所述文件包括至少一个认 证签名、探测器标识(PID)和探测器位置(PL)。
全文摘要
本发明涉及一种用于认证配置的方法、系统和计算机可读设备,用于对电子移动设备的要测试的软件模块中的软件探测器进行配置。本发明将通过插入认证签名、探测器标识(PID)和探测器位置(PL)来创建和使用配置文件。
文档编号G06F11/36GK101617296SQ200880005822
公开日2009年12月30日 申请日期2008年2月21日 优先权日2007年2月23日
发明者帕特里克·奥斯特曼, 约翰·尼尔松 申请人:Lm爱立信电话有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1