资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,Web,应用项目测试,Web,应用项目测试,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,第一章 自动化测试基础,2,本章内容:,什么是自动化测试,常见的自动化测试架构,自动化测试的基本流程,开源,Web,自动化测试,开源自动化测试的优势等,3,2024/11/3,3,1.1,自动化测试,自动化测试:,自动化测试就是使用软件来控制控件测试案例的执行。它的实际测试结果与预期结果进行比较,并提供测试预置条件设定、测试逻辑控制以及测试报告等重要功能。,自动化测试常见的方式:,代码驱动测试:,图形用户接口测试,4,2024/11/3,4,代码驱动测试,通过大量不同的输入参数和对应的返回结果,来验证类、模块或者库文件的公共接口是否正确。趋势:使用测试框架(,Junit,或,Nunit),来进行单元测试,以便于判断代码在不同配置环境下的表现是否符合预期。,代码驱动测试自动化?,5,2024/11/3,5,图形用户接口测试,测试框架产生用户接口事件(例如键盘、鼠标单击等),并捕获事件导致的图形用户接口改变,以便验证可见的程序响应是否正确。,很多自动化测试工具都支持录制,回放特性,它们允许用户交互性地录制自己的操作,在需要的时候进行回入,并将回放的实际结果与预期结果进行比较。,优点:没有大量的开发工作。,Web,自动化测试:,Selenium,和,WebDriver,6,2024/11/3,08、09精英班,6,是否需要对测试进行自动化?,自动化测试在一个长周期的迭代测试中,有如下优点:,能够支持频繁的回归测试;,能够在软件开发过程中尽早发现缺陷;,能够无限的循环执行测试案例;,定制化的系统缺陷报告;,更好地支持敏捷和极限开发模式;,避免人为因素导致的漏测。,7,2024/11/3,7,1.2,常见的自动化测试架构(,1,),1,、数据驱动测试框架(,The Data-Driven Testing Framework,),说明:,仅仅是将测试数据从测试脚本中分离出来,开始了非混沌状态的第一步,这也是所有测试架构中最简单的一种,优点:,至少测试数据可以单独维护了,缺点:,任何被测试程序的变更所导致的工作量是所有架构中最多的,因此维护成本非常高,8,2024/11/3,8,1.2,常见的自动化测试架构(,2,),2,、测试脚本模块化框架(,The Test Script Modularity Framework,),说明:,箭头方向代表的是被调用和调用关系,测试脚本中包含了各功能点中涉及到的控件识别和业务逻辑操作,其中包含了外部测试数据的调用,测试脚本的维护由自动化测试开发工程师负责,要求必须懂自动化编程和业务逻辑,测试数据的维护由测试工程师负责,优点:,控件和业务逻辑一旦发生变化,要进行修改和维护的是底层的测试脚本(比无任何抽象封装的自动化测试程序稍好一些),缺点:,几乎所有大的变更引起的工作量都由自动化测试开发工程师完成,控件识别和业务逻辑本身属于不同的领域,没有很好进行抽象封装,9,2024/11/3,1.2,常见的自动化测试架构(,3,),3,、测试库构架框架(,The Test Library Architecture Framework,),说明:,箭头方向代表的是被调用和调用关系,将所有的针对测试系统本身的控件识别和控件支持的操作封装在测试库中,测试脚本调用测试库的同时传递外部的测试数据,测试库的编写由自动化测试开发工程编写(可以不懂业务),负责控件的变更和维护,测试脚本的编写可由对业务比较掌握的自动化测试开发工程编写,负责业务逻辑的变更和维护,测试数据由测试工程师维护(可以不懂自动化开发),优点:,被测试系统无论是哪层发生变化,只需要相应的人员进行变更维护即可,完成了控件识别操作和业务逻辑的抽象分离,缺点:变更引起的工作量还是附加在自动化测试开发工程师身上,10,1.2,常见的自动化测试架构(,4,),4,、关键字驱动或表驱动测试框架(,The Keyword-Driven or Table-Driven Testing Framework,),。,说明:,说到关键字驱动,当然得说,QTP,。确实当对象库(很类似测试库架构中的测试库)添加完成后,测试,case,步骤的组织就相当于是在关键字试图中选择控件对象(,Control,),动作(,Action,),参数(,Parameters,)。,框架到底用来做什么,最终的目的无非是将不同层次的对象和逻辑进行抽象和分离封装,从而使得被测试程序的变更所导致的测试脚本框架的变更维护工作量减少到最少,更进一步,如果不懂自动化编程的普通测试工程师能不需要了解测试工具和框架本身的知识就能维护控件对象和业务逻辑,这样就可以将自动化测试工程的工作量进行很好的分摊。具体实施就是将控件对象,动作,参数等等从框架或工具本身剥离出来放在普通,Excel,表格中,组织成如下形式:,2024/11/3,11,框架本身所要做的就是识别,Excel,表格中的这些控件对象以及,Action,注:以上表格中还可以将数据剥离出去,以单独的数据,Excel,表格进行维护,优点:,极大的减少了自动化开发工程师维护量,毕竟在测试团队中,自动化开发工程师占的比较少,普通测试工程师,可以很好的维护自身负责的模块中涉及的测试,case,和测试数据,缺点:,框架的抽象程度比较高,对自动化测试工程师的开发能力比较高,2024/11/3,12,1.3,自动化测试的基本流程,2024/11/3,13,1,、制定测试计划,在展开自动化测试之前,最好做个测试计划,明确测试对象、测试目的、测试的项目内容、测试的方法、测试的进度要求,并确保测试所需的人力、硬件、数据等资源都准备充分。制定好测试计划后,下发给用例设计者。,2,、分析测试需求,用例设计者根据测试计划和需求说明书,分析测试需求,设计测试需求树,以便用例设计时能够覆盖所有的需求点。一般来讲,基于,Web,功能测试需要覆盖一下几个方面:,1,)页面链接测试,确保各个链接正常;,2,)页面控件测试,确保各个控件可靠;,3,)页面功能测试确保各项操作正常,;,4,)数据处理测试,确保数据显示准确、处理精确可靠;,5,)模块业务逻辑测试,确保各个业务流程畅通。,14,2024/11/3,08、09精英班,3,、设计测试用例通过分析测试需求,设计出能够覆盖所有需求点的测试用例,形成专门的测试用例文档。,由于不是所有的测试用例都能用自动化来执行,所以需要将能够执行自动化测试的用例汇总成自动化测试用例。必要时,要将登陆系统的用户、密码、产品、客户等参数信息独立出来形成测试数据,便于脚本开发。,4,、搭建测试环境自动化测试人员在用例设计工作开展的同时即可着手搭建测试环境。,因为自动化测试的脚本编写需要录制页面控件,添加对象。测试环境的搭建,包括被测系统的部署、测试硬件的调用、测试工具的安装盒设置、网络环境的布置等。,5,、编写测试脚本根据自动化测试用例和问题的难易程度,采取适当的脚本开发方法编写测试用例。,一般先通过录制的方式获取测试所需要的页面控件,然后再用结构化语句控制脚本的执行,插入检查点和异常判定反馈语句,将公共普遍的功能独立成共享脚本,必要时对数据惊醒参数化。当然还可以用其他高级功能编辑脚本。脚本编写好了之后,需要反复执行,不断调试,知道运行正常为止。脚本的编写和命名要符合管理规范,以便统一管理和维护。,15,6,、分析测试结果、记录测试问题应该及时分析自动化测试结果,建议测试人员每天抽出一定时间,对自动化测试结果进行分析,以便尽早地发现缺陷。,如果采用开源自动化测试工具,建议对其进行二次开发,以便与测试部门选定的缺陷管理工具紧密结合。理想情况下,自动化测试案例运行失败后,自动化测试平台就会自动上报一个缺陷。测试人员只需每天抽出一地你该时间,确认这些自动上报的缺陷,是否是真实的系统缺陷。如果是系统缺陷就提交开发人员修复,如果不是系统缺陷,就检查自动化测试脚本或者测试环境。,7,、跟踪测试测试记录的,BUG,要记录到缺陷管理工具中去,以便定期跟踪处理。,开发人员修复后,需要对此问题执行回归测试,就是重复执行一次该问题对应的较薄,执行通过则关闭,否则继续修改。如果问题的修改方案与客户达成一致,但与原来的需求有所偏离,那么在回归测试前,还需要对脚本进行必要的修改和调试。,16,1.4,自动化测试脚本分类,17,1.5,自动化测试认知的误区,误区一:自动化测试是一种比人工测试更先进的高级测试。,自动化测试与人工测试适合情况对比,18,误区二:测试应该追求,100%,的自动化,切忌追求,100%,的自动化测试,在可以预见的将来人工测试依然非常重要。片面地追求自动化,不仅无法提高软件产品的质量,还会让测试人员疲于奔命,带来更大的软件质量风险。,19,误区三:自动化测试能够发现大量的缺陷,就发现缺陷而言,它比人工测试更有效率。,根据经验,自动化测试只能发现,30%,以下的缺陷,而人工测试能够发现,70%,以上的缺陷。,误区四:应该对一次性的软件项目采取自动化测试,自动化测试的投入成本,至少要在,3,4,个发布版本之后才能收 回,因些针对一次怀的软件项目,应该避免采取自动化测试。,误区五:商业自动化测试工具更好,一定要用商业自动化测试工具。,20,1.6Web,自动化测试,当前常用的自动化测试工具,21,是否选择开源自动化测试,测试部门是否拥有非常充足的预算来购置商业自动化测试工具?,测试人员是否拥有基本的编程经验?,测试人员是否拥有良好的英文阅读能力?,测试部门领导是否信任免费的开源测试工具?,练习,、常见的自动化测试架构有哪些,各有什么特点?,、,自动化测试的基本流程,是什么?,、,自动化测试脚本分,哪些类型?,22,
展开阅读全文