用delphi开发的程序,应该用什么协议来qtp录制脚本本

软件测试之验收测试流程_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
5页免费34页免费2页2下载券14页免费14页5下载券24页5下载券3页1下载券2页1下载券21页免费1页1下载券
喜欢此文档的还喜欢29页2下载券9页免费2页1下载券7页免费19页2下载券
软件测试之验收测试流程|简​要​介​绍​资​料​的​主​要​内​容​,​以​获​得​更​多​的​关​注
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:12.59KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢believe 日志 - 数据信息库 - 51Testing软件测试网 51Testing软件测试网-中国软件测试人的精神家园 - Powered by X-Space
性能测试兵法
&&& 在大多数的性能测试工作中,我们可以看出很多内容都是互相关联的。这就给我们提供了一个思路:性能测试的很多内容可以经过一定的组织统一来进行。统一开展性能测试的巨大好处是可以由浅入深按照层次对系统进行测试,进而减少不必要的工作量,以实现节约测试成本的目的。为此,本文提出了“全面性能测试模型”的概念。  “全面性能测试模型”提出的主要依据就是一种类型的性能测试可以在某些条件下转化成为另外一种类型的性能测试,而这些类型的测试实施也是很类似的。例如:针对一个网站进行测试,模拟10到50个用户就是在进行常规性能测试,用户增加到1000乃至上万就变成了压力/负载测试。如果同时对系统进行大量的数据查询操作,就包含了强度测试。1 全面性能测试模型  在“全面性能测试模型”中,把Web性能测试分为八个类别。下面首先介绍八个性能测试类别的主要内容。  (1)预期指标的性能测试:系统在需求分析和设计阶段都会提出一些性能指标,这些指标是性能测试要完成的首要工作之一,本模型把预先确定的一些性能指标的测试称为预期指标的性能测试。  这些指标主要是指诸如“系统可以支持并发用户1000”、“系统响应时间不得高于10秒”等在产品说明书等文档中中十分明确的内容,对这种预先承诺的性能要求,测试小组应该“首当其冲”完成这类测试。  (2)独立业务性能测试:独立业务主要是指一些核心业务模块,这些模块通常具有功能比较复杂、使用比较频繁、属于核心业务等特点。这类特殊的、功能比较独立的业务模块始终都是性能测试重点。我们通常不但要测试这类模块的一些和性能相关的算法,还要测试这类模块对并发用户的响应情况。  核心业务模块在需求阶段就可以确定,在系统测试阶段开始单独测试其性能。如果是系统类软件或者特殊应用的软件,通常从单元测试阶段就开始进行测试,在后继的集成测试、系统测试、验收测试中进一步进行测试,以保证核心业务模块的性能稳定。  用户并发测试是核心业务模块的重点测试内容,“并发”的主要内容是模拟一定数量的用户同时使用某一核心模块的“相同”或者“不同”的功能,并且持续一段时间。对“相同”的功能进行并发测试分为两种类型,一类是在同一时刻进行完全一样的操作,例如打开同一条数据记录进行查看;另外一类是在同一时刻使用完全一样的功能,例如同时提交数据进行保存。可以看出后者是包含前前者的,后者是前者的特例,这种并发测试都要持续一定的时间。  从微观角度讲,同时使用某一核心模块“不同”的功能,也是一种组合业务性能测试,只不过这种组合的相关业务大分类是一致的。  (3)组合业务性能测试:通常不会所有的用户只使用一个或者几个核心业务模块,每个功能模块都可能被使用到,所以Web性能测试既要模拟多用户的“相同”操作(这里的“相同”指很多用户使用同一功能),又要模拟多用户的“不同”操作(这里的“不同”指很多用户同时对一个或者多个模块的不同功能进行操作),对多个业务进行组合性能测试。组合业务测试是最接近用户实际使用情况的测试,因而是性能测试的核心内容。我们通常按照用户的实际使用情况来模拟使用各个模板的人数比例。  由于组合业务测试是最反映用户使用系统情况的测试,因而组合测试往往和服务器(操作系统、Web服务器、数据库服务器)性能测试结合起来,在通过工具模拟用户行为的同时,还通过测试工具的监控功能采集服务器的计数器信息,进而全面分析系统的瓶颈,为改进系统提供有利的依据。  用户并发测试是组合业务测试的核心内容。“组合”并发的突出特点是分成不同的用户组进行并发,每组的用户比例要根据实际情况来进行匹配。组合业务测试可以理解为包含了“核心业务模块并发”和“非核心业务模块并发”同时进行的并发用户测试。  (4)疲劳强度性能测试:疲劳强度测试是在系统稳定运行下模拟较大的用户数量、并长时间运行系统的测试,通过综合分析执行指标和资源监控来确定系统处理最大业务量时的性能,主要目的是为了测试系统的稳定性。  (5)大数据量性能测试:大数据量测试分为两种:一种是针对某些系统存储、传输、统计查询等业务进行大数据量的测试,主要是测试数据增多时的性能情况,这类一般都是针对某些特殊的核心业务或者一些日常比较常用的组合业务的测试。  第二种是极限状态下的数据测试,主要是指系统数据量达到一定程度时,通过性能测试来评估系统的响应情况,测试的对象也是某些核心业务或者日常常用的组合业务。例如系统的数据每年只备份转移一次,可分别选择一个季度、半年、一年作为参考,模拟输入各个时间段的预计数据量,然后测试系统的性能,进而预估系统的性能走向。  由于大数据量仍然是为了测试系统的业务处理能力,因此大数据量性能测试可以独立进行,也可以和前面的独立、组合业务测试结合起来进行,主要由性能测试策略来决定。由于大数据量测试一般在投产环境进行,因此把它单独独立出来,和疲劳强度测试放在一起,在整个性能测试的后期进行。大数据量测试可以理解为特定条件下的核心业务或者组合业务测试。  (6)网络性能测试:网络性能测试主要是为了准确展示带宽、延迟、负载和端口的变化是如何影响用户的响应时间的。在实际的软件项目中,主要是测试应用系统的用户数目与网络带宽的关系。  (7)服务器性能测试(操作系统、Web服务器、数据库服务器):服务器性能测试分为初级和高级两种形式。“初级服务器性能测试”主要是指在业务系统工作或者进行前面其它种类性能测试的时候,监控服务器的一些计数器信息,通过这些数据对服务器进行综合性能分析,找出系统瓶颈,为调优或者提高性能提供依据。“高级服务器性能测试”一般不由测试人员进行,由专门的系统管理员来进行,例如数据库服务器由专门的DBA来进行测试和调优。本文主要讨论在测试中常用到的“初级服务器性能测试”,既通过工具对服务器资源进行监控的性能测试。  (8)一些特殊测试:主要是指配置测试、内存泄漏测试一些特殊的Web性能测试。这类性能测试或者和前面的测试结合起来进行,或者在一些特殊情况下会独立进行,本文重点来讨论前一种情况,因为后一种情况往往通过特有的工具、较大投入的进行,可以不作为性能测试的范畴来研究。2性能测试通用策略2.1性能测试策略通用方法  本节主要介绍一下通用的性能测试策略制定方法。性能测试策略一般从需求设计阶段开始讨论制定,策略的内容决定着性能测试工作投入多少资源、什么时间开始实施等后继工作如何安排。其制定的主要依据是“软件自身特点”和“用户对性能的关注程度”两个因素,其中软件的自身特点起决定作用。  软件按照用途的不同分为两大类:系统类软件和应用类软件。系统类软件对性能一般要求比较高,因此性能测试应该尽早介入。应用类软件分为特殊类应用和一般类应用,特殊类应用主要指银行、电信、电力、保险、医疗、安全等领域类的软件,这类软件使用比较频繁,用户较多,一般也要较早进行性能测试;一般类应用主要指一些普通应用,例如办公自动化软件、MIS系统等,一般应用类软件多根据实际情况决定性能测试策略,比如OA系统,可以早开始、也可以最后进行性能测试,这类软件受用户因素影响比较大。  用户一般可以分为四类:即对性能特别关注、中等重视、一般关注、不怎么关注四类。这里这么划分并不意味着用户不关注性能测试人员就可以忽略性能测试。不过,用户如果特别关注性能,测试人员也应该特别重视性能测试。表1列出了性能测试策略制定的基本原则。(注意:这里的用户是广义范围的用户,包括所有和我们的产品有利害关系的群体。因而不单单指最终使用产品的用户,这些用户既可以是为我们提出需求的产品部,也可以是公司的董事会,甚至是我们研发人员自己。)  软件的特点决定性能测试策略另外一个重要原因就是“一般应用类软件”通常耗费资源较少,因此可以通过提高硬件配置,进而改善运行环境来提高“一般应用类软件”的性能。从硬件方面解决性能问题往往更容易做到,同时可以降低我们的开发成本,不过也不能过分让用户进行较大的硬件投入,否则会降低我们的“客户满意度”。我们调整性能最好的办法还是软硬件相结合。  用户对待系统性能的态度影响性能测试策略,但不起决定作用的根本原因是我们最终要把产品交付给用户来使用,而不是做出来给用户欣赏。因此不管用户是否重视性能测试,即使根本不关心,对于性能要求高的软件产品我们都应该按照测试上面的策略进行合理的安排。同时,如果我们的上帝——用户如果特别重视,这意味着我们需要进行更多的性能测试方面的投入,因为我们有义务使我们的用户满意。3 Web性能测试模型使用方法  “全面性能测试模型”是针对Web性能测试而提出的一种方法,主要目的是为了比较全面的开展性能测试,使Web性能测试更容易组织和开展。本模型包含了测试策略制定的通用方法和测试用例设计通用方案,测试用例的设计覆盖了应用软件、服务器、操作系统多方面的内容,按照由浅入深的顺利对性能测试进行了合理的组织。  “全面性能测试模型”是一种经很多性能测试项目抽象出来的方法论,主要用来指导测试,它一般不适合具体的性能测试项目,因为任何一个项目都会有它的特定背景。要想通过“Web全面性能测试模型”做好性能测试工作,首先要制定好性能测试策略,同时还要按照一些基本指导原则来使用“Web性能测试用例设计模型”的内容。这些原则主要包括如下的内容:  测试策略遵从最低成本原则。Web性能测试本身是一种高投入的测试,而实际中国内公司通常在测试上进行较低的投入,Web性能测试只是全部测试工作的一部分,很多项目只能进行一些重要的性能内容,这就决定测试经理制定性能测试策略时在资源投入方面一定要遵从最低成本化原则。最低成本的衡量标准主要指“投入的测试成本能否使系统满足预先确定的性能测试目标”,只要我们经过反复的“测试——系统调优——测试”后,系统符合性能需求并有一定的扩展空间,就可以认为性能测试工作是成功的。反之,如果系统经过测试后不满足性能需求或者满足性能需求后仍然投入资源,都可以认为是不合理的。  策略为中心原则。本原则不但对性能测试工作有效,对其他类型的测试工作都具有同样的指导意义。测试策略不但决定了我们测试用例设计时的主要内容,还决定着我们实施测试工作时如何根据项目的实际情况进行处理,例如:如果项目时间比较紧张,我们完全可以按照测试用例的优先级只执行一部分性能测试用例。因此,性能测试策略应该贯穿整个性能测试过程。  适当裁剪原则。裁剪原则主要是针对性能用例设计而言。Web性能测试用例设计模型主要是针对电信、银行级的应用而提出的,包含的测试内容比较全面,而这类项目的性能测试一般周期较长、投入较大,作者曾亲身经历过测试周期为一年的银行项目。要想性能测试用例设计模型在大多数测试项目中使用,必须对测试用例模型包含的内容进行合理的裁剪,这样做的主要目的是为了适合特定项目的测试需求,进而节约测试成本。  裁减的主要依据是性能测试策略,我们根据策略制定方法制定出测试策略,然后依据策略从“五类性能测试用例”中选择适当的内容来编写测试用例。例如有些要求不高的静态门户网站,用户也没有提出性能方面的要求,我们完全可以只测试一下用户并发情况作为系统性能的参考。  完善模型原则。本模型只是作者的工作经验总结,由于不同的性能测试任务都有自己的项目背景,因而需要对模型内容进行不断的调整、补充、完善,才能使之适合更多的性能测试工作。不断完善具体来说就是要在工作中不断总结自己的经验,形成自己的“Web全面性能测试模型”。只有“自己的”测试模型,才是最符合自己需要的模型。  模型具体化原则。模型具体化主要是指把本模型运用到具体的项目中,是前面所有原则的目标。如果只记住模型的这些条条框框,然后生搬硬套框架来设计测试,只能得到适得其反的结果。要想使模型在Web性能工作中发挥作用,只有根据实际项目的特点制定合理的性能测试策略、编写适当的性能测试用例,并在测试实施中灵活的执行测试方案。  综合上面的分析,可以看出模型使用完全可以概括成两个字——“活用”。要想真正做好性能测试工作,最有效的办法就是在掌握基本理论和方法后,在工作中不断的去探索和总结,不断的完善该模型,形成自己的“Web全面性能测试模型”。  “全面性能测试模型”是一种很有效的做Web性能测试的“兵法”,这正是本篇命名为“兵法篇”的目的。“兵法”是“将帅”们“打仗”的必备知识,学会了兵法才可以指挥战争,但是兵法毕竟不能代替具体的“战术”,它只是“打胜仗”的前提条件,具体的“仗”怎么去“打”,仍然要根据具体的战场情况来指挥。因此,具体的Web性能测试工作仍然按照项目的自身特点去组织和实施。
随着软件测试行业的逐渐发展,性能测试也变得火热起来。从各大测试论坛和测试交流群的交流主题的热门程度来看,性能测试已经成为大家非常感兴趣的话题。性能测试作为软件测试行业技术性相对较高的工作(自动化测试、白盒测试、性能测试)来说,个人觉得其操作门槛还是不低的。对于测试新手来说入门有一定的难度,做的好就更加不容易了,可能花了不少时间而实际收获不大。因此觉得有必要来专门探讨一下性能测试的门槛,以及如何更好的迈进这个门槛。先来分析一下一些关于性能测试入门级的常见问题:1、请问怎么做象PhotoShop这类单机程序的性能测试;2、用Delphi开发的程序,应该用什么协议来录制脚本;3、用IP欺骗能对外网进行测试吗;关于第1个问题,问题本身并没有错误,单机版也有性能问题。但和我们通常所说的性能测试是两回事,不能混为一谈。如果这个算是问题的话,那我想是由于不清楚性能测试的概念和原理所造成的。第2个问题也不少见,但这种问题无法回答。我们知道,性能测试采用的协议是由被测系统的体系架构和通信协议决定的,而不在乎你用什么开发工具或开发语言。第3个问题,关于IP欺骗一般只用在内网,不管你在内网如何欺骗,经过网络地址转换后到了外网上的IP地址表现就是你的公网的IP,除非你一开始就设置成公网的IP地址,但这个一般都不可能。这个问题体现提问者对于网络知识的理解还不深入。以上问题反映了在学习性能测试人员的一个比较普遍的现象,缺乏必要的知识积累、知识面不足,但又由于学习兴趣或工作压力期望急于求成,由此而形成这样一个矛盾的局面。在我看来,性能测试是一项综合性很强的工作,甚至可以作为一项工程来看待。从性能测试的知识体系来看,性能测试需要掌握性能测试的基础知识、业务知识、开发相关知识、以及性能测试工具。基础知识包括性能测试的原理、常见的测试类型、方法、策略,如何进行一个计划、设计、实施、分析等性能测试过程。没有性能测试基础知识,一切简单的性能测试在你手上都将出现各种问题,测试交流将变得难以沟通,同时性能测试的成功率将大大降低。业务知识通常都被忽略了。性能测试要基于被测系统的应用场景才有实际的价值,测试场景对性能测试结果有决定性的影响,因此测试场景的设计是非常关键的,场景的设计需要和业务应用结合起来。在一些比较正规的性能测试过程中,会有业务人员配合一起做性能用例设计的。开发相关的知识也是必须具备的知识,通常在这方面也是我们最大的缺点。这方面的知识包括操作系统、数据库、应用服务器、中间件、网络等,每一个都是一门很深的学问,而要求性能测试人员都精通好像也不太现实。但起码的知识还是需要掌握的,比如通常有哪些参数需要监控和调整,它们之间是如何通信和运作的,某一方面知识的欠缺都可能导致测试模拟不准确或问题定位不充分,没有这些知识的支撑性能测试将变得难以下手或者学习工作的进展都会有很大的影响。测试工具的应用,这个是目前学习的焦点。只有在前面3点的基础上,采用合适的测试工具,才有助于测试目标的达成。从另外的角度分析,性能测试又可以分为技术、方法和管理方面的范畴。没有方法的指导光有技术那是行不通的,那是有勇无谋的体现。同时性能测试经常作为一个独立的阶段和活动,更需要用项目管理的方法进行,比如一个在客户现场的性能测试验收测试,与客户进行交流、时间计划的制定、测试进度的控制、测试脚本和测试数据的版本管理、各种资源的谐调等,都是需要用管理的思想进行的。从以上分析可以看出,由于性能测试工作需要具备这么多的知识,因此在一定程度上也成为了性能测试的门槛。这个综合的门槛将会成为很多性能测试新手入门的一道障碍,要突破这道障碍,建议结合自己的知识体系有针对性地去学习和提高。性能测试是一个技术与方法并重的工作,目前论坛上多谈技术,少谈方法,很多人甚至在没有任何性能测试基础知识的情况下就埋头苦学测试工具,我觉得是不应该的。我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段。性能测试对于我们最大的价值在于方法和经验,我们学习的目标是整个性能测试过程上方法学的东西,而不是掌握具体某个测试工具。LoadRunner并不是万能的,在什么情况下应该采用什么工具才能达到最佳的效果,需要我们去判断。另外,学习需要有一个循序渐进的过程,性能测试需要长时间的知识积累,没有什么捷径可言。从学习效率和职业发展方面考虑,本人不太建议没有工作经验的测试新手一上来就扎进性能测试之中去,这样将花费你更多的时间精力去学习,是一种事倍功半的效果。
系统性能调优
性能测试分析人员经过对结果的分析以后,有可能提出系统存在性能瓶颈。这时相关开发人员、数据库管理员、系统管理员、网络管理员等就需要根据性能测试分析人员提出的意见同性能分析人员共同分析确定更细节的内容,相关人员对系统进行调整以后,性能测试人员继续进行第二轮、第三轮……的测试,与以前的测试结果进行对比,从而确定经过调整以后系统的性能是否有提升。有一点需要提醒大家,就是在进行性能调整的时候,最好一次只调整一项内容或者一类内容,避免一次调整多项内容而引起性能提高却不知道是由于调整那项关键指标而改善性能的。那么在进行系统的调优过程中是否有什么好的策略来知道我们工作呢?经过多年的工作,作者的经验是按照由易到难的顺序对系统性能进行调优。系统调优由易到难的先后顺序如下:1.& && &&&硬件问题2.& && &&&网络问题3.& && &&&应用服务器、数据库等配置问题4.& && &&&源代码、数据库脚本问题5.& && &&&系统构架问题硬件发生问题是最显而易见的,如果CPU不能满足复杂的数学逻辑运算,可以考虑更换CPU,如果硬盘容量很小,承受不了很多的数据可以考虑更换高速、大容量硬盘等。如果网络带宽不够,可以考虑对网络进行升级和改造,将网络更换成高速网络;还可以将系统应用与平时公司日常应用进行隔离等方式,达到提高网络传输速率的目的。很多情况下,系统性能不是十分理想的一个重要原因就是没有对应用服务器、数据库等软件进行调优和设置引起来的,如:Tomcat调整堆内存和扩展内存的大小,数据库引入连接池技术等。源代码、数据库脚本在上述调整无效的情况下,您可以选择的一种调优方式,但是由于设计到对源代码的改变有可能会引入缺陷,所以在调优以后,不仅需要对性能的测试还要对功能进行验证,是否正确。这种方式需要通过对数据库建立适当的索引,以及运用简单的语句替代复杂的语句,从而达到提高SQL语句运行效率的作用,还可以在编码过程中选择好的算法,减少响应时间,引入缓存等技术。最后,在上述尝试都不见效的情况下,您就需要考虑现行的构架是否合适,选择效率高的构架,但由于构架的改动比较大,所以您应该慎重对待。您现在的位置: &
使用LoadRunner录制脚本时如何选择合适的协议?
使用LoadRunner录制脚本时如何选择合适的协议?
  软件测试每周一问:很多人使用loadrunner录制脚本时都得不到理想的结果,出现这种情况大多是由于录制脚本时选择了不当的协议。那我们在录制脚本前如何选择合适的通信协议呢?用单协议还是双协议?欢迎大家讨论交流!
  会员huior的精彩回答:
  怎么开场呢?我就不说这个问题“很傻很天真”了,这就好比“渔夫要捞鱼,如何选择合适的网眼”、“程序员要写代码,如何选择系统头文件”一样,提出这样的问题充分暴露出一种浮躁盲目的情绪:
  业务不精:对被测软件环境的总体架构不了解,不知道client和server间的通讯方式;  工具不精:但凡对LoadRunner的基本原理有所了解,估计也不会有这样的问题。
  其实只要你能把以上的两点搞明白了,这个问题也就不再是问题。  LoadRunner属于应用在客户端的测试工具,在客户端模拟大量并发用户去访问服务器,从而达到给服务器施加压力的目的。所以说LoadRunner模拟的就是客户端,其脚本代表的是客户端用户所进行的业务操作,即只要脚本能表示用户的业务操作就可以。
  具体到脚本应该选择什么协议,说直观点,就是选择脚本中选择哪些系统头文件的问题。试想一下,如果你碰到开发人员写程序时不知道用什么头文件,估计大部分测试员暗地里要“笑话”人家;现在轮到自己了,呵呵。下面是各种协议和相关头文件的对应关系。
  具体到选择协议,个人看法,有两种策略。
  选择click and scrīpt,相对比较简单的协议,类似于WinRunner和QTP的GUI级别的脚本,直接记录鼠标和键盘的动作,不需要关注底层的通讯协议,可以避免很多问题(如关联等),容易理解,不过LoadRunner 9.0支持的click and scrīpt不多,只有以下三种:  Web (Click and scrīpt)  SAP (Click and scrīpt)  Ajax (Click and scrīpt)
  另外一种就是选择协议的依据就是client和server之间的通讯协议了,记住,依据只是通讯协议,而不是别的。
  谁说B/S结构的就一定选择WEB(HTTP/HTML)?你试试51testing首页的“在线客服”,或者在线的QQ或者MSN,看看用WEB(HTTP/HTML)能否录到期望的脚本?
  谁又说C/S结构的就一定是WinSocket协议?目前很多的Win32应用客户端其实也是HTTP通讯。难道各位没有注意到LoadRunner还有下面的选项
  所以说选择什么协议和什么c/s、b/s结构关系不大,唯一的依据就是客户端和服务器之间的通讯。明白这一点后,什么“单协议”、“双协议多协议”统统不再是问题。
  唯有在测试前有充分的准备,才能在测试实施中一帆风顺。关于测试前的准备,可以参考本站另外一篇文章《LoadRunner前传:压力测试前的分析准备工作》
  软件测试每周一问:当前问题讨论:如何设计或者挑选有效的回归测试用例?(08-05-23),欢迎大家踊跃参与讨论交流!
  版权声明:51Testing软件测试网及相关内容提供者拥有内容的全部版权,未经明确的书面许可,任何人或单位不得对本网站内容复制、转载或进行镜像。51testing软件测试网欢迎与业内同行进行有益的合作和交流,如果有任何有关内容方面的合作事宜,请联系我们。
&&&主编推荐
&&&热门试卷
&&&最新视频
&&&热门阅读
&&&最新问答
&&&&&&&&&&&&&&&
希赛网 版权所有 & &&&&湘教QS2-164&&增值电信业务经营许可证湘B2-收藏(2579个)
  最近对测试框架进行了重构,也对其中原有的一些设计进行了反思。其中不免有一些自我感觉得意之处,因此写出来和大家分享。这是一个重构的过程,所以将以重构的思路来讲述。  先来说说为什么会重构。原先的框架系统,思路是将自动化代码,通过调用控件的适配接口,最终完成对界面的操作。而这些代码,也被编译到DLL中。这里面就有一些问题:1.每一次修改,都必须重新编译。2.由于DLL被程序Load,不可直接覆盖,所以必须重新启动被测试系统。3.基本上不可以部分执行脚本。4.自动化代码和自动化框架代码同时暴露给用户。  再一次说明一下原先的设计。原先的设计中,自动化代码将作为DLL的一部分被编译进去,而这个DLL会作为程序系统的一部分被装载。本来我想用图形来表示,突然感觉其实可以多多用表达式来表示,我想做一个尝试,这样可以免去图片的麻烦。  被测试系统(自动化框架(自动化代码))  其中括号表示包含关系。最终只有一个系统在运行。为了解决这些问题,我们思考从脚本入手,进行自动化测试框架的重构。  首先重构的对象是,将自动化代码的编写改变为XML的
来源:陈能技的质量感悟 - CSDNBlog  原文:Where Does Exploratory Testing Fit? - James Bach   如果你也和我一样发现探索性测试值得一用,那么问题就来了:什么时候使用它?如何融入到软件生命周期中?   探索性性测试的简单定义是:测试执行和测试设计同时进行。更具体的定义是:探索直到测试员能有效地控制测试设计,同时执行测试和使用测试执行过程中获得的信息来设计新的和更好的测试。   这个定义包括单纯的探索性测试,探索产品和设计一个测试策略,基于你作为测试员对你的任务的理解而明确的测试,但是没有任何明确的指引。定义还包括阶段的探索性测试,你被分配到指定的测试,并明确了使用什么方法测试,但是没有设计好的测试步骤。定义还包括改进测试,你对测试进行详细说明或使用它来启发相关的测试。它也包括测试步骤的创建,因为你在执行测试的时候把过程文档化。   It's more about how to do ET well, than when to do it.  关键是怎样做好探索性测试,而不是什么时候做探
来源:中国IT实验室
摘要 在多年的运营实践中,中国移动公司发现网元指标的优劣并不反映业务质量的优劣。影响用户对业务质量的感知因素很多,包括终端、核心网、业务提供平台、无线环境等,因此开发自动测试系统,模拟用户感知,及时发现网络问题势在必行。本文详细介绍了一种新的自动测试系统——集中式拨打测试系统的实现和应用。
中国移动公司对网络质量的追求可以说精益求精,在多年的运营实践中,中国移动公司发现网元指标的优劣并不反映业务质量的优劣。影响用户对业务质量的感知因素很多,包括终端、核心网、业务提供平台、无线环境等,因此开发自动测试系统,模拟用户感知,及时发现网络问题势在必行。
2、现有的分散式拨打测试设备的优缺点分析
目前,业界普遍使用的拨打测试系统是分散式的,由各个终端分散在需要测试的地点,模仿用户行为进行拨打测试。
其工作原理为:利用手机终端模块进行拨打测试,每台手机终端模块通过专线或GPRS无线通道连接到中心业务应用服务器,进行测试数据的上传及测试任务的下达。中心业务应用服务器接受各点的测试结果,
来源:中国IT实验室  集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。   集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别。   可以以多种方式进行集成测试,而下面是三种常用的类别:  由上而下的集成测试方法要求首先测试和集成最高级别的模块。这使高级别的逻辑和数据流可以在过程的早期阶段测试,有助于最大限度地减少对驱动程序的需求。但是,对存根 (stub) 的需求使测试管理变得复杂,低级别的实用工具在开发周期中相对较晚的阶段测试。由上
来源:papercrane的专栏 - CSDNBlog  谈到自动化测试方面的误区,不少文章倾向于从人性、管理、职业规划等方面进行探讨。我这次专门从计划、设计、实现、维护等技术角度总结一下。  自动化的最终目标是什么?  很多人以为是像工业革命一样消灭手工劳动者,在这里等于手工测试人员。但是测试存在一个目前来看还算正确的、其他行业不多见的悖论:任何时候,你都不能准 确知道还有多少bug,就像警察不能准确知道还有多少贼一样。所以自动化的最终目标——目前来说——是解放尽量多的人手去进行更多的测试,除非有一种手段 能像《少数派报告》里面的预言少女一样预知所有的bug。因为永远有bug,有未知的bug,所以目前不存在能覆盖所有bug的手段,这意味着总需要人的 参与。现代化手段只是减少了而不是杜绝对人员的需求。所以如果认为自动化工作一做完就没活干,那你就大错特错了。正认为这些人闲下来,他们有空发现更难发 现的bug。这本来没什么大不了的,但是搁在计划阶段如果过分乐观,牛皮吹得太大的话,到后面就不容易圆回去了。因为按上面分析,自动化测试总有些地方是 力有不逮的,如果这些地方
1.在提交高通前务必要检查文档与实际程序的功能表现是否相同,比如说,游戏增加了密技功能,在文档中就要有相应的说明。
2.在模拟器上图像处理速度较快,所以不会出现游戏中移动的图像变模糊的现象,但是由于手机的分辨率相对低,所以一般在模拟器显示正常的速度,到了手机就应该让开发人员适当调慢,否则将会出现移动物体变模糊不能清晰辨认的情况。
3.有些游戏使用了很多的图片资源,当在两个界面之间(例如在主菜单界面和帮助界面之间,主界面菜单是由许多图片组成的,帮助界面是一个html文件的浏览显示),连续按若干次使其在两个界面之间连续切换,会出现图像重叠现象,其原因是手机的CPU处理速度跟不上刷新速度,而且主界面的图片资源一直没有释放,导致图像的残留。一般可模拟Grinder把这些类似的问题测出来。
4.是否正确处理来电。如果没有适当正确的来电处理,有些来电会使游戏画面变乱,有些直接退出,甚至死机。Brew程序员往往会在来电处理后的恢复中忘了对游戏音乐的处理,比如说原先选择了关闭音乐的,来电处理后音乐又自动开始播放了。有时候需要模拟两个或以上的连续的来电以发
来源:关河的测试生活 - 博客园
很多测试工程师强调测试的方法和思想,到底什么是测试的方法和思想?
测试的思路是一种立体的思路,物理学在说到多维空间的时候,往往会用“生活在球面上的动物”来形象地说明二维空间和三维空间的不同,在这里我也想借用多维空间的概念说一说测试。
在我看来,测试应该至少具有三个维度:1.测试的级别——软件测试在不同的级别(level)上开展,例如单元测试、集成测试和系统测试。单元测试是最低的一个级别,测试的对象是构成软件系统的最小单位Unit;集成测试则是中间的级别,测试对象是由多个Unit组成的子系统;而系统测试则是高级别的测试,测试对象是完整的系统。 2.测试的类型——测试类型和测试级别是正交的维度,测试类型是指对测试对象进行的不同类型的测试,同一个类型的测试可以在不同级别的测试中有不同的体现。例如性能测试,在单元测试、系统测试中都可能会进行针对性能的测试,但在这两个不同级别的测试中,性能测试的具体体现也不相同——单元测试中的性能测试侧重对单元性能的评估,对算法性能的评估;而系统测试中的性能测试则侧重用户感受,
来源:51Testing软件测试网
随着软件测试行业的逐渐发展,性能测试也变得火热起来。从各大测试论坛和测试交流群的交流主题的热门程度来看,性能测试已经成为大家非常感兴趣的话题。性能测试作为软件测试行业技术性相对较高的工作(自动化测试、白盒测试、性能测试)来说,个人觉得其操作门槛还是不低的。对于测试新手来说入门有一定的难度,做的好就更加不容易了,可能花了不少时间而实际收获不大。因此觉得有必要来专门探讨一下性能测试的门槛,以及如何更好的迈进这个门槛。
先来分析一下一些关于性能测试入门级的常见问题:1、请问怎么做象PhotoShop这类单机程序的性能测试;2、用Delphi开发的程序,应该用什么协议来录制脚本;3、用IP欺骗能对外网进行测试吗;
关于第1个问题,问题本身并没有错误,单机版也有性能问题。但和我们通常所说的性能测试是两回事,不能混为一谈。如果这个算是问题的话,那我想是由于不清楚性能测试的概念和原理所造成的。第2个问题也不少见,但这种问题无法回答。我们知道,性能测试采用的协议是由被测系统的体系架构和通信协议决定的,
说到单元测试,这次负责的这个项目中这方面表现的很让我伤心。带得这几个成员都是有两年多的经验了,为什么连代码写完了都不知道要测试,更不要说单元测试了。
一天小X很牛B的发给我一封邮件,标题:考试王已经砌底OK。内容也是简单的两句话,还是“考试王已经砌底OK!!!!!!”一堆的“!”号还怕我看不见,还把邮件抄送给部门老大,表示他很厉害。看到有成员做完模块,当然是很高兴了,合入到工程中一测试,kao,只是简单的测试,就发现十来处BUG,而且还不包括操作方面的,我狂晕,这是什么程序啊,做为一个程序员,连最基本的程序写好之后要测试都不知道,更不要说做单元测试了。返回修改之后,给我发了第二个版本,我要吐血,我一测,发现的新BUG只比第一次少一个,一个小小的改动,竟然引出新的问题出来。唉,我不知道是深圳的环境这样,还是人的问题。当然这方面我也有责任,做功能开发过程中,没有对他们的代码进行检视。导致在最后才发现问题。
没多久小L也提供了他的代码,我发现小X的问题之后,还特意招集团队成员开个会说明这件事,结果测试一下他的功能,“不是我不明白,是世界变化快!”,也许是我
来源:51Testing软件测试网
曾经对软件测试很轻视,因为我那时很无知,只是一名普通的中国程序员,这也是那时绝大多数程序员的心态,那时中国程序员最讲究“编程才是硬道理”。
如今却非常热爱软件测试,包括软件测试工具,方法,理论,技术。因为我在3年的测试工作中,深刻体会到软件测试的重要性和趣味性。此时,我已经跳出了“小程序员”的圈子,以软件系统工程的更大视角审视软件测试这项工作。
很长时间以来我一直被下面的问题而困惑,有些问题至今仍然只是具有肤浅的认识,而且,我感觉我做的测试项目越多,阅读的测试书籍越多,我越感到我对软件测试理解的越肤浅。因为我越来越感受到软件测试的广度和深度的无限性,它像大海宽广,像宇宙那样深邃。 为什么要进行软件测试?软件测试的前途如何?软件测试的工具和思想谁更重要?软件测试的最高境界是什么?
软件测试是保证软件质量的重要活动,是软件项目实施的不可缺少的环节。软件测试的直接目的是发现软件中存在的缺陷。此为测试的有效性。
在软件项目没有结束之前的全部软件缺陷主要由软件开发人员负责,因为软件缺陷来自
【测试环境】CPU:
Intel Pentium4 2.66GHz Memory: 1GB Disk:
73GB/SCSI OS:
FreeBSD 4.11 PHP: PHP 5.2.1MySQL: MySQL 4.1.23b 【 前期工作 】[ my.cnf ]max_heap_table_size = 128M[ 建表 ]---- Store engine heap--CREATE TABLE `tbl_heap` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(32) NOT NULL default '',
`email` varchar(32) NOT NULL default '',
`summary` varchar(255) default '',
KEY `id` (`id`)
) ENGINE=HEAP DEFAULT CH
来源:51Testing软件测试网1.引言
随着软件技术的迅猛发展,软件的质量愈来愈受到广泛的重视。而测试又是保证软件质量的重要手段。根据IEEE/ANSI标准,软件测试的定义是:&使用为发现错误所选择的输入和状态的组合而执行代码的过程&。这就非常明确地提出了软件测试是以发现错误,检验是否满足需求为目标。软件测试在软件生命周期中占有非常突出的重要地位,是保证软件质量的重要手段。根据Boehm的统计,软件开发总成本中,用在测试上的开销要占40%到50%。软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误,以提高软件的质量。现代的软件测试不仅仅是在软件开发完成以后来做测试工作,而是将测试渗入到软件开发的各个阶段,而且提高自动化软件测试手段,来提高测试效率。
有些项目的主持人,认为以尽快的速度把测试之前的所有开发阶段完成(实际并没有完成),早日开始测试,以图达到快速和高质量(因为似乎有更长的时间可用于测试)。实际的效果将会是俗语所说的&欲速则不达&。从常识就可以知道,花开发时间去继续扩大发展前面阶段引入的错误,得出的只能是更大量的需要
来源:51Testing软件测试网  只要我们想想Web服务,就很明确了。把我们现有的一些应用暴露其业务功能为Web服务是一个很好的主意。实际上,确有一些IT公司在初涉SOA领域时首先做的就是这件事。他们创建起Web服务库。而只要你选择正确的业务构件,就会马上见效。  但是你如何测试这些Web服务,知道它们就是在做你想要它们做的事情呢?要知道原来的应用可能根本没有预想到自己会被做成一些构件的。程序代码可能是意大利面式的。想象一下某个相当简单的东西,比如管理用户数据库。假设,我们的Order Processing应用就这么干,因此我们需要把用户更新功能(即添加、修改和删除用户)作为web服务暴露出来。我们了解此应用,因此我们知道其程序逻辑做了我们想要它做的事情。但它还做了别的什么事情吗?这就是潜在的问题。  Web服务的单元测试  我们要如何做呢?我们可以读源代码。这是个好主意,去查看时候在我们添加、修改或删除用户时调用了我们不想调用的逻辑。但我们需要做的比这更多。我们除了把新的web服务与Order Processing应用一起测试之外没有别的办法。我们
来源:中国软件测试时代  随着测试流程的不断规范以及软件测试技术的进一步细化,软件测试自动化已经日益成为一支不可忽视的力量。能否借助于这支外在力量以及如何借助于这支力量来规范企业测试流程、提高特定测试活动的效率,正是本
期所要讨论的话题。  目前,软件测试自动化的研究领域主要集中在软件测试流程的自动化管理以及动态测试的自动化(如单元测试、功能测试以及性能测试方面)。在这两个领域,与手工测试相比,测试自动化的优势是明显的。首先自动化测试可以提高测试效率,使测试人员更加专注于新的测试模块的建立和开发,从而提高测试覆盖率; 其次,自动化测试更便于测试资产的数字化管理,使得测试资产在整个测试生命周期内可以得到复用,这个特点在功能测试和回归测试中尤其具有意义; 此外,测试流程自动化管理可以使机构的测试活动开展更加过程化,这很符合CMMI过程改进的思想。根据Oppenheimer Funds的调查,在2001年前后的3年中,全球范围内由于采用了测试自动化手段所实现的投资回报率高达1500%。  方案选型六大原则  然而存在优势是否就一定意味着选择自动化测试方案都能
来源:中国软件测试时代  本文简要描述了自动化功能测试的优势和挑战,帮助企业考虑实施最佳测试自动化的方法。1.介绍  毫无疑问,严格的功能测试是成功开发应用的关键。开发人员,测试小组和管理人员所面临的挑战是,如何加速测试流程和提高测试的精确性和完备性,同时还不能增加已然很紧张的预算。  通过将功能测试的关键环节自动化,可以满足有挑战性的发布时间安排,测试得更加全面和可靠,检验业务过程功能的正确性,从而从上线的运营中,获得极高的产值和客户满意度。然而,功能测试的自动化会产生一些新的顾虑:  测试过程自动化的成本是多少?其投资回报率(ROI)是什么?  哪些应用/过程适合做自动化测试,哪些不合适?  是否需要新的培训,这将对当前的开发计划安排产生怎样的影响?  自动化测试得正确地方法论是什么?  自动化测试时涉及到哪些情况?  当比较自动化测试产品时,哪些功能最重要?  在自动化测试项目开始之前,以上和其他一些问题应该得到全面地调查和了解。  2.功能测试与单元测试  功能测试是指确保应用按期望运行,也就是
来源:51Testing软件测试网
CMMI5在小型项目中的成本过高,根据自己对CMMI5的实施体会与在实际项目中的应用,在项目实施的过程中精简了CMMI5的实施流程和部分文档,这个精简的流程在项目实施的过程中既可以确保流程规范与质量信赖又可以节约项目成本。以下跟大家分享一下CMMI5在项目中的精简应用: 一、需求与规范的管理
1、由测试负责人(或专门的需求分析负责人)统一接收来自移动总的行业网关相关规范和新需求,测试负责人浏览规范获知大意后回复邮件,将规范和新需求转发给开发经理、项目经理、相关的开发人员和测试人员,同时commit到CVS;
2、测试负责人(或专门的需求分析负责人)、项目经理仔细阅读规范与需求后,对规范和新需求进行研究,并就难点和疑点进行讨论,整理出重点内容,并将重点内容发给开发经理、项目经理、相关的开发人员和测试人员,同时commit到CVS;
3、开发经理、项目经理、测试负责人、需求分析负责人、相关的开发人员与测试人员开会对规范、需求和重点内容进行讨论,确定需求的具体含义以及最终实现的需求和功能点;
来源:51Testing软件测试网
首先,确保你所发现的问题是确实是一个bug,不要出现因为测试人员操作错误或配置错误所引起的“bug”,这样会降低你在开发人员心中的可信度。在测试的时候,如果发现测试的实际结果与预期测试结果不符时,不要着急马上报bug,先想想为什么会出现错误。作为专业的测试人员,应该能够对出现的问题进行跟踪,确认了在配置、操作没有错误的前提下,通过追踪分析确认所测试的业务流程确实是存在bug,并能大概对bug的产生原因进行定位。测试人员,需要做到专业,尽量少给开发找麻烦,不要制造实际上并不存在的bug。
确认了所发现的问题是一个bug之后,按照测试步骤再执行一次,确保bug是可重现的而不是随机的。如果bug不能重现,应该尽量找到bug重现的规律,在一些比较难重现的问题可以找开发配合一起查找原因,如果还是无法重现则需要在bug report中对出现的问题描述清楚并说明出现的随机性。
接下来就是填写bug report了,在填写bug report的时候,最重要的是bug的标题和bug描述。在bug报告中,首先用一句话对bug进行
来源:51Testing软件测试网
TestNG-Abbot 是一种测试框架,它为 GUI 组件的测试带来了新的活力。本月,Andrew Glover 将带领您亲历使用 TestNG-Abbot 测试 GUI 过程中难度最大的部分,即理解用户场景的实现过程。一旦理解了它,您会发现将 GUI 组件隔离并使用框架所含的极其方便的 fixture 对象对其进行验证是多么地简单。  使用 Swing、AWT 和类似的技术构建用户界面通常会给开发人员进行测试带来挑战,原因如下:
底层图形框架的复杂性
GUI 中表现形式和业务逻辑之间的耦合
缺乏直观的自动测试框架
当然,前两个原因并不新鲜 —— 图形框架本来就很复杂,而且向 GUI 应用程序添加业务功能总是会给测试造成麻烦。另一方面,过去几年中有许多方便的框架涌现出来,确实使 GUI 测试更加便利。
本月,我将介绍一种新的框架,它极大地减轻了 GUI 测试的痛苦。TestNG-Abbot 简介
TestNG-Abbot 源自于两
来源:软件测试网
在软件测试过程中,测试数据的准备是一个工作量很大而且也是一个技术活。因此如何准备大量的测试数据,而且如何准备高质量的测试数据,满足测试的需求,就是一个重要的话题。
首先看数据的来源,数据的来源一般来讲有三个个,一个是根据被测系统需求的分析,针对正常业务,异常情况,边界情况等来构建完整的数据,又称为“造”数据。这不仅仅包括最基本的基础数据,比如:用户、权限、配置、基础编码、原数据等,还包括上面提到的业务数据。这对于比较小型的系统来说还是可行的,对于大型的系统来说可能就是一个巨大的工程了。
第二种方式就是利用现有系统,这适合已有类似系统,测试是针对升级或者增加功能的产品化的系统。这种情况把已经在生产环境中运行的数据导出。在此基础上再进行数据的整理、加工为测试数据。
还有一种方式就是将现有非电子化的业务数据录入到系统中,在验证业务的同时也完成了测试数据的积累。即边测试边积累数据。但是这种情况积累的数据往往有一定局限性,因为已经发生的业务数据基本是正确的、一致的,而且可能缺少某些特定业务的数据(不常发生的业务)。这样就需
  这个测试策略启发模型是测试策略的设计模式的子集。目的是提醒测试员在创建测试时应该考虑什么东西。最终目的是为了专业测试员能否对它进行个性化和使用在对话讨论中,自我指导学习和更充分的有意识的测试。Project Environment 项目环境包括资源、约束、项目中促使我们进行测试并且妨碍我们做好测试工作的其它力量。确保充分利用你拥有的资源,同时考虑你的约束。 Product Elements 产品元素产品元素是你打算要测试的东西。软件是一个复杂和不可见的东西,所以你要小心地确保你确实检查了产品的所有需要检查的东西。Quality Criteria 质量标准质量标准是作为测试员需要用来判定产品是否存在问题的规则、价值和来源。质量标准是多面的,通常是隐藏的或自相矛盾的。 Test Techniques 测试方法测试方法是用于创建测试的策略。所有的方法都包含某种对项目环境、产品元素和质量标准的分析在里面。Perceived Quality 预期的质量预期的质量是测试的结果。你永远也不知道软件产品的真正质量,但是
& 共23页&&nbsp&...&&&nbsp&&nbsp&&nbsp&&nbsp&&nbsp&&nbsp&&nbsp&&nbsp&&nbsp&}

我要回帖

更多关于 jmeter录制脚本 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信