首页> 中国专利> 用标准测试体生成软件测试期望结果的方法及相应的软件测试方法

用标准测试体生成软件测试期望结果的方法及相应的软件测试方法

摘要

本发明涉及软件测试方法,为解决现有技术中期望结果的生成方法对测试人员的技能依赖较强、以及继承性不好等问题,本发明提供一种用标准测试体生成软件测试之期望结果的方法,其中,所述标准测试体由输入构件、分析构件及输出构件三部分组成,所述标准测试体从所述输入构件处获取各种测试输入,所述分析构件对所述各种测试输入进行综合分析以生成相应的期望结果,然后通过所述输出构件输出所述期望结果。此外,本发明还提供一种软件测试方法,其中利用上述方法,将测试输入集输入到标准测试体以生成相应的期望结果,并将测试输入集输入到被测试软件以输出相应的测试结果,然后将所述测试结果与期望结果进行比较,以判断软件功能是否正确。

著录项

  • 公开/公告号CN1811729A

    专利类型发明专利

  • 公开/公告日2006-08-02

    原文格式PDF

  • 申请/专利权人 华为技术有限公司;

    申请/专利号CN200510033047.9

  • 发明设计人 邹世敏;

    申请日2005-01-26

  • 分类号G06F11/36(20060101);

  • 代理机构44217 深圳市顺天达专利商标代理有限公司;

  • 代理人郭伟刚;易钊

  • 地址 518129 广东省深圳市龙岗区布吉坂田华为总部办公楼

  • 入库时间 2023-12-17 17:29:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2016-03-23

    未缴年费专利权终止 IPC(主分类):G06F11/36 授权公告日:20080430 终止日期:20150126 申请日:20050126

    专利权的终止

  • 2012-04-04

    专利权的转移 IPC(主分类):G06F11/36 变更前: 变更后: 登记生效日:20120222 申请日:20050126

    专利申请权、专利权的转移

  • 2008-04-30

    授权

    授权

  • 2006-10-11

    实质审查的生效

    实质审查的生效

  • 2006-08-02

    公开

    公开

说明书

技术领域

本发明涉及软件测试技术领域,更具体地说,涉及一种用标准测试体生成软件测试期望结果的方法及相应的软件测试方法。

背景技术

软件测试在软件生存期中占有非常突出的重要位置。1983年IEEE(电气和电子工程师学会)提出的软件工程标准术语中,给软件测试下的定义是:“使用人工或自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清期望结果与实际结果之间的差别”。

软件测试中所用的测试用例,是针对被测试系统各项功能开发的。每个测试用例将贯穿五个不同的开发活动(不包括再测试),如图1所示,对任何一个测试用例,都要顺序执行这五个测试开发活动:测试对象分析、测试用例设计、测试用例建立、执行、以及将执行输出的测试结果与期望结果比较。

(1)测试对象分析:指的是从需求规格、使用以及实现等各方面对测试对象进行综合分析,以明确被测试的对象。

(2)测试用例设计:指的是确定“怎样测试”,测试用例需按照一定顺序执行与测试目标相关的一系列测试,所以,测试用例设计将产生许多测试所包括的输入值、期望结果以及其他任何运行测试的有关信息,如环境要求。

(3)测试用例建立:指的是将测试用例设计的思考结果用一种外在的形式体现出来,如文档模式,一般包括测试用例标题、预置条件、环境描述、测试步骤、期望结果等信息,其形式如下表所示,其内容一般用文档模式保存。

         表1  线性复用段用例

  测试用例标题:抢占测试  预置条件:线性复用段配置正确,能够正常倒换。  环境描述:

其中:A、NE1、NE2方框表示SDH(Synchronous Digital Hierarchy,同步数字系统)制传输设备,NE1、NE2是设备的标识名称;

B、线性复用段(Linear multiplex section protection),在ITUT(国际电信联盟-电信标准部)G.841里对其原理有详细说明,在此不再重复;

C、NE1、NE2相连的连线表示两个设备间的光纤,一根连线表示一对收发光纤;

D、连线上的“w”表示工作通道,“p”表示保护通道。

(4)执行:指的是按照测试用例里的步骤自动或是手工执行。

(5)将执行输出的测试结果与期望结果比较:指提对每次测试的实际输出进行分析研究,判断软件功能是否正确。这种验证可以是非正式的测试者主观判断,也可以是将实际输出与期望结果进行严格标准的比较。一般情况下,如果实际输出与期望结果一致,则软件通过测试;如果不一致,则软件没有通过测试。

其中,期望结果是测试用例构成中的一个重要组成部分。期望结果与实际输出结果不一致,可能有多种因素,有可能是软件不正常,也可能运行测试的顺序不对,或期望结果的结果不正确,或测试环境设置不正确,或是测试定义不正确。期望结果的分析又是一个复杂的过程,而且期望结果正确与否又直接关系到软件是否符合要求,进而影响整个软件测试的质量。因此,期望结果的产生在整个测试过程中是一个非常关键的环节。

目前,对期望结果的分析一般由测试人员根据自身对被测试对象规格需求以及设计的理解,结合测试用例里的测试步骤,对测试过程进行分析,主观得出期望结果。下面两个因素对期望结果影响比较大:(1)测试人员对测试特性理解程度;(2)测试人员对测试过程的熟练程度。另外,测试人员在不同时间、不同地点下,其心理状态有可能不一样,导致分析过程可能不一样,对期望结果的产生也会有一定的影响。

可见,现有技术存在以下缺点:

(1)对测试人员的技能依赖较强,强调测试人员业务技能和测试经验,当出现相关测试人员工作变动时,将对测试期望结果的正确性判断产生不良影响,会严重影响测试质量。

(2)随着测试人员对产品特性的理解加深以及测试经验的积累,或是在不同时间不同场合下,相同的测试人员有可能推翻原有期望结果,重新分析期望结果;另外,相同的测试用例由不同的测试人员去执行时,由于思考角度不同,也有可能重新分析期望结果。可见,重复劳动随时都可能发生,从而导致测试效率的降低和成本的提高。

(3)继承性不好。由于业务技能和测试经验体现在人的思维中,后来的测试人员只能从一些前人输出文档里部分的了解到,要转化为实际效益则需要一定的滞后期,这样就不能很好的实现技能的累积。

当产品种类繁多,人员流动频繁时,以上缺点会表现得更为明显。

发明内容

针对现有技术的上述缺陷,本发明要解决现有软件测试技术中期望结果的生成方法对测试人员的技能依赖较强、效率低而成本高、以及继承性不好等问题。

为解决上述技术问题,本发明提供一种用标准测试体生成软件测试之期望结果的方法,其中,所述标准测试体由输入构件、分析构件及输出构件三部分组成;所述方法包括以下步骤:

(S11)所述标准测试体从所述输入构件处获取各种测试输入;

(S12)所述分析构件对所述各种测试输入进行综合分析,生成相应的期望结果;

(S13)通过所述输出构件输出所述期望结果。

在本发明所述方法的步骤(S11)之前,还包括对所述各种测试输入进行规范处理的步骤,以将各种测试输入抽象为统一的标志符。所述对各种测试输入的抽象可包括用例输入层次的抽象和核心处理层次的抽象。

在本发明所述方法的步骤(S12)中,具体包括以下步骤:在对所述各种测试输入进行分析前,先对测试环境进行环境预置;然后从测试过程、规格说明以及其他因素方面,对抽象后的各种测试输入进行分析,以得出所述期望结果。

在本发明所述方法的步骤(S13)中,可将测试人员需要关注的所述期望结果,以适当的格式输出出来;在实现测试自动化时,可所述标准测试体内嵌到自动化脚本中。

本发明还提供一种软件测试方法,其中包括以下步骤:

(S101)根据测试用例中的各测试步骤,生成测试输入集;

(S102)利用上述用标准测试体生成软件测试之期望结果的方法,将所述测试输入集输入到标准测试体,以输出相应的期望结果;

(S103)将所述测试输入集输入到被测试软件,以输出相应的测试结果;

(S104)将所述测试结果与期望结果进行比较,以判断软件功能是否正确。

由于采取了上述技术方案,本发明克服了现有技术的缺陷,并具有以下优点:

(1)分析过程被固化,在任何情况下,标准测试体都能快速分析出期望结果,测试过程一致,结果也是一致的,大大节省了测试人员的时间;

(2)标准测试体可以根据所有测试人员提出的期望结果分析建议进行完善,从而有利于经验的积累,并能很快被所有人应用;

(3)分析过程自动化后,测试人员只需关注测试设计,而不必关系期望结果,从而有利于扩大测试的覆盖面;

(4)期望结果分析自动化,一旦嵌入自动化测试体系中,可以极大提高工作效率,降低测试成本。

附图说明

图1是测试用例的开发生命周期中应该考虑五个活动的示意图;

图2是本发明所述方案的原理框图;

图3是利用内嵌标准测试体进行自动测试时的原理框图。

具体实施方式

本发明以测试过程为主导,站在测试的角度对软件实现功能进行分析,从而开发出与软件实现功能对等的标准测试体,通过输入规范的测试步骤,即可由所述标准测试体自动生成期望结果。

如图2所示,本发明中,标准测试体由输入构件、分析构件和输出构件三部分组成。其中,标准测试体从输入构件处获取测试输入,再由分析构件进行综合分析,最后通过输出构件输出期望结果。下面将对这三个部分分别进行说明。

一、输入构件

对于不规范的测试输入,标准测试体识别起来是比较困难的。为了简化标准测试体对测试输入的识别过程,可以对测试输入进行规范处理。此外,为了更方便分析构件部分的处理,有必要对规范后的测试输入进行预处理,将各种各样的测试输入抽象为统一的标志符,最好能与被测试软件的规格说明相统一。对测试输入的抽象需要一定的层次:

(1)测试用例->标准测试:用例输入层次

其原则是:A、测试人员能理解;B、标准测试体能识别。

(2)输入构件->分析构件:核心处理层次

其原则是:A、能完成对各种不同输入的分类;B、有利于各种输入的相互比较。

1、用例输入层次抽象

对测试输入进行规范处理的第一步,是用例输入层次抽象,以表1中的用例为例,该用例中提到了以下测试步骤:

(1)NE1工作通道关激光器,

(2)NE1强制倒换到保护通道,

(3)NE1保护锁定,

(4)NE1清除保护锁定,

(5)将步骤1激光器打开。

这些步骤是由测试人员人工执行的步骤,标准测试体识别起来是比较困难的,为此,需对测试输入进行“用例输入层次”抽象。例如可以采用下面的形式,当然并不局限于下面的形式:

                      {设备对象,动作部位,操作}

于是,上述五个操作步骤可以规范为:

(1){NE1,w1,LaserClose}

(2){NE1,w1,ForceSwitch}

(3){NE1,p,Lockout}

(4){NE1,p,unLockout}

(5){NE1,w1,LaserOpen}

将以上一项作为外部输入,标准测试体就可以对其进行识别,对测试人员来说也比较好理解。这样,表1中的测试用例可被改造为下面的模式:

         表2  对测试输入进行规范后的线性复用段用例

2、核心处理层次抽象

对测试输入进行规范处理的第二步,是核心处理层次抽象。为了方便分析构件对测试输入的处理,对以上的测试输入,还可以根据设备标志号、通道号、优先级、设置清除标志以及产生原因等进一步抽象,模式为:

{设备标志号,通道号,优先级,设置清除标志,产生原因}

于是,上述五个操作可进一步抽象为:

(1){0,1,0xd,1,AUTO},

(2){0,1,0xe,1,MANUAL},

(3){0,0,0xf,1,MANUAL},

(4){0,0,0xf,0,MANUAL},

(5){0,1,0xd,0,AUTO}。

二、分析构件

标准测试体对测试输入进行处理前,需要对测试环境进行预置,然后从测试过程、规格说明以及其他因素等方面,对抽象后的测试输入进行分析,以得出期望结果。

1、环境预置

一般来说,要使被测试软件正常工作,需要对其属性进行必要的设置。相应地,对于标准测试体,也需要在其内部对被测试软件的属性设置进行抽象。该抽象需有以下内容:

(1)物理设备抽象为逻辑符号;

(2)被测试特性的属性设置;

(3)若测试过程对组网有特别要求,则需要描述设备连接关系。

以表1中的用例为例,其环境预置可以抽象成以下模式:

//″Name″″LmsPgID″″ProtType″″RvtMode″″OpMode″″LmsWtrTime″″bdmap″                 ——注释行

{NE2        1          1j1         norvt      biend     30            {{62ssnlslq4}{61ssnlslq4}}}

{NE1        1          1j1         norvt      biend     30            {{62ssn2sld4}{61ssn2sld4}}}

其中:

(1)Name下面对应的项目NE1、NE2就是物理设备经过抽象后的逻辑符号;

(2)Name后面的LmsPgID、ProtType、RvtMode、OpMode、LmsWtrTime、bdmap下面对应的信息,是对被测对象关联属性的描述;

(3)bdmap下面对应的信息又从组网模式上对两个设备进行了描述。

{{62ssnlslq4}{61ssnlslq4}}——对应NE1,

{{62ssn2sld4}{61ssn2sld4}}——对应NE2,

通过以上的环境预置,就可以在标准测试体里模拟物理环境的运行,以确保生成准确的期望结果。

2、测试过程

本发明中,由一系列测试输入构成的测试过程,是标准测试体进行分析时要考虑的全部因素。如果某一测试输入会导致被测试软件处于某种状态,则标准测试体会通过一种机制进行保存,并使之与后期的测试输入综合作用于规格说明,从而输出正确的期望结果。

以表1中的用例为例,其中的步骤1为:NE1工作通道1关激光器,这个状态是客观存在的,只要不把激光器打开,对后面的测试步骤就会一直有影响,因此应该通过一种机制记录下来。线性复用段按照一定的优先级进行倒换抢占,由于“NE1工作通道1关激光器”产生的优先级比执行步骤2、3产生的优先级要低,因此被抑止了;在执行步骤4时,关激光器的优先级要高,就显示出来了。而在执行步骤3时,锁定优先级要高,步骤2产生的强制倒换优先级要低被抢占,且是人工命令,也就不用记录了。

3、规格说明

标准测试体是从测试的角度参照规格说明开发所得的,与被测试软件相比,标准测试体不用考虑实际使用时的各种复杂、不确定的因素,而仅仅考虑以一系列测试输入来构成的理想环境。

还是以SDH制式传输设备中的线性复用段为例进行说明,在ITUT G.841中,对线性复用段有非常详细的说明,设备上运行的线形复用段就是参照G.841相关说明来实现。但是站在测试角度来看,测试人员关注的重点是最终的结果、如线性复用段的状态、协议运行后最终K1K2的值、以及业务的通断等信息,而不必去关心K1、K2该如何合成、误码过滤以及协议是如何工作等等处理细节(这部分工作是被测试软件所要做的),相对被测试软件的实现过程,标准测试体的实现相对要简单。线性复用段的状态、协议运行后最终K1K2的值、以及业务的通断这三个方面的信息可以依据ITUT G841之7.1,即“Linearmultiplex section protection”章节的规则推导出来。测试人员正是根据自身对这些规则的理解来得出期望结果的,但是,主观上的理解与G841建议的规则是会存在偏差的,这种偏差也就影响了期望结果的正确性。标准测试体就是将G.841线性复用段里有关线性复用段的状态、协议运行后最终K1K2的值、以及业务的通断等信息推导的规则进行固化,根据测试输入的不同,利用这规则进行结果推导,从而得出期望结果。

固化后的推导过程虽然也会与建议规定有偏差,但是标准测试体由于是一个可以操作的工具,可以被所有人使用,与各个测试人员头脑里的思维相比就有自身的优点:

(1)不管使用的人的测试技能与业务理解程度如何,都可以对标准测试体提出改进意见,从而使标准测试体越来越完善,理论上可以与建议规定无穷接近,甚至完全一致;

(2)由于分析过程被固化了,所以其推导结果不会因时间、地点或是测试人员的情绪变化而变化;

(3)一些高水平的测试专家在使用标准测试体之后,会根据自己对测试过程、规格需求的理解,对标准测试体提出完善意见,这些专家的技术、技能精髓将被沉积在标准测试体中,即使这些专家不在现场的时候,溶入标准测试体里的分析过程一样能起作用,从而可很好地完成技术技能的积累。

4、其他因素

针对某一测试输入,软件在实现其规格之余,还可能会对其他的方面造成影响,如告警、性能等,这方面的内容可在使用过程中进行扩充。

仍以线性复用段为例,如果某一个测试输入导致保护组发生了倒换,除了建议规定的线性复用段的状态、协议运行后最终K1K2的值、以及业务的通断等信息外,还会有类似“APSINDI”这样倒换告警指示。

三、输出构件

输出构件的功能,主要是将测试人员需要关注的期望结果以某种格式输出出来。以表1中的用例为例,其期望结果可以用下面的格式表示:

              {状态:LPS_SF S      业务:通}

在实现测试自动化时,测试脚本中不必将期望结果板书出来,只要将标准测试体内嵌到自动化脚本中,这样整个测试过程可以用图3所示的框图来表示。其中的测试输入集也就是用例中所有的测试步骤。其中,测试输入集分别输入到标准测试体和被测试软件,前者输出的是期望结果,后者输出的是测试结果,将所述期望结果与测试结果进行比较,就可以知道被测试软件是否正确。

图3中的期望结果只是一个中间数据,可以在测试报告中体现出来。这样,表1中的用例可以组织成:

             表4  用于自动化测的线性复用段用例

这样一来,测试人员几乎不需要花时间去考虑期望结果,而是将精力主要集中在思考从哪些方面对被测试软件进行测试,从而有利于增大测试的覆盖面。

由上述的描述可知,本发明具有以下优点:

(1)分析过程被固化,在任何情况下,标准测试体都能快速分析出期望结果,测试过程一致,结果也是一致的,大大节省了测试人员的时间;

(2)标准测试体可以根据所有测试人员提出的期望结果分析建议进行完善,从而有利于经验的积累,并能很快被所有人应用;

(3)分析过程自动化后,测试人员只需关注测试设计,而不必关系期望结果,从而有利于扩大测试的覆盖面;

(4)期望结果分析自动化,一旦嵌入自动化测试体系中,可以极大提高工作效率,降低测试成本。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号