搜索标题
存档
我的好友
统计信息
- 访问量: 492
- 日志数: 9
- 建立时间: 2008-05-13
- 更新时间: 2008-06-30
我的最新日志
-
自动化测试的学习
2008-6-30
首先我想说的是:自动化测试的思想是训练出来的,自动化测试工具是可以培训和使用出来的,如何将两者结合,需要很长时间的训练和锻炼的。这个是一个系统工程。关于如何上手自动化测试,个人感觉可以分成以下几个步骤走:
第一步,手工测试用例设计,达到任何时候,任何软件,都可以通过软件测试的方法,编写出比较好的测试用例,这个过程是一个训练的过程,要花很长的时间去做。
第二步,学习语言,一门语言就可以,可以经常编写一些大大小小的应用,理解程序开发过程,适当的时候可以写写简单的测试程序(自己理解的测试程序),这个也要花很长的时间去做。
第三步,学习一些测试脚本语言,有了前面的基础,这个过程就很快了。
第四步,在测试工作中总结哪些手工测试类型你认为需要有自动化,提升自己在这个过程中的锻炼。这个是在锻炼思想。
第五步,以手工测试中的某些点,编写测试代码来进行测试,目的覆盖某些功能点即可。
第六步,可以加入某些测试工具,学习工具的脚本语言,使用测试工具完成某些功能。这个过程是理解工具提倡的自动化测试思想,和工具提倡的自动化测试方法和方式。
第七步,自己开发测试代码和使用测试工具开发这两种方式交替使用,目的是覆盖更多的测试类型和更多的功能。
以上的步骤基本上是以训练你的测试技术为目的,并没有考虑到你公司的具体的情况,也没有考虑公司花费的成本,脚本的可维护性等等方面
第八步,综合运用测试技术(包括管理、维护等等),在一个统一的平台上完成更多的自动化测试,在这个过程中要体会和解决测试工具的成本、测试脚本开发成本、脚本如果管理、脚本如何维护等等相关的问题。一般来讲这类问题都不是很容易解决的。是一个系统的问题,值得讨论和研究的。对于前面的技术是可以训练出来的。
-
ADSL ISDN PSTN理解
2008-6-25
ADSL(Asymmetric Digital Subscriber Line)的中文名称即非对称数字用户专线。 传统的电话线使用了0KHz~4KHz的低频段进行语音传送,而电话线理论上有接近2MHz的带宽,窄带N—ISDN进行抽样编码划分信道可基本将2MHz的带宽充分利用,在窄带N—ISDN方式下,想进一步获得大于2M的带宽,只能转向宽带B—ISDN。但宽带B—ISDN 一直因设备复杂,成本极高而无市场推广价值。
ADSL因使用普通电话线作为传输介质,却有很高的带宽而得到迅速发展。ADSL正是使用了26KHz以后的高频带才提供了如此高的速度。具体工作流程是:经ADSL MODEM编码后的信号通过电话线传到电话局后再通过一个信号识别/分离器,如果是语音信号就传到电话交换机上,如果是数字信号就接入Internet。
ADSL的核心是编码技术,目前有离散多音复 用DMT(Discrete Multitone)和抑制载波幅度和相位CAP (Carrierless Amplitude/Phase Modulation)两种主要方法。两种方法的共同点是DMT 和CAP都使用正交幅度调制 (QAM)。两者的区别是,在 CAP中, 数据被调制到单一载波之上;在 DMT中,数据被调制到多个 载波之上,每个载波上的数据使用 QAM进行调制。两者相比,DMT技术复杂成本也要稍高一些,但由于DMT对线路的依赖性低,并且有很强的抗干扰和自适应能力,已被定为标准。
DMT使用0~4Kbps频带传输电话音频,用26K~1.1Mbps频带传送数据,并把它以4K的宽度分为25个上行子通道和249个下行子通道。速度计算公式为信道数×每信道采样值位数×调制速度,所以ADSL的理论上行速度为25×15×4KHz=1.5Mbps,而理论下行速度为249×15×4KHz=14.9Mbps。与ISDN单纯划分独占信道不同的是,ADSL中使用了调制技术,即采用频分多路复用 (FDM) 技术或回波消除(Echo Cancellation)技术实现在电话线上分隔有效带宽,从而产生多路信道,使频带得到复用,因此可用带宽大大增加。同时回波消除技术则使上 行频带与下行频带叠加, 通过本地回波抵消来区分两频带。由于电话铜线的质量问题以及外界环境干扰的存在,在不同时刻对不同频率上的信号有不同影响。DMT可根据探测到的信噪比—— 频率曲线自动调整各个子通道的速度使总体传输速度尽可能的接近给定条件下的最高速度。就是说,DMT理论上可以每赫兹传送15bits(位)数据,在干扰到来时受干扰的频率上的子通道可能降为每赫兹8bits,在不受干扰或干扰较小的子通道上仍然可保持15bits/赫兹或稍低。但对于CAP这类单载波单通道的方式,只要干扰存在各处都会降为8bits/赫兹,没受干扰的频段也被浪费了。基于DMT的ADSL还连续地对每个子通道进行监测,当某些通道噪音增大时DMT系统会自动地把分配给这个通道的数据流转移到其它通道去。中国使用的ADSL就是基于DMT编码方式。
******
ISDN :
ISDN(Integrated Service Digital Network,整合服务数字网络)是一种应用了10年的数字电话连结系统。这一系统可以让整个世界的点对点连结同时进行数据传输。ISDN是最早为人们接受的宽带上网方式,除了具备 128Kbps的传输速率外,ISDN 也能让使用者一边上网,一边讲电话。这对于上网成痴,但电话也很多的使用者而言,提供了很大的吸引力。
ISDN 的最早概念是在1972年由 CCITT(Consultative Committee for International Telephone and Telegraph)组织正式提出,普遍应用则是随后四、五年间的事。它的目的在于利用同一通信网络,提供使用者多样化的服务,并解决多项服务同步并行的问题。简单的说,就是让使用者可以用一条ISDN 电话线同时上网、打电话或是传送影像等。由于价格中等,ISDN 可以说是最早进入个人宽带上网的服务。
ISDN 电话线和一般家用电话最大的不同点在于它是"数字"的,而一般家用电话线则是"模拟"的。正因为使用“数字”传输,除了具有比一般家用电话线较快的传输速率外,即使在打一般语音电话时,也能享受更多的附加服务,例如来电显示、通话时间、多方通话等。ISDN 提供了两个数字通道,称之为B 通道。每个B 通道可以提供64Kbps 的传输速率,分开使用时,使用者可以利用一个B 通道连上网际网络,并同时使用另一个B 通道打电话、收发传真等。如果两个B 通道合用,就可以提供128Kbps 的传输速率,这也是ISDN 最快的传输速率。需要注意的,在ISDN技术词汇中,“K”代表1000,而不是通常的计算机词汇中的1024(210)。因此,64 Kbps带宽的通道代表数据传输速率为64,000 bps(比特/秒)。
严格说起来,ISDN 不能算是为了解决使用者接入带宽不足而流行的产品,因为其传输速率最快也只有128Kbps 而已。然而除了上网外,有更多的 ISDN 用户是看上它具备语音与资料传输同时使用的特性。因此点对点的通讯是ISDN 相当吃香的范畴,例如跨县市公司的视讯会议系统、医院的远程医疗系统或是学校的远程教学等。
****
PSTN:
公共交换电话网络(PSTN)是是一种全球语音通信电路交换网络,包括商业的和政府拥有的。它也指简单老式电话业务(POTS)。它是自Alexander Graham Bell发明电话以来所有的电路交换式电话网络的集合。如今,除了使用者和本地电话总机之间的最后连接部分,公共交换电话网络在技术上已经实现了完全的数字化。在和因特网的关系上,PSTN提供了因特网相当一部分的长距离基础设施。因特网服务供应商(ISPS)为了使用PSTN的长距离基础设施,以及在众多使用者之间通过信息交换来共享电路,需要付给设备拥有者费用。这样因特网的用户就只需要对因特网服务供应商付费 -
软件测试应该遵循的十条基本原则
2008-6-13
从用户的角度出发,就是希望通过软件测试能充分暴露软件中存在的问题和缺陷;从开发者的角度出发,就是希望测试能表明软件产品不存在错误,已经正确地实现了用户的需求。软件测试的原则尚没有标准的说法,大多只是经验之谈,以下可以作为测试的基本原则。
(1)所有的测试都应追溯到用户需求。
软件测试的目标在于揭示错误。从用户角度来看,最严重的错误是那些导致程序无法满足需求的错误。
(2)应当把“尽早地和不断地进行软件测试”作为软件测试者的座右铭。
应该在测试工作真正开始前的较长时间内就进行测试计划。测试计划可以在需求模型一完成就开始,详细的测试用例定义可以在设计模型被确定后立即开始。因此,所有测试应该在任何代码被产生前就进行计划和设计。
(3)pareto原则:测试发现的错误中80%很可能起源于20%的模块中。
当某个功能出问题,其对用户的影响有多大?然后根据风险大小确定测试的优先级。优先级高的测试,优先得到执行,一般来讲,针对用户最常用的20%功能(优先级高)的测试会得到完全执行,而低优先级的测试(另外用户不经常用的80%功能)就不是必要的,如果时间或经费不够,就暂时不做或少做。
(4)完全测试是不可能的,测试需要终止。
测试无法显示软件潜在的缺陷,“测试只能证明软件存在错误而不能证明软件没有错误”。最初的测试通常把焦点放在单个程序模块上,进一步测试的焦点则转向在集成的模块簇中寻找错误,最后在整个系统中寻找错误。在测试中不可能运行路径的每一种组合。然而,充分覆盖程序逻辑,并确保程序设计中使用的所有条件是有可能的。
(5)应由独立的第三方来构造测试。
第三方测试最大的特点在于它的专业性、独立性、客观性和公正性。对于软件开发商来说,经过第三方测试机构的测试,不仅可以通过专业化的测试手段发现软件错误,帮助开发商提升软件的品质,而且可以对软件有一个客观、科学的评价,有助于开发商认清自己产品的定位。对于行业主管部门以及软件使用者来说,由于第三方测试机构独立公正的地位,可以对被测试的软件有一个客观公正的评价,帮助用户选择合适、优秀的软件产品。
(6)充分注意测试中的群集现象。
测试后程序残存的错误数目与该程序中已发现的错误数目或检错率成正比。不要在某个程序段中找到几个错误就误认为该程序段就没有错误而不再测试,相反应该对错误群集的程序段进行重点测试。
(7)尽量避免测试的随意性。
测试计划应包括:所测软件的功能,输入和输出,测试内容,各项测试的进度安排,资源要求,测试资料,测试工具,测试用例的选择,测试的控制方法和过程,系统的配置方式,跟踪规则,调试规则,以及回归测试的规定等以及评价标准。
(8)兼顾合理的输入和不合理的输入数据。
(9)程序修改后要回归测试
修改程序后,应该重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。
(10)应长期保留测试用例,直至系统废弃。
妥善保存软件测试计划,测试用例,出错统计和最终分析报告,为维护等提供方便。
-
切莫忽视性能测试
2008-6-13
性能测试的重要性随着网络发展更凸显重要性,由于网络环境、数据库环境、应用服务器环境、系统平台
和 技术 等的复杂性和多样性,难以预知的用户负载和愈来愈复杂的应用程序使软件性能非常难于控制。虽然,改善系统性能不是单单依靠性能测试就能完成的,但性能测试至今仍是控制性能有效的手段。什么是性能测试
性能测试主要是通过自动化的测试工具模拟多种正常、峰值及异常负载来对系统的各项性能指标进行测试。一般来说,性能测试可概括为三个方面:在客户端性能的测试、在网络上性能的测试和在服务器端性能的测试。通常情况下,三方面有效的结合可以达到对系统性能全面的分析和瓶颈的预测。
性能测试的基本策略是自动负载和压力测试。通过在一台或几台PC机上模拟成百上千的虚拟用户同时执行业务的情景,对应用程序进行测试,同时记录下每一事务处理的时间、服务器峰值数据、数据库状态等。它主要包括并发性能测试、疲劳强度测试、大数据量测试和速度测试等,其中并发性能测试是重点。
(1)并发性能测试
并发性能测试是一个负载测试和压力测试的过程,即逐渐增加负载,直到系统出现瓶颈或者不能接收更多负载,通过综合分析执行指标和资源监控指标来确定系统并发性能的过程。例如当负载压力逐渐增加时,通过检测系统的相应输出如通过量、响应时间、CPU负载、内存使用等来决定系统的性能。
并发性能测试一般不采用手工方式,而是利用工具采用自动化方式进行。在测试时常常需要模拟真实 环境 测试,以考察在真实环境中的表现,这样测试出来的数据才有实际意义。目前,成熟的并发性能测试工具有很多,选择的依据主要是测试需求和性能价格 比。(2)疲劳强度测试
疲劳测试是采用系统稳定运行情况下能够支持的最大并发用户数,持续执行业务一段时间,通过综合分析执行指标和资源监控指标来确定系统处理最大工作量强度性能的过程。
疲劳强度测试可以采用工具自动化的方式进行测试,也可以手工编写程序测试,其中后者占的比例较大。一般情况是以服务器能够正常稳定响应请求的最大并发用户数进行一定时间的疲劳测试,获取执行指标数据和系统资源监控数据。如出现错误导致测试不能成功执行,则及时调整测试指标,例如降低用户数、缩短测试周期等。还有一种情况的疲劳测试是对当前系统性能的评估,用系统正常业务情况下并发用户数为 基础 ,进行一定时间的疲劳测试。(3)大数据量测试
大数据量测试可以分为两种类型:一是针对某些系统存储
、传输、统计、查询等业务进行大数据量的 独立 数据量测试;二是与压力性能测试、负载性能测试、疲劳性能测试相结合的综合数据量测试方案。大数据量测试的关键是测试数据的准备,可以依靠工具准备测试数据。进行性能测试的前提条件
在任何性能测试 软件应用程序必须达到性能测试接受标准。如果应用程序没有达到这些标准,则不应该进行性能测试,否则就是浪费时间和成本。进行性能测试的前提条件包括:活动 开始前,(1)已通过单元测试能力
在性能测试前所有应用程序必须先通过全面的单元测试策略,同时所附带的可被执行的单元测试代码应是完整和有效的。如果单元测试因为应用程序中的错误或缺少单元测试代码,那么应用程序则不应该进行性能测试。
(2)已通过低负载级别能力
在单用户和10个用户的低负载级别上,应用程序应该能在正常的计算时间达到合理的性能。如果应用程序无法在低负载级别正常运行,那么它肯定无法在更高负载级别正常运行。这时,开始性能测试将会浪费时间。
(3)已准备好测试数据
在性能测试期间执行应用程序所需的数据必须先准备好或已详细描述,以使性能测试小组能够建立与生产 环境 尽可能接近的模拟数据,要确保测试数据必须是真实、一致和完整的,任何与真实环境相差太远的测试数据都是无用的性能测试行为。 -
LoadRunner工具入门介绍
2008-6-12
Mercury LoadRunner 是一种预测系统行为和性能的负载测试工具。通过以模拟上千万用户实施并发负载及实时性能监测的方式来确认和查找问题,LoadRunner 能够对整个企业架构进行测试。通过使用LoadRunner ,企业能最大限度地缩短测试时间,优化性能和加速应用系统的发布周期。目前企业的网络应用环境都必须支持大量用户,网络体系架构中含各类应用环境且由不同供应商提供软件和硬件产品。难以预知的用户负载和愈来愈复杂的应用环境使公司时时担心会发生用户响应速度过慢,系统崩溃等问题。
上述的问题都不可避免地导致公司收益的损失,Mercury Interactive 的 LoadRunner 能让企业保护自己的收入来源,无需购置额外硬件而最大限度地利用现有的IT 资源,并确保终端用户在应用系统的各个环节中对其测试应用的质量,可靠性和可扩展性都有良好的评价。
LoadRunner 是一种适用于各种体系架构的自动负载测试工具,它能预测系统行为并优化系统性能。LoadRunner 的测试对象是整个企业的系统,它通过模拟实际用户的操作行为和实行实时性能监测,来帮助您更快的查找和发现问题。此外,LoadRunner 能支持广范的协议和技术,为您的特殊环境提供特殊的解决方案。
LoadRunner提供三大功能模块,分别介绍如下:
轻松创建虚拟用户——Virtual User Generator
使用LoadRunner 的Virtual User Generator,您能很简便地创立起系统负载。该引擎能够生成虚拟用户,以虚拟用户的方式模拟真实用户的业务操作行为。它先记录下业务流程(如下订单或机票预定),然后将其转化为测试脚本。利用虚拟用户,您可以在Windows ,UNIX 或Linux 机器上同时产生成千上万个用户访问。所以LoadRunner能极大的减少负载测试所需的硬件和人力资源。
另外,LoadRunner 的TurboLoad 专利技术能提供很高的适应性。TurboLoad 使您可以产生每天几十万名在线用户和数以百万计的点击数的负载。

用Virtual User Generator 建立测试脚本后,您可以对其进行参数化操作,这一操作能让您利用几套不同的实际发生数据来测试您的应用程序,从而反映出本系统的负载能力。以一个订单输入过程为例,参数化操作可将记录中的固定数据,如订单号和客户名称,由可变值来代替。在这些变量内随意输入可能的订单号和客户名,来匹配多个实际用户的操作行为。
LoadRunner 通过它的Data Wizard 来自动实现其测试数据的参数化。Data Wizard 直接连于数据库服务器,从中您可以获取所需的数据(如定单号和用户名)并直接将其输入到测试脚本。这样避免了人工处理数据的需要,Data Wizard 为您节省了大量的时间。为了进一步确定您的Virtual user 能够模拟真实用户,您可利用LoadRunner 控制某些行为特性。例如,只需要点击一下鼠标,您就能轻易控制交易的数量,交易频率,用户的思考时间和连接速度等。
创建真实的负载——Controller
Virtual users 建立起后,您需要设定您的负载方案,业务流程组合和虚拟用户数量。用LoadRunner 的Controller,您能很快组织起多用户的测试方案。Controller 的Rendezvous 功能提供一个互动的环境,在其中您既能建立起持续且循环的负载,又能管理和驱动负载测试方案。 而且,您可以利用它的日程计划服务来定义用户在什么时候访问系统以产生负载。这样,您就能将测试过程自动化。同样您还可以用Controller 来限定您的负载方案,在这个方案中所有的用户同时执行一个动作---如登陆到一个库存应用程序----来模拟峰值负载的情况。另外,您还能监测系统架构中各个组件的性能---- 包括服务器,数据库,网络设备等----来帮助客户决定系统的配置。
LoadRunner 通过它的AutoLoad 技术,为您提供更多的测试灵活性。使用AutoLoad ,您可以根据目前的用户人数事先设定测试目标,优化测试流程。例如,您的目标可以是确定您的应用系统承受的每秒点击数或每秒的交易量。
定位性能问题——Controller(实时监控场景)
LoadRunner 内含集成的实时监测器,在负载测试过程的任何时候,您都可以观察到应用系统的运行性能。这些性能监测器为您实时显示交易性能数据(如响应时间)和其它系统组件包括application server, web server,网路设备和数据库等的实时性能。这样,您就可以在测试过程中从客户和服务器的双方面评估这些系统组件的运行性能,从而更快地发现问题。再者,利用LoadRunner 的ContentCheck TM ,您可以判断负载下的应用程序功能正常与否。ContentCheck 在Virtual users 运行时,检测应用程序的网络数据包内容,从中确定是否有错误内容传送出去。它的实时浏览器帮助您从终端用户角度观察程序性能状况。
分析结果以精确定位问题所在——Analysis
一旦测试完毕后,LoadRunner 收集汇总所有的测试数据,并为您提供高级的分析和报告工具,以便迅速查找到性能问题并追溯原由。使用LoadRunner 的Web 交易细节监测器,您可以了解到将所有的图象、框架和文本下载到每一网页上所需的时间。
例如,这个交易细节分析机制能 够分析是否因为一个大尺寸的图形文件或是第三方的数据组件造成应用系统运行速度减慢。
另外,Web 交易细节监测器分解用于客户端、网络和服务器上端到端的反应时间,便于确认问题,定位查找真正出错的组件。例如,您可以将网络延时进行分解,以判断DNS 解析时间,连接服务器或SSL 认证所花费的时间。通过使用LoadRunner 的分析工具,您能很快地查找到出错的位置和原因并作出相应的调整。
重复测试保证系统发布的高性能
负载测试是一个重复过程。每次处理完一个出错情况,您都需要对您的应用程序在相同的方案下,再进行一次负载测试。以此检验您所做的修正是否改善了运行性能。测试Enterprise Java Beans
LoadRunne完全支持EJB的负载测试。这些基于JAVA的组件运行在应用服务器上,提供广泛的应用服务。通过测试这些组件 ,您可以在应用程序开发的早期就确认并解决可能产生的问题。 利用LoadRunner,您可以很方便地了解系统的性能。它的Controller允许您重复执行于出错修改前相同的测试方案。它的另一个基于HTML的报告提供您一个比较性能结果所需的基准,以此衡量在一段时间内,有多大程度的改进并确保应用成功。由于这些基于HTML的报告形式,您可以将其公布于您公司的内部网上,便于随时查阅。
最大化投资回报
所有Mercury Interative的产品和服务都是集成设计,能完全相容地一起运作。由于他们具有相同的核心技术,来自于LoadRunner和ActiveTest™的测试脚本,在Mercury Interative的主动负载测试服务下,可以被重复用于性能测试,借助Mercury Interative的监测功能,Topaz™和ActiveWatch™,测试脚本可重复利用从而平衡投资收益。更重要的是,您能为测试的前期部署和生产中的监测提供一个完整的应用性能管理解决方案。
支持无线应用协议
随着无线装置数量和种类的增多,您的测试计划需要同时满足传统的基于浏览器的用户和无线互联网设备,如手机和个人数子式助手。LoadRunner支持2项最广泛使用的协议:无线应用协议(WAP)和商务模式(I-mode).此外,通过负载测试整体构架--从入口到网络服务器,LoadRunner能让您只需要通过记录以此脚本,就可以完全检测这些互联网系统。
支持流媒体作用
LoadRunner还能支持流媒体应用。为了保证终端用户得到良好的操作体验和高质量的流动,您需要检测您的流媒体应用程序。使用LoadRunner,您可以记录和重放任何现代流行的多媒体数据流格式来诊断系统的性能问题,查找缘由,分析流应用的质量。
完整的企业应用环境的支持
LoadRunner支持最广泛的协议,可以测试完整IT基础构架。
-
性能测试类型之我见
2008-6-12
在拜读了段念的《软件性能测试过程详解与案例剖析》一书后,对各种性能测试类型有了豁然开朗的感觉。51Testing软件测试网$A6|1~cq{:OlX
网上关于性能测试类型方面一直都讨论不休并有多种见解,以下是根据书上描述和个人经验对测试侧重点做了进一步探索,不对之处请指正。我们所说的性能测试是一种广义上的说法,包括了以下各种不同的性能测试类型,每种测试类型都带着明确的测试目的。
性能测试(Performance Testing)51Testing软件测试网 k5l D5d(n
原文摘要:性能测试方法是通过模拟生产运行的业务压力量和使用场景组合,测试系统的性能是否满足生成性能要求。即在特定的运行条件下验证系统的能力状况。
9up\'XP6L176729个人理解:主要强调在固定的软硬件环境、确定的测试业务场景下,其主要意义是获得系统的性能指标。负载测试(Load Testing)
Y"~4n v4L+[moM176729原文摘要:在给定的测试环境下,通过在被测系统上不断增加压力,直到性能指标超过预定指标或某种资源使用已经达到饱和状态,目的是了解系统性能容量和处理能力极限。负载测试的主要用途是发现系统性能的拐点,寻找系统能够支持的最大用户、业务等处理能力的约束。51Testing软件测试网YrfB X6e0ml1a*k,k
个人理解:也可以理解为扩展性测试(Scalability Testing),即在固定测试环境,在其它测试角度(负载方面)不变的情况下,变化一个测试角度并持续增加压力,查看系统的性能曲线和处理极限,以及是否有性能瓶颈存在(拐点)。主要意义是从多个不同的测试角度去探测分析系统的性能变化情况,配合性能调优。测试角度可以是并发用户数、业务量、数据量等不同方面的负载。压力测试(Stress Testing)
&Kgszt0`176729原文摘要:测试系统在一定饱和状态下系统能够处理的会话能力,以及是否出现错误,一般用于稳定性测试。51Testing软件测试网v%F zg3L
个人理解:可以理解为资源的极限测试。测试关注在资源处于饱和或超负荷的情况下,系统能否正常运行,是一种在极端压力下的稳定性测试。其主要意义是通过测试调优保证系统即使在极端的压力情况下也不会出错甚至系统崩溃。51Testing软件测试网6g!^;|m Z~s"u
网友补充:压力测试的目的是调查系统在其资源超负荷的情况下的表现,尤其是对系统的处理时间有什么影响。这类测试在一种需要反常数量、频率或资源的方式下执行系统。目标是通过极限测试方法,发现系统在极限或恶劣环境中自我保护能力。主要验证系统的可靠性。51Testing软件测试网 GO3ox r#N:c
配置测试(Configuration Testing)
%XK#t(X8\S ne g%c)C176729原文摘要:通过对被测系统的软硬件环境的调整,了解各种不同环境对性能影响的程度,从而找到系统各项资源的最有分配原则。51Testing软件测试网.U,g3s*YDV V|0`
个人理解:主要用于性能调优,在经过测试获得了基准测试数据后,进行环境调整(包括硬件配置、网络、操作系统、应用服务器、数据库等),再将测试结果与基准数据进行对比,判断调整是否达到最佳状态。并发测试(Concurrency Testing)51Testing软件测试网 ?}p5R#K'Z%}V?r
原文摘要:模拟并发访问,测试多用户并发访问同一个应用、模块、数据时是否产生隐藏的并发问题,如内存泄漏、线程锁、资源争用问题。
l3bA9Mkp0W_#zD+a176729个人理解:测试目的并非为了获得性能指标,而是为了发现并发引起的问题。可靠性测试(Reliability Testing)51Testing软件测试网V"H%AIy N
原文摘要:通过给系统加载一定的业务压力的情况下,让应用持续运行一段时间,测试系统在这种条件下是否能够稳定运行。51Testing软件测试网"?*l9^2}ZT
个人理解:需要和压力测试区分开,两者的测试环境和测试目的不一样。压力测试强调在资源极限情况下系统是否出错,可靠性测试强调在一定的业务压力下长时间(如24×7)运行系统,关注系统的运行情况(如资源使用率是否逐渐增加、响应是否是否越来越慢),是否有不稳定征兆。 -
怎样成为一个合格的测试工程师
2008-6-12
软件测试更加规范化后,企业对测试工程师的要求有三:测试思想第一,测试经验第二,测试技术第三。
怎样才可以成为一个合格的测试工程师:
1. 每半年读一本测试书籍(现在的测试书籍也多起来了,尽管很多都是东抄西抄的,能力够的话去读英文原版,译本基本都不能完全领会作者的思想,人家老外的测试发展要比我门多几十年呢)
2. 每半年学一门测试技术(IT行业变化很快,测试技术也同样,每年都有新的测试技术出现,不希望大家对每一个新出现的技术都掌握,只希望每一个测试人员对本人从事的这个行业要充分了解和熟悉,因为在你现在和将来测试的项目中,你要选择最合适和最有效于这个项目的测试技术,如果你连所选对象都不知,那谈何选择,又谈何合适呢?)
3. 每半年学一门IT技术(这里的IT技术范围要更广一些,做测试人员要了解更多的知识,如你做性能测试,你需要了解操作系统,你需要了解软件架构,你需要了解低层实现,你需要了解中间件,你需要了解数据库,你需要了解他们的配置与实现方式,你还需要了解硬件,了解网络,了解内存管理机制,了解磁盘I/O原理等等)
4. 要学会思考(测试人员要学会把测试前思考,测试中思考,测试后思考,思考的结果要记录下来,每有一个人敢说他自己是天才,可以记住所有的东西。想好后那就去做吧,去验证吧,如果不对,那返回重新思考,然后再去做,只有这样,你才会做的更好。)
5. 要重视测试设计(某开发人员曾说过他精通JAVA,精通C,我于是和他说,那给你10年或20年,你用你精通的JAVA来写出一个可以替换WINDOWS的操作系统。他从此不在这样说,因为他知道即使给他一辈子,这对他也是一个梦。测试何尝不是,你测试技术再高,你也不可能测试的更好,重视测试设计吧,这才是测试之关键。)
6. 多和测试同行交流(在一个封闭的圈子里,或在一个公司里,你觉得你是测试高手,当有一天你走出这个封闭圈子的时候,你才发现,天外有天,或许捆饶你一个月的难题某些测试同行轻描淡写的一句话就可以为你解决。测试是相通的,测试思想更是相通的,多去做一些比较,才可以看到自己的不足。)
-
如何进行升级测试
2008-6-12
如何进行升级测试
作者 Dhiraj P. Lokhande 译 g_win
什么是升级测试?比如说你们公司开发的产品现已经发布的是V1.0,由于被发现存在缺陷,这时就需开发Patch或Hot Fix,并进行升级测试,然后发布V1.1。
升级测试听起来似乎挺平常的,但它其实也是软件测试中比较重要的一部分,它通常包括以下内容:
- 安装测试
- 数据库测试
- 应用测试
- 文档测试
安装测试
当发布一个系统的新版本时,程序代码肯定是被修改过了,安装测试的目的是确保安装完成后修改过的文件被复制到了正确的位置,比如说某个文件夹包含了所有更新的HTML文件,这时就要检查相关的CSS文件夹下的文件是不是更新了,如果只更新了HTML而没更新CSS,那么相应的颜色/字体就不能正确地显示。
如果公司研发过程比较规范,安装测试通常是在配置管理员的配合下完成的。首先,是文件夹级的测试,检查安装过程中复制到系统中的文件夹的时间戳是否变化;其次,检查被修改过的文件的大小,并和之前的版本进行比较,当然,这分两种测试,如果是白盒测试,测试人员要打开相应的文件确认新代码和改过的代码,如果是黑盒测试,那就要检查文件大小应与旧版本的不同。
数据库测试
很多情况下,系统的升级都是伴随着数据库脚本的更新,数据库测试通常也是由DBA人员或在DBA的配合下进行。升级前要停止数据库并做备份,然后执行升级脚本,之后测试人员需要查看数据库日志,并检查库中被修改的记录是否正确。如果升级脚本是在库中创建一个新的Table或是新的Relation,那么数据库测试应该关注对空库的测试,比如先建一个空库V1.0,只包含一些空的Table和Relation,而不包含任何数据,然后测试人员执行升级脚本,并查看日志文件里是否有报错,如果没有报错一切ok,则通过应用程序连到数据库上执行一些功能测试用例来确保数据的Inset或Update都是正确的。
应用测试
当安装测试和数据库测试都通过之后,进行应用测试,有两种方法:
方法一:先配一个空的数据库(即除了一些必需的初始化数据再没有其他数据),然后把应用程序升级一下,执行业务流程测试看系统是否能够正常运行。
方法二:也是先配好数据库,但库里存有一些实际数据,然后把程序升级一下(比如从V1.0升至V1.1),运行应用程序,检查那些已有的数据在V1.1上是否也能被正确的展现和使用,最后执行业务流程测试看系统是否能够正常运行。
有的时候升级完后还要手工修改库中已有的记录,比如一个网上银行的系统,它里面有很多支付或转帐的数据,在做升级测试时,就可能要修改那些在上一版本中生成的数据,因为它们可能涉及到多个表之间的数据转换或一二级约束。
文档测试
文档测试主要是验证相关的版本说明或者安装手册等文档是否和系统升级相匹配,这点很重要,因为客户通常都是根据版本说明和安装手册进行系统的安装或升级。
进行文档测试必须理解详细的升级步骤,比如文档中应建议用户升级前要备份数据库、数据文件、配置文件等,再比如升级需要复制某些文件到特定目录,应当在版本说明中有所体现,总之,升级时任何必要的说明都应当在版本说明或安装手册内阐述清楚,安装时可以做什么以及不可以做什么都应在版本发布前得到确认。







