一种软件自动化测试系统及方法

文档序号:6438531阅读:510来源:国知局
专利名称:一种软件自动化测试系统及方法
技术领域
本发明涉及一种软件自动化测试系统及方法,具体地说,涉及基于图形视图的软件自动化测试系统及方法,通过该系统或方法,用户可以很轻松地完成绝大多数类型软件的自动化功能测试。
背景技术
传统的软件自动化测试工具或框架都是以纯代码的形式实现业务流程控制,这导致了以下几个问题开发和维护测试脚本的成本很高;实施自动化测试对工程师的编码能力有着很苛刻的要求;只能采用函数封装或类封装的方法实现脚本分层,增加了脚本的复杂程度。正因为这些原因,许多项目团队对软件自动化测试望而却步。使用本发明提出的基于图形视图的软件自动化测试框架平台及方法,用户可以将每一个步骤封装在一个独立的、基于图形视图的业务节点中,这些节点可以在测试场景界面中随意拖动,通过添加有向连线进行连接,从而构建出一个完整的业务流程。业务节点可以在当前场景或不同场景中随意复制粘贴,只要简单修改连线顺序就可以构建一个新的业务流程。这种业务流程构建方式就像绘制流程图一样直观和方便。另外,参数化是自动化测试中一个非常重要的环节。使用传统工具实现这一工作往往十分繁琐,需要设置很多选项,并使脚本变得复杂和难以维护。使用本发明提出的基于图形视图的软件自动化测试框架平台及方法,参数化可以简单地通过拖动鼠标,绘制一个循环体的方式实现(循环体的覆盖范围就是参数化的作用范围)。接下来只要在循环体对应的数据表格中填入参数名称和数值,参数化就完成了。最后,传统的软件自动化测试工具一般根据对象的句柄等属性值来进行对象识别,而且对于不同的对象类型,往往需要不同的插件支持。对于一些采用了非标准控件的被测程序,传统工具就显得力不从心了。而在本发明提出的基于图形视图的软件自动化测试框架平台及方法中,对象识别是采用先进的计算机视觉技术来完成的,这不仅使得自动化测试脚本的开发和维护难度大大降低,还使得传统自动化测试方法中让人头痛的跨应用对象识别、非标准对象识别、结果捕获等问题得以迎刃而解。

发明内容
本发明的软件自动化测试系统包括脚本编辑模块、场景组织模块、参数化模块、 调试和运行模块、测试报告输出模块。所述脚本编辑模块提供一个标准的文本编辑界面,借此可快捷输入自动化测试常用函数;脚本编辑模块还允许用户使用复制粘贴或拖放的方式在脚本中加入图片;另外, 通过脚本编辑模块还可以快速截图,使得脚本中图像片段的获取、存储和处理更加方便。场景组织模块提供一个用于搭建测试场景的图形视图界面,借此可以创建多种图形元素,并且可以拖动、复制、剪切、粘贴、删除该图形元素,还可以将多个图形元素用有向连线连接起来,从而构成一个完整的测试过程。所述场景组织模块的核心父类是Qt ( 一种跨平台的C++图形用户界面库)中用于组织二维图元的QGraphicdcene类(用于组织二维图元的类)。参数化模块提供参数表格编辑界面,借此可以进行参数信息导入、导出、循环次数设定、参数表格规模设定。所述参数化模块中表达参数表格的核心父类是Qt中QTextTable 类(用于表达参数表格的类)。调试和运行模块能够整合处理场景中的脚本信息,生成Python (—种面向对象、 直译式计算机程序设计语言)脚本文件和图片文件,并调用外部接口运行脚本。测试报告输出模块提供输出测试结果的专用函数,并依据用户的需要生成 HTML (Hypertext Markup Language,即超文本标记语言,是用于描述网页文档的一种标记语言)格式的测试报告文件和文本格式的测试脚本运行日志文件。所述测试报告输出模块具有维护框架平台的日志文件的功能。根据本发明的软件自动化测试系统,其基于图形视图的软件自动化测试方法包括如下步骤步骤1,场景组织模块进行业务流分解;步骤2,脚本编辑模块开发业务节点;步骤3,场景组织模块构建业务流;步骤4,对脚本进行必要的参数化(由参数化模块、调试和运行模块完成);步骤5,调试和运行模块调试运行业务流;步骤6,测试报告输出模块输出测试报告。以上步骤与各模块的对应关系如图14所示。在所述步骤1中,为了提高脚本的可复用性,或是为了实现协作式开发,首先通过场景组织模块,把一个业务流程分解为N个步骤,每个步骤用一个业务节点来封装和实现; 分解的策略和颗粒度完全由用户根据实际需要决定。在所述步骤2中,完成业务流程分解后,在测试场景中加入业务节点,在脚本编辑模块提供的脚本编辑界面上开发可视化测试脚本。所述脚本遵循Python 2. 5格式规范,在脚本中可以使用任何Python 2. 5支持的系统函数或纯Python模块。脚本编辑模块在SIKULI API (基于图像脚本语言SIKULI的一套应用程序编程接口)的基础上扩展了一批自动化测试专用函数,形成了独有的一套 APKApplication Programming hterface,应用程序编程接口),其中的所有函数均在脚本编辑界面上以快捷方式的形式列出,双击鼠标即可在脚本中加入指定的函数。在使用SIKULI API函数的时候,可以将硬盘中的图片文件(支持常见的png、jpg、 gif、bmp等格式)复制粘贴、拖动到脚本中作为函数的参数;也可以将其它格式文档(如 Word, PowerPoint)中的图像片段以复制粘贴的方式插入到脚本中。开发完成的可视化测试脚本如图2所示。此外,脚本编辑模块还提供了快速截图功能,使得脚本中图像片段的获取、存储和处理更加方便。快速截图功能示意图如图3所示。脚本编辑模块的核心父类是Qt中用于纯文本或富文本编辑的QTextEdit类(用于纯文本或富文本编辑的类)。在所述步骤3中,完成业务节点中脚本的开发后,可以在场景组织模块提供的图形视图界面中将多个业务节点用有向连线连接起来,从而构建一个完整的业务流。构建完成的业务流如图4所示。场景组织模块的核心父类是Qt中用于组织二维图元的QGraphicdcene 类。场景中的业务节点、有向连线、循环体等的核心父类是Qt中用于表示二维图元的 QGraphicsItem类(用于表示二维图元的类)。在所述步骤4中,完成业务流的构建后,可以根据测试的需要,使用参数化模块对脚本进行必要的参数化。在测试场景中绘制一个循环体,通过缩放、移动等操作调整其覆盖范围,将与参数化有关的业务节点包含在这一范围内,如图5所示;之后双击循环体打开参数表格编辑界面,编辑各个参数的名称和取值,如图6所示;最后修改业务节点中的脚本,将需要参数化的常量替换为参数名。参数化模块中表达参数表格的核心父类是Qt中QTextTable类。为了实现循环嵌套,每一个业务节点对象中都有一个循环体列表,记录该业务节点在哪些循环体范围内。在生成可执行的Python脚本时,调试和运行模块将根据各个业务节点的循环体列表计算出循环的作用范围,确定语句的缩进量,并在Python脚本中加入FOR循环结构(Python中用于流程控制的一种语法结构)。这一算法的原理示意图如图7所示。在所述步骤5中,完成必要的参数化之后,运行整个业务流。调试和运行模块将业务流中各个业务节点的脚本信息整合起来,加入API函数定义、Python模块引入、异常处理等信息,生成临时脚本文件和临时图片文件。之后调用SIKULI (—种图形脚本语言)脚本运行接口来执行脚本。调试和运行模块的工作流程如图8所示。在业务流运行完成后,在步骤6中,测试报告输出模块将根据用户需要生成一份 HTML格式的测试报告(是否生成报告取决于业务流中是否加入了报告节点),将脚本中报告函数(包括testfassed、testFailed, testlnfo)定义的测试结果信息打印到测试报告中。生成的测试报告如图9所示。另外测试报告输出模块还负责维护框架平台的日志文件。日志文件中的信息有以下两种脚本运行中产生的所有异常信息;用户使用printLog函数自定义的日志信息。日志文件的保存位置为框架平台临时目录SF temp下的log文件夹,单个日志文件只保存当天的运行日志信息,日志文件名即当天日期,如“2011-05-16. log”。


图1为本发明的软件自动化测试系统结构方框图;图2为在本发明基于图形视图的软件自动化测试系统平台上开发的可视化测试脚本示例;图3为本发明基于图形视图的软件自动化测试框架系统提供的快速截图功能使用示例;图4为在本发明基于图形视图的软件自动化测试系统平台上搭建的业务流示例;图5为在本发明基于图形视图的软件自动化测试系统平台上实现参数化的操作示例;图6为本发明基于图形视图的软件自动化测试系统平台提供的参数表格编辑窗口示意图7为本发明基于图形视图的软件自动化测试系统平台根据图形视图生成脚本循环结构的算法示意图;图8为本发明基于图形视图的软件自动化测试系统平台的调试和运行模块的工作流程图;图9为本发明基于图形视图的软件自动化测试系统平台生产的测试报告示例;图10为本发明的软件自动化测试方法流程图;图11为示例业务流程的说明;图12为本发明基于图形视图的软件自动化测试框架平台实现循环嵌套的场景示意图;图13为在业务流中加入报告节点的示意图;图14为本发明的软件自动化测试方法各个步骤与执行该步骤的各模块的对应关系图。
具体实施例方式本发明中使用到的部分术语图元指测试场景中的图形视图构件,图元的种类目前有业务节点、有向连线、循环体三种。在本发明的基于图形视图的软件自动化测试框架平台中,对图元的操作类似于在Visio 等流程图软件中对图形组件的操作。业务节点指测试场景中的一种图元,可以通过鼠标拖放改变其位置。业务节点中包含脚本信息。一个业务节点可以对应一个测试步骤、一个测试用例或一个子业务流程,颗粒度的划分由用户根据需要决定。业务流指由一系列业务节点通过有向连线连接起来所形成的节点序列,代表由这些业务节点组装而成的一个完整的业务流程。一个业务流中最少有两个业务节点,而且具有唯一的起点和终点。报告节点一种特殊的业务节点。将其加入业务流的唯一目的是在运行业务流后,生成一份 HTML格式的测试报告。循环体指测试场景中的一种图元,外观为矩形,可以通过拖拽四角和四边中点改变其形状,也可以通过鼠标拖放改变其位置。循环体中包含脚本的参数信息和循环执行次数配置信息,其作用域由其在场景中的覆盖区域决定。有向连线指测试场景中的一种图元,外形为直线型箭头。在本发明的基于图形视图的软件自动化测试框架平台中,用这种图元连接两个业务节点,表示这两个节点在业务流上的先后关系。循环体层级
指循环体在图形视图上的层次水平,层级高的循环体会覆盖层级低的循环体。在本发明的基于图形视图的软件自动化测试框架平台中,用层级表示循环的内外层嵌套关系,层级越高的循环体其嵌套深度也越大。场景编辑模式指某种特定的场景编辑效果。一般通过工具栏来选择和切换。在本发明的基于图形视图的软件自动化测试框架平台中,目前提供五种场景编辑模式,包括默认模式、增加业务节点模式、连线模式、增加循环模式、增加报告节点模式。脚本层和场景层在本发明的基于图形视图的软件自动化测试框架平台中,自动化测试工程的建设分为两个层次脚本层和场景层。脚本层的主要任务是开发测试脚本,实现诸如鼠标点击、 键盘输入、输出观察等一系列基本的测试动作,从而完成一个相对独立的业务环节;场景层的主要任务是通过图形视图的手段将一系列业务节点联系起来,构成一条完整的业务流, 并完成参数化和循环设置,以实现一个或多个完整的测试过程。SIKULI在自动化软件测试领域中应用计算机视觉技术,是近两年来在业界逐渐引起关注的一个前沿课题,并且已经出现了一些成功的案例——SIKULI正是其中的优秀典范。这个开源项目提供了一套用于可视化编程的API,使得“用截图来编程”成为了可能。如图1所示,本发明的基于图形视图的软件自动化测试框架平台包括脚本编辑模块、场景组织模块、参数化模块、调试和运行模块、测试报告输出模块。该框架平台的开发基于 Qt 4. 7. O0脚本编辑模块给出了一个标准的文本编辑界面,并在此基础上提供了自动化测试常用函数快捷输入功能,鼠标双击函数快捷方式即可在脚本中插入此函数;脚本编辑模块还允许用户使用复制粘贴或拖放的方式在脚本中加入图片;另外,脚本编辑模块还提供了快速截图功能,使得脚本中图像片段的获取、存储和处理更加方便。场景组织模块给出了一个用于搭建测试场景的图形视图界面,在这里用户可以创建多种图形元素,并对图形元素进行拖动、复制、剪切、粘贴、删除等操作,还可以将多个图形元素(每个图形元素代表一定的测试步骤或内容)用有向连线连接起来,从而构成一个完整的测试过程。所述场景组织模块的核心父类是Qt中用于组织二维图元的 QGraphicsScene 类。参数化模块给出了一个参数表格编辑界面,并提供参数信息导入、导出、循环次数设定、参数表格规模设定等功能。所述参数化模块中表达参数表格的核心父类是Qt中 QTextTable 类。调试和运行模块用于对场景中的脚本信息进行整合处理,生成Python脚本文件和图片文件,并调用外部接口运行脚本。测试报告输出模块提供了输出测试结果的专用函数,并依据用户的需要生成HTML 格式的测试报告文件和文本格式的测试脚本运行日志文件。所述测试报告输出模块具有维护框架平台的日志文件的功能。如图10所示,本发明的软件自动化测试系统,其基于图形视图的软件自动化测试方法包括如下步骤
步骤1,业务流分解(由场景组织模块完成);步骤2,开发业务节点(由脚本编辑模块完成);步骤3,构建业务流(由场景组织模块完成);步骤4,参数化(由参数化模块、调试和运行模块完成);步骤5,调试和运行模块调试运行业务流;步骤6,测试报告输出模块输出测试报告。以上步骤与各模块的对应关系如图14所示。在所述步骤1中,为了提高脚本的可复用性,或是为了实现协作式开发,用户可以首先把一个业务流程分解为N个步骤,每个步骤用一个业务节点来封装和实现。分解的策略和颗粒度完全由用户根据实际需要决定。在所述步骤2中,完成业务流程分解后,用户可以在测试场景中加入业务节点,在脚本编辑模块提供的脚本编辑界面上开发可视化测试脚本。脚本遵循Python 2. 5格式规范,用户可以在脚本中使用任何Python 2. 5支持的系统函数或纯Python模块。脚本编辑模块在SIKULI API的基础上扩展了一批自动化测试专用函数,形成了自己独有的一套API, 其中的所有函数均在脚本编辑界面上以快捷方式的形式列出,双击鼠标即可在脚本中加入指定的函数。在使用SIKULI API函数的时候,用户可以通过复制粘贴、拖动等方式将硬盘中的图片文件(支持常见的png、jpg、gif、bmp等格式)直接插入到脚本中作为函数的参数;也可以将其它格式文档(如Word、PowerPoint)中的图像片段以复制粘贴的方式插入到脚本中。开发完成的可视化测试脚本如图2所示。此外,脚本编辑模块还提供了快速截图功能,使得脚本中图像片段的获取、存储和处理更加方便。快速截图功能示意图如图3所示。脚本编辑模块的核心父类是Qt中用于纯文本或富文本编辑的QTextEdit类。完成业务节点中脚本的开发后,用户可以在场景组织模块提供的图形视图界面中将多个业务节点用有向连线连接起来,从而构建一个完整的业务流。构建完成的业务流如图4所示。场景组织模块的核心父类是Qt中用于组织二维图元的QGraphicdcene 类。场景中的业务节点、有向连线、循环体等的核心父类是Qt中用于表示二维图元的 QGraphicsItem 类。完成业务流的构建后,在所述步骤4中,用户可以根据测试的需要对脚本进行必要的参数化。这时用户可以在测试场景中绘制一个循环体,通过缩放、移动等操作调整其覆盖范围,将与参数化有关的业务节点包含在这一范围内,如图5所示;之后双击循环体打开参数表格编辑界面,编辑各个参数的名称和取值,如图6所示;最后修改业务节点中的脚本,将需要参数化的常量替换为参数名。参数化模块中表达参数表格的核心父类是Qt中 QTextTable 类。为了实现循环嵌套,每一个业务节点对象中都有一个循环体列表,记录该业务节点在哪些循环体范围内。在生成可执行的Python脚本时,调试和运行模块将根据各个业务节点的循环体列表计算出循环的作用范围,确定语句的缩进量,并在Python脚本中加入 FOR循环结构。这一算法的原理示意图如图7所示。完成必要的参数化之后,在所述步骤5中,用户就可以运行整个业务流了。调试和运行模块将业务流中各个业务节点的脚本信息整合起来,加入API函数定义、Python模块引入、异常处理等信息,生成临时脚本文件和临时图片文件。之后调用SIKULI脚本运行接口来执行脚本。调试和运行模块的工作流程如图8所示。在业务流运行完成后,在所述步骤6中,测试报告输出模块将根据用户需要生成一份HTML格式的测试报告(是否生成报告取决于业务流中是否加入了报告节点),将脚本中报告函数(包括testfassecUtestFailecUtesthfo)定义的测试结果信息打印到测试报告中。生成的测试报告如图9所示。另外测试报告输出模块还负责维护框架平台的日志文件。日志文件中的信息有以下两种脚本运行中产生的所有异常信息;用户使用printLog 函数自定义的日志信息。日志文件的保存位置为框架平台临时目录SF_temp下的log文件夹,单个日志文件只保存当天的运行日志信息,日志文件名即当天日期,如“2011-05-16. log,,。现举例说明如下用户要对一个网上银行缴纳电话费的交易流程进行自动化测试。首先对这个业务流程进行分解,将其划分为“登录”、“查询”、“交易”、“退出”四个步骤。 各个步骤的操作说明和预期结果如图11所示。用户为每一个步骤创建一个业务节点,在脚本编辑模块提供的脚本编辑界面上开发可视化测试脚本,以实现该步骤对应的操作和结果检查。完成的脚本如图2所示。编写脚本的过程中,用户可以随时调用调试与运行模块执行当前业务节点中的脚本。调试与运行模块将根据脚本信息生成临时Python脚本文件和临时图片文件,继而调用SIKULI脚本运行接口来执行脚本。完成各个业务节点的开发后,用户需要在场景组织模块提供的图形视图界面中将这四个业务节点用有向连线连接起来,从而构建一个完整的业务流。构建完成的业务流如图4所示。如果用户希望测试多个月份的缴费情况,则需要对“查询”、“交易”两个业务节点中的月份信息进行参数化。这时用户可以在测试场景中绘制一个循环体,将“查询”和“交易”两个业务节点囊括在循环区域内,如图5所示;然后,用户可以双击循环体打开参数表格编辑界面,编辑月份参数的名称和取值,如图6所示;最后修改业务节点中的脚本,将月份常量替换为参数名“time”。如果用户还希望测试这样的情形多个不同用户分别对多个时间段进行缴费。这不仅意味着需要将“登陆”节点中的用户名和密码进行参数化,还意味着需要实现循环嵌套。这时,用户可以通过在上面场景的基础上再添加一重循环体(循环嵌套的内外层关系是通过循环体在视图上的层级关系来表达的),如图12所示。至此,用户就可以运行整个业务流了。调试和运行模块将业务流中各个业务节点的脚本信息整合起来,加入API函数定义、Python模块引入、异常处理等信息,生成临时脚本文件和临时图片文件。之后调用SIKULI脚本运行接口来执行脚本。调试和运行模块的工作流程如图8所示。如果用户希望在运行业务流之后生成一份测试报告,则需要在业务流中加入报告节点,如图13所示。测试报告将根据用户在脚本中的设定输出测试结果信息。
权利要求
1.一种基于图形视图的软件自动化测试系统,其特征在于包括脚本编辑模块、场景组织模块、参数化模块、调试和运行模块、测试报告输出模块。
2.根据权利要求1所述的软件自动化测试系统,其中,所述脚本编辑模块提供一个标准的文本编辑界面,借此能够快捷输入自动化测试常用函数;所述脚本编辑模块允许用户使用复制粘贴或拖放的方式在脚本中加入图片,通过脚本编辑模块能够快速截图,使得脚本中图像片段的获取、存储和处理更加方便。
3.根据权利要求1所述的软件自动化测试系统,其中,所述的场景组织模块提供一个用于搭建测试场景的图形视图界面,借此创建多种图形元素,并且能够拖动、复制、剪切、粘贴、删除该图形元素,还能够将多个图形元素用有向连线连接起来,从而构成一个完整的测试过程;所述场景组织模块的核心父类是Qt中的QGraphicdcene类。
4.根据权利要求1所述的软件自动化测试系统,其中,所述的参数化模块提供参数表格编辑界面,借此进行参数信息导入、导出、循环次数设定、参数表格规模设定;所述参数化模块的核心父类是Qt中QTextTable类。
5.根据权利要求1所述的软件自动化测试系统,其中,所述的调试和运行模块能够整合处理场景中的脚本信息,生成Python脚本文件和图片文件,并调用外部接口运行脚本。
6.根据权利要求1所述的软件自动化测试系统,其中,所述的测试报告输出模块提供输出测试结果的专用函数,并依据用户的需要生成HTML格式的测试报告文件和文本格式的测试脚本运行日志文件;所述测试报告输出模块具有维护框架平台的日志文件的功能。
7.一种基于图形视图的软件自动化测试方法,其特征在于包括如下步骤 步骤1,场景组织模块进行业务流分解;步骤2,脚本编辑模块开发业务节点; 步骤3,场景组织模块构建业务流; 步骤4,对脚本进行必要的参数化; 步骤5,调试和运行模块调试运行业务流; 步骤6,测试报告输出模块输出测试报告。
8.根据权利要求7所述的软件自动化测试方法,其中,在所述步骤1中,为了提高脚本的复用性,或是为了实现协作式开发,首先通过场景组织模块,把一个业务流程分解为N个步骤,每个步骤用一个业务节点来封装和实现;分解的策略和颗粒度完全由用户根据实际需要决定;在所述步骤2中,在测试场景中加入业务节点,在脚本编辑模块提供的脚本编辑界面上开发可视化测试脚本;在所述步骤3中,在场景组织模块提供的图形视图界面中将多个业务节点用有向连线连接起来,从而构建一个完整的业务流;在所述步骤4中,根据测试的需要,使用参数化模块对脚本进行必要的参数化,S卩,在测试场景中绘制一个循环体,通过缩放、移动操作调整其覆盖范围,将与参数化有关的业务节点包含在这一范围内;然后在打开的参数表格编辑界面编辑各个参数的名称和取值;最后修改业务节点中的脚本,将需要参数化的常量替换为参数名;在所述步骤5中,运行整个业务流,调试和运行模块将业务流中各个业务节点的脚本信息整合起来,加入API函数定义、Python模块引入、异常处理信息,生成临时脚本文件和临时图片文件,然后调用SIKULI脚本运行接口来执行脚本;在所述步骤6中,所述测试报告输出模块将根据用户需要生成一份HTML格式的测试报告,将脚本中报告函数定义的测试结果信息打印到测试报告中。
9.根据权利要求8所述的软件自动化测试方法,其中,在所述步骤2中,所述脚本遵循Python 2. 5格式规范,在脚本中使用任何Python 2. 5 支持的系统函数或纯Python模块;所述脚本编辑模块在SIKULI API的基础上扩展了一批自动化测试专用函数,形成了独有的一套API,其中的所有函数均在脚本编辑界面上以快捷方式的形式列出,双击鼠标即可在脚本中加入指定的函数;在使用SIKULI API函数的时候,将硬盘中的图片文件复制粘贴、拖动到脚本中作为函数的参数;或者将其它格式文档中的图像片段以复制粘贴的方式插入到脚本中;所述脚本编辑模块能够快速截图,所述脚本编辑模块的核心父类是Qt中的QTextEdit类;在所述步骤3中,所述场景组织模块的核心父类是Qt中用于组织二维图元的 QGraphicsScene类;场景中的业务节点、有向连线、循环体等的核心父类是Qt中的 QGraphicsItem 类;在所述步骤4中,参数化模块中表达参数表格的核心父类是Qt中QTextTable类;为了实现循环嵌套,每一个业务节点对象中都有一个循环体列表,记录该业务节点在哪些循环体范围内;在生成可执行的Python脚本时,调试和运行模块将根据各个业务节点的循环体列表计算出循环的作用范围,确定语句的缩进量,并在Python脚本中加入FOR循环结构。
全文摘要
本发明提供一种基于图形视图的软件自动化测试系统和方法。所述系统包括脚本编辑模块、场景组织模块、参数化模块、调试和运行模块、测试报告输出模块。所述方法包括步骤场景组织模块进行业务流分解;脚本编辑模块开发业务节点;场景组织模块构建业务流;对脚本进行必要的参数化;调试和运行模块调试运行业务流;测试报告输出模块输出测试报告。
文档编号G06F11/36GK102521120SQ20111036297
公开日2012年6月27日 申请日期2011年11月16日 优先权日2011年11月16日
发明者周海旭 申请人:中国民航信息网络股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1