您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > 第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可以很快增加类似的测试。测试者增加新测试不必具有工具脚本语言的技术或编程知识。对第二个测试及后续测试无额外的脚本维护开销。初始建立的开销较大;需要专业编程支持;必须易于管理。就是较复杂的数据驱动技术的逻辑扩展。分为三层结构:一是控制脚本;二关键字动作描述;三是数据或测试用例。模拟/虚拟技术对象管理技术脚本技术比较技术执行技术录制、回放技术同步技术健壮性技术是否支持脚本化语言是否支持函数的可重用是否支持外部函数库是否具有对象映射/抽象层是否支持分布式测试执行是否支持数据驱动测试是否具有强大的错误处理机制非侵入式工具是仅用于监视和检查软件而不对其进行修改。侵入式工具是通过某种方式修改程序代码或者操纵操作环境。测试通常设法使用侵入性尽量小的工具以减少测试结果的可能性。任何能够洞察系统,看到一般用户看不到的数据的工具都可以归于查看或监视测试工具。如:代码范围分析器代码调试器通信分析器驱动程序是用于控制和操作测试软件的工具。驱动程序最简单的例子是批文件,即顺序执行的程序或命令的简单清单。施压和增负工具向测试软件增加压力和负荷。这些工具可以分别设置内存量、磁盘空间、文件数量,以及运行该机器上软件的其他可用资源。施压和增负工具的相似之处是它们为软件创造难以实现的条件。大多数软件测试员利用以下常用工具简化日常工作:字处理软件电子表格软件数据库软件文件比较软件抓屏和比较软件调试器秒表宏录制和回放:是一种驱动程序工具。是通过录制第一次执行测试案例时的键盘和鼠标操作,然后在需要重新执行时回放。宏设置的项目:名称、重复次数、触发条件、捕捉对象、回放速度、回放位置。可编程的宏:通过编写回放系统遵守的简单指令来实现测试,可以实现等待特定条件成立才继续执行。但只可以直接执行命令行——只能循环和重复,不可以使用常规的变量和决策语句。完全可编程的自动测试工具:具有成熟编程语言的能力,加上驱动测试软件的宏命令,以及进行验证的能力。WinRunnerLoadRunnerTestDirector是一种企业级的用于检验应用程序是否如期运行的功能性测试工具。通过自动捕获、检测和重复用户交互的操作。它会自动操作应用程序,在它的意外功能为测试排除干扰,包括消息和警报。是一种预测系统行为和性能的负载工具。LoadRunner是一种较高规模适应性的,自动负载测试工具,它能预测系统行为,优化性能。LoadRunner强调的是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的确认和查找问题。TestDirector是业界第一个基于Web的测试管理系统,它可以在您公司组织内进行全球范围内测试的协调。通过在一个整体的应用系统中提供并且集成了测试需求管理,测试计划,测试日程控制以及测试执行和错误跟踪等功能,TestDirector极大地加速测试过程。测试组收集所有可以利用的文档信息,开始测试处理过程,例如收集市场和商务需求文档、系统需求说明书和设计文档等。使用这些文档对应用程序的测试方面作一个全面彻底的了解,并以此为基础来确定你的测试范围、测试目的、目标和策略。应用程序的主要目的是什么?应用程序有哪些主要特点?哪些功能在这个产品中是相对重要的?在应用程序中,哪些功能是危急的或高风险的?你的测试优先级是什么?你的客户或最终用户是否同意你的测试优先级?你总的质量目标是什么?举个例子,假设一个航班预定软件,它可以实现管理航班调动、旅客登记和机票销售。可能会定义主要的测试需求为:登陆操作、数据库操作、传真发送操作、安全性能力检查、图形和报表操作、UI检查操作和帮助。QA管理人员复查这些需求,并确定测试范围被更早的定义。他们还应该将需求的状态改为“Reviewed”,假如这个需求被评审通过的话。在需求树中,右键点击一个需求,并选择GenerateTest。编制测试用例对话框将被打开。对于Subject框,从测试计划树中选择一个主题或输入一个新的主题名。在TestName框中,为新测试输入一个名字。默认情况下,TestDirector将使用需求名称作为测试名。假如你不希望TestDirector去创建测试步骤,取消CreateDesignSteps复选框的选择。假如此选项是被选中的,TestDirector将为每个子需求添加一个步骤到测试。选中AddTesttoTestSet复选框,去要求TestDirector在测试实验室模块中增加测试到测试集。在TestSet列表中,选择一个测试集或输入一个新的测试集名称。点击OK。你应当怎样测试你的应用程序?你将使用哪些测试技术?你将怎样处理缺陷?你需要什么资源?为了测试,你需要什么资源?各个任务什么时候被完成?根据应该程序功能的等级关系,将应该程序功能分解为各个主题,并建造相应的表现应
本文标题:第8部分--自动化测试技术及工具---北风
链接地址:https://www.777doc.com/doc-6791383 .html