第8部分--自动化测试技术及工具---北风

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

北风教师:小林测试与自动化测试自动化测试技术自动化测试工具自动化是对策略、经验、工具及工件的使用,它减少了对手工或人的干预或非技能方面的介入,及重复或冗长工作需要。-自动化测试直接依赖于整个软件流程的可自动化成熟度。包括:测试流程、持续编译、持续集成、测试系统发布、测试执行、测试管理、缺陷测试跟踪等多个方面的自动化实现和整合。期望自动化测试能够完全取代手动测试期望自动化测试发现大量的新缺陷期望自动化测试能够智能的完成绝大多数工作期望自动化测试是一劳永逸的缩短测试周期,加快测试进度,从而加快产品发布进度实现更大规模、更大频率的测试减少手工测试的人力资源投入,降低测试成本提高测试覆盖率保证回归测试的可控性和一致性提高测试用例执行的可靠性在不降低质量的情况下由低技能的人员完成定义清晰的测试过程,降低和避免测试人员的个体对整体测试的影响提高测试人员的工作效率,并使更高技能的人员有时间和资源,对产品进入更深层次的测试。辅助测试人员完成手工无法完成的测试工作。检测软件缺陷的有效性测试用例的可仿效性测试用例执行、分析和调试的经济性测试用例的可修改行产品型项目大型增量式开发、持续集成项目能够自动编译、自动发布的系统需要多次重复机械性动作的测试简单而烦琐的基于命令行交互方式的测试完成一些手工难以完成的测试目标涉及大量第三方软件或设备的测试按需定制型项目(通常为一次性的短期项目)项目周期很短的项目业务规则复杂的项目依赖于人类的习惯、感官或智力的测试内容不需要频繁测试的软件软件不稳定目标因素时间因素资源因素需求因素技术因素测试管理自动化测试执行及报告自动化缺陷跟踪自动化提供API的软件基于命令行的接口基于GUI基于终端接口自动化测试的代码效率不是越高越好自动化测试的执行过程和记录应便于分析自动化测试的设计和脚本可读性越好越好自动化测试的脚本可维护性是重中之重完整性是自动化测试成功的前提自动化测试脚本之间是松耦合或彼此独立的线性脚本结构化脚本共享脚本数据驱动脚本关键字驱动脚本线性脚本是录制手工执行的测试事例得到的脚本。如果用户只使用线性脚本技术,即录制每个测试事例的全部内容,则每个测试事例可以通过脚本完整地被回放。几乎任何重复的操作都可以使用线性脚本技术自动化。简单,只需坐在计算机前录制手工任务。可以快速开始自动化。对实际执行操作可以审计跟踪。用户不必是编程人员(如果不修改)无共享或重用脚本。容易受软件变化的影响。修改代价大。如果回放脚本时发生了录制脚本时没有发生的事情,引起整个测试失败。结构化脚本类似于结构化程序设计,结构化脚本中含有控制脚本执行的指令。控制脚本执行的指令:顺序,选择和叠代。PartoftheScribbletestscriptSelectOption’File/Close’FocusoOn’Close’LeftMouseClick’Yes’FocusOn’SaveAs’Typecountries2LeftMouseClick’Save’IfMessage=‘Replaceexistingfile?’LeftMouseClick’yes’EndifFocusOn‘Scribble’SelectOption’File/Exti’健壮性好,对一些容易导致测试失败的特殊情况进行处理。可以执行许多其他类似的功能,如重复的指令可以使用循环结构。可以作为模块被其他脚本调用。脚本变得更加复杂,而且测试数据仍然’捆绑’在脚本中。脚本可以被多个测试事例使用。这意味着脚本语言允许一个脚本被另一个脚本调用,而这多少已成为所有测试执行自动化工具的标准。这种技术思路是产生一个执行某种任务的脚本,而不同的测试要重复这个任务,当要执行这个任务时只需要在每个测试事例的适当地方调用这个脚本。ScribbleOpen(FILENAME)LeftMouseClick’Scribble’FocusOn’Scribble’SelectOption’File/Open’FocusOn’Open’Type’countries’LeftMouseClick’Open’ScribbleSaveAs(FILENAME)FocusOn’Scribble’SelectOption’File/Close’FocusOn’Close’LeftMouseClick’Yes’FocusOn’SaveAs’TypeFILENAMELeftMouseClick’Save’FocusOn’Scribble’SelectOption’File/Exit’CallScribbleOpen(‘countries’)FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’Type’France’LeftMouseClick’OK’FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’Type’Germany’LeftMouseClick’OK’FocusOn’Scribble’CallScribbleSaveAS(‘TEST2’)以较少的开销实现类似的测试。维护开销低于线性脚本。删除明显的重复。可以在共享脚本中增加更智能的功能。需要跟踪更多的脚本,文档、名字、以及存储,很难找到适当的脚本。对于每个测试仍需要一个特定的测试脚本。因此维护成本比较高。共享脚本通常是针对被测软件的某个部分。数据驱动脚本技术将测试输入存储在独立的数据文件中,而不是存储在脚本中。脚本中存放控制信息(如菜单导航)。执行测试时,从文件中而不是直接从脚本中读取测试输入。这种方法的最大好处是同一个脚本可以运行不同的测试。Controlscript:ScribbleControlOpenFile’ScribbleData’ForeachrecordinScribbleDataReadINPUTFILEReadNAME1ReadNAME2ReadOUTPUTFILECallScribbleOpen(INPUTFILE)FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’TypeNAME1LeftMouseClick’OK’FocusOn’Scribble’SelectOption’List/AddItem’FocusOn’AddItem’TypeNAME2LeftMouseClick’OK’FocusOn’Scribble’CallScribbleSaveAS(OUTPUTFILE)EndForDatafile:ScribbleDataCountries,Sweden,USA,test1Countries,France,Germany,test2Countries,Austria,Italy,test3Countries,Spain,Finland,test4可以很快增加类似的测试。测试者增加新测试不必具有工具脚本语言的技术或编程知识。对第二个测试及后续测试无额外的脚本维护开销。初始建立的开销较大;需要专业编程支持;必须易于管理。就是较复杂的数据驱动技术的逻辑扩展。分为三层结构:一是控制脚本;二关键字动作描述;三是数据或测试用例。模拟/虚拟技术对象管理技术脚本技术比较技术执行技术录制、回放技术同步技术健壮性技术是否支持脚本化语言是否支持函数的可重用是否支持外部函数库是否具有对象映射/抽象层是否支持分布式测试执行是否支持数据驱动测试是否具有强大的错误处理机制非侵入式工具是仅用于监视和检查软件而不对其进行修改。侵入式工具是通过某种方式修改程序代码或者操纵操作环境。测试通常设法使用侵入性尽量小的工具以减少测试结果的可能性。任何能够洞察系统,看到一般用户看不到的数据的工具都可以归于查看或监视测试工具。如:代码范围分析器代码调试器通信分析器驱动程序是用于控制和操作测试软件的工具。驱动程序最简单的例子是批文件,即顺序执行的程序或命令的简单清单。施压和增负工具向测试软件增加压力和负荷。这些工具可以分别设置内存量、磁盘空间、文件数量,以及运行该机器上软件的其他可用资源。施压和增负工具的相似之处是它们为软件创造难以实现的条件。大多数软件测试员利用以下常用工具简化日常工作:字处理软件电子表格软件数据库软件文件比较软件抓屏和比较软件调试器秒表宏录制和回放:是一种驱动程序工具。是通过录制第一次执行测试案例时的键盘和鼠标操作,然后在需要重新执行时回放。宏设置的项目:名称、重复次数、触发条件、捕捉对象、回放速度、回放位置。可编程的宏:通过编写回放系统遵守的简单指令来实现测试,可以实现等待特定条件成立才继续执行。但只可以直接执行命令行——只能循环和重复,不可以使用常规的变量和决策语句。完全可编程的自动测试工具:具有成熟编程语言的能力,加上驱动测试软件的宏命令,以及进行验证的能力。WinRunnerLoadRunnerTestDirector是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。通过自动捕获、检测和重复用户交互的操作。它会自动操作应用程序,在它的意外功能为测试排除干扰,包括消息和警报。是一种预测系统行为和性能的负载工具。LoadRunner是一种较高规模适应性的,自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的确认和查找问题。TestDirector是业界第一个基于Web的测试管理系统,它可以在您公司组织内进行全球范围内测试的协调。通过在一个整体的应用系统中提供并且集成了测试需求管理,测试计划,测试日程控制以及测试执行和错误跟踪等功能,TestDirector极大地加速测试过程。测试组收集所有可以利用的文档信息,开始测试处理过程,例如收集市场和商务需求文档、系统需求说明书和设计文档等。使用这些文档对应用程序的测试方面作一个全面彻底的了解,并以此为基础来确定你的测试范围、测试目的、目标和策略。应用程序的主要目的是什么?应用程序有哪些主要特点?哪些功能在这个产品中是相对重要的?在应用程序中,哪些功能是危急的或高风险的?你的测试优先级是什么?你的客户或最终用户是否同意你的测试优先级?你总的质量目标是什么?举个例子,假设一个航班预定软件,它可以实现管理航班调动、旅客登记和机票销售。可能会定义主要的测试需求为:登陆操作、数据库操作、传真发送操作、安全性能力检查、图形和报表操作、UI检查操作和帮助。QA管理人员复查这些需求,并确定测试范围被更早的定义。他们还应该将需求的状态改为“Reviewed”,假如这个需求被评审通过的话。在需求树中,右键点击一个需求,并选择GenerateTest。编制测试用例对话框将被打开。对于Subject框,从测试计划树中选择一个主题或输入一个新的主题名。在TestName框中,为新测试输入一个名字。默认情况下,TestDirector将使用需求名称作为测试名。假如你不希望TestDirector去创建测试步骤,取消CreateDesignSteps复选框的选择。假如此选项是被选中的,TestDirector将为每个子需求添加一个步骤到测试。选中AddTesttoTestSet复选框,去要求TestDirector在测试实验室模块中增加测试到测试集。在TestSet列表中,选择一个测试集或输入一个新的测试集名称。点击OK。你应当怎样测试你的应用程序?你将使用哪些测试技术?你将怎样处理缺陷?你需要什么资源?为了测试,你需要什么资源?各个任务什么时候被完成?根据应该程序功能的等级关系,将应该程序功能分解为各个主题,并建造相应的表现应

1 / 117
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功