首页 / 专利库 / 专利权 / 第I章 / 国际检索单位 / 国际检索 / 现有技术 / 用于重复使用部分现有测试技术领域的方法和装置

用于重复使用部分现有测试技术领域的方法和装置

阅读:224发布:2020-05-11

专利汇可以提供用于重复使用部分现有测试技术领域的方法和装置专利检索,专利查询,专利分析的服务。并且一种装置、由计算机化设备执行的计算机实施的方法和 计算机程序 产品,该方法包括:接收与域有关的属性集合,该属性集合包括两个或更多个属性;接收一个或多个约束,每个约束指示一个或多个属性,其中,属性的值将从一个现有测试中选择;接收现有测试;以及通过设置两个或更多个属性的值来生成一个或多个新测试,其中,一个或多个约束的一个或多个属性的值从现有测试中选择,一个或多个其它属性的一个或多个值不从现有测试中选择。,下面是用于重复使用部分现有测试技术领域的方法和装置专利的具体信息内容。

1.一种由计算机化设备执行的计算机实施的方法,包括:
接收与域有关的属性集合,所述属性集合包括至少两个属性;
接收至少一个约束,所述至少一个约束指示至少一个属性,其中,所述至少一个属性的值将从一个现有测试中选择;
接收现有测试;以及
通过设置所述至少两个属性的值来生成至少一个新测试,其中,所述至少一个约束的所述至少一个属性的值从所述现有测试中选择,至少一个其它属性的至少一个值不从所述现有测试中选择。
2.根据权利要求1所述的计算机实施的方法,其中,所述至少一个约束与至少两个属性有关。
3.根据权利要求2所述的计算机实施的方法,其中,所述至少一个约束还包括与所述至少两个属性的值的排除组合有关的约束。
4.根据权利要求1所述的计算机实施的方法,其中,所述生成被重复,直到达到覆盖目标。
5.根据权利要求1所述的计算机实施的方法,其中,所述至少一个其它属性的所述至少一个值从第二现有测试中选择。
6.根据权利要求1所述的计算机实施的方法,其中,所述至少一个约束的所述至少一个属性的值从第一现有测试中选择,至少一个第二约束的至少一个属性的值从第二现有测试中选择。
7.根据权利要求1所述的计算机实施的方法,其中,生成所述至少一个其它属性的所述至少一个值。
8.根据权利要求1所述的计算机实施的方法,其中,所述至少一个约束是有条件的,并取决于至少一个属性的值。
9.根据权利要求1所述的计算机实施的方法,其中,所述至少一个约束是有条件的,并取决于至少两个属性的值之间的关系。
10.根据权利要求1所述的计算机实施的方法,其中,所述至少一个约束指示至少一个属性的至少一个可能值。
11.根据权利要求1所述的计算机实施的方法,其中,所述至少一个约束指示将要从现有测试中选择的所述至少一个属性的至少一个可能值,以及将要被自由地或者根据与所述现有测试无关的约束而分配给所述至少一个属性的至少一个可能值。
12.根据权利要求1所述的计算机实施的方法,其中,至少一个组合与成本相关联,以使得将要被选择的组合与高成本相关联,将要被生成的组合与低成本相关联,并且要求实现覆盖目标,同时降低成本。
13.一种具有处理单元和存储装置的装置,所述装置包括:
数据接收组件,用于接收与域有关的属性集合、至少一个约束和现有测试,所述属性集合包括至少两个属性,所述至少一个约束指示至少一个属性,其中,所述至少一个属性的值将从一个现有测试中选择;以及
测试生成组件,用于生成符合所述约束的至少一个新测试,所述测试生成组件包括:
属性选择组件,用于从所述现有测试中选择所述新测试中所述至少一个属性的值;以及
属性分配组件,用于向所述新测试中至少一个其它属性分配至少一个值,其中,所述至少一个值不从所述现有测试中选择。
14.根据权利要求13所述的装置,其中,所述至少一个其它属性的所述至少一个值从第二现有测试中选择。
15.根据权利要求13所述的装置,其中,生成所述至少一个其它属性的所述至少一个值。
16.根据权利要求14所述的装置,还包括:覆盖确定组件,用于确定覆盖目标是否已经由所述新测试实现。
17.一种计算机程序产品,包括:
非瞬态计算机可读介质;
第一程序指令,用于接收与域有关的属性集合,所述属性集合包括至少两个属性;
第二程序指令,用于接收至少一个约束,所述至少一个约束指示至少一个属性,其中,所述至少一个属性的值将从一个现有测试中选择;
第三程序指令,用于接收现有测试;以及
第四程序指令,用于通过设置所述至少两个属性的值来生成至少一个新测试,其中,所述至少一个约束的所述至少一个属性的值从所述现有测试中选择,至少一个其它属性的至少一个值不从所述现有测试中选择;
其中,所述第一、第二、第三和第四程序指令被存储在所述非瞬态计算机可读介质上。

说明书全文

用于重复使用部分现有测试技术领域的方法和装置

技术领域

[0001] 本发明一般涉及测试,更具体地,涉及结合了测试选择和生成的混合方法。

背景技术

[0002] 计算机化设备几乎控制了我们生活的每个方面——从写文档到控制交通灯。然而,计算机化系统容易出错,因此,要求应当发现故障的测试阶段。测试阶段被认为是在设计计算机化设备中最困难的任务之一。没有发现故障的代价可能是巨大的,因为故障的后果可能是灾难性的。例如,故障可导致依赖于计算机化系统的指定行为的人受到伤害。此外,修复已销售产品的硬件固件中的故障可能是昂贵的,因为对其打补丁要求召回计算机化设备。因此,计算机化系统的许多开发者投入大部分的开发周期以发现计算机化设备的错误行为。
[0003] 测试的重要部分涉及测试计划和设计,即,提供充分覆盖系统的一组测试,以使得如果所有测试都通过,则系统被认为是有效的。然而,通常要求提高测试效率,并尽可能减少测试的数量或总成本。
[0004] 用于测试计划和设计的常用方法是组合测试设计(CTD)。当将问题描述为一组属性或性质、与属性对应的值、以及对不可能在测试中一起出现的值的组合的约束时,可以使用CTD。每个测试包括每个属性的值,以使得组合表示特定情形。因此,测试可被表示为其中每一个属性都被赋值的元组。
[0005] 例如,考虑需要测试的医疗保健系统。每个测试可包括病人的详情,诸如年龄层、居住区域、医疗详情、病人在上个月接受治疗的次数等;与医护人员相关联的详情,诸如纪律、工作经验、实践区域等;以及所提供的治疗的详情,诸如治疗的种类、诊断、在何处提供治疗等。医疗保健提供者可设置例如成对测试(pairwise testing)的覆盖目标,即,任意病人详情的每个可能值必须与任意医护人员详情的每个可能值进行测试,这同样用于任何其它对的详情。因此,测试可与腿部骨折的年轻病人有关。然而,与相同测试相关联的其它详情可指示医护人员是在私人诊所实践的儿科医生或任何其它组合。因此,单个测试可覆盖多个对。在其它系统中,可形成不同的要求,例如可要求三方测试(three-way testing)。
[0006] 应当认识到,术语“测试”可与被分配给属性的值、与测试相关联的数据、生产数据、测试制造过程和结果等有关。测试可以指示或可以不指示测试将如何执行。
[0007] 当构建用于实现系统的所要求的覆盖平的测试计划时,存在两个主要准则:测试生成和测试选择。测试生成可与从零生成的一组测试(即,多组属性值)有关。然而,诸如CTD的测试计划算法可生成由于成本、所要求的工作量等很难实施或昂贵的测试。例如,生成与去年在五个不同地点接受五个不同医护人员的五次治疗的病人有关的数据可能耗费巨大的工作量。
[0008] 测试选择是补充方法。在测试选择中,指定例如由系统设计者(诸如,医疗保健系统的设计者)提供的一组测试。然后,可选择保持相同覆盖的测试的子集。例如,指定测试A、B和C,其中,测试A和测试B具有除了病人年龄层和居住区域以外的相同属性,测试C具有与测试B相同的病人年龄层和居住区域,则测试B可以消除。
[0009] 在测试生成后进行测试选择的优点是不需要生成新测试。然而,缺点是现有测试通常实现相对低的覆盖。测试选择没有改善测试计划的覆盖,而仅仅减小了它的大小,因此保留低覆盖。

发明内容

[0010] 本发明的一个方面涉及由计算机化设备执行的计算机实施的方法,其包括:接收与域有关的属性集合,该属性集合包括两个或更多个属性;接收一个或多个约束,每个约束指示一个或多个属性,其中,属性的值将从一个现有测试中选择;接收现有测试;以及通过设置属性的值来生成一个或多个新测试,其中,属性的值从现有测试中选择,一个或多个其它属性的一个或多个值不从现有测试中选择。
[0011] 本发明的另一个方面涉及具有处理单元和存储装置的装置,该装置包括:数据接收组件,用于接收与域有关的属性集合,该属性集合包括两个或更多个属性、一个或多个约束和现有测试,每个约束指示一个或多个属性,其中属性的值将从一个现有测试中选择;测试生成组件,用于生成符合约束的一个或多个新测试,该测试生成组件包括:属性选择组件,用于从现有测试中选择新测试中属性的值;以及属性分配组件,用于向新测试中的一个或多个其它属性分配一个或多个值,其中,这些值不从现有测试中选择。
[0012] 本发明的再一个方面涉及计算机程序产品,其包括:非瞬态计算机可读介质;第一程序指令,用于接收与域有关的属性集合,该属性集合包括两个或更多个属性;第二程序指令,用于接收一个或多个约束,每个约束指示一个或多个属性,其中,属性的值将从一个现有测试中选择;第三程序指令,用于接收现有测试;以及第四程序指令,用于通过设置属性的值来生成一个或多个新测试,其中,属性的值从现有测试中选择,一个或多个其它属性的一个或多个值不从现有测试中选择;其中,第一、第二、第三和第四程序指令都存储在所述非瞬态计算机可读介质上。
[0013] 从另一个方面来看本发明,提供了由计算机化设备执行的计算机实施的方法,其包括:接收与域有关的属性集合,该属性集合包括至少两个属性;接收一个或多个现有测试;获得测试计划;识别测试计划中的至少一个测试中可被改变而不减少覆盖的至少一个值的组合;以及用来自一个或多个现有测试的至少一个值替换至少一个值的组合。附图说明
[0014] 本公开的主题将从以下结合附图的详细描述中更充分地理解和认识,在附图中,相应或相同的数字或字符表示相应或相同的组件。除非指示相反的情况,否则附图提供本发明的示例性实施例或方面,其并不限制本发明的范围。在附图中:
[0015] 图1示出根据本发明的某些示例性实施例的用于将测试选择与测试生成相结合的混合方法的例子;
[0016] 图2示出根据本发明的某些示例性实施例的用于将测试选择与测试生成相结合的方法中的步骤的流程图
[0017] 图3示出根据本发明的某些示例性实施例的用于将测试选择与测试生成相结合的装置的组件的框图

具体实施方式

[0018] 下面将参照根据本主题的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的实施例。应当认识到,流程图和/或框图的方框以及流程图和/或框图中方框的组合,都可以由计算机程序指令实施。这些计算机程序指令可以被提供给通用计算机、专用计算机、测试处理器或其它可编程数据处理装置的一个或多个处理器,以产生机器,以使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实施在流程图和/或框图的一个或多个方框中规定的功能/动作的装置。
[0019] 这些计算机程序指令还可以存储在非瞬态计算机可读介质中,其可引导计算机或其它可编程数据处理装置以特定方式工作,以使得存储在非瞬态计算机可读介质中的指令产生包括实施在流程图和/或框图的一个或多个方框中规定的功能/动作的指令装置的制造品(article of manufacture)。
[0020] 计算机程序指令还可以被加载到装置上。计算机或其它可编程数据处理装置促使一系列操作步骤在计算机或其它可编程装置上执行以产生计算机实施的过程,以使得在计算机或其它可编程装置上执行的指令提供用于实施在流程图和/或框图的一个或多个方框中规定的功能/动作的过程。
[0021] 由所公开的主题处理的一个技术问题是创建用于测试系统的一个或多个测试。应当注意,该上下文中的测试包括系统的属性的值的集合。例如,在需要被测试的医疗保健系统中,每个测试可包括病人的详情,诸如年龄层、居住区域、医疗详情、上个月病人接受治疗的次数等;与医护人员相关联的详情,诸如纪律、工作经验、实践区域等;以及所提供的治疗详情,诸如治疗的种类、诊断、在何处提供治疗等。应当认识到,在该上下文中,测试并不必需指示如何进行测试,而是指示属性的值。测试应当被生成以达到可由用户定义的覆盖目标,以使得当所有测试都通过时,系统被认为是有效的。覆盖目标可例如是所有属性的成对测试,即,任意病人详情的每个可能值必须与对于任意医护人员详情的每个可能值进行测试,这同样用于任何其它详情对。覆盖目标可包括组合或组合集,可例如指示特定属性的成对测试、其它的三方测试、其它属性的自由设置等。
[0022] 目前可用的技术包括测试生成。然而,测试生成的主要阻碍因素是用于所生成的测试的数据或设置的产生可能是昂贵的。另一种可用的技术是测试选择,其中测试的子集从测试的全集中选择。然而,测试选择可能会遭受系统的低覆盖,其通过选择测试的子集也不能改进。
[0023] 因此,有利的是将两种方法相结合。已知的解决方案包括将测试生成与测试选择相结合,首先通过添加测试来加强指定的测试计划以完成覆盖目标,然后在扩展的测试计划上应用测试选择。然而,这种解决方案仍然要求完整生成新创建的测试,这可能使该解决方案不合格,因为完整的测试生成可能以太昂贵而告终。
[0024] 因此,要求产生一方面提供如设计者或其它人员所限定的期望覆盖而另一方面可以从实际度来生成的一个或多个测试。
[0025] 一种技术解决方案包括在每个测试内将选择和可选的生成相结合。该解决方案包括从用户接收现有测试的全集,并接收值需要从现有测试中选择的属性的组合的一个或多个指示,而其它属性可以从其它测试中或以任何其它方式选择。
[0026] 例如,假设系统具有6个布尔属性:A、B、C、D、E和F。用户可指定A和B的组合必须从一个指定测试中选择。因此,例如,A和B的特定值的组合,诸如“A=真”且“B=真”,只有当它在已在全集中存在的测试中出现时才被允许在所构建的测试中出现,这同样用于A和B的值的其它组合。可由用户对属性C和D设置类似的约束,以使得C和D的值的组合只有当它在现有测试中出现时才可在结果中出现。然而,没有要求A、B、C和D的值的组合必须如同在现有测试中一样出现。相反,可建议A和B的值从一个现有测试中选择,而C和D的值从另一个现有测试中选择的测试。诸如E和F的其它取值可从任何一个或多个测试中选择或者可被补足。
[0027] 应当认识到,某些要求还可涉及单个属性。例如,年龄属性可限制为0至120的范围,如果被指示为“选择”(selected),则被分配给该属性的值必须从现有测试中选择。
[0028] 可应用涉及可能或不可能的组合的某些一般约束,而不管这样的组合是否在现有测试中出现。还应当认识到,某些约束可涉及被排除和不应该被设置的组合,例如,老年病人和儿科医生的组合等。
[0029] 可根据由用户设置的要求生成其它测试,直到实现所期望的覆盖目标。应当认识到,覆盖目标可仅用指定测试和约束尽可能地实现。例如,如果覆盖目标指示成对测试,并且特定组合被标记为将被选择,但是组合属性的一组值不在指定测试集中出现,则不会测试该组合。因此,覆盖目标将要根据约束和在指定测试集内可用的值而确定。
[0030] 因此,难以生成的值的组合应当由用户标记以用于选择,以使得在测试计划中出现的任何组合已在指定测试集中存在并可被重复使用。在另一个方面,对于其它属性,最佳可能值可自由选择或分配,即,不要求它们在测试中出现,这使得能够用最少的测试实现覆盖。
[0031] 利用所公开的主题的一个技术效果是实现测试覆盖目标,同时避免生成昂贵的测试,即,包括已知生成很昂贵的组合的测试。该混合方法利用了测试选择的优点——测试成本低(或者使用费用已支付过的测试),以及测试生成的优点——系统的有效覆盖。
[0032] 现参照图1,其示出了举例说明用于将测试选择与测试生成相结合的混合方法的示意图。
[0033] 属性集合100包含6个属性A、B、C、D、E和F。属性与可测试的组件相关联,诸如经历单元测试的单元、完整的系统、设计等。
[0034] 用户指示的A和B属性的组合101与D和E属性的组合102作为应当从现有测试中选择的组合,而不是从零生成的组合。
[0035] 集合104和108将属性值指示为用于两个可用测试的集合,从其中可进行选择。集合104测试具有属性值A1至F1的系统,集合108测试具有属性值A2至F2的系统。
[0036] 集合112、116、120和124描述了可通过所公开的方法和装置生成的一些测试。
[0037] 在集合112中,组合101和组合102都从测试104中选择,并对两个剩余的属性C和F创建了新的值。因此,集合112包括从测试104中选择的A1-B1和D1-E1的组合以及新生成的值C3和F3。
[0038] 在集合116中,组合101从测试104中选择,组合102从测试108中选择。集合116还使用了在测试104和108中出现的其它属性的两个值。因此,集合116包括从测试
104中选择的A1和B1的组合、从测试108中选择的D2和E2的组合、来自测试104的C1值和来自测试108的F2。
[0039] 在集合120中,组合101从测试108中选择,组合102从测试104中选择。集合120还使用了来自测试108的属性F的值F2,并为属性C分配了新的值C4。被分配给C的值可自由生成,或者则从可能值的集合中选择,如果这种集合已被指示,例如,可以对年龄属性指示0至120的范围。因此,集合120包括从测试108中选择的A2和B2的组合、从测试104中选择的D1和E1的组合、新创建的值C4以及从测试108中选择的F2。
[0040] 在集合124中,组合101和102从测试108中选择,并对属性C和F生成了新的值C5和F5。因此,集合124包括来自测试108的A2-B2和D2-E2的组合以及新创建的值C5和F5。
[0041] 应当认识到,也可以创建其它组合,其中,A和B组合从测试104或测试108中选择,D和E组合从测试104或测试108中选择,C和F各自可以从测试104、测试108、任何其它可用的测试中选择或者新创建。
[0042] 现参照图2,其示出用于将测试选择与测试生成相结合的方法中的步骤的流程图。
[0043] 在步骤200,接收与域或系统相关联的属性集合。例如,在医疗保健系统的情况下,该组属性可包括病人统计和医疗详情、医护人员详情、由医护人员提供给病人的治疗的详情、在其中提供治疗的机构的详情等的集合。
[0044] 在步骤204,可接收约束集,其指示约束集合,并包括必须从指定测试中选择的一个或多个属性组合。应当认识到,每个组合可包括两个或更多个属性。然而,每个组合可从不同测试中选择,或者两个或更多个组合可从特定测试中选择。例如,如果A和B被指示为将被选择的组合,这同样用于C和D,则A和B必须从同一个测试中选择,C和D必须从同一个测试中选择,但是A、B、C和D不必全部从同一个测试中选择。零个、一个或多个约束可涉及单一的属性;零个、一个或多个其它约束可涉及两个属性的组合;还有零个、一个或多个其它约束可涉及三个属性的组合,等等。应当认识到,在约束之间可存在重叠。例如,一个约束可涉及A和B的组合,另一个约束可涉及A和C的组合。在这种情况下,所有的值可以或者可以不从单个测试中选择。例如,如果第一测试具有(A=1,B=1,C=1),第二测试具有(A=1,B=2,C=2),则新测试可具有(A=1,B=1,C=2),其符合这两个约束,但A、B和C并没有从同一个测试中选择。应当认识到,由于约束涉及至少两个属性,而且约束并不是指所有属性(否则,唯一的解决方案将是利用现有测试),因此,属性集包括至少三个属性。
[0045] 在步骤208,可接收现有测试的集合,其中每个测试可指示每个属性的值。在步骤204中指示的那些必须被选择的组合可以从任何所接收的测试中选择。应当认识到,现有测试集合可以或者可以不是由该方法最终提供的测试集合的一部分。因此,在某些实施例中,所创建的测试集合可以从空集开始,并可随着方法的进行而添加测试。在其它实施例中,现有测试集可用作初始集,新生成的测试可被添加到其中。在其它实施例中,初始处理可对初始集执行以减少测试的数量,同时基本上维持相同或相似的覆盖,随后创建新测试并将其添加到被减少了的初始集中。
[0046] 在步骤212,确定可由用户声明或者从外部源接收的覆盖目标是否已经实现。覆盖目标可例如是成对覆盖,即,两个属性的所有组合都必须进行测试,例如,年轻病人和骨科、老年病人和上个月至少去过一次诊所等。应当认识到,某些组合可被禁止、排斥或排除,例如年轻病人和老年医学专家等,以使得零个、一个或多个组合将被选择,而零个、一个或多个其它组合被禁止。还应当认识到,覆盖目标应当根据可用测试来确定,因为一组值在指定测试集内不可用的“所选择的”组合不能被测试。
[0047] 如果覆盖目标已经实现,则不要求更多测试,方法在步骤216退出。
[0048] 如果目标还未实现,则在步骤220,生成符合约束的新测试。测试通过设置属性的值而生成,以使得在步骤204中指示的所有属性组合都从在步骤208中接收的任意一个或多个测试中选择,导致测试的至少一个属性从指定测试中的一个选择。如果接收了多个约束,则该约束的属性的值可取自相同的测试,而另一个约束的属性的值可取自另一个测试。
[0049] 在步骤224,未被选择的属性可例如通过重新生成来设置。在某些实施例中,生成如步骤220和224所生成的每个这样的新测试,以使得扩大现有覆盖。
[0050] 应当认识到,在图2中表示的迭代流仅仅是示例性的,可设计可选的实施例。例如,某些算法可扩展用于多个测试的特定约束,然后移动到下一个约束。其它算法可以从较大的测试集开始,并取出冗余的测试,等等。
[0051] 现参照图3,根据所公开的主题的某些示例性实施例示出了用于将测试选择与测试生成相结合的装置的组件的框图。
[0052] 装置可包括计算平台300。计算平台300可包括处理器304。处理器304可以是中央处理单元(CPU)、微处理器电子电路、集成电路(IC)等。可选地,计算平台300可被实现为写入或移植到诸如数字信号处理器(DSP)或微控制器的特定处理器的固件,或者可被实现为诸如现场可编程阵列(FPGA)或专用集成电路(ASIC)的硬件或可配置硬件。处理器304可用于执行计算平台300或任何其子组件所要求的计算。
[0053] 在所公开的主题的某些示例性实施例中,计算平台300可包括MMI模308。MMI模块308可用于在装置与用于提供诸如描述约束的输入并接收诸如所建议的测试的输出等的用户之间提供通信。
[0054] 在某些实施例中,计算平台300可包括用于与系统交互的输入-输出(I/O)装置312,诸如终端、显示器、键盘、输入设备等,以调用系统并接收结果。然而,应当认识到,系统可以无人工操作地运行。
[0055] 在某些示例性实施例中,计算平台300可包括诸如存储装置316的一个或多个存储装置。存储装置316可以是永久的或易失的。例如,存储装置316可以是闪存盘、随机存取存储器(RAM)、内存芯片、诸如CD、DVD或激光盘的光存储装置、诸如磁带、硬盘、存储区域网络(SAN)、网络附加存储(NAS)或其它的磁存储装置、诸如闪存装置、记忆棒等的半导体存储装置。在某些示例性实施例中,存储装置316可保持程序代码,其可操作以使得处理器304执行与上面图2所示的任意步骤相关联的动作,例如,生成测试、检查覆盖等。
[0056] 下面详述的组件可被实现为例如由处理器304或另一个处理器执行的一组或多组相互关联的计算机指令。组件可被设置为以任意编程语言并在任意计算环境下编程的一个或多个可执行文件、动态库、静态库、方法、功能、服务等。
[0057] 存储装置316可包括输入接收组件320,其用于接收例如包括将要被测试的系统的属性集、约束或现有测试的输入。输入可通过网络、使用任何协议的计算机通信、外部存储装置接收,或者从数据库接收等。
[0058] 存储装置316还可包括覆盖确定组件324,其用于确定所生成的测试集合是否提供足够的系统的覆盖,其中覆盖目标可由用户提供。
[0059] 存储装置316还可包括测试生成组件326,其用于生成符合约束的测试。
[0060] 测试生成组件326可包括用于从现有测试中选择用于受约束组合的属性的属性选择组件328和用于生成或者另外接收不构成受约束组合的一部分的那些属性的值的属性分配组件332。
[0061] 存储装置316还可包括数据和控制流管理组件336,其用于管理其它组件之间的信息和控制的流,例如,存储由输入接收组件320接收的测试和约束,使用属性选择组件328和属性分配组件332来生成测试,由覆盖确定组件324确定覆盖等。
[0062] 所公开的方法和装置使得能够根据用户提供的约束来生成测试,其中用户提供的约束指示值必须从现有测试中选择的属性组合,而其它属性的值可自由选择或生成。
[0063] 应当认识到,可存在多种对方法和装置的改进和修改
[0064] 一个这样的改进可涉及其中组合可被设置成能够使用任何形式逻辑以有条件的方式选择的情况,例如,如果A=1,则必须选择B和C属性的组合,即,应当取自相同的现有测试的所分配的值,否则(如果A不等于1),B和C的值可自由选择或生成。在另一个例子中,必须选择其中A等于B的A和B的组合,即,在A和B相等的任何测试中,它们的值必须从现有测试中选择,而其中A不同于B的其它组合可以任何所需要的方式选择或设置。
[0065] 另一个改进可涉及混合约束。例如,A可采用已在指定测试中存在的1至10之间的值,或者可以是11至20之间的任意值。相似的约束可应用于组合,例如,组合A=1和B=1、A=1和B=2以及A=2和B=2可仅在它们已在现有测试中使用时才被使用,而A和B的其它组合可自由分配。
[0066] 在再一个改进中,代替组合被标记为“选择”或者其可自由生成或分配,组合可与生成权重或成本相关联。因此,“选择”指示可被解释为无限的生成成本,而“生成”指示被解释为零生成成本,也可被分配任何其它值。因此,当试图最小化成本时,如果可行,将选择被指示为“选择”的组合,而其它属性将根据相关联的成本来选择或生成。这种生成的目标可以是最小化或降低每个测试或所生成的测试的整个全集的成本,同时实现所要求的覆盖目标。
[0067] 最新的修改也可被扩展到其中数据生成总是可能的但与成本相关联的情况。在该情况下,用户可能更愿意重复使用尽可能多的现有数据,但并未降低覆盖或者牺牲简洁性。该修改的可能的方法会是:
[0068] 1.生成包括多个测试的测试计划,而忽略现有测试。可选地,测试计划可从任何源获得。
[0069] 2.在测试计划的一个或多个测试中,识别可被修改而不降低覆盖的属性值或其组合,即,不要求被覆盖的组合或者被其它测试覆盖的组合,因此,改变这些属性的值不会减少对这些属性所覆盖的值组合的数量。
[0070] 3.用来自现有测试的取值替换这种组合,因此,不需要其它的值生成资源。
[0071] 该方法不改变测试计划的大小,也不改变它的覆盖,但是可通过使用现有数据来减少要求生成的数据的量。该方法在识别相对更容易生成的组合而难以生成的组合中可以或者可以不使用用户干预。应当认识到,该改进可应用于一组属性的一部分。还应当认识到,该方法可以被实现而无需约束。该算法可以尝试并改变不影响覆盖的组合,即使用户并未指定这些组合。
[0072] 应当认识到,本发明可以在系统开发的任何阶段使用,包括设计、单元测试、系统测试、调试或其它。还应当认识到,所公开的主题可应用于为其开发了计算机化系统且可被建模为属性和值的集合的任何科目,例如,医疗、行、保险、金融、运输、制造、教育、旅游、商贸等。
[0073] 附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图中的每个方框以及框图中的某些方框可以代表程序代码的模块、段或一部分,其包括一个或多个用于实现规定的逻辑功能的可执行指令。还应当注意,在某些可选实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,连续示出的两个方框实际上可以基本并行地执行,或者方框有时可以按相反的顺序执行,这取决于所涉及的功能。还应当注意,框图和/或流程图中的每个方框以及框图和/或流程图中的方框的组合可以通过执行规定功能或动作的专用的基于硬件的系统或者可以用专用硬件与计算机指令的组合来实现。
[0074] 在此使用的术语仅仅为了描述特定实施例的目的,而并不意图限制本发明。如在此所使用的,单数形式“一”、“一个”和“该”也意图包括复数形式,除非上下文清楚地指示相反的情况。进一步应当理解,术语“包括”和/或“包含”在本说明书中使用时指明所陈述的特征、整数、步骤、操作、元件和/或部件的存在,但不排除存在或增加一个或多个其它特征、整数、步骤、操作、元件、部件和/或其组合。
[0075] 所属技术领域的技术人员知道,本发明可以实现为系统、方法或计算机程序产品。因此,本发明可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明还可以采用在任何有形表达的介质中具体化的计算机程序产品的形式,该计算机程序产品具有在该介质中具体化的计算机可用程序代码。
[0076] 可以采用一个或多个计算机可用或可读介质的任意组合。计算机可用或可读介质可以例如但不限于:任何非瞬态计算机可读介质,电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者传播介质。计算机可读介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CDROM)、光存储装置、诸如支持互联网或内部网的传输介质、或磁存储装置。应当注意,计算机可用或计算机可读介质甚至可以是在其上印刷程序的纸或其它适当介质,因为程序可例如经由纸或其它介质的光学扫描而电子地捕获,然后编译、解释或以适当方式另行处理(如果需要的话),然后存储在计算机存储器中。在本文的上下文中,计算机可用或计算机可读介质可以是能够包含、存储、通信、传播、或传输用于由指令执行系统、装置或器件使用或者与其结合使用的程序的任何介质。计算机可用介质可以包括在基带中或者作为载波的一部分的具有承载于其中的计算机可用程序代码的传播的数据信号。计算机可用程序代码可以使用任何适当介质来传输,包括但不限于,无线、有线、光纤电缆、RF等。
[0077] 可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供者来通过因特网连接)。
[0078] 在下面的权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物意图包括任何用于结合其它明确要求保护的元件而执行功能的结构、材料或动作。已经提供本发明的描述以用于说明和描述的目的,但并不意味着穷尽。在不脱离本发明的范围的情况下,许多修改和变形对于本领域技术人员将是明显的。为了最好地解释本发明的原理和实际应用,已选择并描述了实施例,这些实施例使得本领域技术人员能够理解本发明的各种实施例以及与所考虑的特定应用相适宜的各种修改。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈