Quick Test Professional
A. 软件开发模式与软件测试
1) 迭代模式:软件测试随着开发的迭代而迭代,进行回归测试.。
B. 测试人员与开发人员的编码技术测试人员的编码技术与开发人员的编码技术所需要的范围和方面不同!1) 测试人员的编码技术:测试人员更偏向于快速地应用编程知识解决测试方面的问题,不需要追求精致的语言应用,不需要追求完美的可重用性等问题.。2) 开发人员的编码技术:开发人员则要更专业一些,他们要懂得处理更多专业的软件开发和设计上的问题,要更深入了解很多语言的特性,如:组件编程、面向对象、可重用性、可扩张性、设计模式、高效率、性能等问题.。
C. 手工测试与自动化测试1) 手工测试的问题:重复性问题;精确性问题;效率问题;覆盖率问题.。2) 手工测试不可替代的3点:[1-设计测试用例]:测试人员利用其经验及对错误的猜想而设计测试用例的能力是工具无法替代的.。
[3-正确性判断]:测试结果的逻辑正确性判断是工具无法替代的.。3) 自动化测试的优势:高效重复测试操作;精确处理大量数据;快速进行回归测试;提高测试覆盖率.。4) 自动化测试开展的3个前提:[1-自动化测试是一个开发过程]:测试人员需要掌握必要的开发知识和编码技术.。[2-自动化测试是一个长期任务]:测试人员需要长期维护自动化测试框架及脚本.。[3-自动化测试是一个成熟项目]:自动化测试需要在测试工作独立、开发进度可控等项目管理能力成熟的前提下开展.。5) 自动化测试方案选择的7个考虑因素:[1-影响]:自动化测试能否对项目的进度和风险有改善作用,或对敏捷开发有积极影响.。[2-实现]:自动化测试是否容易实现,如:环境配置、数据传输、接口提供、实现时间等问题.。[3-稳定]:软件需求和早期的代码是否稳定,能否在一定范围内变化.。[4-维护]:自动化测试代码能否不进行频繁的改动,利于维护,且还能继续进行功能性扩展.。[5-覆盖率]:自动化测试能否覆盖程序大部分的代码,及其关键特性和功能.。[6-资源]:测试组是否拥有足够的人力、设备、数据等资源来运行自动化测试.。[7-执行]:负责执行自动化测试的小组是否拥有足够的技能和时间.。
D. 自动化测试工具1) 自动化测试工具语言:WinRunner(TSL);SilkTest(4test);Robot(Test Basic);QTP(VB Script);XDE Tester(Java)等.。2) 自动化测试工具类型:测试管理工具、自动化功能测试工具、性能测试工具、单元测试工具、白盒测试工具、测试用例设计工具等;商业测试工具、开源测试工具、免费测试工具等.。3) 自动化测试工具原理:
[1-基于代码层面的自动化测试工具]:
例如JUnit、NUnit、MSTest等。这类工具主要是一些单元测试工具,直接访问被测应用程序的代码,对其中的类和函数进行调用,输入各种测试数据,检查函数的返回值,通过比较返回值与期 待的值是否一致来判断测试是否通过。且这类工具主要实现了测试代码框架产生的自动化,在代码框架背后,单元测试框架负责查找和调用被测试的类和方法,通过代码反射机制可访问到被测代码中的所有方法和属性。另外,单元测试框架会提供一系列的Assert类,使用这些Assert类可以简化测试结果检查、判断的工具。注意,在执行单元测试时,单元测试框架负责加载包含测试类的程序集文件,通过查找里面的测试类和测试方法标识来加载测试方法,如:TestMethod().。
[2-基于浏览器和DOM对象模型的自动化测试工具]:
例如Selenium、Watir等。这类工具直接访问Web浏览器,利用脚本语言操纵浏览器和Web页面中包含DOM对象,从而达到模拟用户控制浏览导航、页面元素的操纵等效果,且直接获取DOM对象的属性,从而获得Web页面元素的各种属性,通过这些属性可判断测试步骤的结果是否正确。HTML DOM(Document Object Model)是一个HTML文档的编程接口,它定义了HTML的标准对象集合,且定义了标准的访问和操纵HTML对象的方式。HTML DOM接口让测试人员可以访问和操纵HTML文档的内容.。[3-基于GUI对象识别的自动化测试工具]:基于GUI层面的测试需要与各种界面元素打交道,且不同的编程语言和工具开发的应用程序在界面的表现、事件的响应上都略有不同,故基于GUI层面的自动化功能测试工具会更为复杂.。[4-基于反射机制的自动化测试工具]:通过反射来加载被测程序,获取被测程序的各种属性,触发被测程序的各种事件,从而达到自动化测试的目的.。
[5-基于UI Automation的自动化测试工具]:
UI Automation提供了一套对Windows界面的可编程的访问机制,同时也为测试自动化工具提供了一个新的思路。例如,使用QTP的.NET插件对WPF(Windows Presentation Foundation)控件进行测试时,就可以使用AutomationElement来访问控件属性.。
[6-基于QTP对象识别技术的自动化测试工具]:QTP同样是通过查找应用程序界面中的各个控件的属性来判断是否与测试对象匹配。另外,还可以根据控件的类型,列举出其可操作的方法。针对不同平台和语言编写的控件,QTP会采用不同的对象识别方法.。
E. QTP自动化测试1) QTP自动化测试支持的环境和程序[1-测试环境]:Windows操作系统、VMWare虚拟机、IE/Mozila FireFox浏览器等.。[2-测试程序]:Windows标准应用程序(包括基于Win32 API和MFC的应用程序)、Web页面、ActiveX控件、Visual Basic应用程序等.。
[3-测试需加载额外插件的程序]:Java应用程序、Oracle应用程序、SAP、.NET控件、Siebel、PeopleSoft、Web Services、Terminal Emulators
等.。
2) QTP自动化测试基本配置
[1-帮助文档]:QTP自带的帮助文档是最佳的学习QTP使用和自动化测试脚本开发的渠道.。
[2-视频教程]:QTP安装文件附带3个视频教程(如下).。
1° Dynamic Automation Development IDE:介绍QTP的IDE环境使用方法.。
2° Application Area Management:介绍QTP的应用程序区域管理使用方法.。3° Object Repository Management:介绍QTP的对象库管理使用方法.。
[3-样例程序]:QTP的帮助文档是以自带的样例程序作为测试对象讲述测试方法、测试对象和函数的使用.。
3) QTP自动化测试使用过程(5个步骤)
[1-录制测试脚本]:利用QTP先进的对象识别、鼠标和键盘监控机制来录制测试脚本,测试人员只要模拟用户的操作,像执行手工测试的测试步骤一样来操作被测应用程序的界面即可.。[2-编辑测试脚本]:调整测试步骤、编辑测试逻辑、插入检查点(CheckPoint)、添加测试输出信息及注释等.。[3-调试测试脚本]:利用“Check Syntax”功能检查测试脚本的语法错误,利用QTP脚本编辑界面的调试功能检查测试脚本逻辑的正确性.。[4-运行测试脚本]:可单独运行一个“Action”,也可批量运行测试脚本.。[5-分析测试脚本]:使用QTP的测试结果查看工具查看测试结果,检查测试运行过程的正确性.。
F. QTP测试工具整合1) QTP与WinRunner测试工具整合:QTP支持与WinRunner整合,可以在QTP中调用WinRunner编写的测试脚本.。2) QTP与LoadRunner测试工具整合:将QTP的测试脚本整合到LoadRunner的场景设计中,在QTP检查程序功能正确性的前提下,还可获得程序的性能信息,或者检查程序运行过程中的性能参数;也可使用QTP自带的Silent Test Runner模拟LoadRunner的调用,在调用无误后可在LoadRunner中插入和运行QTP脚本.。
G. QTP测试脚本开发1) 在关键字视图中编辑测试脚本:对录制后生成的测试脚本,进行修改和调整。可在关键字视图(Keyword View)中为测试步骤添加注释,为测试结果添加测试信息的输出,也可插入CheckPoint及新的测试步骤.。2) 在专家视图中编辑测试脚本:可在专家视图(Expert View)中直接编写测试脚本,适合有较好编码技术,并熟悉VBScript语言的自动化测试工程师使用.。3) 利用Active Screen来编辑测试脚本:Active Screen是测试步骤在录制过程中的截图,可用于直观地描述测试步骤,也可用于存储测试步骤中测试对象的信息。这些信息可用于添加测试步骤,插入检查点.。
H. VBScript脚本语言VBScript是一种脚本语言,它是Visual Basic的一个安全子集,其设计目的是为了能在多平台上运行并使用ActiveX接口。这些特性不仅使其适合于Windows管理,网页脚本编程,也适合于开发测试脚本。QTP的测试脚本语言采用的就是VBScript,且QTP的专家视图其实就是一个VBScript脚本编辑器。因此,测试人员则可利用简单易用而不失强大、灵活的VBScript脚本语言来增强自动化测试.。