软件自动化测试工具的应用研究

  【摘 要】软件自动化测试对于提高软件的测试效率和质量有着至关重要的作用,笔者在此主要从软件自动化测试的定义、工具分类以及内容角度来进行分析研究,以期软件自动化测试工具不断完善,发挥其应有的作用。  【关键词】软件自动化测试;测试工具;应用  1.软件自动化测试的定义  软件自动化测试目前存在两种定义,第一,在不需要人的干预的情况下,运用自动化的测试工具进行自行测试。第二,对测试的执行使用软件来进行控制,主要包括测试预期输出和实际输出的效果的对比,测试是否已构建了前提条件等。第一种定义更着重于强调“自动化的测试工具”,要求在测试的过程中,不需要人的干预,只需软件进行运行。而第二种属于广义上的定义,它只是涉及软件,而非自动化的测试工具,并非绝对意义上的软件自动化测试工具。  2.软件自动化测试优点  2.1提高了测试效率  在软件测试中对于回归测试中的动作和用例是已经完全设计好的,同时可以完全预知测试期望和结果,从而可以极大提高测试效率,缩短回归测试时间。  2.2可以运行更多更繁琐的测试  许多不可能同时让足够多的测试人员同时进行测试的大量用户测试,实行自动化测试可模拟出同一时间的许多用户,更好的利用资源,同时达到测试的目的。  2.3具有一致性和可重复性  由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复效果。自动化测试还存在着复用性的优点,自动测试通常采用脚本技术,只需要对脚本做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。  3.软件自动化测试工具的分类  3.1白盒测试工具  白盒测试主要是从程序的内部结构出发设计测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态,来测试产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。其对应的测试工具也主要是直接对代码进行分析,针对程序代码、程序结构、对象、类层次等进行测试,测试中发现的缺陷可以定位到代码行、具体的某个变量。软件自动化测试中对白盒测试工具的选择主要应依据该工具对开发语言的支持力度、对嵌入式操作系统的支持力度、代码的覆盖深度及测试的可视化。  白盒测试工具可进一步细分为静态测试工具和动态测试工具。静态测试工具是不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。具有代表性的静态测试工具有Gimpel公司的PC-lint和Compuare的DevPartner Studio中的CodeRe view。动态测试工具需要实际运行被测系统,并设置断点,向代码生成的可执行文件插入一些监测代码,监测断点这一时刻程序运行的数据。具有代表性的动态测试工具有IBM-Rational公司的Purify,Pure Coverage,Quan lify和Compuare公司的Error Detect,Cover  age Analysis,PerformanceAnalysis。  3.2黑盒测试工具  黑盒测试是在已知产品所应具有的功能的情况下,通过测试来检测每个功能能否正常使用的测试工具。其基本工作原理是利用脚本的录制和回放,模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。测试时完全不考虑程序内部结构和内部特性,它只检查程序功能是否按照需求规格说明书的规定正常使用,主要用于软件确认测试。黑盒测试工具的代表有IBMRational的TeamTest、Robot, Compuware公司的QA Center,MI公司的WinRunner等工具。  3.3对数据生成进行检测的工具  测试数据生成工具主要应用在测试的前端,为测试过程准备大量的可用数据。并且通过转化、析取、变换或捕捉现有数据作为依据,自动为测试程序生成可靠的测试数据。同时,可以通过配置工具配置数据生成的规则,并且有一个自动配置引擎,可以根据已经存在的数据库自动生成配置文件。目前典型的测试数据生成工具有:Bender&Associates公司提供的功能测试数据生成工具SoftTest;Interna  tionalSoftwareAutomation公司提供的Panoram aC/C++测试数据生成工具。  3.4对管理进行测试的工具  测试管理工具是指用工具对软件的整个测试输入、执行过程和测试结果进行管理的过程。测试管理工具通过一个中央数据仓库,实现测试人员、开发人员或其他IT人员在异地进行信息交流。从测试需求管理到测试计划、测试日程安排、测试执行到出错后的错误跟踪,实现了全过程的自动化管理,提高回归测试的效率、大幅提升测试时间、测试质量、用例复用、需求覆盖等。测试管理工具的代表有Mercury Interactive公司的TestDirector、IBM-Ra tional公司的ClearQuest。  4.软件自动化测试工具的实施程序  软件自动化测试在本质上与软件开发过程是一样的,都是通过自动化测试工具来实现。具体过程如下:  4.1分析进行测试的需求  不同的人员进行软件自动化测试时的目的往往是不一样的,比如测试人员、开发管理者等在进行测试时会存在安全测试、功能测试以及性能测试等方面的差异。此外,不同的测试工具具有不同的测试功能,所以,在进行测试之前,应对测试方案进行调查,收集需求,以选择适当的测试工具。  4.2对测试用例进行认真设计  测试用例主要是指关于测试目标的一系列测试,它有一定的顺序要求。在设计测试用例时应对测试时的输入值、标准结果、输出值等信息进行规划。  4.3对测试脚本进行编写  编写测试脚本的过程实际上是对具体的测试用例脚本进行转化,依据测试设计时的需要生成测试脚本,对于一些高度自动化的测试工具,则可以依据以前软件的运行情况来对测试用例进行自动录制。  4.4对实施过程进行测试  对实施过程进行自动化测试主要是依靠一定的测试支持系统进行自动化的控制和调度测试的过程。  4.5生成准确的软件测试报告  根据测试结果的分析,及时发现出现在产品中的问题的实质,找出解决对策,从而准确评估产品的质量,实现产品质量的提升。  5.结束语  目前软件技术得到了突飞猛进的发展,规模也日益增大,同时软件的复杂程度不断增加,要想提高软件自动化测试程度,就必须达到软件自动化测试工具的准确使用。目前自动化测试工具的种类非常多,我们在选择自动化测试工具时,要综合考虑各方面的因素,只有这样才能使得测试的质量和效率不断提高,降低测试所需要的成本,从而促进软件开发工作的快速发展。 [科]  【参考文献】  [1]黄茂生.软件自动化测试工具的评估与选择[J].电子质量,2007(12).  [2]李理,刘军.软件测试工具的选择和使用[J].警察技术,2006(4).  [3]徐进.自动化软件测试的分析[J].信息技术,2010(3).  [4]王晓虹.软件工程中的自动化测试技术[J].科教文汇(中旬刊),2009(9).

  【摘 要】软件自动化测试对于提高软件的测试效率和质量有着至关重要的作用,笔者在此主要从软件自动化测试的定义、工具分类以及内容角度来进行分析研究,以期软件自动化测试工具不断完善,发挥其应有的作用。  【关键词】软件自动化测试;测试工具;应用  1.软件自动化测试的定义  软件自动化测试目前存在两种定义,第一,在不需要人的干预的情况下,运用自动化的测试工具进行自行测试。第二,对测试的执行使用软件来进行控制,主要包括测试预期输出和实际输出的效果的对比,测试是否已构建了前提条件等。第一种定义更着重于强调“自动化的测试工具”,要求在测试的过程中,不需要人的干预,只需软件进行运行。而第二种属于广义上的定义,它只是涉及软件,而非自动化的测试工具,并非绝对意义上的软件自动化测试工具。  2.软件自动化测试优点  2.1提高了测试效率  在软件测试中对于回归测试中的动作和用例是已经完全设计好的,同时可以完全预知测试期望和结果,从而可以极大提高测试效率,缩短回归测试时间。  2.2可以运行更多更繁琐的测试  许多不可能同时让足够多的测试人员同时进行测试的大量用户测试,实行自动化测试可模拟出同一时间的许多用户,更好的利用资源,同时达到测试的目的。  2.3具有一致性和可重复性  由于测试是自动执行的,每次测试的结果和执行的内容的一致性是可以得到保障的,从而达到测试的可重复效果。自动化测试还存在着复用性的优点,自动测试通常采用脚本技术,只需要对脚本做少量的甚至不做修改,实现在不同的测试过程中使用相同的用例。  3.软件自动化测试工具的分类  3.1白盒测试工具  白盒测试主要是从程序的内部结构出发设计测试用例,对程序所有逻辑路径进行测试,通过在不同点检查程序的状态,确定实际的状态,来测试产品内部动作是否按照设计规格说明书的规定正常进行,检验程序中的每条通路是否都能按预定要求正确工作。其对应的测试工具也主要是直接对代码进行分析,针对程序代码、程序结构、对象、类层次等进行测试,测试中发现的缺陷可以定位到代码行、具体的某个变量。软件自动化测试中对白盒测试工具的选择主要应依据该工具对开发语言的支持力度、对嵌入式操作系统的支持力度、代码的覆盖深度及测试的可视化。  白盒测试工具可进一步细分为静态测试工具和动态测试工具。静态测试工具是不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。具有代表性的静态测试工具有Gimpel公司的PC-lint和Compuare的DevPartner Studio中的CodeRe view。动态测试工具需要实际运行被测系统,并设置断点,向代码生成的可执行文件插入一些监测代码,监测断点这一时刻程序运行的数据。具有代表性的动态测试工具有IBM-Rational公司的Purify,Pure Coverage,Quan lify和Compuare公司的Error Detect,Cover  age Analysis,PerformanceAnalysis。  3.2黑盒测试工具  黑盒测试是在已知产品所应具有的功能的情况下,通过测试来检测每个功能能否正常使用的测试工具。其基本工作原理是利用脚本的录制和回放,模拟用户的操作,然后将被测系统的输出记录下来同预先给定的标准结果比较。测试时完全不考虑程序内部结构和内部特性,它只检查程序功能是否按照需求规格说明书的规定正常使用,主要用于软件确认测试。黑盒测试工具的代表有IBMRational的TeamTest、Robot, Compuware公司的QA Center,MI公司的WinRunner等工具。  3.3对数据生成进行检测的工具  测试数据生成工具主要应用在测试的前端,为测试过程准备大量的可用数据。并且通过转化、析取、变换或捕捉现有数据作为依据,自动为测试程序生成可靠的测试数据。同时,可以通过配置工具配置数据生成的规则,并且有一个自动配置引擎,可以根据已经存在的数据库自动生成配置文件。目前典型的测试数据生成工具有:Bender&Associates公司提供的功能测试数据生成工具SoftTest;Interna  tionalSoftwareAutomation公司提供的Panoram aC/C++测试数据生成工具。  3.4对管理进行测试的工具  测试管理工具是指用工具对软件的整个测试输入、执行过程和测试结果进行管理的过程。测试管理工具通过一个中央数据仓库,实现测试人员、开发人员或其他IT人员在异地进行信息交流。从测试需求管理到测试计划、测试日程安排、测试执行到出错后的错误跟踪,实现了全过程的自动化管理,提高回归测试的效率、大幅提升测试时间、测试质量、用例复用、需求覆盖等。测试管理工具的代表有Mercury Interactive公司的TestDirector、IBM-Ra tional公司的ClearQuest。  4.软件自动化测试工具的实施程序  软件自动化测试在本质上与软件开发过程是一样的,都是通过自动化测试工具来实现。具体过程如下:  4.1分析进行测试的需求  不同的人员进行软件自动化测试时的目的往往是不一样的,比如测试人员、开发管理者等在进行测试时会存在安全测试、功能测试以及性能测试等方面的差异。此外,不同的测试工具具有不同的测试功能,所以,在进行测试之前,应对测试方案进行调查,收集需求,以选择适当的测试工具。  4.2对测试用例进行认真设计  测试用例主要是指关于测试目标的一系列测试,它有一定的顺序要求。在设计测试用例时应对测试时的输入值、标准结果、输出值等信息进行规划。  4.3对测试脚本进行编写  编写测试脚本的过程实际上是对具体的测试用例脚本进行转化,依据测试设计时的需要生成测试脚本,对于一些高度自动化的测试工具,则可以依据以前软件的运行情况来对测试用例进行自动录制。  4.4对实施过程进行测试  对实施过程进行自动化测试主要是依靠一定的测试支持系统进行自动化的控制和调度测试的过程。  4.5生成准确的软件测试报告  根据测试结果的分析,及时发现出现在产品中的问题的实质,找出解决对策,从而准确评估产品的质量,实现产品质量的提升。  5.结束语  目前软件技术得到了突飞猛进的发展,规模也日益增大,同时软件的复杂程度不断增加,要想提高软件自动化测试程度,就必须达到软件自动化测试工具的准确使用。目前自动化测试工具的种类非常多,我们在选择自动化测试工具时,要综合考虑各方面的因素,只有这样才能使得测试的质量和效率不断提高,降低测试所需要的成本,从而促进软件开发工作的快速发展。 [科]  【参考文献】  [1]黄茂生.软件自动化测试工具的评估与选择[J].电子质量,2007(12).  [2]李理,刘军.软件测试工具的选择和使用[J].警察技术,2006(4).  [3]徐进.自动化软件测试的分析[J].信息技术,2010(3).  [4]王晓虹.软件工程中的自动化测试技术[J].科教文汇(中旬刊),2009(9).


相关文章

  • 东北大学信息学院导师
  • 单位名称电力系统与电力传动研 究所电力系统与电力传动研 究所电力系统与电力传动研 究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电气自动化研究所电子科学与技术研究所电子科学与技术研究所 ...查看


  • 网上购物系统_文献综述
  • 文献综述(开题报告)1. 引言 软件测试伴随着计算机软件的产生而发展起来.在早期的软件开发的过程中,软件就是由程序员写的简单计算机程序代码.软件测试是软件工程中的一个重要部分,而自动化测试则又是软件测试中一门新兴学科.它可以有效地提高在软件 ...查看


  • 软件安全性测试研究综述
  • 文章缉号:1671-459812011103-0493-04 中图分类号:TP31i文献标识码:A 软件安全性测试研究综述 何 鑫,郑军,刘 畅 100028) (中国航空综合技术研究所.北京 摘要:近年来.软件安全性在保证系统安全.避免重 ...查看


  • 软件测试方法技术的研究与对比-毕业论文
  • 软件测试方法技术的研究与对比 作 者 学科. 学 指 导 完 成姓 名: 专业 : 号 : 教 师: 日 期: XX大学 XXXX University 软件测试方法技术的研究与对比 总计: 毕业论文 64 页 表 格 14 表 插 图 2 ...查看


  • 仪器科学与技术
  • 仪器科学与技术 080400 (一级学科:仪器科学与技术) 仪器科学与技术学科下设测试计量技术及仪器和精密仪器及机械两个二级学科,本学科是1983年获博士学位授予权的光学仪器学科的主要部分,本学科1986年获得硕士学位授予权,2000年获得 ...查看


  • 虚拟仪器技术的国内外研究现状分析
  • Harbin Institute of Technology 虚拟仪器技术的 国内外研究现状分析 课程名称:院 系:班 级: 姓 名:学 号:完成时间: 哈尔滨工业大学 摘 要 全面介绍了虚拟仪器概念的提出,它的基本原理.主要结构和性能特点 ...查看


  • 自动检测技术发展现状与应用前景研究
  • 1.引言 所谓自动检测,是指由计算机进行控制对系统.设备和部件进行性能检测和故障诊断,是性能检测.连续监测.故障检测和故障定位的总称.现代自动检测技术是计算机技术.微电子技术.信息论.控制论.测量技术.传感技术等学科发展的产物,是这些学科在 ...查看


  • (read)基于Fuzzing的PNG漏洞挖掘技术_夏建军
  • 总第245期 2010年第3期 计算机与数字工程 Computer&DigitalEngineeringVol.38No.3 92 基于Fuzzing的PNG漏洞挖掘技术 夏建军 孙乐昌 吴志勇 王红川 刘京菊 (解放军电子工程学院 ...查看


  • 软件工程师可行性和需求分析报告
  • 软件工程师可行性与需求分析报告 一.职业目标与内容 职业定义 软件工程师是一个认证考试,具体地说是从事软件职业的人员的一种职业能力的认证,通过它说明具备了工程师的资格.主要工作进行软件前期的项目需求的分析,然后对项目进行风险评估并试图解决这 ...查看


热门内容