用于软件测试的测试代码生成系统的制作方法

文档序号:6483004阅读:260来源:国知局
专利名称:用于软件测试的测试代码生成系统的制作方法
技术领域
本发明涉及计算机软件的测试技术,尤其涉及一种用于软件测试的测试代码生成 系统。
背景技术
软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件 产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试 流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测 试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的 过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出 现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”,在“探测”中发现软 件的毛病。软件测试贯穿于软件定义与开发的整个周期,软件的需求规格说明书,结构设计 及程序编码,都属于软件测试的对象。软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的 测试工作,黑盒测试独立于程序代码,从用户的角度,通过一定的测试步骤与测试案例,验 证软件功能、性能等指标能否满足实际应用需求的测试工作。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测 试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况 下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程 序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不 考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试的优点包括(1)比较简单,不需要了解程序内部的代码及实现;(2)与软件的内部实现无关;(3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;(4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;(5)在做软件自动化测试时较为方便。黑盒测试的缺点包括(1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30% ;(2)自动化测试的复用性较低。白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通 过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条 通路是否都能按预定要求正确工作。
这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相 关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状 态,确定实际的状态是否与预期的状态一致。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖 法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包 括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。白盒测试的优点包括(1)迫使测试人员去仔细思考软件的实现;(2)可以检测代码中的每条分支和路径;(3)揭示隐藏在代码中的错误;(4)对代码的测试比较彻底;(5)最优化。白盒测试的缺点包括(1)昂贵;(2)无法检测代码中遗漏的路径和数据敏感性错误;(3)不验证规格的正确性。

发明内容
本发明旨在提出一种供白盒测试或者黑盒测试使用的测试代码生成系统。根据本发明,提出一种用于软件测试的测试代码生成系统,包括功能测试代码生成装置,根据待测试软件的设计功能,针对每一功能产生功能测 试代码;冗余代码消除装置,耦合到功能测试代码生成装置,比对针对每一功能所产生的 功能测试代码,消除其中的冗余部分;特定代码生成装置,针对待测试软件的应用领域生成特性测试代码,测试软件在 该应用领域中的特性性能;重点代码生成装置,针对待测试软件的高频率应用生成重点测试代码,测试软件 针对高频率应用的性能;测试优先级确定装置,耦合到冗余代码消除装置、特定代码生成装置、重点代码生 成装置,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试 代码。该用于软件测试的测试代码生成系统还包括测试覆盖率评估装置,获取最终的测 试代码,并将该测试代码提供给与待测试软件相关的软件测试系统进行测试,根据测试的 结果生成对于测试代码的测试覆盖率评估。采用本发明的技术方案,能够自动生成适合于对软件进行白盒测试或者黑盒测试 的软件测试代码,大大提高了软件测试的效率以及自动化程度。


图1揭示了根据本发明的用于软件测试的测试代码生成系统的结构图。
具体实施例方式如果把软件的测试活动比作软件生命周期,测试需求就相当于软件的需求规格, 测试策略相当于软件的架构设计,测试用例相当于软件的详细设计,测试执行相当于软件 的编码过程。软件测试需求需要考虑几个层面的因素第一层测试阶段。系统测试阶段,需求分析更注重于技术层面,即软件是否实现 了具备的功能。如果某一种流程或者某一角色能够执行一项功能,那么我们相信具备相同 特征的业务或角色都能够执行该功能。为了避免测试执行的冗余,可不再重复测试。而在 验收测试阶段,更注重于不同角色在同一功能上能否走通要求的业务流程。因此需要根据 不同的业务需要而测试相同的功能,以确保系统上线后不会有意外发生。目前,大多数的测 试都会在系统测试中完成,验收测试只是对于系统测试的回归。此种情况也是合理的,关键 看测试周期与资源是否允许,以及各测试阶段的任务划分。第二层待测软件的特性。不同的软件业务背景不同,所要求的特性也不相同,测 试的侧重点自然也不相同。除了需要确保要求实现的功能正确,银行、财务软件更强调数据 的精确性,网站强调服务器所能承受的压力,ERP强调业务流程,驱动程序强调软硬件的兼 容性。在做测试分析时需要根据软件的特性来选取测试类型,并将其列入测试需求当中。第三层测试的焦点。测试的焦点是指根据所测的功能点进行分析、分解,从而得 出的着重于某一方面的测试,如界面、业务流、模块化、数据、输入域等。第四层测试的优先级。优先级的确定,利于测试工作有的放矢的展开,有利于了 解核心的功能、特性与流程有哪些,客户最为关注的是什么,由此可确定测试的工作重点在 何处,更方便处理测试进度发生问题时,实现不同优先级别的功能、模块、系统等迭代递交 或取舍,从而缓和测试风险。还有一个需要考虑的问题是测试需求的覆盖率与覆盖程度。测试需求的覆盖率通 常是由与软件需求所建立的对应关系来确定的。如果一个软件的需求已经跟测试需求存在 了一对一或一对多的对应关系,可以说测试需求已经覆盖了该功能点,以此类推,如果确定 了所有的软件需求都建立了对应的测试需求,那么测试需求的覆盖率便是测试需求覆盖点 /软件需求功能点=100%,但并不意味着测试需求的覆盖程度高。因为测试需求的覆盖率 只计算了显性的(即被明确规定的功能与特性)因素,而隐性的(即没有被明确规定但是 有可能或不应该拥有的功能与特性)因素并未计算在内。因此根据不断的完善或实际测试 中发生的缺陷,可以对测试需求进行补充或优化,并更新进测试用例中,以此来提高测试需 求的覆盖程度。基于上述的原理,本发明提出一种用于软件测试的测试代码生成系统,参考图1 所示,该用于软件测试的测试代码生成系统10包括功能测试代码生成装置11、冗余代码 消除装置12、特定代码生成装置13、重点代码生成装置14、测试优先级确定装置15。功能测试代码生成装置11根据待测试软件的设计功能,针对每一功能产生功能 测试代码。
冗余代码消除装置12耦合到功能测试代码生成装置11,比对针对每一功能所产 生的功能测试代码,消除其中的冗余部分。功能测试代码生成装置11和冗余代码消除装置 12重点关注上述第一层的问题。特定代码生成装置13针对待测试软件的应用领域生成特性测试代码,测试软件 在该应用领域中的特性性能。特定代码生成装置13重点关注上述第二层的问题。重点代码生成装置14针对待测试软件的高频率应用生成重点测试代码,测试软 件针对高频率应用的性能。重点代码生成装置14重点关注上述第三层的问题。测试优先级确定装置15耦合到冗余代码消除装置12、特定代码生成装置13、重点 代码生成装置14,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最 终的测试代码。测试优先级确定装置15重点关注上述第四层的问题。参考图1所示,该用于软件测试的测试代码生成系统10还包括测试覆盖率评估装 置16,测试覆盖率评估装置16获取最终的测试代码,并将该测试代码提供给与待测试软件 相关的软件测试系统进行测试,根据测试的结果生成对于测试代码的测试覆盖率评估。测 试覆盖率评估装置16重点关注测试需求的覆盖率与覆盖程度。采用本发明的技术方案,能够自动生成适合于对软件进行白盒测试或者黑盒测试 的软件测试代码,大大提高了软件测试的效率以及自动化程度。
权利要求
一种用于软件测试的测试代码生成系统,其特征在于,包括功能测试代码生成装置,根据待测试软件的设计功能,针对每一功能产生功能测试代码;冗余代码消除装置,耦合到所述功能测试代码生成装置,比对针对每一功能所产生的功能测试代码,消除其中的冗余部分;特定代码生成装置,针对待测试软件的应用领域生成特性测试代码,测试软件在该应用领域中的特性性能;重点代码生成装置,针对待测试软件的高频率应用生成重点测试代码,测试软件针对高频率应用的性能;测试优先级确定装置,耦合到所述冗余代码消除装置、特定代码生成装置、重点代码生成装置,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试代码。
2.如权利要求1所述的用于软件测试的测试代码生成系统,其特征在于,还包括测试覆盖率评估装置,获取所述最终的测试代码,并将该测试代码提供给与待测试软 件相关的软件测试系统进行测试,根据测试的结果生成对于测试代码的测试覆盖率评估。
全文摘要
本发明揭示了一种用于软件测试的测试代码生成系统,包括功能测试代码生成装置,根据待测试软件的设计功能,针对每一功能产生功能测试代码;冗余代码消除装置,耦合到功能测试代码生成装置,比对针对每一功能所产生的功能测试代码,消除其中的冗余部分;特定代码生成装置,针对待测试软件的应用领域生成特性测试代码,测试软件在该应用领域中的特性性能;重点代码生成装置,针对待测试软件的高频率应用生成重点测试代码,测试软件针对高频率应用的性能;测试优先级确定装置,耦合到冗余代码消除装置、特定代码生成装置、重点代码生成装置,将功能测试代码、特性测试代码和重点测试代码按照优先级排序,生成最终的测试代码。
文档编号G06F9/44GK101996069SQ200910056409
公开日2011年3月30日 申请日期2009年8月13日 优先权日2009年8月13日
发明者刘在英, 杨晓丽, 赵春燕 申请人:上海杉达学院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1