解析目标程序以生成测试程序的测试系统及其测试方法技术方案

技术编号:6961334 阅读:218 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种解析目标程序以生成测试程序的测试系统及其测试方法,其通过解析目标程序中的变数及函数产生解析结果后,依据解析结果生成测试程序的程序码,在测试程序执行以测试目标程序后,输出测试程序所产生的测试结果的技术手段,可以达成以同样的开发效率提供单元测试的技术功效。

【技术实现步骤摘要】

本专利技术涉及一种程序测试系统及其方法,特别系指一种。
技术介绍
单元测试是程序设计领域中多种测试的其中一种。通常是为了测试软件中的一段程序码,例如一个类别(class)、一个函数(function)等,由负责该单元的程序设计人员作测试。单元测试所测试的是,程序设计人员所撰写的程序码是否依据其所设想的方式执行, 并产生出符合预期的结果。单元测试是程序设计很重要的一环,其具有错误报告(bug report)的作用,告诉我们程序码中那里有错误。由于当我们完成或修改一个单元后都需要进行单元测试,因此, 若程序码有错误,则通常错误会被发现。随着软件的功能越来越强大,软件的程序码也越来越冗长,如果纯以人工的方式来找程序错误(bug),往往除错的效率与可靠度都不高。因此,程序设计人员会撰写单元测试的程序来进行单元测试,然而,即使程序设计人员是通过工具来撰写单元测试的程序,也还是需要花费大量的时间,这容易造成开发工作无法如预期的完成,因此,程序设计人员往往无法在软件的开发阶段撰写单元测试的程序来进行单元测试,只能等待软件到了测试阶段时,由测试工程师来进行整个软件的测试,但只对软件进行整体性的测试对于测试流程而言是不完整的,这容易造成软件产生未预期的错误,所以单元测试仍是必须测试流程中必须的步骤。综上所述,可知现有技术中长期以来一直存在程序设计人员在软件开发时,不希望花费额外的开发时间而忽视单元测试的问题,因此有必要提出改进的技术手段,来解决此一问题。
技术实现思路
有鉴于现有技术存在单元测试往往因为需要花费额外的开发时间而被程序设计人员忽视的问题,本专利技术遂公开一种,其中本专利技术所公开的解析目标程序以生成测试程序的测试系统,至少包含测试资料载入模块,用以载入预先建立的测试资料,测试资料对应目标程序,且测试资料包含目标程序的程序名称、函数测试参数;目标程序解析模块,用以依据程序名称取得目标程序,及用以解析目标程序中的变数及函数,并产生解析结果;测试程序生成模块,用以依据解析结果生成测试程序的程序码,程序码包含以函数测试参数作为与目标程序中相对应的函数的传入参数的语法;测试程序执行模块,用以执行测试程序,并取得测试程序所产生的测试结果;输出模块,用以输出测试结果。本专利技术所公开的解析目标程序以生成测试程序的测试方法,其步骤至少包括提供对应目标程序的测试资料,测试资料至少包含目标程序的程序名称、及函数测试参数;主程序依据程序名称取得目标程序;主程序解析目标程序中的变数及函数,并产生解析结果; 主程序依据解析结果生成测试程序的程序码,程序码包含以函数测试参数作为与目标程序中相对应的函数的传入参数的语法;主程序执行测试程序;测试程序测试目标程序并产生测试结果;主程序分析该测试结果并产生测试报告;主程序输出测试报告。本专利技术所公开的另一种解析目标程序以生成测试程序的测试方法,其步骤至少包括提供对应目标程序的测试资料,测试资料包含目标程序的程序名称及函数测试参数; 主程序依据程序名称取得目标程序;主程序解析目标程序中的变数及函数,并产生解析结果;主程序依据解析结果生成测试程序的程序码,程序码包含将函数测试参数传入目标程序执行的语法;主程序执行测试程序;测试程序测试目标程序并产生测试结果;测试程序输出测试结果。本专利技术所公开的系统与方法如上,与现有技术之间的差异在于本专利技术通过解析目标程序中的变数及函数产生解析结果后,依据解析结果生成测试程序的程序码,在测试程序执行以测试目标程序后,输出测试程序所产生的测试结果,借以解决现有技术所存在的问题,并可以达成以同样的开发效率提供单元测试的技术功效。附图说明图1为本专利技术所提的解析目标程序以生成测试程序的测试系统架构图。 图2A为本专利技术所提的第一种解析目标程序以生成测试程序的测试方法流程图。 图2B为本专利技术所提的第二种解析目标程序以生成测试程序的测试方法流程图。 图2C为本专利技术所提的第三种解析目标程序以生成测试程序的测试方法流程图。 图3A为本专利技术实施例所提的目标程序的程序码示意图。 图3B为本专利技术实施例所提的解析目标程序的程序码示意图。 图3C为本专利技术实施例所提的测试目标程序的程序码示意图。主要元件符号说明110测试资料载入模块120目标程序解析模块130测试程序生成模块150测试程序执行模块160测试结果分析模块170输出模块300目标程序400程序码420变数名称取得语法430函数名称取得语法500程序码具体实施例方式以下将配合图式及实施例来详细说明本专利技术的特征与实施方式,内容足以使任何普通技术人员能够轻易地充分理解本专利技术解决技术问题所应用的技术手段并据以实施,借此实现本专利技术可达成的功效。以下先以图1本专利技术所提的解析目标程序以生成测试程序的测试系统的系统架构图来说明本专利技术的系统运作。如图1所示,本专利技术的系统主要含有测试资料载入模块 110、目标程序解析模块120、测试程序生成模块130、测试程序执行模块150以及输出模块 170。测试资料载入模块110负责载入与目标程序对应的测试资料,被测试资料载入模块110载入的测试资料至少包含目标程序的程序名称、分别与目标程序中的各函数对应的函数测试参数(通常为调用函数时所需传入函数的变数),但测试资料并不以此为限,例如,测试资料除了包含程序名称以及函数测试参数之外,还可以包含与各函数测试参数对应的函数测试结果,而此函数测试结果也就是在调用函数时传入对应的函数测试参数后应该产生的预期结果,因此函数测试结果会与函数测试参数对应的函数对应。其中,测试资料是由使用者在执行本专利技术前预先建立,一般而言,测试资料被储存于执行本专利技术的装置中, 但本专利技术并不以此为限,也就是说,测试资料也可能储存于执行本专利技术的装置外,测试资料载入模块110需要通过网路等连线方式载入测试资料。目标程序解析模块120负责依据测试资料中所记录的目标程序的程序名称取得目标程序,目标程序解析模块120也负责由所取得的目标程序中解析出目标程序所具有的变数(property)及函数(method),并在解析目标程序后产生相对应的解析结果。其中,目标程序解析模块120可以由目标程序中解析出目标程序所具有的变数的名称与型态(type),目标程序解析模块120所解析出的变数的型态包含但不限于数值、字串或某一类别(class)等;目标程序解析模块120也可以由目标程序中解析目标程序所具有的各函数的所有传入参数的名称与型态、以及各函数的回传资料(return data)的型态。 也就是说,目标程序解析模块120所产生的解析结果即包含目标程序所具有的变数的名称与型态、目标程序所具有的各函数的所有传入参数的名称与型态、以及各函数的回传资料的型态等,但本专利技术所提的解析结果并不以此为限。测试程序生成模块130负责依据测试资料载入模块110所载入测试资料以及目标程序解析模块120所产生的解析结果生成测试程序的程序码。测试程序生成模块130所生成的程序码中,包含测试目标程序中的各函数的语法。其中,特别值得一提的是,测试目标程序中的各函数的语法中,会以测试资料所包含的与各函数相对应的函数测试参数作为各函数的传入参数。另外,由于测试程序的程序码包含测试目标程序中的各函数的语法,因此,测试程序生成模块130所生成的程序码中,也本文档来自技高网...

【技术保护点】
1.一种解析目标程序以生成测试程序的测试方法,其特征在于,该测试方法至少包含下列步骤:提供对应一目标程序之一测试资料,该测试资料至少包含该目标程序之一程序名称、及一函数测试参数;一主程序依据该程序名称取得该目标程序;该主程序解析该目标程序中的变数及函数,并产生一解析结果;该主程序依据该解析结果生成一测试程序的程序码,该程序码包含以该函数测试参数作为与该目标程序中相对应之一函数的传入参数的语法;该主程序执行该测试程序;该测试程序测试该目标程序并产生一测试结果;该主程序分析该测试结果并产生一测试报告;及该主程序输出该测试报告。

【技术特征摘要】

【专利技术属性】
技术研发人员:邱全成方慧
申请(专利权)人:英业达股份有限公司
类型:发明
国别省市:71

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

1