基于raspberrypi的agv视觉导航设计.docx

上传人:b****5 文档编号:7659987 上传时间:2023-01-25 格式:DOCX 页数:33 大小:898.57KB
下载 相关 举报
基于raspberrypi的agv视觉导航设计.docx_第1页
第1页 / 共33页
基于raspberrypi的agv视觉导航设计.docx_第2页
第2页 / 共33页
基于raspberrypi的agv视觉导航设计.docx_第3页
第3页 / 共33页
基于raspberrypi的agv视觉导航设计.docx_第4页
第4页 / 共33页
基于raspberrypi的agv视觉导航设计.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

基于raspberrypi的agv视觉导航设计.docx

《基于raspberrypi的agv视觉导航设计.docx》由会员分享,可在线阅读,更多相关《基于raspberrypi的agv视觉导航设计.docx(33页珍藏版)》请在冰豆网上搜索。

基于raspberrypi的agv视觉导航设计.docx

基于raspberrypi的agv视觉导航设计

本科毕业论文(设计)

题目:

基于QTP的自动化测试

姓名:

张海波

学号:

1042157124

专业:

计算机科学与技术

院系:

信息工程学院

指导老师:

钱丽

职称学位:

讲师/硕士

完成时间:

2014年5月12日

 

教务处制

安徽新华学院本科毕业论文(设计)独创承诺书

本人按照毕业论文(设计)进度计划积极开展实验(调查)研究活动,实事求是地做好实验(调查)记录,所呈交的毕业论文(设计)是我个人在导师指导下进行的研究工作及取得的研究成果。

据我所知,除文中特别加以标注引用参考文献资料外,论文(设计)中所有数据均为自己研究成果,不包含其他人已经发表或撰写过的研究成果。

与我一同工作的同志对本研究所做的工作已在论文中作了明确说明并表示谢意。

 

毕业论文(设计)作者签名:

日期:

基于QTP的自动化测试

摘要

在软件开发过程中,软件测试是发现软件缺陷的最直接手段,也是作为控制软件缺陷最主要的手段。

在不断寻找有效的测试方法同时,自动化测试已经成为提高软件测试效率和解决覆盖面的重要技术手段。

本次毕业设计,首先对现阶段国内外对自动化测试的研究成果及发展前景进行了调研,比较了传统手动测试与自动化测试的优缺点。

然后利用自动化软件测试工具QuickTestProfessional(简称QTP),以飞机订票系统(Flight)为测试对象,针对Flight的具体功能进行自动化测试。

测试过程包括各功能测试场景设计和用例的编写,测试脚本的创建、编辑,对测试脚本的增强、调试,以及对测试执行结果进行分析,检查测试运行过程的正确性。

同时通过手工测试与自动化测对比,凸显自动化测试在测试效率等方面的优势。

 

关键词:

软件测试;自动化测试;QTP;功能测试

 

QTP-basedautomatedtesting

Abstract

Intheprocessofsoftwaredevelopment,softwaretestingisthemostdirectmeanstofindsoftwaredefects,butalsoasameanstocontrolthemostimportantsoftwaredefects.Constantlylookingforeffectivetestingmethodsatthesametime,improvetheautomatedtestingsoftwaretestinghasbecomeanimportanttechnicalmeanstosolvetheefficiencyandcoverage.

Thegraduationproject,thefirststageathomeandabroadforresearchanddevelopmentprospectsofautomatedtestingconductedaninvestigationtocomparetheadvantagesanddisadvantagesofthetraditionalmanualtestingandautomatedtesting.TheuseofautomatedsoftwaretestingtoolsQuickTestProfessional(referredQTP),toairlinereservationsystems(Flight)ofthetestobject,automatedtestingofspecificfunctionalFlight.Thefunctionaltestingprocess,includingthedesignandpreparationoftestscenariosusecases,testscriptstocreate,edit,enhancetestscripts,debug,andanalyzetheresultsofthetestexecution,testruntocheckthecorrectnessoftheprocess.Bysimultaneouslymeasuringmanualtestingandautomatedcomparison,highlightingtheadvantagesofautomatedtestingefficiencyandotheraspectsofthetest.

Keywords:

SoftwareTesting;AutomatedTesting;QTP;FunctionalTesting

1概述

1.1课题研究背景

按时、高质量地发布软件产品是软件开发的最基本要求,而软件测试是软件质量保证的最重要的手段之一。

对于软件,不论采用什么技术和方法来进行开发,软件产品中都会存在或多或少的错误和问题[1]。

于是,软件测试便扮演了极其重要的角色,贯穿于整个软件生命周期,检验各个阶段的成果是否符合质量要求和达到预先定义的目标。

据大量统计资料显示,在典型的软件开发的项目中,软件测试投入的成本和工作量往往占到软件的总成本和总工作量的40%以上。

传统的软件测试方式大多停留在内部测试、手工测试阶段,并不能完全适用于应用测试。

由于较多的企业采用瀑布模型进行开发,往往在软件开发结束后才开始进行测试。

这些都在极大程度上降低了测试的覆盖率,增加了测试的成本,影响了软件质量的可靠性[4]。

因此,软件测试自动化技术的出现,从真正意义上把测试人员从简单重复的劳动中解放出来,弥补了手动测试在应付大规模测试中疲态的缺陷,尤其是面对大量的数据需要检查时,人工的比较和搜索不仅效率低,而且容易出错,覆盖面偏低。

它为软件开发团队节约了测试成本,提高了软件质量,缩短了产品发布周期。

1.2国内外研究现状

软件测试是软件质量的护航者,只有通过了测试软件的设计、编码和规约的评审才能通过,在软件的整个生命周期中具有与软件开发相同的地位。

在许多大型的软件公司,其测试人员和开发人员比例达到了1:

1,甚至更多[4]。

然而,在早期软件测试常常被忽视,软件经过开发人员简单的单元测试后进行发布,导致的后果可想而知。

在美国北卡罗来纳大学召开的软件测试的正式技术会议,是软件测试技术发展历史上的一个转折点,它标志着软件测试成为了软件工程领域中一个独立而重要的分支。

此后,Gerhart进一步总结原来的测试理论,将软件测试提升到理论的高度,作为实践性学科的参考[2]。

为了更好的实现测试的自动化,用自动化测试代替手工劳动,许多IT厂商推出了以工具为中心的测试,是测试人员只需要关注脚本技术和配置文件的编写。

常用的测试工具有MercuryInteractive公司的QTP、LoadRunner、TestDirectior,IBM的Web自动化测试工具RationalFunctionTester,SegueSoftware公司的Segue,Compuware公司的QACenter。

这些测试工具融入了许多新的技术,如面向对象技术,当针对不同的测试重点,可以采用相应的工具[3]。

国内的软件测试技术起步较晚,但随着国内软件企业规模的壮大,人才的引进和培养,越来越多的软件生产商开始在自动化测试领域中进行软件分析和测试工具的研究和开发。

西北工业大学在C/S系统的测试方面进行了许多的研究工作,并且取得了一定的成绩。

北京航空航天大学和北京大学经过技术的攻关,共同研制了一系列测试工具和程序理解工具,例如具有典型代表的SafePro/javao和SafeProC/C++。

南京大学和航空局计算研究所开发的静态分析工具和测试用例自动生成工具,在嵌入式系统测试方面取得了较大的成功[10]。

拥有自主知识产权的泽众软件是国内领先的专业功能测试工具、测试管理工具的供应商,从2004年起就推出了AutoRunner、TestCenter等优秀产品。

1.3课题研究目的

本文旨在通过QTP在具体案例中的使用,包括设计测试案例、录制、优化脚本功能等,来具体认识自动化测试对于普通应用软件,都可以发挥其功能测试和回归测试的优点,省去了手工测试的繁琐,更加低成本,便捷而快速的找出软件的BUG所在,是软件开发中一个不可或缺的重要的一部分。

2软件缺陷与软件测试

2.1软件缺陷

2.1.1软件缺陷与硬件缺陷异同

对于用户来说,软件缺陷与硬件缺陷一样,会对用户在使用时造成困扰。

但是软件缺陷在一般情况下,不会对用户造成直接的人身伤害或经济损失,也因此很多人意识不到软件缺陷的危害性和严重性。

然而在一些比较依赖软件进行业务处理的领域,便可能造成重大的经济损失,甚至危及生命,例如2007年4月,某个软件缺陷导致某地铁系统的列车火灾,软件未能检测和防止剩余动力在设备中的使用,导致车过热而起火。

因此,软件缺陷与硬件缺陷一样,都需要人们重视他们可能造成的危害与损失。

不同在于,硬件缺陷大多是可预见的,比较容易被发现。

软件缺陷的可预见性就没有那么强,其一个重要特点就是隐蔽性。

由于软件的复杂度高,状态空间广阔,因此,要覆盖软件所有的可能行为几乎是不可能的。

2.1.2如何通过软件测试发现软件缺陷

手工测试仍然是主要的查找错误的方式,自动化测试能部分地解决覆盖面的问题和测试效率的问题,但是不能从根本上解决问题。

而在软件测试之前的开发环节中,开发人员已经对对软件进行缺陷控制,尽管大多停留在“调试”阶段的测试水平。

也因此软件测试成为了软件缺陷的主要控制手段和解决方法。

测试人员通过产品需求,以及用户的实际业务背景,设计出各种测试用例,通过执行测试用例,判断被测试的应用程序是否满足用户需求。

在测试用例中,主要分为两种。

一是验证软件功能正确的;另一种适用于证明软件错误的。

如果将这这些用例转化为可被自动化测试工具执行的脚本,那么就成了一个自动化测试用例,使用自动化的方式执行,提高效率。

2.2软件质量与软件测试

软件质量是软件产品的核心价值体现,也是企业竞争力的体现,重视软件质量的企业通常能获得更多的收益。

软件质量也是软件项目管理的重要组成部分,在不同的开发模式中,都会围绕软件质量管理提出相应的做法。

1986年,ISO8492给出了质量定义:

质量是产品或服务满足明示或暗示需求能力的固有特性和特征的集合。

而在IBMRUP(统一过程)中,质量被定义为“满足或超出认定的一组要求,并使用经过的认可的评测方法和标准来评估,还使用认定的流程生产”。

因此,质量不是简单地满足用户需求,还得包含证明质量达标所使用的评测方法及标准,以及如何实施可管理、可重复使用的流程,以确保由此流程生产的产品已达到预期的、稳定的质量水平。

1983年,ANSIIEEESTD729给出了软件质量的定义[6],包括:

(1)软件产品质量满足用户要求的程度;

(2)软件各种属性的组合程度;

(3)用户对软件产品的综合反映程度;

(4)软件在使用过程中满足用户要求的程度。

简而言之,功能、性能和可靠性是衡量软件质量的三个维度指标。

2.2.1软件开发模式与自动化测试

在不同的开发模式中,软件测试的地位和作用略有不同,但却不可能消失。

在传统的瀑布开发模型中,软件测试作为一个独立的阶段出现,在进入测试阶段之前,应该完成编码并且提供完善的需求、设计和文档。

如果在需求定义方面做得很好,对自动化测试十分有益,可以尽早的选择测试策略,让自动化测试高层次整体地进行。

而在RUP迭代模型中,实施自动化测试时,需要与开发策略紧密结合,关注早期构建、迭代的速度、风险、覆盖目标等。

敏捷方法则打破了传统的自动化测试方法,第一个破坏点集中在自动化的可接受性测试,很难被其他类型的自动化重用。

细粒度的迭代让每次的测试很难击中目标和定义标准。

2.3软件自动化测试与手动测试

2.3.1自动化测试与手工测试比较

软件测试的一个显著特点就是重复性,重复的工作除了机器人没人忍受的了。

在精确性的问题上,当手动测试遭遇大量的数据需要检查的时候,数据比较和搜索定位不仅效率不高而且易出错,达不到预期的覆盖率。

伴随着产品的完善,软件功能的逐步完善,需要测试的内容有时候会呈现几何倍数增长,人工进行回归测试便显得捉襟见肘。

当然不意味着手动测试就这样被淘汰,手工测试有这其不可替代的地方:

(1)测试用例的设计:

测试人员的经验和判断能力是一切工具不具备的

(2)界面和用户体验:

人类的审美和感官及心理体验是其他无法代替的

(3)正确性的检查:

工具是不具备推理和逻辑思维的。

而在借助计算机强大的计算能力下,可以不知疲倦、重复的运行,对于大量的数据也能在短时间内处理结束。

于是自动化测试的优势则表现如下:

(1)可重复性强

(2)计算精确

(3)大批量操作

(4)覆盖面广

(5)搜索效率高

2.3.2如何开展自动化测试

在软件测试的阶段,自动化测试应该被当作一个项目来开展。

首先要确定所开发的软件项目采用自动化测试是否适用。

短期的或者一次性的项目不宜采用,因为这反而增加开发周期和成本。

同样,在一个非常紧迫的项目中也是不合适的,因为需要测试人员开发编写测试脚本,并需要开发人员的配合使得整个进程更加紧张仓促,适得其反。

其次,什么时候开始自动化测试项目?

不能过早,太早的话,软件不成形,界面、编码等不稳定,改动频繁,这时候开展自动化徒增成本,得不偿失。

可以在雏形期做一些准备,考虑测试工具的选择。

熟悉和了解各种编程语言、编程工具,以及各种控件会使得在开展测试时得心用手。

2.3.3自动化测试方案

在选择测试方案的时候,要参照下列因素[4]:

(1)项目的影响:

制定的方案是否对整个项目有积极作用,或者让开发更敏捷

(2)复杂度:

自动化是否容易实现

(3)时间:

自动化测试的实现需要多少时间

(4)早期需求和代码的稳定性:

如果不能稳定,那么自动化测试介入会很尬尴

(5)覆盖率:

能否覆盖程序中的关键特性和功能

(6)资源:

有没有足够的人力资源、数据资源、硬件资源来支持自动化的开展

在确定方案后,测试脚本的编码阶段,编写方法也左右着自动化测试的效率和质量。

自动化功能测试的开发方式主要有:

(1)线性的

(2)结构化的

(3)共享的

(4)数据驱动的

(5)关键字驱动的

2.4自动化测试工具介绍

QTP全名HPQuickTestProfessionalsoftware,2012年12月6日发布了11.5版本,并更名为UnifiedFunctionalTesting

  QTP是QuicktestProfessional的简称,是一款自动化测试工具。

自动化工具出现目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。

在测试前要考虑好如何制定相应的测试计划,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等。

  WinRunner是MercuryInteractive公司的一种企业级的功能测试工具,用于检测应用程序是否能够达到预期的功能及正常运行。

通过自动录制、检测和回放测试用户的操作,WinRunner能够有效地帮助测试人员对复杂应用的不同发布版进行测试,提高测试人员的工作效率和质量,且保障跨平台的、复杂的企业级应用能够无故障发布及长期稳定运行。

  RationalRobot作为业界最顶尖的自动化功能测试工具,它可以在测试人员学习高级脚本技术同时帮助其进行成功的测试。

集成在测试人员的桌面IBMRationalTestManager上,测试人员可以计划、组织、执行、管理和报告所有测试活动,包括手动测试报告。

这种测试和管理的双重功能十分利于刚进入测试领域的人员。

AdventNetQEngine.AdventNetQEngine是一个应用广泛且独立于平台的自动化软件测试工具,可用于JavaAPI测试、web性能测试、Java应用性能测试、Web功能测试、SOAP测试、回归测试和Java应用功能测试。

支持对于使用HTML、JSP、ASP、.NET、PHP、JavaScript/VBScript、XML、SOAP、WSDL、e-commerce、传统客户端/服务器等开发的应用程序进行测试。

此工具为Java技术开发,十分便于移植并可提供多平台支持。

SilkTest,是用于对企业级应用进行功能测试的领先产品,可用于测试Web、Java或是传统的C/S结构。

SilkTest提供了丰富的功能,使用户能够高效地进行自动化测试。

包括以下功能:

测试的计划和管理,数据库访问及校验,便捷、强大的4Test脚本语言,内置恢复系统(RecoverySystem),并具有使用同一套脚本进行跨平台、浏览器进行测试的功能。

QARun。

QARun的测试实现方式是通过检测鼠标移动、键盘点击操作等被测应用,即而得到相应的测试脚本,对该脚本可以进行需要编辑和调试。

在记录的过程中可针对被测应用中所包含的功能点进行基线值的建立,即在插入检查点的同时建立预期值。

在这里检查点是目标系统的一个特殊方面在一特定点的期望状态。

一般,检查点在QARun提示目标系统执行一系列事件之后被执行。

检查点用于确定当前实际结果与预期值是否一样。

TestPartner作为一个自动化的功能测试工具,它专为测试基于微软、Java和Web技术的复杂应用而设计。

它使测试人员和开发人员都可以使用可视的脚本编制和自动向导来生成可重复的测试,用户可以在任何水平层次和细节条件下,调用VBA的所有功能进行测试。

TestPartner通过采用通用的、分层的方式来进行脚本的开发。

各水平的的测试人员都可以通过TestPartner的可视化导航器来快速创建测试并执行。

通过可视的导航器录制并回放测试,每一个测试都将以树状结构展示,以清楚地显现测试通过的应用路径。

Holodeck-强大的故障植入软件测试工具

  Holodeckisanadvancedfault-injectiontoolthatgivesyouthepowertoattackanapplicationwhileitmonitorsandlogseverythingyourapplicationdoes-everyfunctioncall,registryentry,pieceofdatareadorwritten.

AutoRunner。

AutoRunner是黑盒测试工具,可以用来完成功能测试、回归测试,可以提高测试效率,降低测试人工成本。

产品可以对以下类型对象进行GUI功能性测试:

(1)Windows类型对象,一般为用C++/Delphi/VB/VFP/PB/.NetForm等技术开发的桌面程序。

(2)IE网页对象,一般性的网站,比如大的门户类网站。

(3)Java对象,一般为用AWT/Swing/SWT等技术开发的桌面程序。

(4)Flex对象,网页的内容是用Flex开发的。

(5)Silverlight对象,网页的内容是用Silverlight开发的。

(6)WPF对象,一般为用WPF技术开发的桌面程序。

(7)QT对象,一般为用QT技术开发的桌面程序。

 

3QuickTestProfessional的简介

QTP是QuicktestProfessional的简称,是一款自动化测试工具。

自动化工具出现目的是想用它来执行重复的手动测试,主要是用于回归测试和测试同一软件的新版本。

在测试前要考虑好如何制定相应的测试计划,例如要测试那些功能、操作步骤、输入数据和期望的输出数据等[13]。

  QTP测试的对象,包括传统的Windows应用程序,Web应用等等。

它可以覆盖绝大多数的软件开发技术,不仅简单高效而且具备测试用例可重用的特点。

其中包括:

创建测试脚本、插入检查点、增强测试脚本、运行测试与分析结果和维护测试等方面。

3.1QTP的安装与配置

第一步:

点击QTP的执行文件,选择路径进行安装

第二步:

安装完成后会出现下图的对话框,然后点击”OK”,如图3.1.1;

图3.1初始界面图

第三步:

选择“BlankTest”选项,如图3.1.2;

图3.2空白测试创建

3.2QTP的使用

QTP进行功能测试的测试流程包括

(1)制定测试计划

(2)创建测试脚本(3)增强测试脚本功能(4)运行测试(5)分析测试结果]五个步骤:

 

 

图3.3测试流程图

3.2.1制定测试计划

自动测试的测试计划是作为测试全工程的指导,根据被测项目的具体需求,和使用的测试工具特征而制定。

QTP作为功能测试工具,主要用于软件的功能测试。

当然QTP是不能完全取代测试人员的手工操作,如测试脚本的创建和测试用例的设计。

但是在批量操作时,使用QTP的确能够帮助测试人员高效的完成很多工作。

在测试计划阶段,首先要做的就是分析被测应用的特点,决定应该对哪些功能点进行测试,可以考虑细化到具体页面或者具体控件。

在普通的应用程序测试应用方面,QTP在回归测试中是非常有效的。

3.2.2创建测试脚本

QTP的自动录制机制能够将测试人员的每一个操作步骤及被操作的对象记录下来,自动生成测试脚本。

相较于其他自动测试工具录制脚本更方便的是,QTP除了以VBScript脚本语言的方式生成脚本语句以外,还将被操作的对象及相应的动作按照层次和顺序保存在一个基于表格的KeywordView(关键字视图)中。

比如,当测试人员单击一个链接或选择一个CheckBox或者提交一个表单,相应的操作流程都会被记录在关键字视图中。

3.2.3增强测试脚本功能

脚本的录制只是为了实现创建或者设计脚本的第一步,基本脚本录制完毕后,测试人员可以根据需要增加所需要的功能,QTP允许测试人员通过脚本编辑器,在脚本中增加或更改测试步骤来修正或自定义测试流程,如增加多种类型的检查点功能,既可以让QTP检查一下在程序的某个特定位置或对话框中是否出现了需要的文字。

以及通过变量的参数化功能,使用多组的数据驱动整个测试过程。

3.2.4运行与分析

QTP从脚本的第一行开始执行语句,运行过程中会对设置的检查点进行验证,从DataTable中获取实际数据代替参数值,并给出相应的输出结构信息。

测试过程中测试人员还可以调试自己的脚本,直到脚本完全符合要求。

 

图3.4关键字视图

运行结束后系统会自动生成一份详细完整的测试结果报告。

包括测试名称。

测试开始和结束的时间,测试脚本运行的迭代次数、测试通过状态等。

通过报告中的测试信息,发现错误并增强脚本。

 

4基于QTP自动化测试的实施

本篇论文使用的是Flight这个Windows应用程序,这个程序所实现的是关于机票预订、查询、传真等操作,下面通过设计各功能的测试用例,借助QTP这款自动化测试工具,进行回归测试,实现对Flight功能测试的自动化,从而展现出自动化测试的优势,并测试该应用软件是否有需要改进的地方。

4.1登录功能测试

4.1.1测试用例

表4-1登录测试用例表

测试编号

Name

Password

预期结果

实际结果

测试结果

Flight_01

Tex

Text

提示错误

pass

Flight_02

Tex

Mercury

提示错误

pass

Flight_03

Tex

提示错误

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1