自动化测试-组件开发规范.doc_第1页
自动化测试-组件开发规范.doc_第2页
自动化测试-组件开发规范.doc_第3页
自动化测试-组件开发规范.doc_第4页
自动化测试-组件开发规范.doc_第5页
免费预览已结束,剩余20页可下载查看

下载本文档

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

文档简介

自动化测试组件 BB 开发规范CCB版本: 1.0自动化测试组件 BB 开发规范CCB版本: 1.0文档修订历史版本日期作者评审人说明目录1.概述41.1.组件41.2.开发过程41.3.角色和职责51.4.开发步骤62.开发准备72.1.开发环境72.2.设计文档82.3.业务流程103.创建脚本103.1.向QC提交代码113.2.从QC查看代码114.脚本编写114.1.脚本结构114.2.设置参数124.3.变量声明134.4.环境初始化144.5.编写脚本正文154.6.自定义函数204.7.脚本清理214.8.脚本运行及调试214.9.交叉评审235.脚本评审235.1.正式评审235.2.评审检查单236.高级技巧246.1.描述性编程246.2.调用外部函数241. 概述本文档(自动化测试开发规范)定义了组件(Building Block,简称 BB )的开发过程,包括角色划分、职责分配以及关键活动等。同时,本文档还对各项活动提出了具体要求和建议,如开发环境设置、代码编写规范等。自动化测试项目组和开发人员应该遵循本规范完成组件开发工作。1.1. 组件组件(BB)是构成自动化测试用例(集合)的基本单位,是按照被测试对象或者系统的功能、界面特点以及可复用性划分的。交易代码、网站的登入登出等都可以划分成组件。在开发过程中,组件的具体表现形式是设计文档(Excel文件)和测试代码(QTP脚本)。开发人员应该围绕设计文档和测试代码开展工作。注意事项设计文档Excel文件,包含与组件设计相关的多个WorkSheet。包括组件的输入输出参数、设计要点以及基本流程等。测试代码QTP 脚本,包含 QTP 代码(Action)以及对象库等。1.2. 开发过程尽管开发单个组件时间很短,组件开发人员仍应该遵循一定次序完成开发任务。规范的开发过程能够强化组件设计和测试代码实现之间联系,避免返工。下图从整体上面说明了组件开发,包括从开发准备、创建脚本、脚本编写和评审等活动和相关角色。图中左侧的是组件设计过程,由组件设计人员负责。该过程的主要结果是组件设计文档,它是组件开发的前提条件。本文档对组件设计不做详细说明。图中右侧描述是本文档的重点内容,即组件开发过程。组件开发人员将从准备开发做起,经历脚本创建、脚本编写,直到最后脚本评审通过。1.3. 角色和职责虽然 1.2 图示中可以看到,组件开发过程是由组件开发人员负责完成的。这个过程还离不开设计人员和测试/开发组长的参与。下表是组件开发过程中相关角色和职责。角色职责测试/开发组长l 与设计人员和开发人员协调,分配任务并制定进度l 跟踪开发进度l 协调评审活动l 为数据和环境的准备与其他部门沟通组件设计人员l 与开发人员交流并及时更新设计文档l 组件开发完成后,按照设计文档和开发规范评审测试代码组件开发人员l 阅读并检查设计文档,及时与设计人员交流l 熟悉组件涉及的流程,特别是以手工方式了解流程l 按照设计文档和代码编写规范完成组件开发l 不同开发人员交叉评审注意事项分工l 尽量避免开发人员特别是刚刚加入的成员承担设计工作l 测试/开发组长可以根据开发人员对组件开发过程和设计工作的熟悉程度,将设计工作交给开发人员。这是开发人员的角色实际已经变为设计人员l 避免同一个人同时设计和开发同一个组件交流l 在设计文档和脚本开发方面存在的问题,开发人员和设计人员应该及时沟通l 交叉评审和正式评审的结果应该及时沟通1.4. 开发步骤组件的开发步骤基本分为以下4个步骤:l 开发准备l 脚本创建l 脚本编写l 脚本评审开发人员应该严格按照4个步骤完成组件的开发工作。下表说明了每个步骤的主要活动,并且对解释每项具体活动的章节作了索引。在本文档的第2章到第5章将详细说明这些步骤和活动。开发步骤说明步骤主要活动章节索引(链接)开发准备准备开发环境,使开发工具的环境配置符合开发要求2.1理解设计文档,掌握设计文档的各项要求2.2熟悉业务流程,了解被测对象和组件相关的部分2.3脚本创建从 QTP 中创建(修改)测试脚本并提交到脚本管理工具(MQC)3.1脚本编写确定脚本的基本结构,添加基本的脚本信息4.1设置脚本参数和 Action 参数4.2声明脚本的变量并作相应的初始化4.3初始化脚本运行时的环境4.4编写测试脚本正文4.5编写自定义函数4.6在脚本运行结束部分清理临时对象变量4.7运行和调试脚本4.8开发人员相互作交叉评审4.9脚本评审从脚本实现是否符合设计、是否符合代码编写规范以及是否运行正常等方面检查脚本是否合格52. 开发准备在编写脚本以前,组件开发人员应该做好充分的准备。准备工作包括配置开发环境、理解设计文档和熟悉业务流程等。2.1. 开发环境组件开发工作主要是在测试工具 QTP 9.0中完成的,因此开发人员要首先检查并配置好测试工具。注意事项开发环境管理开发组应该根据被测系统的技术特点以及项目实际需要统一配置 QTP 开发环境系统类型在开始测试以前,确定被测应用/系统的类型是很重要的。系统类型主要分为:C/S 结构,即 Windows 客户端 + 服务器结构。仿真终端 + 3270,以及仿真终端 + VT100均属于 C/S 结构;B/S 结构,即 浏览器 + Web 服务器结构;不同的系统需要设置不同的外部引用函数库、对象识别方式等。QTP 加载项add-in测试B/S结构的应用程序/系统时开发组应选择Web add-in 选项作为 QTP 的加载项;测试 C/S 结构的应用程序/系统时,则要根据实际情况选择。看被测试系统/系统的开发技术是否包含了 ActiveX 或者 由 Visual Basic开发,分别选择相应的加载项;资源开发人员需要注意 QTP的当前测试设置(Test Settings)中的资源(Resources)选项。它关系到脚本的外部函数库引用。环境变量开发人员需要注意 QTP的当前测试设置(Test Settings)中的环境变量(Environment)选项。它关系到脚本的自定义环境变量设置。对象识别当被测试系统为 B/S 结构时,Web 对象识别选项( Option - Page/Frame Options 对话框)设置如下,以保证 Web 类型的对象识别时没有过多重复对象。自动配置开发组应该指定专人开发并管理 vbs 自动配置脚本,避免开发人员随意更改;QTP 的部分配置不能实现自动化,比如参数设置。开发人员需要根据开发组的统一要求进行设置组件开发人员可以用手工方式完成开发环境的配置,或者用下面的 vbs 脚本完成 QTP 环境的自动配置。使用前应该根据当前项目要求将文件内的相应参数设置正确,并将文件名改为 *.vbs 形式。按照被测试应用/系统的类型,QTP 自动配置脚本分成了如下几种情况。QTP 自动配置脚本C/S 类型适用于仿真终端+3270适用于仿真终端+VT100B/S 类型2.2. 设计文档正确配置开发环境仅仅是开发工作的第一步,接下来应该详细阅读并理解组件的设计文档。组件设计文档包括开发工作需要的大部分信息,在脚本编写之前组件开发人员应该与设计人员一一确认不清楚的地方。一份详细的设计文档包括:l 组件基本信息(名称、功能说明、开始结束界面)l 参数说明(输入、输出参数)l 开发指导(开发要点和步骤伪代码说明)l 截图(业务流程中的关键界面)注意事项设计文档存放位置组件设计文档统一存放在部门 VSS 服务器上,地址:128.32.96.244;开发人员应该统一参考所在项目的组件设计文档,设计文档在VSS上的存放路径格式为:业务测试部项目测试阶段自动化测试;例如,国际卡项目的组件测试文档存放目录如下:业务测试部项目国际卡测试阶段自动化测试设计错误设计文档并不一定全部正确,开发人员在仔细阅读理解的同时也应该检查设计文档。遇到设计错误时,应该要求设计人员修改设计文档步骤与伪代码设计人员可能采用步骤描述或者伪代码的形式指导开发人员的脚本编写,开发人员应该按照其中的思路了解被测对象和相关流程,最后实现测试脚本业务流程对设计文档的理解不能停留在文档水平上,组件开发人员还应该动手熟悉相关的业务流程下面的示例代码对比了伪代码和伪代码实现后的真实脚本。开发人员可以作为参考。示例代码伪代码 ReturnStr=0 If 初始化窗口成功 then 输入 apap 并提交 Else 报告初始化失败 exittest End if 等待查询窗口出现 If 等待超时 then 报告缺陷 Exittest End if 输入合法机构号,卡类,申请号并提交 等待查询结果窗口出现 If 等待超时 then 报告缺陷 Exittest End if If 在界面上找到 CZNR 表示的字符串 then 按 f7 ReturnStr=1 报告查询成功 Else 报告查询失败 End if伪代码实现parameter(ReturnStr)=0 初始化窗口If InitWindow(菜单) Then 进入apap PEInput apap+ctrlElse Reporter.ReportEvent micFail ,失败,异常错误,系统初始化错误。 exittestEnd ifIf PEWaitText(“机构”,5)=false then Reporter.ReportEvent micFail ,失败,异常错误,查询窗口没有出现。 existtestEnd if输入查询条件:机构号,卡类,申请编号输入机构号PEFieldInput parameter(organID),5,18输入卡类PEFieldInput parameter(type),5,33输入申请编号PEFieldInput parameter(applicationID),5,53PEInput CtrlIf PEWaitText(“机构”,5)=false then Reporter.ReportEvent micFail ,失败,异常错误,查询结果窗口没有出现。 existtestEnd if 反向案例,无论是否找到都按F7If PECheckpage(parameter(CZNR) Then PEInput F7 parameter(ReturnStr)=1 Reporter.ReportEvent micPass ,查找成功,需要查找的内容:【¶meter(CZNR)&】已经找到Else Reporter.ReportEvent micFail ,查找失败,需要查找的内容:【¶meter(CZNR)&】没有找到End if2.3. 业务流程开发人员在理解设计文档的同时,就应该熟悉被测应用程序/系统的相关业务,特别是手工方式。注意事项设计文档仔细阅读,理解和审查设计文档手工执行按照设计文档中的功能和步骤熟悉业务流程,应该以手工方式执行各步骤。建议至少执行两次并且尽量保证两次所执行的操作一致。如果两次执行的操作不一致,可以记录下来,作为异常处理点自定义函数总结在执行步骤的过程中的重复操作,为脚本内的自定义封装函数做准备全局函数如果总结过程中发现所需函数通用性很强,开发人员应该查找公共函数库和函数库说明,避免在脚本编写过程中的重复开发。如果公共函数库没有提供该函数,应该向测试/开发组长或者公共函数库开发人员提出公共函数开发请求3. 创建脚本脚本编写前的准备工作完成后,组件的开发人员可以开始创建并编写脚本了。目前 MQC 是组件的脚本的保存管理工具,因此本章主要介绍开发人员如何完成这项工作。3.1. 向QC提交代码运行 QTP 后创建新的测试脚本(Test),连接 MQC 并将测试脚本保存到开发组指定的位置。详细的操作步骤请参考 QTP 使用说明中关于 MQC 连接的说明。注意事项保存路径开发组应该统一设计和规定 MQC 的保存路径,开发人员应该按照指定路径保存测试脚本脚本名称脚本名称应该与设计文档中规定的组件名称一致Action 名称脚本包含的 Action 名称应该与脚本名称一致脚本注释首次提交代码时,开发人员应该在脚本头部注释中声明名字和日期;修订代码时,开发人员应该在脚本头部注释中添加修订信息;3.2. 从QC查看代码开发过程中,开发人员主要通过测试工具 QTP 向 MQC 提交和修改代码。当需要阅读其他脚本代码(评审)时,可以从 QC 查看测试脚本代码。详细的操作步骤情参考 MQC 使用说明。4. 脚本编写完成了开发准备并创建了脚本,组件开发人员可以开始编写测试脚本了。基本步骤包括:l 确定脚本结构l 设置参数l 声明变量l 初始化环境l 编写正文l 清理环境l 声明定义函数l 调试运行l 交叉评审在本章的4.1到4.9各节中分别描述了这些步骤和活动要点。4.1. 脚本结构为了使脚本更加条理清楚,开发人员应该大体将脚本文档划分成以下几个组成部分,其中每部分的前面用注释行和说明分隔。建议的脚本结构如下:l 脚本文件头,包括 Option Explicit 语句,以及作者,日期和修订历史 l 全局变量声明和初始化部分l 环境初始化部分l 脚本正文(实现业务逻辑部分)l 环境清理l 自定义函数开发人员可以参考下面的附件来确定脚本结构:另外,还可以把上述结构作为 Action 模板自动加载到 QTP 当中。具体做法是把下面的文件复制到 /dat/ 目录下面即可。自动加载Action 模板后的 QTP 效果可以参考后面的插图。4.2. 设置参数按照设计文档的要求设置输入输出参数。测试脚本的参数包括 Test 参数和 Action 参数。Action 的输入和输出参数必须与 Test 的输入输出参数一一对应,并且名称保持严格一致。完成了 Test 和 Action 的参数设置之后,应该在 Action 的调用属性(Call Property)对话框中设置两组参数之间的传递关系,如下图:注意事项ReturnStr 参数每个测试脚本以及相应 Action 都必须有一个名为 ReturnStr 的输出参数,该参数表示组件的执行结果。脚本执行完毕后,如果该参数为 0,表示脚本执行结果为失败;如果该参数为 1,表示脚本执行成功。参数属性设计文档明确说明了组件各参数的名称、是否必填以及默认值。开发人员应该保证实际设置的参数与设计文档的要求完全一致4.3. 变量声明变量声明包括在脚本的变量部分声明全局变量并初始化。示例代码变量声明* 以下代码设置在本脚本中要用到的全局变量* 开始时间,结束时间Dim StartTime, EndTime 页面Dim PageObj变量初始化(对象类型使用 Set 方法) 初始化变量StartTime=TimerSet PageObj=Browser(中国建设银行网上银行).Page(中国建设银行网上银行)变量命名规范变量声明所有变量都必须显式声明变量名称变量名称包含的每个单词首字母应大写,且变量名称应尽量表达业务内容。单词可以是英文或者拼音,但应该完整易读。如:PolicyCode、CaseNo或CeshiDaima常量名称常量名称应保证所有字母全大写,且各个单词之间用“_”隔开。例如:OFFICE_HOMEReturnStr初始化变量声明部分一定要包含以下初始化 ResturnStr 参数的语句:Parameter(“ReturnStr”)=”0”4.4. 环境初始化这里所说的环境并不是指 QTP 开发环境,而是指 QTP 脚本运行时被测试应用/系统的环境。示例代码环境初始化* 以下代码初始化环境,将初始页面设置为.(其它初始化操作)* 初始化窗口If InitWindow(菜单) Then 进入apap PEInput apap+ctrlElse Reporter.ReportEvent micFail ,失败,异常错误,系统初始化错误。 exittestEnd if 注意事项初始页面初始页面是否与设计文档描述一致。如果不一致,则需要将页面初始化为所需页面多余窗口是否有多余的应用程序或窗口,这些程序/窗口有可能影响到脚本的运行垃圾数据是否清理了垃圾数据(即在手工执行了两遍操作步骤后,是否在系统中留下了垃圾数据,影响到脚本的重复执行)4.5. 编写脚本正文在编写完初始化代码后,就可以开始编写脚本正文了。开发人员应该按照如下要求编写脚本正文。注意事项自定义函数确定哪些地方可以封装成函数;遇到需要用到自定义函数的时候,开始在自定义函数部分开发函数,然后调试;缩进按照设计文档提供的伪代码或者步骤描述开始编写脚本,同一层次的代码和注释应该对齐;循环或分支语句中(Do / Loop,For / Next,While / Wend 以及IF / End IF)的各个语句要按照所在层次进行缩进对齐(需要将自动缩进打开);对象属性和名称建议手写脚本并用 Spy 来获取页面上的对象的属性和名称,特别是当被测应用/系统是 B/S 结构的时候变量尽量使用在变量声明部分声明的全局变量,以简化工作量例如:Browser(A).Page(B).WebEdit(C).Set “1”可以在变量声明部分先初始化Set PageObj= Browser(A).Page(B)可简化为:PageObj.WebEdit(C).Set “1”当脚本代码中有大量相似语句时,可以用这样的方法简化代码ReturnStr脚本中只要有任何一处出现失败,则认为整个 BB 执行失败,此时要保证 ReturnStr 为 0,并退出测试。在脚本所有语句执行成功后,则要确保将其设置为 1。退出如果在设计文档或者步骤/伪代码中注明需要退出脚本运行的地方,应该统一使用exittest语句实现退出其中编写脚本正文时需要特别注意的是异常处理,同步点,检查点和注释等,以下分别详细说明。4.5.1. 异常处理在开发时,可以尝试一些非法操作以便编写异常处理代码。 开发人员必须考虑以下5种场景的异常处理。异常处理场景场景1在操作对象(控件,窗体或文件)之前,应该检查该对象是否存在或显示。如果存在并且显示,则进行下一语句,否则报告异常或执行相应操作。场景2 如果函数的输入参数可能存在非法值(数值范围或者字符串类型限制等),则要进行异常处理。场景3 在创建或实例化一个对象后(CreateObject 方法),需要判断该对象是否创建或实例化成功。场景4 在可能弹出异常窗口或者对话框的地方,要进行异常处理。场景1 - 示例代码判断了网页是否包含 Link 对象,然后再做相应处理Function clickLinkInTopMenu(ByVal innertext, ByVal index, ByRef errMsg)Set parentObj = Browser(eCC).Page(CFrame)Set desc = Description.Createdesc(micclass).value = Linkdesc(innertext).value = innertext If parentObj.ChildObjects(desc).Count() 0 ThenelseEnd IfSet desc = Nothing End Function场景2 - 示例代码判断输入参数是否为 String 类型,然后执行相应操作Function xls_create_new_workbook(In_Str_Save_Path)Dim NewWorkbookSet Obj_ExcelApp= CreateObject(Excel.Application)If ( TypeName(In_Str_Save_Path) String ) then.Else.End IfEnd Function判断输入参数是否为空,然后执行相应操作Function xls_destroy(In_Obj_Workbook)Dim Int_Close_SuccessOn Error Resume NextIf not In_Obj_Workbook Is Nothing Then.Else.End IfEnd Function场景3 - 示例代码判断是否成功创建 QTP 对象,然后执行相应操作Dim App As Applicationon error resume nextSet App = CreateObject(Excel.Application) If Err.Number 0 thenmsgbox 创建 Excel 对象失败WScript.Quitend if场景4 - 示例代码判断是否出现“找不到文件”窗口,然后执行相应操作If Window(“找不到文件”).Exist(1) thenElseEnd If4.5.2. 同步点添加必要的同步点,但是避免直接使用 Wait 方法。使用同步点的场景有以下几种:场景1Web 页面发生变化时,先要用 Sync 方法对页面进行同步。这种方法适用于被测试应用/系统是 B/S 结构的情况。当前风格Browser(中国建设银行 个人网上银行).Page(中国建设银行 个人网上银行).WebElement(投资理财).Click改进建议Browser(中国建设银行 个人网上银行).Page(中国建设银行 个人网上银行).SyncBrowser(中国建设银行 个人网上银行).Page(中国建设银行 个人网上银行).WebElement(投资理财).Click上述脚本等待“中国建设银行 个人网上银行”页面完全在浏览器中显示后再单击“投资理财”。场景2如果页面没有发生变化,但是某一对象的属性发生变化,可以根据该属性变化进行同步。即使用对象的 WaitProperty 方法进行同步。改进建议Browser(中国建设银行 个人网上银行).WinStatusBar(状态栏).WaitProperty(text,完成,10000)上述脚本等待页面加载完毕后再执行后面的语句。场景3如果无法根据任何控件的任何属性进行同步,则可以通过检查界面是否包含特定字符,然后循环等待来进行同步。(此方法最适合只有终端窗口的程序)当前风格输入交易代码PEInput gccc PEInputCtrl Wait 1输入客户号,卡号或者帐号机构代码PEInput parameter(organID)改进建议输入交易代码PEInput gccc PEInputCtrlPEWaitText(“机构”,5)输入客户号,卡号或者帐号机构代码PEInput parameter(organID)场景4如果前三种方法不适用,则可考虑判断对象是否存在,然后循环等待来进行同步。改进建议Function objSync(obj, maxtime)Dim tt=0objSync = TrueWhile (obj.Exist(1)=false)wait(1)t = t+1If t = maxtime ThenobjSync = FalseExit FunctionEnd IfWendEnd Function注意事项必须增加同步点的情况页面变更,例如翻页,提交表单,页面跳转等。考虑方法 1,3出现进度条,考虑方法 2等待弹出窗口或窗口消失,考虑方法 4同步点超时设置开发组应该根据被测应用/系统的情况统一设置同步点超时时间;开发组应该将超时时间作成全局变量或者将超时时间包含在公共函数内,方便开发人员使用;开发人员不能随意设定超时时间;Wait 语句如果添加同步点时前面列举的4 种场景都不适用,可考虑使用 Wait 语句。但是必须添加注释,解释使用 Wait 语句的原因。4.5.3. 检查点按照设计文档要求或者步骤描述/伪代码指明的检查点处,正确添加检查点。注意事项检查点格式检查点统一格式为:If 检查条件为真 Then报告相应结果Else报告相应结果End IfQTP 检查点(CheckPoint)开发人员不能随意使用 QTP 自带的任何 CheckPoint 方法;遇到必须使用(例如,图象检查点)的情况,需要经审测试/开发组长批准后才可使用。4.5.4. 注释开发人员应该在脚本中添加必要的注释。示例代码当前风格If PEWaitText(输入,1)Then如果反例处理标志找到,则不进行反例处理改进建议如果反例处理标志找到,则不进行反例处理If PEWaitText(输入,1)Then注释规范所有注释都必须写在相关代码行的前面,如果注释长度超出屏幕的宽度,则需要换行,并且新行必须与上一行对齐。所有注释必须与相关代码行对齐。遇到以下情况时,必须在相应代码行前面加注释:l 逻辑判断,即 IF/Else 语句l 循环结构,即 For/Next 、Do/Loop 、 While/WEnd 语句l 检查点,即判断实际结果是否符合预期的语句l 同步点,特别是用 Wait 语句同步的地方l 异常处理l 复杂的计算式或表达式l 调用自定义函数4.6. 自定义函数自定义函数规范注释所有自定义函数都必须在其前面添加注释,注释格式如下:* 函数名称: 功能说明: 输入参数: 一行只写一个参数,然后写说明,下一个参数与上一个参数对齐 输出参数: 同上 返回值: *函数名称函数名称的每个单词首字母应大写,且函数名称应尽量能表达业务内容,如:PolicyCode、CaseNo等。如果是操作类的函数,应该以动词开头,如:ReadFile,ExecuteQuery。自定义函数名称包含的单词可以用英文或者拼音,但应该保证每个词完整,避免出现缩写形式特别是拼音首字母组合。异常处理自定义函数应该按照 4.5.1 节的要求加入异常处理。同步点自定义函数应该按照 4.5.2 节的要求加入同步点。函数库文件如果函数太多,可考虑放到一个 .vbs 文件中,做成函数库文件,此时需要在该文件头部加入以下注释:* 函数库名称/版本: 函数库说明: 函数列表: 直接写函数名和相应的说明即可*示例代码自定义函数注释*函数名称:PEWaitText功能:提示信息的对话框,一定时间后自动关闭。输入参数:Str:等待屏幕出现的提示信息TimeOut:超时时间输出参数:无返回值:如果为 True,表示在指定时间内出现特定字符,否则为 False*Public Function PEWaitText(byval Str,byval TimeOut) .End Function函数名称 - 英文正确写法:PolicyCode、CaseNo错误写法:PCode、CNo函数名称 - 拼音正确写法:CeshiDaima错误写法:CSDM4.7. 脚本清理编写脚本时,开发人员应该牢记脚本运行结束之前必须在此部分中清除内存中的所有对象变量。示例代码当前风格Dim objFSO, objRead. 改进建议Dim objFSO, objReadSet objFSO=NothingSet objRead=Nothing 注意事项ReturnStr如果测试脚本执行结果为成功,则必须在此部分加入以下语句:Parameter(“ReturnStr”)=”1”4.8. 脚本运行及调试注意事项注释调试通过之后能够正常运行的脚本中不包含大段废弃并注释掉的代码调试信息调试通过之后不保留用于调试的影响正常运行的语句,特别是 MsgBox 语句运行次数保证脚本正常运行至少两遍以上,保证脚本运行不受运行前后测试环境变化影响测试数据调试运行的时候,不仅使用输入和输出的默认值。还需要根据实际情况准备多组测试数据,特别是有正反案例存在的情况下下面的表中列举了脚本调试中必备的命令/操作,在调试和运行过程中应该反复使用。代码调试在线帮助在 QTP 编辑环境的 Expert View 中,将光标停留在一个语句/关键字上并按下 F1 键,将弹出 QTP 在线帮助窗口并定位到相关解释MsgBox 和 PrintMsgBox 命令可以帮助开发人员观察所需要的变量值等,但是该命令直接停止代码执行是明显的缺点。如果调试完成后不及时清除,将直接影响代码正常运行;Print 命令也可以帮助观察需要的值等,该命令不会影响代码正常运行。应该优先使用断点和调试BreakPointDebuggingQTP 允许代码以调试方式运行,包括断点设置与清除和单步执行等。将光标定位到需要设置断点的位置并按下 F9 ,在编辑界面的左侧对应位置将出现实心圆点的断点标记。结合其他的几个调试命令(运行 F5 ,单步执行 F10 ,转入 F11),可以灵活控制代码的运行状态调式窗口Debugger Viewer按下 QTP 工具栏上 Debugger View 按钮,QTP 窗口下方将显示调试窗口。调试窗口需要配合断点使用,分别包含 Watch , Variables 和 Command 等窗口。当代码运行至断点处或者处于单步调试状态时:Watch窗口显示当前添加到该窗口中需要监视的变量和值;Variables 窗口显示当前所有变量和值;Command 窗口可以手工输入 QTP 命令用于调试;4.9. 交叉评审交叉评审活动是开发人员相互之间评审脚本的活动,有助于在正式评审之前发现问题并解决。在开发过程中,开发人员应该按照测试脚本开发计划中安排的或者自发的开展交叉评审。关于评审的具体要求将在第5章详细说明。5. 脚本评审完成了测试脚本开发和交叉评审后,开发人员就可以把脚本提交给测试/开发组长作正式的脚本评审了。本章节说明脚本评审的要点,其中脚本评审的检查单也可以用于开发人员之间的交叉评审。5.1. 正式评审正式评审脚本时应该尽量保证以下几

温馨提示

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

评论

0/150

提交评论