当前位置: 首页 > 专利查询>王彤专利>正文

一种程序测试系统技术方案

技术编号:2844936 阅读:140 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种程序测试系统,其特征在于,包括测试用例设计装置。所述测试用例设计装置从现有的测试用例中选择近似测试用例,还可以生成修改提示,并可以统计逻辑覆盖。本发明专利技术在已有测试用例中,计算出可覆盖预期逻辑目标的近似测试用例,对该近似测试用例进行少量的修改,即可覆盖预期逻辑目标。本发明专利技术还可以提出修改提示,指出需修改哪些数据及数据的范围或需满足的条件,使修改高效准确。本发明专利技术可在黑盒测试的基础上,快速完成白盒测试,并彻底克服了白盒测试的逾后逾难的特点,也可用于纯粹的白盒测试。

【技术实现步骤摘要】

本专利技术涉及软件测试领域,更具体地,涉及一种程序测试系统
技术介绍
软件测试的方法主要有黑盒测试和白盒测试。黑盒测试又叫功能测试,一般根据程序的功能要求来设计测试用例。白盒测试依据程序的内部逻辑结构,一般采用逻辑覆盖法设计测试用例。测试用例(Test Case)目前没有经典的定义,一个测试用例,一般是指一个测试任务,该任务在设定的条件下执行被测试程序。白盒测试常用的逻辑覆盖有语句覆盖、判定覆盖、表达式覆盖、条件覆盖、判定条件覆盖、条件值组合覆盖、路径覆盖,分别定义如下1.语句覆盖设计足够的测试用例,使每一可执行语句至少执行一次。2.判定覆盖又叫分支覆盖,设计足够的测试用例,使每个判定的取真分支和取假分支至少经历一次。3.表达式覆盖(条件式覆盖)设计足够的测试用例,使每个判定的每个条件至少计算一次。4.条件覆盖(条件值覆盖)设计足够的测试用例,使每个判定的每个条件的所有可能取值至少执行一次。5.判定条件覆盖设计足够的测试用例,使每个判定中每个条件的所有可能取值至少执行一次,同时,判定的取真分支和取假分支至少经历一次。6.条件组合覆盖(条件值组合覆盖)设计足够的测试用例,使每个判定的所有可能的条件取值的组合至少执行一次。7.路径覆盖设计足够的测试用例,使程序中所有可能的路径至少执行一次。程序中含有循环结构时,一个很简单的程序都可能产生大量的路径,完全的路径覆盖在实际的测试工作中不具实用性,因此,对于路径覆盖,统计路径时一般不考虑循环的实际次数,只考虑至少执行循环体一次和不执行循环体两种情况,这种简化的路径覆盖又叫Z路径覆盖,由于完全的路径覆盖不具实用性,我们所说的路径覆盖是指Z路径覆盖。从上述各种逻辑覆盖的定义可看出表达式覆盖、条件覆盖、判定条件覆盖、条件组合覆盖均与条件有关,其中判定条件覆盖是判定覆盖与条件覆盖的组合,可以用判定覆盖加条件覆盖的方式完成判定条件覆盖,因此,我们把判定条件覆盖看成是一种测试完整性的度量方法而不是一种测试用例设计方法,不对判定条件覆盖作进一步描述;表达式覆盖、条件覆盖、条件组合覆盖这三种逻辑覆盖名称不太准确,进行深入的描述时容易混洧、难于理解,由于表达式覆盖的逻辑目标是条件表达式,我们把表达式覆盖称为条件式覆盖;由于条件覆盖的逻辑目标是条件的可能取值,我们把条件覆盖称为条件值覆盖;由于条件组合覆盖的逻辑目标是条件可能取值的组合,我们把条件组合覆盖称为条件值组合覆盖,即采用上述定义中括号内的名称。每种逻辑覆盖都有其优缺点,总体来说,排在后面的逻辑覆盖,测试的完整性较高,当然需要的测试用例也更多,测试成本也更高。白盒测试要求测试人员充分理解程序的逻辑结构,一般过程是根据程序逻辑结构画出程序逻辑结构图,如程序流程图或控制流图,对照程序逻辑结构图设计测试用例。由于需要理解和分析程序逻辑结构,白盒测试对测试人员的要求较高,并且需要较高的时间成本。黑盒测试依据程序的功能要求来设计测试用例,以功能覆盖率衡量测试完整性,白盒测试依据程序逻辑结构设计测试用例,用逻辑覆盖率衡量测试完整性,两者各有侧重,不能互相替代,但两者也有内在的联系,例如黑盒测试也完成了一定的逻辑覆盖率,白盒测试的覆盖率也可用以检验黑盒测试的完整性,进行黑盒测试后,如果某些代码未覆盖,很可能是这些代码相关的功能点未被测试到。黑盒测试针对程序功能进行测试,是软件测试不可缺少的方面,如果程序的基本功能都不正确,其他方面就更无从谈起,因此,程序测试时一般先进行黑盒测试,在此基础上再进行适当的白盒测试。由于黑盒测试也完成了一定的逻辑覆盖率,因此,如果先依据程序功能进行黑盒测试,再检查逻辑覆盖率,针对未覆盖的逻辑目标,添加测试用例进行测试,则可以减少重复工作,降低测试成本,但实际上,完成白盒测试的成本依然很高,原因在于,逻辑覆盖具有逾后逾难的特点,即开始时数量较少的测试用例就可以令覆盖率迅速提高,越到后来,设计用于完成剩余覆盖率的测试用例就越难,而且,功能测试所实际完成的逻辑覆盖往往是最容易覆盖的部分。目前的软件测试技术缺少快速设计白盒测试用例的方法,现有的软件测试工具也缺少用于设计白盒测试用例的装置,要达到理想的白盒测试覆盖率,就现有技术或目前的测试工具而言,测试成本很高。事实上,虽然充分的黑盒测试和白盒测试是提高软件质量的必要手段,但目前的软件开发中,进行了比较充分测试的并不多,尤其是进行了充分的白盒测试的更少,特别是国内的中小软件开发企业,多数并未进行实际的白盒测试,造成这一局面的原因之一就是白盒测试的成本太高,达到较高完整性的白盒测试的成本往往是软件开发企业难于承受的。
技术实现思路
本专利技术要解决的技术问题是针对白盒测试成本太高的问题,提出一种具有设计白盒测试用例的功能的程序测试系统。为了解决上述技术问题,本专利技术提出的技术方案是一种程序测试系统,其特征在于,包括测试用例设计装置。所述测试用例设计装置用于设计逻辑目标的覆盖测试用例,包括用于从现有的测试用例中选择近似测试用例的装置,可以进一步包括用于生成修改提示的装置,还可以进一步包括用于统计逻辑覆盖的装置。本专利技术在已有测试用例中,计算出可覆盖预期逻辑目标的近似测试用例,对该近似测试用例进行少量的修改,即可覆盖预期逻辑目标。本专利技术还可以提出修改提示,指出需修改哪些数据及数据的范围或需满足的条件,使修改工作高效准确。本专利技术可在黑盒测试的基础上,快速完成白盒测试,并通过白盒测试来验证黑盒测试的完整性。已有测试用例越多,近似测试用例就越接近预期逻辑目标的覆盖要求,所需修改就越少,因此,本专利技术彻底克服了白盒测试的逾后逾难的特点,也可以用以纯粹的白盒测试。附图说明下面结合附图对本专利技术的具体实施方式作进一步详细的说明图1是本专利技术的一个实施例的总体构成示意图。图2是在本专利技术的一个实施例,用于从现有的测试用例中选择近似测试用例的装置的具体构成示意图。图3是在本专利技术的一个实施例,各结构对象的内部数据构成的示意图及结构对象树示意图,其中图3A是语句块对象的内部数据构成示意图,图3B是分支树对象的内部数据构成示意图,图3C是分支对象的内部数据构成示意图,图3D是结构对象树示意图。图4是在本专利技术的一个实施例,将代码片映射为结构对象的流程示意图。图5是示例代码及代码片分类示例。图6是在本专利技术的一个实施例,统计程序路径的流程示意图,其中,图6A是当对象为语句块时统计路径的流程示意图,图6B是当对象为分支时统计路径的流程示意图,图6C是当对象为分支树时统计路径的流程示意图。图7是在本专利技术的一个实施例,用于计算逻辑目标的近似测试用例的装置的具体构成示意图。图8是在本专利技术的一个实施例,用于生成修改提示的装置的具体构成示意图。图9是本专利技术的一个实施例的屏幕图。具体实施例方式图1是本专利技术的一个实施例的总体构成示意图,如图1所示,本实施例包括下述装置用于从现有的测试用例中选择近似测试用例的装置101;用于生成修改提示的装置102;用于统计逻辑覆盖的装置103,其中,装置102和装置103是可选的。下面详细描述图1所示的装置101。图2是在本实施例,装置101的具体构成示意图,包括用于将程序代码映射为结构对象的装置201;用于统计程序路径的装置202;用于对程序进行插装的装置203;用于记录逻辑覆盖信息的装本文档来自技高网
...

【技术保护点】
一种程序测试系统,其特征在于,包括测试用例设计装置。

【技术特征摘要】
1.一种程序测试系统,其特征在于,包括测试用例设计装置。2.根据权利要求1所述的程序测试系统,其特征在于,所述测试用例设计装置用于设计逻辑目标的覆盖测试用例。3.根据权利要求1所述的程序测试系统,其特征在于,所述测试用例设计装置包括用于从现有的测试用例中选择近似测试用例的装置。4.根据权利要求3所述的程序测试系统,其特征在于,所述用于从现有的测试用例中选择近似测试用例的装置包括下述装置A.用于将程序代码映射为结构对象的装置;B.用于统计程序路径的装置;C.用于记录逻辑覆盖信息的装置;D.用于计算逻辑目标的近似测试用例的装置。5.根据权利要求4所述的程序测试系统,其特征在于,所述结构对象包括语句块对象、分支树对象及分支对象。6.根据权利要求5所述的程序测试系统,其特征在于,将程序逻辑结构分为顺序结构和分支结构;所述语句块对象用于描述顺序结构,所述分支树对象用于描述分支结构,所述分支对象用于描述顶层分支或分支结构的一个分支;每一所述分支树对象至少嵌套了两个分支对象。7.根据权利要求4或5或6所述的程序测试系统,其特征在于,所述装置A包括解析所述程序代码的逻辑结构,依据所述程序代码的分支结构生成对应的分支树对象及对应的分支对象,依据所述程序代码的顺序结构生成对应的语句块对象,并将所述分支树对象和所述语句块对象嵌套于对应层次的分支对象中。8.根据权利要求4所述的程序测试系统,其特征在于,所述路径包括语句组合及分支组合。9.根据权利要求4或8所述的程序测试系统,其特征在于,所述装置B包括后序扫描所述结构对象,针对每一结构对象,将一个输入路径集作为初始数据进行路径统计,顶层分支对象的输入路径集只含一条空路径;针对语句块对象,在输入路径集的每条路径中记录该语句块名;针对分支对象,在输入路径集的每条路径中记录该分支名,前一子对象的输出路径集作为下一子对象的输入路径集;针对分支树对象,将输入路径集的拷贝作为每一子对象的输入路径集。10.根据权利要求9所述的程序测试系统,其特征在于,所述装置B进一步包括当路径经过含有返回语句的语句块对象时,该路径即结束。11.根据权利要求9所述的程序测试系统,其特征在于,所述装置B进一步包括忽略隐藏的对象及隐藏的对象的直接或间接子对象。12.根据权利要求4所述的程序测试系统,其特征在于,所述装置C包括记录语句覆盖信息;统计已覆盖路径及已覆盖路径的覆盖用例。13.根据权利要求12所述的程序测试系统,其特征在于,所述装置C进一步包括记录条件覆盖信息。14.根据权利要求4所述的程序测试系统,其特征在于,所述装置D包括下述装置的任意组合D1.用于计算目标路径的近似测试用例的装置;D2.用于计算目标分支的近似测试用例的装置;D3.用于计算目标语句的近似测试用例的装置;D4.用于计算目标条件值组合的近似测试用例的装置;D5.用于计算目标条件式的近似测试用例的装置;D6.用于计算目标条件值的近似测试用例的装置。15.根据权利要求14所述的程序测试系统,其特征在于所述装置D1包括使用用于计算目标路径的近似路径的装置计算所述目标路径的近似路径;所述目标路径的近似测试用例等于该目标路径的近似路径的覆盖用例;所述装置D2包括选择所有经历目标分支的路径作为候选目标路径;使用用于计算目标路径的近似路径的装置计算每一所述候选目标路径的近似路径;选择临界差最小的候选目标路径作为目标路径;所述目标分支的近似测试用例等于所述目标路径的近似路径的覆盖用例;所述装置D3包括所述目标语句的近似测试用例等于该目标语句所在分支的近似测试用例;所述装置D4包括使用用于计算目标条件值组合的近似测试用例的装置计算所述目标条件值组合的近似测试用例;所述装置D5包括选择所有目标条件式可达的条件值组合作为候选目标条件值组合;使用用于计算目标条件值组合的近似测试用例的装置计算每一所述候选目标条件值组合的近似测试用例;选择已覆盖的在前条件式最多的候选条件值组合作为目标条件值组合;所述目标条件式的近似测试用例等于所述目标条件值组合的近似测试用例;所述装置D6包括选择所有包含目标条件值的条件值组合作为候选目标条件值组合;使用用于计算目标条件值组合的近似测试用例的装置计算每一所述候选目标条件值组合的近似测试用例;选择已覆盖的在前条件值最多的候选条件值组合作为目标条件值组合;所述目标条件值的近似测试用例等于所述目标条件值组合的近似测试用例。16.根据权利要求15所述的程序测试系统,其特征在于所述用于计算目标路径的近似路径的装置包括比较目标路径与各已覆盖路径的分支组合,重叠分支最多的已覆盖路径,就是目标路径的近似路径;所述用于计算目标条件值组合的近似测试用例的装置包括选择所有覆盖了目标分支的测试用例作为候选测试用例;选择相符条件值最多的候选测试用例作为目标条件值组合的近似测试用例。17.根据权利要求4所述的程序...

【专利技术属性】
技术研发人员:王彤
申请(专利权)人:王彤
类型:发明
国别省市:81[中国|广州]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1