软件测试笔记整理_第1页
软件测试笔记整理_第2页
软件测试笔记整理_第3页
软件测试笔记整理_第4页
软件测试笔记整理_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

测试分为单元测试、集成测试、系统测试和确认测试单元测试针对程序中的模块或构件,主要揭露编码阶段产生的错误。集成测试针对集成的软件系统,主要揭露设计阶段产生的错误。系统测试主要揭露不符合系统工程中对软件要求的错误。确认测试检查软件能否按合同要求进行工作,即是否满足软件需求说明书中的确认标准。V模型用户需求确认测试需求分析系统测试概要设计集成测试详细设计单元测试编码软件测试的各个阶段测试需求测试计划测试执行测试记录和缺陷跟踪提交报告PDCA戴明循环计划PLAN执行DO检查CHECK/STUDY处理ACTION戴明循环有时也被称为戴明伦或者持续改进螺旋测试需求检查软件需求(规格说明书)1)什么是测试需求测试需求就是在项目中要测试什么。我们在测试活动中,首先需要明确测试需求,才能决定要怎么测,测试时间,需要多少人,测试的环境是什么,测试中需要的技能,工具以及相应的背景知识,测试中可能遇到的风险等等,以上所有的内容结合起来就是就构成了测试2)计划的基本要素而测试需求是测试计划的基础与重点。3)为什么要做测试需求明确任务、目标、风险、策略等有效地制定测试计划测试工具自动化工具分类功能测试工具HPQUICKTEST、RATIONALRABIT、COMPUWARETESTPARTENER性能测试工具HPLOADRUNNER、COMPUWAREQALOAD、RATIONALROBOT、MSWAR测试管理工具HPTESTDIRECTOR、RATIONALTESTMANAGER、BUGZILLA其他测试工具RATIONALPURIFY、RATIONALPURECOVERAGE性能测试简述110性能测试在正常、峰值以及异常负载条件下,测试系统的各项性能指标通过自动化的测试工具进行模拟性能测试目的评估系统的能力识别体系中的弱点系统调优验证稳定性和可靠性用户角度的软件性能计算性能资源的利用和回收启动时间伸缩性不同的用户同时使用软件时的响应时间稳定性消除软件对空间和时间的不必要的浪费内存是软件运行的重要的空间资源,内存泄露时间上是浪费了软件的空间资源。因此,内存泄露对软件的性能影响十分严重案例某网站SERVER经常CPU耗尽,点击网页响应慢或无响应,甚至SERVER死机。经分析,网站首页是PHP程序,每次用户访问都要多次查询数据库,没有CACHE机制,数据库查询负荷过高,导致CPU耗尽。解决改写网站首页以及部分频繁访问的程序,增加CACHE机制,减少数据库访问。原理将常用数据放在服务器的内存中,虽然增加了内存的开销,但带来了时间上的优化,对用户而言,提高了处理速度性能瓶颈瓶颈本来是指玻璃瓶中直径较小并影响水流速度的一段,用它来比喻软件系统中出现性能问题的节点(可能不止一处)。并发(CONCURRENCY)多用户在同一时刻对系统执行操作,一般P指执行同一事物或操作在线多用户在一段时间内对系统执行操作响应时间(RESPONSETIME)从CLIENT端发出请求到得到响应的整个时间。(组成CLIENT端响应时间网络响应时间SERVER端响应时间)事物响应时间(TRANSACTIONRESPONSDETIME)完成响应事物所用的时间,是性能测试中重点关注的指标。点击率(每秒点击数,HITSPERSECOND)VUSER每秒向WEB服务器提交的HTTP请求数。注点击数不是鼠标点击次数,而是服务端向WEBSERVER发起的HTTP请求数,鼠标点击一次可触发错个HTTP请求。吞吐量(THROUGHPUT)VUSER在任意给定一秒从服务器中总共获得的数据量,单位是字节。依据服务器的吞吐量来估计VUSER产生的负载量,以及评估服务器在流量方面的处理能力以及是否存在瓶颈。吞吐率(THROUGHPUTPERSECOND)服务器每秒吞吐量(吞吐量/测试时间),反映服务器的处理速度和性能吞吐率和点击率的区别吞吐率指服务器每秒处理的数据量。点击率指客户端每秒向服务器提交的HTTP请求数。TPS(TRANSACTIONSPERSECOND)每秒钟系统能够处理的交易或事物数量。是衡量系统处理能力的重要指标系统利用率对不同系统资源的使用程度,如CPU,内存,磁盘,网络等性能测试策略1)基准测试(BENCHMARKTESTING)指测试环境确定以后,对业务模型中涉及的每种业务做测试基准目的是获得单用户执行时的各项性能指标,为多用户并发和综合场景等性能测试分析提供参考依据2)并发测试(CONCURRENCYTESTING)指模拟多个虚拟用户在同一时刻执行测试点操作目的是对测试点进行压力加载,测试系统性能测试是否存在死锁3)综合场景测试通过对系统体系结构和功能模块的分析以及对系统用户的分布和使用频率的分析,来构造系统综合场景的测试模型,模拟不同用户执行不同操作。4)疲劳强度测试5)内存泄露检测6)数据容量测试7)极限测试8)递增测试指每隔一定时间段(如5秒10秒)加载不同数目的虚拟用户执行测试点操作,对测试点进行递增用户压力加载测试。负载测试(LOADTESTING)含义检验AUT在不同给定负载下是否能达到预期性能指标;目的更多的是在正常的工作条件下,验证AUT的性能是否达到要求压力测试(STRESSTESTING)含义通过不断向被测系统(AUT,APPLICATIONUNDERTEST)施加压力,测试系统在压力情况下的性能表现,考察当前软硬件环境下系统所能承受的最大负荷并帮助找出系统瓶颈所在目的主要是发现AUT的负载极限(峰值处理能力)。容量测试(VOLUMETESTING)含义针对数据库而言,是在数据库中有较大数据容量情况下对AUT进行测试压力测试与负载测试的比较实现方法基本相同不同压力测试主要是在性能可以接受的前提下,测试系统支持的最大负载负载测试前提是在不同负载下(负载一定)时,通过一些参数信息,对系统进行测试测试计划的测试点使用最频繁,用户最关心,数据库最相关的,最重要的LOADRUNNER概述LOADRUNNER是什么预测系统行为和性能的工业标准及负载测试。通过以模拟上千万用户实施并发负载及实现性能检测的方式来确认和查找问题。LOADRUNNER能够对整个架构进行测试。支持多种操作系统、数据库、应用服务、中间件等。LOADRUNNER能做什么用于测试应用程序的性能。在可控制的峰值负载条件下测试系统。LOADRUNNER录制原理自动监控指定的URL或应用程序所发出的请求及服务器返回的响应。它作为一个第三方监视客户端与服务器的所有对话,然后把这些对话记录下来,生成脚本,再次运行时模拟客户端发出的请求,捕获服务器端的响应。(这个很重要的)LOADRUNNER三大组件虚拟用户脚本生成器(VIRTUALUSERGENERATOR)压力调度控制器(CONTROLLER)压力结果分析器(ANALYSIS)LOADRUNNER工具组成虚拟用户脚本生成器(VIRTUALUSERGENERATOR)捕获最终用户业务流程和创建自动性能测试脚本,即产生测试脚本;压力调度(CONTROLLER)根据用户对场景的设置,设置不同脚本的虚拟用户数量;压力结果分析器(ANALYSIS)辅助分析测试结果。负载生成器(LOADGENERATOR)通过运行虚拟用户产生实际的负载;代理程序(AGENT)部署在各个客户端,协调、产生步调一致的虚拟用户;监控系统(MONITOR)监控重要的性能计数器;如何使用LOADRUNNER主要步骤1、创建脚本捕获在应用程序中执行的最终用户操作2、设计场景通过定义测试绘画期间发生的时间,设置负载测试场景。3、运行场景运行、管理并监控负载测试4、分析结果分析负载测试期间LOADRUNNER生成的性能数据。VUSER(VIRTUALUSER,虚拟用户)在场景中,LOADRUNNER用VUSER代替实际用户。VUSER模拟实际用户执行操作。一个场景可以包括几十,几百审计几千个VUSER。VUSER脚本(VIRTUALUSERSCIPT)用于描述VUSER在场景中执行的操作。事物(TRANSACTION)为度量服务器的性能,需要定义事物。事物表示要度量的最终用户业务流程或操作场景(SCENARIO)场景是一种文件,用于根据性能要求定义在每个测试会话运行期间发生的时间压力测试计划从VU运行成功到CONTROLLER运行成功,一般需要一下几个步骤确认到VU里SUSI(单用户单循环次数,SINGLEUSERWHAT定义查找内容函数用法放在相应请求函数后面注意事项使用该函数时,要在VUSERRUNTIMESETTINGS勾选ENABLEIMAGEANDTEXTCHECKWEB_REG_FIND函数作用在缓存中查找对应内容参数示例WEB_REG_FIND“SEARCHBODY“,“SAVECOUNTDDD“,“TEXTAAA“,LASTWEB_REG_FIND函数注册一个请求,在下一个操作函数(如WEB_URL)检索到的缓存中搜索一个文本字符串WEB_REG_FIND返回的0,1只代表注册是否成功。WEB_REG_FIND时注册类型函数,他本身并不执行,并不代表查找的内容是否存在SEARCH用来定义查找范围,可利用SAVECOUNT来判断要查找的内容是否被找到,可记录在缓存中查找内容的次数,判断该值是否被找到IFSTRCMPLR_EVAL_STRING“ABC_COUNT“,“0“0LR_OUTPUT_MESSAGE“NOTFOUND“ELSELR_OUTPUT_MESSAGE“ABC_COUNTFOUND“WEB_REG_FIND和WEB_FIND的区别录制模式区别WEB_FIND只能用在基于HTML模式录制脚本中,WEB_REG_FIND没有此限制位置区别WEB_REG_FIND时限注册REGISTER后查找放在请求语句前面而WEB_FIND时查找前面的请求结果使用时放在请求语句的后面设置区别RUNTIME设置中的“ENABLEIMAGEANDTEXTCHECK“对WEB_FIND有效。而对WEB_REG_FIND无效查找方式区别WEB_REG_FIND参数中的SAVECOUNT记录查找匹配的次数WEB_FIND的机制是一旦匹配成功就立即返回,并不急需查找和记录匹配次数查找范围区别WEB_FIND时在返回的页面中进行内容查找,WEB_REG_FIND时在缓存中进行查找效率区别WEB_REG_FIND执行效率高WEB_IMAGE_CHECK函数函数作用在页面中查找一个具体图片参数说明WEB_IMAGE_CHECK“WEB_IMAGE_CHECK“,“ALT“,“SRC“,LAST参数解释“ALT“和“SRC“的值这取该图片在网页源代码中相应参数的值函数位置该函数用到相应(查找内容)后面。设置RUNTIME设置中的“ENABLEIMAGEANDTEXTCHECK“对WEB_FIND应开启1按进程运行VUSERCONTROLLER将使用驱动程序MDRV运行VUSER。如果按进程方式运行每个VUSER,则对于每个VUSER实例,都将启动一个MDRV进程。如果设置了10个VUSER,则在任务管理器中出现10个MDRV进程。多个MDRV进程肯定会占用大量内存及其他系统资源,这就限制了可以在任意负载生成器上运行的VUSER的数量。2按线程运行VUSER及设置了10个VUSER,其只会调用一个驱动程序MDRV而每个VUSER都按线程运行,这些线程VUSER将共享父进程的内存段。这就节省了大量内存控件,从而可以在一个负载生成器上运行更多的VUSER。任何选择都是有两面性的。选择线程方式运行VUSER会带来一些安全问题。因为线程的资源是从进程资源中分配出来的,因此同一个进程中的多个线程会有共享的内存空间,这样可能会引起多个线程的同步问题,调度不好,就会出问题,比如A线程要用的资源就必须等待B线程释放,而B也在等待其他资源释放才能继续。这就会出现这样的问题同一个测试场景,用线程并发就会超时失败或报错,而用进程并发就没错。CONTROLLER负载发生器(LOADGENERATORS)通过负载发生器可以设定生成模拟用户的机器,这些机器需要安装LOADGENERATORS,启动AGENT进程,不需要脚本,只是调用它们的资源。检测器以监视WINDOWSWIN2KSERVER资源为例前提需要用管理员权限的账号连接被监控的SERVICE,比如192168088ASADMINISTRATOR,输入密码然后可以在CONTROLLER总直接添加计数器。LOADRUNNER数据池技术解剖SELECTNEXTROW取下一数据方式SEQUENTIAL按照顺序地取,每一个虚拟用户都会按照相同的顺序读取RANDOM随机读取I个UNIQUE每个VU顺序取唯一的值。注意使用该类型必须注意数据池中数据充足SAMELINEAS某个参数(比如NAME)和前面定义的参数NAME取同行的记录。通常用在有关联性的数据上面。UPDATEVALUEON更新方式ONCE在所用的返回中都使用同一个值EACHITERATION每次迭代都取新值EACHOCCURRENCE只要发现该参数就要重新取值,也就是如果一个ACTION中有多个该参数,每遇到一次就要重新取一个值RUNTIMESETTING中可以设置LOG的生成方式默认的LOG方式ENABLELOGGINGSENDMESSAGESONLYWHENANERROROCCURS。可以修改的日志方式ALWAYSSENDMESSAGES(一直打印输出日志,不仅在错误时)STANDARDLOG所有请求反馈的日志,包括SUCCESSFUL和FAIL的日志EXTENDEDLOG可提供扩展的日志信息包括SUBSTITUTION打印所有使用的参数值DATARETURNEDBYSERVER打印每个客户端请求服务器返回的数据值ADVANCEDTRACE日志中打印所有的消息信息和函数执行的信息LOG的存储路径在RES文件夹下如果从脚本中直接关联CREATESCENARIO则在脚本的目录下RES下如果直接打开CREATESCENARIO然后再选择脚本,则存储在C盘中具体该场景的日志结果存放位置,可以查看CONTROLL的RESULT界面的RESULTSETTING定义的目录RECORDINGLOG和GENERATIONLOG区别RECORDINGLOG是录制脚本时产生的日志名,主要是客户端和服务端通信时的一些交互信息。将系统的RESPONSE打印在日志中式打印在RECORDINGLOG中GENERATIONLOG是录制完脚本后,LR调用相关协议的函数将录制的内容描述成LR脚本时产生的日志选取系统的RESPONSE信息单协议从RECORDINGLOG选取多协议从GENERATIONLOG选取什么是超文本包含超链接和各种多媒体元素标记的文本。这些超文本文件彼此连接,形成网状,因此又被称为网页链接使用URL表示。最常见的超文本格式是超文本语言。什么是URLURL即统一资源定位符(UNIFORMRESZOURCELOCATOR),用来唯一标示万维网中的某一文档。URL由协议、主机端口(默认为80)以及文件名三部分构成HTTP/WWWSTYUCOM80/NEWS/INDEXHTML协议/主机端口(80)/文件名及其路径什么是超文本传输协议HTTP是一种按照URL指示,将超文本文档从一台主机(WEB服务器)传输到另外一台主机(浏览器)的应用层服务,以实现超链接的功能。在用户点击URL为HTTP/WWWSTUUCOM/INDEXHTML链接后,浏览器和WEB服务器执行以下动作浏览器分析超链接中的URL浏览器向DNS请求解析HTTP/地址DNS将解析出的IP地址()返回浏览器浏览器与服务器建立TPC连接(80端口)浏览器请求文档GET/INDEXHTML服务器给出响应,将文档INDEXHTML发送给浏览器释放TCP连接浏览器显示INDEXHTML中的内容网络是有一组协议组成,TPC/UDP是核心层协议TCPTRANSMISSIONCONTROLPROTOCOL,传输控制协议基于连接的协议,正式收发数据前,不需和对方建立可靠的连接能保证传递全部数据(三次握手)UDP(USERDATAPROTOCOL,用户数据包协议)面向非连接的协议,不与对方进行连接,直接发送数据包UDP适用于一次只传送少量数据、对可靠性要求不高的应用环境超文本传送协议HTTP的报文结构HTTP有两类报文请求报文从客户端向服务器发送请求报文响应报文从服务器到数据的回答由于HTTP在报文中的字段都是一些ACCII码串,字段的长度都是不确定的。报文由三个部分组成,即状态行,首部行和实体主题。在请求报文中,开始行就是状态行方法(METHOD)是对所请求对象所进行的操作,也是一些命令状态码(STATUSCODE)是响应报文状态行中包含的以三位数字,知名特定请求是否被满足,失败原因等1XX通知信息100服务器正在处理客户请求2XX成功200请求成功(OK)3XX重定向301页面改变了位置4XX客户端错误403禁止的页面;404页面未找到5XX服务器错误500服务器内部错误,503以后再试头(HEADER)类型说明USERAGENT请求关于浏览器和它的平台的信息ACCEPT请求客户能处理的页面类型关联(CORRELATION)把脚本中某些写死的(HARDCODED)数据,转变成撷取自服务器所送的、动态的、每次都不一样的数据何时做关联正常录制,但是回放不成功,考虑是否关联。会出现什么错误信息,与系统的错误处理机制有关。错误信息有可能会提示重新登入,但也有可能直接就显示HTTP404的错误信息在LR的LOG中也有些错误的提示比如27979等的信息一般的关联操作步骤1、从服务器返回的数据中选取需要进行关联的数据2、将该数据存入脚本的参数中3、将脚本中需要使用该数据的地方用参数化来替代数据池策略其他数据类型DATETIME用当前的日期、时间替换参数符号描述C用数字表示完整的日期时间C完整的日期(用字符串表示)和时间GROUPNAME(组名)参数类型用VUSER组的名称替代参数。创建方案是,要制定VUSER组的名称,否则运行脚本时,组名始终为无从可用格式中选择其中一种或者新建一种格式,来制定参数的长度LOADGENERATORNAME在实际运行中,LOADRUNNER使用该虚拟用户所在LOADGENERATOR的机器名来替代ITERATIONNUMBER在实际运行中,测试的循环次数RANDOMNUMBER随即取值来替代UNIQUENUMBER唯一编号。在属性设置中可以设置第一个数以及递增的数的大小。使用该参数类型必须注意可以接受的最大数。注这里说的递增意思是各个用户取第一个数,最大为块大小VUSERID设置比较简单。在实际运行中,LOADRUNNER使用该虚拟用户的ID来替换。注也可设置格式常用的函数拷贝一个字符串到另外一个字符串STRCPYSTR,“HELLO“STRCAT函数添加一个字符串到另外一个字符串的末尾STRCATSTR,“WORLD“STRCMP函数比较两个字符串,如果相等返回0STRCMPSTRING1,STRING2ATOI函数转换一个字符串为一个整形ATOISTRING_TO_CONVERT_TO_INTITOA函数根据给定的进制,转换一个整形数据为字符串ITOAINTEGER_TO_CONVER_TO_STRING,DESTINATION_STRING,BASEINTSORUBTFCHARSTRING,CIBSTCGARFORMAT_STRING,ARGS格式化数字字符串SPRINTF能够将整数打印到字符串中(类似ITOA)如把整数123打印到一个字符串保存到S中。SPRINTFS,“D“,123/产生123可以指定宽度,不足的空格左边补空格SPRINTFS,“8D8D“,123,4567/产生“1234567“连接字符串SPRINTF能够一次连接多个字符串优于STRCAT例CHARS128SPRINTFS,“SLOVES“,“I“,“YOU“例参数名称格式化输出到变量中SPRINTFSTR2,“PARAM_D“,1LR_MESSAGE“STR2S“,LR_EVAL_STRINGSTR2LR_EVAL_STRING“参数名“取得LR参数的数值。可将LR参数转化为C语言变量STRCPYSTR,LR_EVAL_STRING“PARAM_1“LR_SAVE_STRING“字符串变量“,“参数名“将字符变量里的值传递给指定参数。通过该函数来改变DATEFILE类型参数的数值。LR_SAVE_STRINGLR_EVAL_STRING“PARAM“,“PARAM_1“INTSRANDTIME利用时间设置随即种子。SRANDTIMENULL/利用当前时间设置随即种子INTRANDVOID获得0到最大数之间的随机数RND_NUMBERRAND100/生成099之间的随机数MEMORY内存使用情况是性能中非常重要的因素。如果系统“页交换”频繁,说明内存不足。“页交换”是使用称为“页面”的单位,将固定大小的代码和数据块从RAM移动到磁盘的过程,其目的是为了释放内存空间。尽管某些页交换使系统使用比实际更多的内存,也是可以接受的。但频繁页交换将降低系统性能。减少页交换将更显著提高系统影响速度。要监控内存不足的情况,请从以下的对象计数器开始MEMORYAVAILABLEMBYTES当前系统的可用内存(以M为单位)至少要有10的物理内存值。当处理器向内存指定的位置请求一页(数据或代码)出现错误时,就构成了一个PAGEFAULT如果该页在内存的其他位置,该错误称为软错误(用TRANSTIONFAULT/SEC计数器衡量);如果该页必须从硬盘上重新读取,称为硬错误。许多处理器可以在有大量软错误的情况下继续操作。但硬错误有可能导致明显的延迟。PAGEFAULTS/SEC是处理器每秒处理的错误页(包括软错误和硬错误)PAGESINPUT/SEC是为了解决硬错误页,从硬盘上读取的页数,而PAGEREADS/SEC是为了解决硬错误,从硬盘读取的错误。如果PAGEREADS/SEC比例持续保存为5,表示可能内存不足PAGES/SEC是指解析硬页错误从磁盘读取或者写入磁盘的页数MEMORYCACHEBYTES文件系统缓存(FILESYSTEMCACHE),默认情况下为50的可用物理内存。如IIS50运行内存不够时,它会自动整理缓存。需要关注该计数器的趋势变化。SYSTEMCONTEXTSWITCHES/SEC指计算机上的所有处理器全部从一个线程转换到另一个线程的综合速率。为了避免错误,必须保证在恢复一个任务之后,其上下文环境跟即将挂起前是一样的。操作系统内核有责任通过在任务挂起前保存其上下文来确保这种情况。当任务恢复时,保存的上下文就被操作系统内核恢复到先前的执行情况。保存一个被挂起的任务的上下文并在任务恢复时恢复其上下文的这个处理过程就叫上下文切换(CONTEXTSWITCHING)。如果系统由于应用程序代码效率低下或者系统结构设计有缺陷而导致大量的上下文切换(CONTEXTSWITCHES/SEC显示的上下文切换次数比较大),那么就会占用大量的系统资源。如果系统的吞吐量降低并且CPU的使用率很高,并且此现象发生时切换水平在15000以上,那么意味着上下文切换次数过高。DISKTIME指搜选磁盘驱动器用于为读或写入请求提供服务所用的时间的百分比AVGDISKQUEUELENGTH指读取和写入请求(为所选磁盘在实例间隔中队列的)的平均数。该值应不超过磁盘数的152倍。要提高性能,可能要增加磁盘AVERAGEDISKREAD/WRITEQUEUELENGTH指读取(写入)请求(队列)的平均数DISKREADSWRITE/S物理磁盘上每秒钟磁盘读、写的次数。两者相加,应小于磁盘设备的最大容量。BYTESTOTAL/SEC为发送和接收字节的速率,包括帧字节在内。判断网络连接速度是否瓶颈,可以用该计数器的质和目前网络的带宽比较分析原则具体问题具体分析(对于不同的应用系统,不同的测试目的,不同的性能关注点)查找瓶颈时按一下顺序,由易到难服务器硬件瓶颈网络瓶颈(对局域网,可以不考虑)服务器操作系统瓶颈(参数配置)中间件瓶颈参数配置,数据库,WEB服务器等应用瓶颈SQL语句、数据库设计、业务逻辑、算法等注以上过程并不是每个分析都需要的,要根据测试目的和要求来确定分析的深度分段排除法,很有效分析的信息来源1、根据场景运行过程中的错误提示信息2、根据测试结果收集到的监控指标数据查看错误发生情况。整个测试过程的错误发生情况是分析的重点。下面是查看错误发生情况的常用准则查看错误发生曲线在整个测试过程中是否有规律变化(VUSER),如果是,则意味着程序在并发处理方面存在一定的缺陷查看错误分类统计,作为优化系统的参考如何选择协议直接判断直接判断系统使用的协议,如WEB系统使用HTTP/HTML协议,FTP服务使用办公FTP协议等通过开发人员了解被测系统的协议使用数据监听工具分析数据包借助协议分析工具如SNIFFERPRO,ETHEREAL等;可以通过抓取数据然后对数据包进行分析得出相应协议万能协议WINSOCKET协议只要在WINDOWS上的通信软件都可以使用这个协议,但是脚本调试困难,有时包含很多16进制,需要复杂的管理很多高级协议如FTP,HTTP协议等,以及所有基于WINDOW应用例如IE,WSFTP底层都是在WINSOCKET层上通信何时选择WINSOCKET协议大部分网络协议都是架构在WINSOCKET协议之上的,对于LR不支持的协议,我们可以在WINSOCKET层上录制脚本。或者当找不到何种协议的时候,可以选择WINSOCKET来录制WINSOCKET是建立在传输层协议(主要是TCP和UDP)上的一种套接字规范是支持TCP/UDP的网络通信的基本操作单元,可以看到不同主机间的进程进行双向通信的断面点,简单的说就是通信的两方的一种约定,用套接字中的相关函数来完成通信过程WINSOCKET脚本典型代码LRS_CREATE_SOCKET“SOCKET0“,“UDP“,“LOCALHOST0“,“REMOTEHOSTDOORS2084“,LRSLASARGLRS_CREATE_SOCKET“SOCKET1“,“TCP“,“LOACLHOST0“,“REMOTEHOSTWWW2YAHOOCOM80“,LRSLASARGLRS_SEND“SOCKET0“,“BUF0“,LRSLASARGLRS_RECEIVE“SOCKET0“,“BUF1“,LRSLASARGLRS_SEND“SOCKET1“,“BUF2“,LRSLASARGLRS_SEND“SOCKET0“,“BUF0“,LRSLASARGLRS_RECEIVE“SOCKET0“,“BUF4“,LRSLASARG这是访问YAHOO的一个应用,WINSOCKET先打开一个WINSOCKET连接,然后收发包第四个文件时DATAWS,它里面记载了在ACTION里面所有收发包的内容BUF2包含了HTTP/WWWYAHOOCOM/的包,BUF5包含了从SERVER收到的回应在BUF序列号的后面是BUFF的字节数注很多BUFF中只有“,可以注视掉注意录制脚本时DATAWS文件被创建,文件中收到的BUFFER内容在每次运行时不变LR指判断BUFFER数据包大小,而不是具体内容,收到BOO,SERVER响应ROO,对而SERVER响应ROOT就不对LRS_SAVE_SEARCHED_STRING将静态或接受到的缓冲区中搜索指定的字符串,将出现字符串的缓存区部分保存到参数中LRS_SAVE_PARAM将静态或接受到的缓冲区保存到参数中LRS_SAVE_PARAM_EX将用户静态或接受到的缓冲区保存到参数中通信层WINSOCK,WWW,WAP,NETLOAD数据层ODBC,MYSQLSERVER,ORACLE,ORACLEFORMSSERVER,SYBASE,DB2,ADO应用层SAP,TUXEDO,UNIFACE,JAVAWORKBENCH产生测试脚本C,C编译后生成DLL文件CONDUCTOR产生一个SESSION文件,里面保存了PLAYER信息和DLL信息CONDUCTOR执行一个SESSION,把DLL交给PLAYER来运行OLAYER执行DLL,产生一个TIMING文件CONDUCTOR把所有PLAYER产生的TIMING文件交给ANALYZE分析ANALYZE生成各种报表,把测试结果展现给用户测试用例相关知识测试过程中遇到的问题不知道是否全面的测试了所有内容测试的覆盖率无法衡量对新版本的重复测试很难实施存在大量的冗余测试影响测试效率和别人合作时,出现冗余测试测试用例为实施测试而向被测试系统提供的输入数据,操作或各种环境设置以及期望结果的一个特定结合解决要测什么,怎么测,和如何衡量的问题用途执行测试,发现缺陷重复执行测试,发现缺陷管理测试过程回归测试,验证缺陷是否修复优点使测试更加方便的执行提高测试效率节省执行测试的时间使测试更能按照时间计划执行使测试过程更方便管理收集资料需求文档设计文档遗留系统相关文档与相关人员讨论探索性测试探索性测试与经过深思熟虑的、计划好的设计过程有所不同,它并不预先设计测试用例或者精确地按照一个计划来执行,它依靠的是测试人员的知识水平和创造力可用于重现和分析缺陷、研究缺陷和程序其他模块的相关性是测试用例有利的补充具体问题具体分析测试用例项目名称(版本)模块名称测试功能项测试人员测试时间测试目的预设条件其他参考信息用例编号相关用例用例说明输入条件执行方法预期结果测试结果结果编号黑盒测试黑盒测试被称为功能测试或者数据驱动测试测试时,把被测程序视为已个不能打开的黑盒子,在不考虑内部结构和内部特性的情况下进行。灰盒测试灰盒测试,介于白盒测试与黑盒测试之间的测试灰盒测试关注输出对于输入的正确性,同时也关注内部表现,但这种关注不像白盒那样详细,完整明知是通过一些表征性的现实,时间,标志来判断内部的运行状态意义有时实现正确,但内部有错误,但每次都进行白盒测试,效率会很低,因此需要采取灰盒测试。黑盒测试的方法等价类划分按照需求规格说明书,把程序输入域划分成若干部分,从每个部分中选取少数代表性数据当作测试用例。经过这种划分后,每一类的代表性数据在测试中的作用都等价于这一类中的其他值等价类的划分分为有效的和无效的合理的、有意义的输入数据构成的集合是有效等价类不合理的、无意义的输入数据构成的集合是无效等价类。用来检查程序中功能的实现是否不符合规格说明要求提供了完备性保证了无冗余性减少测试用例边界值决策表猜错法确定测试用例根据等价类来设计测试用例,其过程如下1为每个等价类规定一个唯一的编号2设计一个新的测试用例,使其尽可能多的覆盖未被覆盖的有效等价类,此项工作重复进行,直到所有的有效等价类都被覆盖为止3设计一个新的测试用例,使其覆盖一个而且仅仅一个尚未被覆盖的无效等价类,此项工作重复进行,直到所有的无效等价类都被覆盖之所以要这样做,是因为某些程序中对某一输入错误的检查往往会屏蔽对其他输入错误的检查,因此,必须针对每一个无效等价类,分别设计测试用例确定等价类的原则1、如果输入条件规定了取值范围,或者是值的个数,则可以确立一个有效等价类和两个无效等价类2、如果输入条件规定了输入值的集合,或者是规定了“必须如何“的条件,这时可确立一个有效等价类和一个无效等价类3、如果输入的条件是一个布尔量,则可以确定一个有效等价类和一个无效等价类4、如果规定了输入数据时一组值,而且程序要对每个输入值分别进行处理。这时可谓每一个输入值确立一个有效等价类再针对这组确立一个无效等价类,它应是所有不允许输入值的集合。5、如果规定了输入数据必须遵守的规则,则可以确定一个有效等价类(符合规则),和若干个无效等价类(从不同角度违反规则)。等价类的特点测试内容相同如果等价类中的一个测试能够捕获一个缺陷,那么选择该等价类中的其他测试也能捕获该缺陷如果等价类中的一个测试不能够捕获一个缺陷,那么选择该等价类中的其他测试也不能捕获该缺陷边界值边界值分析关注的是输入空间的边界边界值分析的基本思路想是使用在最小值、略高于最小值、最大值、略低于最大值的地方容易出错单缺陷假设边界值分析的关键假设在可靠性理论中叫做“单缺陷“假设失效较少的由连个(或多个)缺陷同时引起的决策表分析输入条件和输出条件分析、简化画出输入输出关系图(判定表)设计测试用例决策表法是黑盒测试方法中最为严格、最具逻辑性的测试方法能够避免将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用决策表能够设计出完整的测试用例集合条件桩列出问题的所有条件条件项针对条件桩给出的条件列出所有可能的取值动作桩列出问题规定的可能采取的操作动作项指出在条件项的各组取值情况下应采取的动作。合并如果一个条件项(某列的条件值)和另外一个条件项动作是相同的,且两个条件项对应的每一行的值只有一个是不同的,则可以将其合并。合并的项目除了不同值变为“不关心“条目外,其余不变包含如果两个条件项的动作相同,对任意条件1的值和条件2中对应的值,如果满足A)条件1的值是T(F),则条件2中的也是TFB)如果条件1的值是(不关心),则条件2的值是T,F,称条件1包含条件2,条件2可以撤去重复A、B就可以得到精简的决策表建立决策表的步骤1、确定规则个数。假设有N个条件,则有2的N次幂个规则2、列出所有的条件桩和动作桩3、填入条件项4、填入动作项。制定初始决策表5、进行简化,合并相似规则或者相同动作决策表的使用范围1、规格说明以判定表的形式给出的,或者容易转换成判定表2、条件排列顺序和规则的排列顺序不影响执行那些操作3、规则之间是独立的,某一规则出发的操作和其他操作无关组合测试组合测试关注的是用例对输入变量取值的组合覆盖情况。常见的组合覆盖策略有1、全组合2、单因素覆盖3、两两组合覆盖单因素组合覆盖所选的测试用例覆盖所有的变量取值。单因素组合覆盖所需的用例数与取值最多的变量的取值相同单因素组合覆盖能够发现软件中所有的单点故障两两组合覆盖所选的测试用例覆盖所有的任意两个输入变量间取值的组合情况引入两两组合(成对组合)的概念之后,我们可以用成对组合集合来表示通常的测试用例集,它能覆盖一定数量的成对组合元素所谓测试设计,就是设计出一组测试用例以依之对软件进行测试;显然,不同的测试用例集所覆盖的成对组合元素数量是不同的在同样大小的测试用例集情况下,覆盖的成对组合元素数量越多,表明该测试用例集的测试效果越好。因此,如何选择测试用例集是一个值得研究的问题错误猜测错误猜测是基于经验和直觉推测程序中所有可能存在的各种错误,从而有针对性得设计测试用例的方法需要测试人员具备的技术有关被测系统的知识,如设计方法或实现技术有关的早期测试阶段的结果的指示测试类似或相关系统的经验典型的实现错误的知识通用的测试经验规则如何选择测试方法在任何情况下都必须使用边界值分析方法用等价类划分补充一些测试用例用错误推测法再追加一些测试用例如果程序的功能说明中含有输入条件的组合情况,则应在一开始就选用决策表法如果程序某功能适合自动测试,可以采用自动测试以及随机测试易用性对于一个既熟悉测试工作,又熟悉被测软件的测试人员,应当可以花费很少的时间久可以理解测试用例中表达的测试思路,并可以很快的执行完这个测试用例易维护性当开发过程中的某些因素影响了测试需求,测试用例的作者或其他测试设计人员,应该可以花费很少的时间就完成定位并维护所有相关测试用例的工作有效验证客户需求在产品之后的运行中可以充分满足用户需求,不发生重大漏测问题QTP完成自动化测试原理1、封装被测系统到对象库2、对比对象库里的对象属性和运行时的被测对象的属性3、对比一致后找到对应的对象,按照脚本驱动对象运行测试对象管理的机制创建测试获取被操作对象的属性信息1、使用唯一的对象名在对象库中记录该对象2、将对象的全部属性保存在数据仓库中3、表示关键属性信息4、在脚本中记录对象名称和相应的动作运行测试1、从脚本中获得对象名称2、在对象库中定位对象,并获取其关键属性3、根据关键属性信息在被测应用中定位对象4、根据脚本中录入的动作执行相应的操作查看对象的属性的两种方式对象库中查看对象的属性OBJECTSPY在仓库中添加新对象的两种方式ADDOBJECTS快捷菜单VIEW/ADDOBJECTS对象库分为本地对象库和共享对象库,区别是本地对象库只应用于本地ACTION调用共享对象库以TSR扩展名文件形式存在,可以被其他ACTION调用对象库中的对象可以在录制过程中自动产生,也可以手动添加指定对象对象属性可以在对象库中任意修改,并且其属性描述支持正则表达式对象的识别OBJECTSPY使用QTP的目的是想用它来执行重复的手动,主要是用于回归测试和测试同一软件的新版本测试前要考虑好如何对应用程序进行测试,例如要测试那些功能、操作系统、输入数据和期望的输出数据等注意为确保IE运行正常,依次点击菜单查看工具栏,将上网助手等插件卸载掉,否则可能会把测试过程中弹出的窗口当成广告,进行拦截如果使用INTERNETEXPLORER作为浏览器,应该清除用户名和密码的“自动完成“选项检查点检查点将特定属性的当前数据与预期数据进行比较,用于判定被测程序功能是否正确CHECKPOINT可以分两类QTP内置检查点和自定义检查点QTP内置检查点实现原理录制时,根据用户设置的验证内容,记录数据作为基准数据回放时,QTP捕获对象运行时的数据,与校本中的基准数据进行比较如果基准数据和运行数据相同,结果为PASS,反之为FAILED使用对象的CHECKPROPERTY过程或函数创建检查点先把检查的属性所属对象添加到对象库中用SPY工具探测出属性的名字和相应的值使用对象的绝对描述包含对象,格式XXXCHECKPROPE

温馨提示

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

评论

0/150

提交评论