自动化测试-理解及实践-通用版V1.1_第1页
自动化测试-理解及实践-通用版V1.1_第2页
自动化测试-理解及实践-通用版V1.1_第3页
自动化测试-理解及实践-通用版V1.1_第4页
自动化测试-理解及实践-通用版V1.1_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

自动化测试-理解与实践概念与历史发展测试的基本概念自动化测试的基本概念自动化测试的历史发展2Warmingup统一名词系统什么是测试?有哪些测试阶段和测试类型……

在IEEE提出的软件工程标准术语中,软件测试被定义为:“使用人工和自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清楚预期结果与实际结果之间的差别。”

软件测试是与软件质量密切联系在一起的,归根结底,软件测试是为了保证软件质量。测试技术之测试类型测试类型静态测试动态测试白盒测试黑盒测试灰盒测试功能测试非功能测试性能测试可靠性测试安全性测试易用性测试移植性测试测试技术之测试阶段(测试级别)测试阶段单元测试用户验收测试集成测试系统集成测试系统测试冒烟测试测试技术之测试活动测试活动测试需求分析测试报告测试执行测试设计测试技术之测试活动测试活动测试需求分析测试报告测试执行测试设计测试技术之测试用例设计技术测试用例设计技术等价类方法场景法错误猜测法边界值方法因果分析方法测试技术之单元测试覆盖要求单元测试覆盖要求语句覆盖路径覆盖判定覆盖条件覆盖测试技术之集成测试策略集成测试策略非增量集成(大爆炸集成)增量集成基于模块层次集成基于业务路径集成自上而下集成三明治集成自下而上集成测试实施测试活动测试需求分析测试报告测试执行测试设计测试评审测试计划、测试项目进度和质量跟踪测试需求分析测试用例设计测试环境准备测试数据准备被测软件安装测试缺陷跟踪测试分析总结测试实施测试工具测试工具测试管理工具测试技术工具测试执行工具测试辅助工具性能测试工具自动化GUI测试工具性能监控分析工具代码分析工具测试框架测试相关知识测试相关知识质量管理银行业务领域知识软件过程软件设计和开发知识软件质量标准CMMITMMIISO9000PMBOK6Sigma需求分析架构设计程序开发计算机网络和通信IT系统配置和管理银行基础业务银行业务操作银行业务管理银行风险管理

“开发与测试模型”V模型&W模型什么是单元测试单元测试的主要关注点单元测试16是为了保证各程序单元的功能和逻辑的正确性而进行的最小粒度的测试。测试对象是可测试的最小程序(代码)集合

在不同的被测软件系统中,存在多种单元的划分准则

单元的划分以适合于代码级的测试为判断出发点软件单元代码中的覆盖率(语句覆盖、分支覆盖)局部数据结构边界条件差错处理软件单元的功能、性能、接口什么是集成测试集成测试的主要关注点集成测试17集成测试,也叫组装测试或联合测试。在单元测试的基础上,对将单元/模块按照设计要求(如根据结构图)组装成为子系统或系统的过程和结果进行测试。以《软件概要设计说明书》为依据,检验软件单元之间、软件单元和已集成的软件系统之间的接口关系,并验证已集成软件系统是否符合设计要求。软件单元之间的各种接口(调用、指令、报文、数据文件、共享内存等)全局数据结构单元之间的依赖关系集成后对象的功能系统测试什么是系统测试系统测试的主要关注点系统测试是将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试和确认测试,其目的是通过与系统的需求相比较,发现所开发的系统与用户需求不符或矛盾的地方,从而提出更加完善的方案。主要目的是验证系统的完整性及正确性完整性指系统无功能和模块的丢失,系统整体功能可用正确性指系统与需求相符合自动化测试在哪里被测对象是谁如何操作被测对象?如何将被测对象隔离出来?1920自动化测试概念和深入理解1GUI自动化回归测试和商用工具2金融领域自动化回归测试34面向金融领域的自动化测试框架自动化测试概念测试

设定输入和预期输出,在被测系统上给定输入,得到实际输出,检查测试实际输出与预期输出之间是否一致。传统上测试是测试人员手工进行的。自动化测试

使用工具代替人工来操作被测系统,并检查输出的过程。自动化测试的要点是“减少人工操作,提高测试效率”。21自动化测试概念的澄清自动化测试等于QTP吗?

提到自动化测试,人们往往马上联想到使用QTP等自动化测试工具,其实这只是自动化测试中的一部分。自动化测试可以在不同的层级上进行,包括单元测试、集成测试、系统测试和验收测试。在系统回归测试中能自动进行测试分析吗?

测试有多项活动,包括计划制订、测试分析和设计、用例集构建、测试执行、结果收集和测试报告。由于分析和设计等工作需要较多智能活动,且基础材料的非标准化,自动化测试分析不太可行。自动化主要用于回归测试的执行22自动化测试很简单吗?几个经常被忽略的问题:用例执行时,测试工作是机械动作,还是需要思考的行为?测试用例数量大吗?测试用例之间有关联性吗?测试环境容易配置吗?测试数据容易准备吗?23自动化测试不简单!基本前提:(自动化)测试要求:相同的输入得到相同的输出。出于测试全面性的考虑,对于所有被测功能,建立测试用例,从而形成测试用例集,并以备后续回归测试使用这本身是一件花费很大的工作。

还有一个隐含前提:即被测系统要保持在同样的状态。因而,只有能方便地保持和恢复系统状态,回归测试用例集才是用价值的。

NOTE:保持系统状态-单位越小越容易!单元测试这方面最容易,系统级测试并不容易!24所有的项目都适合自动化测试吗?在银行中两类常见的项目类型:新建项目和维护型项目新建项目的测试:被测系统是全新的系统测试资产需要全新开发:测试分析、设计和开发测试过程需要磨合维护项目的测试:在原有系统上进行更新维护有测试资产测试已实施过25自动化测试适用于维护型项目回归测试回归测试:用同样的测试用例集合对不同(或稍有变更)的被测系统重新进行测试。在一个软件系统的服务期间,会不断有各类变更,每次变更都需要进行测试和验证。具体说,一方面要测试验证新的变更实现了预期目的,另一方面要检查变更未对其它功能产生不良影响。由于每次回归测试中都需要执行大量相同的用例,工作量大且重复性工作多。因此,更适合在维护型项目的回归测试中使用自动化测试方法。NOTE:自动化测试适用于维护型项目的回归测试!26所有的系统类型都适合做自动化测试吗?有哪些类型的系统交易处理型系统(人工操作)业务管理型系统(人工操作)数据分析型系统视系统输入、输出情况,部分系统是以人工操作和输入数据为主,输出数据为操作人员服务,部分系统由其它系统或工具程序操作和输入数据。当然,以上分类并不绝对。基于人机交互的交易处理型系统和业务管理型系统适合于自动化测试。27自动化测试需要注意的问题自动化测试资产的准备(案例编写、脚本开发和维护、自动化测试环境和数据的准备…)工作量很大。各个公司的解决方案大多在解决这个问题;在自动化测试案例(或脚本)达到一定的量级时,如何安排、调度和执行测试自动化是有较高难度的;自动化测试结果的比对、检查和分析是有较高难度;自动化测试工具如何与被测系统更好地匹配和结合;要关注自动化测试的ROI,避免为了自动化而自动化,片面强调覆盖和灵活性。28自动化测试的现状从技术层面上讲,单元测试是应用得最好的自动化测试,性能测试是必然的自动化测试;基于GUI的自动化回归(系统)测试,大家都在做,但投入较大、且实用性和可维护性问题突出;GUI自动化测试必须依靠工具并将工具与被测系统匹配好,但仅有工具是不够的!29我们的经验已成功实施的项目中国外汇交易中心自动化测试上海银行自动化测试我们的团队成员还曾经是交通银行、华夏银行等自动化测试项目的发起者和骨干30主题31自动化测试概念和深入理解1GUI自动化回归测试和商用工具2金融领域自动化回归测试34面向金融领域的自动化测试框架我们讨论的自动化测试类型这里我们主要讨论基于GUI界面的自动化测试对于单元测试和基于接口的自动化测试,我们会在其它的材料中进行详细讨论,如果您有需求,请向我们提出!32UI自动化测试的进展文本的“捕获/回放”TextCapture/Playback(Mainframe)缺点:动态内容处理、时间同步、维护文本的“捕获/回放/脚本化”TextCapture/Playback/Script(PC)缺点:需要程序开发技能,ProgrammerGUI界面“捕获/回放/脚本化”(WindowsandC/S)缺点:关注对于非标准控件和行为的处理对于脚本重用、维护等软件工程的要求引发了测试框架(Framework)的需求从专有框架到商用框架(Web)缺点:仍严重依赖对象控制-applicationmap,GUImap,objectrepositoryGUI自动化测试的技术基础对象识别与控制技术

如何对被测系统进行操作和控制,并进行信息收集,细述下来就是界面对象或控件的识别和控制技术。这是当前主流商用自动化测试工具如QTP、RFT的关键技术之一。脚本化技术

用什么方法来描述人工对系统的操作,细述下来就是基于特定脚本的录制、回放、参数化、编辑和维护技术。34脚本化技术的进一步说明GUI自动化测试中,测试工具将人工对被测系统的操作记录为脚本,支持重放这些脚本,即由测试工具按脚本的描述来驱动被测系统,从而通过工具实现与人工相同的系统操作。脚本中一般会以动作序列来进行描述,每一个动作中包括操作对象、动作和操作数据,GUI自动化测试中相对高层的技术是对数据进行参数化,从而使脚本在执行时可以动态配置测试数据。由于录制的代码一般可维护性不好,无用代码较多,也可直接编写测试脚本。35GUI自动化测试的其它问题测试数据驱动数据表易于编辑和维护数据参数化操作检查点操作简单支持多种检查点-对象,文本,位图等结果报告图形化易于浏览36经典工具的情况-QTP通用工具试图能适用于各种UI技术37EmergingCommonClassicWinRunnerQuickTestProfessional传统应用通用新兴环境CustomC/SPowerbuilderDelphiPowerBuilder10.5ERP/CRMPeoplesoftwindowsSiebel5,6GUIclientsOracleGUIformsWeb-relatedenvironmentsIE,NetscapeJDK,Javafoundationclasses,AWTActiveXCustomclientserverWindows/Win32VisualbasicStingrayVisualagesmalltalkERP/CRMOracle:11iJDEdwardswebclientLegacy3270,5250emulators,Vt100OperatingsystemsWindows2000,Windows2003,XP,VistaERP/CRMSAPSiebel7.Xand8.XPeoplesoft8.X.Net

WPFfrom.NET3.0WinformsWebformsHTC/ViewlinkDelphi8.NETwinformsWebservicesMacromediaflexWirelessJavaSWTCitrixVMWaredesktopsupportMozillaFirefox2.0

经典工具的情况-QTP2提供关键字视图提高脚本的可读性、可维护性38EmergingCommonClassic38

脱离代码的测试构建和维护对象动作数据不仅仅是代码更有关键字视图突破性的ActiveScreen技术添加验证点添加测试步骤了解测试步骤上下文离线编辑您单位自动化的要求是什么?原有手工案例能够重用?-形成自动化案例、脚本?原有手工案例写到什么程度?手工案例间是否有关联?每一个手工案例执行是需要什么样的前置条件?被测系统变更后,自动化测试能快速实施?选择执行哪些测试案例?如何调度这些测试案例?测试环境如何准备?被测系统如何配置?测试数据如何准备?测试过程是否需要人工干预?测试结果如何检查?

39自动化工具能解决到什么程度将手工测试用例执行过程录制下来-脚本化解决的问题:固定的动作可重复!出现的问题1:从细节层面现象:对象与操作的绑定。影响:对象变化,将引起脚本中与该对象相关的一系列变化!出现的问题2:从脚本的整体层面现象:重复的脚本。影响:某一个常用功能变更时,大量脚本需要维护!这些是软件工程问题,也是用软件工程的解决方法:1.对象与操作分离2.脚本模块化40自动化工具能解决到什么程度将脚本中的数据独立出来-参数化解决的问题:同一操作序列可以使用不同的数据现象:开户时选择不同的证件类型。作用:脚本可重用,提高测试覆盖!出现的问题1:测试的业务数据可能与系统的背景数据相关现象:测试要使用有效的客户、帐户影响:测试集依赖基础数据集出现的问题2:不同脚本间的数据可能有关联现象:前一个脚本的输出要用做后一个脚本的输入。影响:业务要连续41自动化工具能解决到什么程度测试人员对脚本技术不熟悉录制下来的脚本,看不懂,也很难编辑手工直接编写脚本,对人员技术要求高工具对此无能为力!但需要使用脚本开发技术使自动化测试更健壮!42自动化工具能解决到什么程度回到最核心的内容-测试什么?如何测试?如何检查?这些测试内容如何反映在测试脚本(集)上?不是工具的范围,而是测试分析和测试设计的问题,这个问题对于手工测试和自动化测试都是存在的!对于金融领域的系统,有自身的特点,有其适用的测试方法!43我们对于商用工具的使用-以商用工具为基础,充分发挥工具的能力对象定义:描述性方式定义,简化对象编辑和维护封装对象操作:简化脚本编写,提高脚本的复用性脚本自动生成:将对象、操作、数据以解释执行的方式完成脚本处理业务数据传递:业务流程的方式完成交易间业务数据的传递和沿用以业务和功能分析为出发点,建立测试集44主题45自动化测试概念和深入理解1GUI自动化回归测试和商用工具2金融领域自动化回归测试34面向金融领域的自动化测试框架金融领域应用系统的特点金融产品大量的产品每个产品可能存在着多种生命周期(业务流程)需要进行业务流程梳理交易服务交易要素多要素间存在着关联和控制关系系统的状态复杂系统参数和用户管理时间参数46以实例的方式分析金融应用系统的测试商业银行核心交易系统商业银行国际结算系统外汇交易中心本币交易系统47实例一核心交易系统核心系统功能机构和柜员管理公共参数管理客户、帐户管理存、贷、支付结算为基础的大量金融产品和服务与大量外围系统有交互联机交易和批处理由于金融产品和服务的快速创新,如何能覆盖这些产品的测试是交易系统测试的重点48案例一核心交易系统分析产品-生命周期存款:开户、存款、支取、销户,还可穿插其它特殊操作贷款:开户、放款、归还、销户、还可穿插其它特殊操作支付结算:行内、跨行等不同的情况联机交易-批处理按会计时间进行的计息、结算、扣款、计费、形态转移等产品生命周期的构成联机交易与批处理的“有意义”的串联!49实例一核心交易系统测试交易的测试IPO,系统对特定的输入要素集合进行处理,给出输出要素集合,并做相应的记录。是在检查系统对于每一个特定的处理是否正确?生命周期(业务流程)的测试产品从始到终的测试,是在检查系统对于产品规则的处理(如计、结息、状态控制等)是否正确?是对产品完整的检查?独立交易测试的难点有合适的数据,例如,要测“销户”交易,必须是要操作一个已开的合适的帐户!50实例一某银行核心系统产品:200+交易:800+梳理的业务流程:3000+51实例一测试策略固定背景数据、固定会计日期、固定机构和柜员设置快速实施,快速见效在实施的同时,积累经验,不断加强资产可维护性52实例二国际结算系统主体功能核心业务功能进口、出口、汇款、贸易融资、国内证、保理公共控制及公共业务功能查询统计系统架构B/S基于流程性的审批处理模式关联业务的连贯性53实例二国结业务流程分析54信用证开证(即期/远期)信用证来单(不同付款类型)来单付款进口押汇(融资)进口押汇(还款)进口押汇(逾期)进口押汇(展期)来单拒付来单承兑经办复核审批一审批二审批三记帐取消记帐单一业务流程实例二国结自动化测试覆盖范围55实例三银行同业市场本币交易系统系统划分交易前台、交易中后台、场务交易市场现券买卖、债券借贷、债券远期、质押式回购、买断式回购、利率互换、远期利率协议、同业拆借、票据市场、CRM凭证、贷款转让系统特点强大交易功能:询价交易、点击成交灵活的用户及限额管理做市商支持56实例三银行同业市场本币系统自动化测试交易市场现券买卖系统架构.NET3.5/4.0处理模式:即时报价、即时成交业务联动:前台、中后台、场务计算校验:净价和收益率57自动化测试实施流程58主题59自动化测试概念和深入理解1GUI自动化回归测试和商用工具2金融领域自动化回归测试34面向金融领域的自动化测试框架自动化测试面临的问题测试案例手工案例自动化案例案例与数据的关系测试数据要求基础数据:帐号业务关联数据:余额为100元的对私帐号案例数据:币种、金额数据准备模式备份恢复业务联动对象管理脚本处理录制回放及结构化数据驱动关键字驱动业务流程驱动后续维护功能变更:脚本维护、案例及数据维护流程变更:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论