专利名称:软件测试系统的制作方法
技术领域:
本发明涉及计算机软件的测试技术,尤其涉及一种软件测试系统。
背景技术:
软件测试的目的是为了保证软件产品的最终质量,在软件开发的过程中,对软件 产品进行质量控制。一般来说软件测试应由独立的产品评测中心负责,严格按照软件测试 流程,制定测试计划、测试方案、测试规范,实施测试,对测试记录进行分析,并根据回归测 试情况撰写测试报告。测试是为了证明程序有错,而不能保证程序没有错误。软件测试就是在受控制的条件下对系统或应用程序进行操作并评价操作结果的 过程,所谓控制条件应包括正常条件与非正常条件。软件测试过程中应该故意地去促使错误的发生,也就是事情在不该出现的时候出 现或者在应该出现的时候没有出现。从本质上说,软件测试是“探测”,在“探测”中发现软 件的毛病。软件测试贯穿于软件定义与开发的整个周期,软件的需求规格说明书,结构设计 及程序编码,都属于软件测试的对象。软件测试包含白盒测试与黑盒测试,白盒测试是针对程序代码进行正确性检验的 测试工作,黑盒测试独立于程序代码,从用户的角度,通过一定的测试步骤与测试案例,验 证软件功能、性能等指标能否满足实际应用需求的测试工作。黑盒测试也称功能测试,它是通过测试来检测每个功能是否都能正常使用。在测 试中,把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况 下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程 序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不 考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试的优点包括(1)比较简单,不需要了解程序内部的代码及实现;(2)与软件的内部实现无关;(3)从用户角度出发,能很容易的知道用户会用到哪些功能,会遇到哪些问题;(4)基于软件开发文档,所以也能知道软件实现了文档中的哪些功能;(5)在做软件自动化测试时较为方便。黑盒测试的缺点包括(1)不可能覆盖所有的代码,覆盖率较低,大概只能达到总代码量的30% ;(2)自动化测试的复用性较低。白盒测试也称结构测试或逻辑驱动测试,它是按照程序内部的结构测试程序,通 过测试来检测产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条 通路是否都能按预定要求正确工作。这一方法是把测试对象看作一个打开的盒子,测试人员依据程序内部逻辑结构相关信息,设计或选择测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状 态,确定实际的状态是否与预期的状态一致。白盒测试的测试方法有代码检查法、静态结构分析法、静态质量度量法、逻辑覆盖 法、基本路径测试法、域测试、符号测试、Z路径覆盖、程序变异。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包 括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。白盒测试的优点包括(1)迫使测试人员去仔细思考软件的实现;(2)可以检测代码中的每条分支和路径;(3)揭示隐藏在代码中的错误;(4)对代码的测试比较彻底;(5)最优化。白盒测试的缺点包括(1)昂贵;(2)无法检测代码中遗漏的路径和数据敏感性错误;(3)不验证规格的正确性。
发明内容
本发明旨在提供一种能够脱离人工控制自动运行的黑盒测试技术。根据本发明,提出一种软件测试系统,用于测试一软件的性能,该软件测试系统包 括模块测试装置,分割软件成为数个模块,每一个模块实现一清晰定义的功能,基于 功能对每一个模块进行独立的测试;子系统测试装置,耦合到模块测试装置,将模块组合成一个或多个子系统,子系统 内的模块之间通过接口互相通信,子系统内的模块与子系统外的模块之间通过单一的接口 通信,子系统测试装置测试子系统内部的模块之间的接口、以及子系统内部的模块与外部 的模块之间进行通信的单一的接口的通信能力;整系统测试装置,耦合到子系统测试装置,拼接各个子系统成为整体的软件系统, 该整体的软件系统具有单一的输入接口和单一的输出接口,整系统测试装置测试该单一的 输入接口和输出接口;测试结果评价装置,与模块测试装置、子系统测试装置、整系统测试装置耦合,向 模块测试装置、子系统测试装置、整系统测试装置提供测试输入数据,记录所述模块测试装 置、子系统测试装置、整系统测试装置在测试过程中的结果数据,将得到的结果数据与预先 保存的参考数据比较,得到测试结果评价。根据本发明,还提出一种软件测试系统,用于测试多个软件的性能,该多个软件相 互兼容,该软件测试系统包括多个软件测试分系统,每一个软件测试分系统用于测试一个软件的性能,每一个 软件测试分系统包括模块测试装置,模块测试装置分割软件成为数个模块,每一个模块实现一清晰定义的功能,基于功能对每一个模块进行独立的测试;子系统测试装置,耦合到模块测试装 置,将模块组合成一个或多个子系统,子系统内的模块之间通过接口互相通信,子系统内的 模块与子系统外的模块之间通过单一的接口通信,子系统测试装置测试子系统内部的模块 之间的接口、以及子系统内部的模块与外部的模块之间进行通信的单一的接口的通信能 力;整系统测试装置,耦合到子系统测试装置,拼接各个子系统成为整体的软件系统, 该整体的软件系统具有单一的输入接口和单一的输出接口,整系统测试装置测试该单一的 输入接口和输出接口;测试结果评价装置,与模块测试装置、子系统测试装置、整系统测试装置耦合,向 模块测试装置、子系统测试装置、整系统测试装置提供测试输入数据,记录模块测试装置、 子系统测试装置、整系统测试装置在测试过程中的结果数据,将得到的结果数据与预先保 存的参考数据比较,得到测试结果评价;平行运行测试装置,耦合到各个软件测试分系统,平行运行测试装置向各个软件 测试分系统中的测试结果评价装置提供同样的测试输入数据,并从各个软件测试分系统中 的测试结果评价装置获取各自的结果数据,平行运行测试装置基于各个软件测试分系统各 自的结果数据产生兼容性评价结果。采用本发明的技术方案,能够由软件测试系统自动实现对于一个或者多个软件的 性能测试,实现黑盒测试的功能并且获得测试结果。
图1揭示了根据本发明的一个实施例的软件测试系统的结构图。图2揭示了根据本发明的另一个实施例的软件测试系统的结构图。
具体实施例方式参考图1所示,揭示了一种软件测试系统10,该软件测试系统10用于测试一软件 的性能,该软件测试系统10包括模块测试装置11、子系统测试装置12、整系统测试装置 13、测试结果评价装置14。模块测试装置11分割该软件成为数个模块,每一个模块实现一清晰定义的功能, 基于所定义的功能对每一个模块进行独立的测试。在设计的好的软件系统中,每个模块完 成一个清晰定义的子功能,而且这个子功能和同级其它模块的功能之间没有相互依赖关 系。因此,有可能把每个模块作为单独的实体来测试,而且比较容易设计检验模块正确性的 设计方案。模块测试的目的是保证每个模块作为一个单元能正确运行。模块测试装置11 进行的测试过程中发现的往往是编码和详细设计的错误。子系统测试装置12耦合到模块测试装置11,将模块组合成一个或多个子系统,子 系统内的模块之间通过接口互相通信,子系统内的模块与子系统外的模块之间通过单一的 接口通信,子系统测试装置12测试子系统内部的模块之间的接口、以及子系统内部的模块 与外部的模块之间进行通信的单一的接口的通信能力。子系统测试装置12进行的子系统 测试是把通过模块测试的各个模块放在一起形成一个子系统来测试。各模块间的协调和通 信是子系统测试过程中的主要问题。子系统测试装置12重点测试模块的接口。
整系统测试装置13耦合到子系统测试装置12,拼接各个子系统成为整体的软件 系统,该整体的软件系统具有单一的输入接口和单一的输出接口,整系统测试装置13测试 该单一的输入接口和输出接口。整系统测试装置13进行的系统测试是把经过测试的子系 统配装成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该 验证系统确实能提供说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个 测试过程中发现的往往是软件设计的错误,也可能发现说明书中的错误。不论是子系统测 试装置12进行的子系统测试还是整系统测试装置13进行的系统测试,都兼有检验和组装 两重含义,通常称为集成测试。测试结果评价装置14,与模块测试装置11、子系统测试装置12、整系统测试装置 13耦合,向模块测试装置11、子系统测试装置12、整系统测试装置13提供测试输入数据,记 录模块测试装置11、子系统测试装置12、整系统测试装置13在测试过程中的结果数据,将 得到的结果数据与预先保存的参考数据比较,得到测试结果评价。测试结果评价装置14是 验证系统确实能够满足用户的需求,在测试结果评价装置14进行的结果评价中,发现的往 往是系统需求说明书中的错误。本发明除了能够对单个的软件进行测试,还提出一种能够对多个兼容的软件进行 测试的软件测试系统,以用于系统升级时的测试。参考图2所示,揭示了一种用于测试多个软件的性能的软件测试系统20,被测试 的多个软件是相互兼容的,该软件测试系统20包括多个软件测试分系统25。每一个软件测 试分系统25用于测试一个软件的性能,每一个软件测试分系统25包括模块测试装置21、 子系统测试装置22、整系统测试装置23、测试结果评价装置24。模块测试装置21分割该软件成为数个模块,每一个模块实现一清晰定义的功能, 基于所定义的功能对每一个模块进行独立的测试。在设计的好的软件系统中,每个模块完 成一个清晰定义的子功能,而且这个子功能和同级其它模块的功能之间没有相互依赖关 系。因此,有可能把每个模块作为单独的实体来测试,而且比较容易设计检验模块正确性的 设计方案。模块测试的目的是保证每个模块作为一个单元能正确运行。模块测试装置21 进行的测试过程中发现的往往是编码和详细设计的错误。子系统测试装置22耦合到模块测试装置21,将模块组合成一个或多个子系统,子 系统内的模块之间通过接口互相通信,子系统内的模块与子系统外的模块之间通过单一的 接口通信,子系统测试装置22测试子系统内部的模块之间的接口、以及子系统内部的模块 与外部的模块之间进行通信的单一的接口的通信能力。子系统测试装置22进行的子系统 测试是把通过模块测试的各个模块放在一起形成一个子系统来测试。各模块间的协调和通 信是子系统测试过程中的主要问题。子系统测试装置22重点测试模块的接口。整系统测试装置23耦合到子系统测试装置22,拼接各个子系统成为整体的软件 系统,该整体的软件系统具有单一的输入接口和单一的输出接口,整系统测试装置23测试 该单一的输入接口和输出接口。整系统测试装置23进行的系统测试是把经过测试的子系 统配装成一个完整的系统来测试。在这个过程中不仅应该发现设计和编码的错误,还应该 验证系统确实能提供说明书中指定的功能,而且系统的动态特性也符合预定要求。在这个 测试过程中发现的往往是软件设计的错误,也可能发现说明书中的错误。不论是子系统测 试装置22进行的子系统测试还是整系统测试装置23进行的系统测试,都兼有检验和组装两重含义,通常称为集成测试。测试结果评价装置24,与模块测试装置21、子系统测试装置22、整系统测试装置 23耦合,向模块测试装置21、子系统测试装置22、整系统测试装置23提供测试输入数据,记 录模块测试装置21、子系统测试装置22、整系统测试装置23在测试过程中的结果数据,将 得到的结果数据与预先保存的参考数据比较,得到测试结果评价。测试结果评价装置24是 验证系统确实能够满足用户的需求,在测试结果评价装置24进行的结果评价中,发现的往 往是系统需求说明书中的错误。该软件测试系统20还包括平行运行测试装置26,耦合到各个软件测试分系统25, 平行运行测试装置26向各个软件测试分系统25中的测试结果评价装置24提供同样的测 试输入数据,并从各个软件测试分系统25中的测试结果评价装置24获取各自的结果数据, 平行运行测试装置26基于各个软件测试分系统各自的结果数据产生兼容性评价结果。关系重大的软件产品的升级换代产品在验收之后往往不立即投入生产运行,而是 要在经过一段时间的平行考验。所谓平行运行,就是同时运行新开发出来的系统,和将要被 它取代的旧系统,以便比较新旧系统的处理结果。这样做的具体目的有以下几点(1)可以在准生产环境中运行新系统而又不冒风险(2)用户能有一段熟悉新系统的时间(3)可以验证用户指南和使用手册之类的文档(4)能够以准生产模式对新系统进行全负荷测试,可以用测试结果验证性能指针。图2所示的实施例即提出一种能够对多个兼容的软件进行测试的软件测试系统。采用本发明的技术方案,能够由软件测试系统自动实现对于一个或者多个软件的 性能测试,实现黑盒测试的功能并且获得测试结果。
权利要求
一种软件测试系统,用于测试一软件的性能,其特征在于,包括模块测试装置,分割所述软件成为数个模块,每一个模块实现一清晰定义的功能,基于所述的功能对每一个模块进行独立的测试;子系统测试装置,耦合到所述模块测试装置,将所述模块组合成一个或多个子系统,所述子系统内的模块之间通过接口互相通信,所述子系统内的模块与子系统外的模块之间通过单一的接口通信,所述子系统测试装置测试子系统内部的模块之间的接口、以及子系统内部的模块与外部的模块之间进行通信的单一的接口的通信能力;整系统测试装置,耦合到所述子系统测试装置,拼接各个子系统成为整体的软件系统,该整体的软件系统具有单一的输入接口和单一的输出接口,所述整系统测试装置测试该单一的输入接口和输出接口;测试结果评价装置,与所述模块测试装置、子系统测试装置、整系统测试装置耦合,向所述模块测试装置、子系统测试装置、整系统测试装置提供测试输入数据,记录所述模块测试装置、子系统测试装置、整系统测试装置在测试过程中的结果数据,将得到的结果数据与预先保存的参考数据比较,得到测试结果评价。
2.一种软件测试系统,用于测试多个软件的性能,其特征在于,该多个软件相互兼容, 所述软件测试系统包括多个软件测试分系统,每一个软件测试分系统用于测试一个软件的性能,每一个软件 测试分系统包括模块测试装置,模块测试装置分割所述软件成为数个模块,每一个模块实现一清晰定 义的功能,基于所述的功能对每一个模块进行独立的测试;子系统测试装置,耦合到所述模块测试装置,将所述模块组合成一个或多个子系统,所 述子系统内的模块之间通过接口互相通信,所述子系统内的模块与子系统外的模块之间通 过单一的接口通信,所述子系统测试装置测试子系统内部的模块之间的接口、以及子系统 内部的模块与外部的模块之间进行通信的单一的接口的通信能力;整系统测试装置,耦合到所述子系统测试装置,拼接各个子系统成为整体的软件系统, 该整体的软件系统具有单一的输入接口和单一的输出接口,所述整系统测试装置测试该单 一的输入接口和输出接口;测试结果评价装置,与所述模块测试装置、子系统测试装置、整系统测试装置耦合,向 所述模块测试装置、子系统测试装置、整系统测试装置提供测试输入数据,记录所述模块测 试装置、子系统测试装置、整系统测试装置在测试过程中的结果数据,将得到的结果数据与 预先保存的参考数据比较,得到测试结果评价;平行运行测试装置,耦合到所述各个软件测试分系统,所述平行运行测试装置向各个 软件测试分系统中的测试结果评价装置提供同样的测试输入数据,并从各个软件测试分系 统中的测试结果评价装置获取各自的结果数据,所述平行运行测试装置基于各个软件测试 分系统各自的结果数据产生兼容性评价结果。
全文摘要
本发明揭示了一种软件测试系统,用于测试软件的性能,包括基于功能对软件的模块进行测试的模块测试装置;将模块组合成一个或多个子系统并对接口的通信能力进行测试的子系统测试装置;拼接各个子系统成为整体的软件系统并对整个软件系统进行测试的整系统测试装置;对测试结果进行评价的测试结果评价装置。采用本发明的技术方案,能够由软件测试系统自动实现对于一个或者多个软件的性能测试,实现黑盒测试的功能并且获得测试结果。
文档编号G06F11/36GK101996130SQ200910056410
公开日2011年3月30日 申请日期2009年8月13日 优先权日2009年8月13日
发明者刘在英, 杨晓丽, 赵春燕 申请人:上海杉达学院