发布新日志

  • 困扰的问题终于明朗了!开心!!!

    2007-01-16 16:52:54

         好开心这些天困扰我的有关于服务器性能测试方面的难题终于找到了突破口了,好又成就感啊!前几天连睡觉都在考虑,怕是完成不了任务,很不安心啊现在问题有点眉目了,心里甚是安心很多,连中饭都吃的香多了剩下的就是反复的做相同的事情,不停的按照测试计划进行就可以了.相信这两天任务应该可以全部解决啦
         今天又更喜欢测试了一点点,嘿嘿,加油吧!那些像我一样从事软件测试工作的战友们.有努力就有收获!!!A~ZA~ A~ZA~ Fighting!
  • 测试设计中需要考虑的22种测试类型

    2006-12-15 10:29:03Digest 1

    黑盒测试:基于需求和功能性,不是基于内部设计和代码的任何知识。

    白盒测试:基于一个应用代码的内部逻辑知识,测试是基于覆盖全部代码、分支、路径、条件。

    单元测试:最微小规模的测试;以测试某个功能或代码块。典型地由程序员而非测试员来做,因为它需要知道内部程序设计和编码的细节知识。这个工作不容易作好,除非应用系统有一个设计很好的体系结构; 还可能需要开发测试驱动器模块或测试套具。

    累积综合测试:当一个新功能增加后,对应用系统所做的连续测试。它要求应用系统的不同形态的功能能够足够独立以可以在全部系统完成前能分别工作,或当需要时那些测试驱动器已被开发出来; 这种测试可由程序员或测试员来做。

    集成测试:一个应用系统的各个部件的联合测试,以决定他们能否在一起共同工作。部件可以是代码块、独立的应用、网络上的客户端或服务器端程序。这种类型的测试尤其与客户服务器和分布式系统有关。

    功能测试:用于测试应用系统的功能需求的黑盒测试方法。这类测试应由测试员做,这并不意味着程序员在发布前不必检查他们的代码能否工作(自然他能用于测试的各个阶段)

    系统测试:基于系统整体需求说明书的黑盒类测试;应覆盖系统所有联合的部件。

    端到端测试:类似于系统测试;测试级的宏大的端点;涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。健全测试:典型地是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试努力。例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够健全,目前不具备进一步测试的条件。

    衰竭测试:软件或环境的修复或更正后的再测试。可能很难确定需要多少遍再次测试。尤其在接近开发周期结束时。自动测试工具对这类测试尤其有用。

    接受测试:基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。

    负载测试:测试一个应用在重负荷下的表现,例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败。

    强迫测试:在交替进行负荷和性能测试时常用的术语。也用于描述在异乎寻常的重载下的系统功能测试之类的测试,如某个动作或输入大量的重复,大量数据的输入,对一个数据库系统大量的复杂查询等。

    性能测试:在交替进行负荷和强迫测试时常用的术语。理想的性能测试”(和其他类型的测试)应在需求文档或质量保证、测试计划中定义。

    可用性测试:对用户友好性的测试。显然这是主观的,且将取决于目标最终用户或客户。用户面谈、调查、用户对话的录像和其他一些技术都可使用。程序员和测试员通常都不宜作可用性测试员。

    安装/卸载测试:对软件的全部、部分或升级安装/卸载处理过程的测试。

    恢复测试:测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。

    安全测试:测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时怎么样。这可能需要复杂的测试技术。

    兼容测试:测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。

    比较测试:与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。

    Alpha 测试:在系统开发接近完成时对应用系统的测试;测试后,仍然会有少量的设计变更。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。

    Beta 测试:当开发和测试根本完成时所做的测试,而最终的错误和问题需要在最终发行前找到。这种测试一般由最终用户或其他人员完成,不能由程序员或测试员完成。

    软件测试是指使用人工或者自动的手段来运行或测定某个软件产品系统的过程,其目的是在于检验是否满足规定的需求或者弄清预期的结果与实际结果的区别。本文主要描述软件测试的类型。
    1
    数据和数据库完整性测试
       
    数据与数据库完整测试是指测试关系型数据库完整性原则以及数据合理性测试。
       
    数据库完整性原即: 主码完整性:主码不能为空;
       
    外码完整性:外码必须等于对应的主码或者为空。
       
    数据合理性指数据在数据库中的类型,长度,索引等是否建的比较合理。在项目名称中,数据库和数据库进程应作为一个子系统来进行测试。在测试这些子系统时,不应将测试对象的用户界面用作数据的接口。对于数据库管理系统 (DBMS),还需要进行深入的研究,以确定可以支1持测试的工具和技术。
    比如,有两张表:部门和员工。部门中有部门编号,部门名称,部门经理等字段,主码为部门编号;员工表中有员工编号,员工所属部门编号,员工名称,员工类型等字段,主码为员工编号,外码为员工所属部门编号,对应部门表。如果在某条部门记录中部门编号或员工记录员工编号为空,他就违反主码完整性原则。如果某个员工所属部门的编号为##,但是##在部门编号中确找不到,这就违反外码完整性原则。
    员工类型如下定义:0:职工,1:职员,2:实习生。但数据类型为Int,我们都知道Int占有4个字节,如果定义成char(1).就比原来节约空间。
    2
    白盒测试
       
    白盒测试是基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般白盒测试由项目经理在程序员开发中来实现。白盒测试分动态白盒测试和静态白盒测试。
    2.1
    静态白盒测试
       
    利用眼睛,浏览代码,凭借经验,找出代码中的错误或者代码中不符合书写规范的地方。比如,代码规范中规定,函数必须为动宾结构。而黑盒测试发现一个函数定义如下:
    Function NameGet(){
                         ….
                      }
    这是属于不符合开发规范的错误。
    有这样一段代码:
    if (i<0) & (i>=0)

    这段代码交集为整个数轴,IF语句没有必要
    I=0;
    while(I>100){
    J=J+100;
    T=J*PI;
    }
    在循环体内没有I的增加,bug产生。
    2.2
    动态白盒测试
       
    利用开发工具中的调式工具进行测试。比如一段代码有4个分支,输入4组不同的测试数据使4组分支都可以走通而且结果必须正确。
    看一段代码
    if(I<0){
    P1
    }else{
    P2
    }
    在调试中输入I=-1,P1程序段通过, P2程序段未通过,属于动态黑盒测试的缺陷
    3.
    功能测试
       
    功能测试指测试软件各个功能模块是否正确,逻辑是否正确。 对测试对象的功能测试应侧重于所有可直接追踪到用例或业务功能和业务规则的测试需求。这种测试的目标是核实数据的接受、处理和检索是否正确,以及业务规则的实施是否恰当。此类测试基于黑盒技术,该技术通过图形用户界面 (GUI) 与应用程序进行交互,并对交互的输出或结果进行分析,以此来核实应用程序及其内部进程。功能测试的主要参考为类似于功能说明书之类的文档。
       
    比如一个对电子商务系统,前台用户浏览商品-放入购物车-进入结账台,后台处理订单,配货,付款,发货,这一系列流程必须正确无误的走通,不能存在任何的错误。
    4.UI
    测试
        UI
    测试指测试用户界面的风格是否满足客户要求,文字是否正确,页面美工是否好看,文字,图片组合是否完美,背景是否美观,操作是否友好等等。用户界面 (UI) 测试用于核实用户与软件之间的交互。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。另外,UI 测试还可确保 UI 中的对象按照预期的方式运行,并符合公司或行业的标准。包括用户友好性,人性化,易操作性测试。UI测试比较主观,与测试人员的喜好有关
       
    比如:页面基调颜色刺眼;用户登入页面比较难于找到,文字中出现错别字,页面图片范围太广等都属于UI测试中的缺陷,但是这些缺陷都不太严重。
    5.
    性能测试
       
    性能测试测试软件测试的性能,包括负载测试,强度测试,数据库容量测试,基准测试以及基准测试。
    5.1
    负载测试
       
    负载测试是一种性能测试指数据在超负荷环境中运行,程序是否能够承担。 在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。
       
    比如,在B/S结构中用户并发量测试就是属于负载测试的用户,可以使用webload工具,模拟上百人客户同时访问网站,看系统响应时间,处理速度如何?
    5.2
    强度测试
       
    强度测试是一种性能测试,他在系统资源特别低的情况下软件系统运行情况。这类测试往往可以书写系统要求的软硬件水平要求。实施和执行此类测试的目的是找出因资源不足或资源争用而导致的错误。如果内存或磁盘空间不足,测试对象可能会表现出一些在正常条件下并不明显的缺陷。而其他缺陷则可能由于争用共享资源(如数据库锁或网络带宽)而造成的。强度测试还于确定测试对象能够处理的最大工作量。
       
    比如:一个系统在内存366M下可以正常运行,但是降低到258M下不可以运行,告诉内存不足,这个系统对内存的要求就是366M
    5.3
    数据库容量测试
       
    数据库容量测试指通过存储过程往数据库表中插入一定数量的数据,看看相关页面是否能够及时显示数据。数据库容量测试使测试对象处理大量的数据,以确定是否达到了将使软件发生故障的极限。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。例如,如果测试对象正在为生成一份报表而处理一组数据库记录,那么容量测试就会使用一个大型的测试数据库,检验该软件是否正常运行并生成了正确的报表。做这种测试通常通过书写存储过程向数据库某个表中插入一定数量的记录,计算相关页面的调用时间。
       
    比如,在电子商务系统中,通过insert customer user表中插入10 000数据,看其是否可以正常显示顾客信息列表页面,如果要求达到最多可以处理100 000个客户,但是顾客信息列表页面不能够在规定的时间内显示出来,就需要调整程序中的SQL查询语句;如果在规定的时间内显示出来,可以将用户数分别提高到20 000 , 50 000, 100 000进行测试。
    5.4
    基准测试
       
    基准测试与已知现有的系统进行比较,主要检验是否与类似的产品具有竞争性的一种测试。如果你要开发一套财务系统软件并且你已经获得用友财务系统的性能等数据,你可以测试你这套系统,看看哪些地方比用友财务系统好,哪些地方差?以便改进自己的系统,也可为产品广告提供数据。
    5.5
    竞争测试
       
    软件竞争使用各种资源(数据纪录,内存等),看他与其他相关系统对资源的争夺能力。比如:一台机器上即安装您的财务系统,又安装用友财务系统。当CPU占有率下降后,看看是否能够强过用友财务系统,而是自己的系统能够正常运行?
    6.
    安全性和访问控制测试
       
    安全性和访问控制测试侧重于安全性的两个关键方面:应用程序级别的安全性和系统级别的安全性。应用程序级别的安全性,包括对数据或业务功能的访问系统级别的安全性,包括对系统的登录或远程访问。
    6.1
    应用程序级别的安全性
      
    可确保在预期的安全性情况下,主角只能访问特定的功能或用例,或者只能访问有限的数据。例如,可能会允许所有人输入数据,创建新账户,但只有管理员才能删除这些数据或账户。如果具有数据级别的安全性,测试就可确保用户类型一能够看到所有客户消息(包括财务数据),而用户二只能看见同一客户的统计数据。 比如B/S系统,不通过登入页面,直接输入URL,看其是否能够进入系统?
    6.2
    系统级别的安全性
       
    可确保只有具备系统访问权限的用户才能访问应用程序,而且只能通过相应的网关来访问。比如输入管理员账户,检查其密码是否容易猜取,或者可以从数据库中获得?
    7.
    故障转移和恢复测试
       
    故障转移和恢复测试指当主机软硬件发生灾难时候,备份机器是否能够正常启动,使系统是否可以正常运行,这对于电信,银行等领域的软件是十分重要的。故障转移和恢复测试可确保测试对象能成功完成故障转移,并能从导致意外数据损失或数据完整性破坏的各种硬件、软件或网络故障中恢复。 故障转移测试可确保对于必须持续运行的系统,一旦发生故障,备用系统就将不失时机地顶替发生故障的系统,以避免丢失任何数据或事务。 恢复测试是一种对抗性的测试过程。在这种测试中,将把应用程序或系统置于极端的条件下(或者是模拟的极端条件下),以产生故障(例如设备输入/输出 (I/O) 故障或无效的数据库指针和关健字)。然后调用恢复进程并监测和检查应用程序和系统,核实应用程序或系统和数据已得到了正确的恢复。一定要注意主备定时备份比如电信系统,突然主机程序发生死机,备份机器是否能够启动,使系统能够正常运行,从而不影响用户打电话?
    8.
    配置测试
       
    又叫兼容性测试。配置测试核实测试对象在不同的软件和硬件配置中的运行情况。在大多数生产环境中,客户机工作站、网络连接和数据库服务器的具体硬件规格会有所不同。客户机工作站可能会安装不同的软件例如,应用程序、驱动程序等而且在任何时候,都可能运行许多不同的软件组合,从而占用不同的资源。(如浏览器版本,操作系统版本等)下面列出主要配置测试 :
    8.1
    浏览器兼容性
       
    测试软件在不同产商的浏览器下是否能够正确显示与运行。比如测试IENatscape浏览器下是否可以运行这套软件?
    8.2
    操作系统兼容性
       
    测试软件在不同操作系统下是否能够正确显示与运行; 比如测试WINDOWS98,WINDOWS 2000,WINDOWS XP,LINU, UNIX下是否可以运行这套软件?
    8.3
    硬件兼容性
       
    测试与硬件密切相关的软件产品与其他硬件产品的兼容性,比如该软件是少在并口设备中的,测试同时使用其他并口设备,系统是否可以正确使用。比如在INTER,舒龙CPU芯片下系统是否能够正常运行?
    这样的测试必须建立测试实验室,在各种环境下进行测试。
    9.
    安装测试
       
    安装测试有两个目的。第一个目的是确保该软件在正常情况和异常情况的不同条件下: 例如,进行首次安装、升级、完整的或自定义的安装_都能进行安装。异常情况包括磁盘空间不足、缺少目录创建权限等。第二个目的是核实软件在安装后可立即正常运行。这通常是指运行大量为功能测试制定的测试。
    安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。
    10.
    多语种测试
       
    又称本地化测试,是指为各个地方开发产品的测试,如英文版,中文版等等,包括程序是否能够正常运行,界面是否符合当地习俗,快捷键是否正常起作用等等,特别测试在A语言环境下运行B语言软件(比如在英文win98下试图运行中文版的程序),出现现象是否正常 。I'm not very sure about this. ( commented by Sherry) 。本地化测试还要考虑: 当语言从A翻译到B,字符长度变化是否影响页面效果。比如中文软件中有个按键叫看广告,翻译到英文版本中为 “View advertisement”可能影响页面的美观程度。 要考虑同一单词在各个国家的不同意思,比如football在英文中为足球,而美国人使用中可能理解为美式橄榄球。要考虑各个国家的民族习惯,比如龙在美国中被理解邪恶的象征,但翻译到中国,中国人认为是吉祥的象征。
    11.
    文字测试
       
    文字测试测试软件中是否拼写正确,是否易懂,不存在二义性,没有语法错误;文字与内容是否有出入等等,包括图片文字。
    比如:比如,请输入正确的证件号码!何谓正确的证件号码,证件可以为身份证,驾驶证,也可为军官证,如果改为请输入正确的身份证号码!用户就比较容易理解了。
    12.
    分辨率测试
       
    测试在不同分辨率下,界面的美观程度,分为800*6001024*7681152*8641280*7681280*10241200*1600大小字体下测试。一个好的软件要有一个极佳的分辨率,而在其他分辨率下也都能可以运行。
    13
    发布测试
       
    主要在产品发布前对一些附带产品,比如说明书,广告稿等进行测试。
    13.1
    说明书测试
       
    主要为语言检查,功能检查,图片检查 。语言检查:检查说明书语言是否正确,用词是否易于理解;功能检查:功能是否描述完全,或者描述了并没有的功能等; 图片检查::检查图片是否正确
    13.2
    宣传材料测试
       
    主要测试产品中的附带的宣传材料中的语言,描述功能,图片
    13.3
    帮助文件测试
       
    帮助文件是否正确,易懂,是否人性化。最好能够提供检索功能。
    13.4
    广告用语
       
    产品出公司前的广告材料文字,功能,图片,人性化的检查
    14
    文档审核测试
       
    文档审核测试目前越来越引起人们的重视,软件质量不是检查出来的,而是融进软件开发中来。前置软件测试发越来越受到重视。请看一个资料:文档审核测试主要包括需求文档测试,设计文档测试,为前置软件测试测试中的一部分。
    14.1
    需求文档测试
       
    主要测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现;
    14.2
    设计文档测试
       
    测试设计是否符合全部需求以及设计是否合理。

  • 性能测试小节

    2006-12-13 15:24:53Digest 1

    性能测试概念

    通过自动化测试工具模拟多种正常、峰值、异常负载条件来对系统的各种性能指标进行测试.

    性能测试主要类别

    1.       性能测试:测试正常使用时,系统是否满足要求,同事可能为了保留系统的扩展空间进行一些稍微超出"正常"范围的测试.

    2.       负载测试:通过再被测系统上不断增加压力,知道性能指标(如响应时间、资源状态).此测试考验找到系统的处理极限,为系统调优提供数据,一般负载测试的压力比较大.

    3.       压力测试:对系统不断的施加压力,确定一个系统的瓶颈或不能接受的性能点来获得系统能够提供最大的服务级别.

    4.       配置测试:通过测试找到系统各项资源的最佳分配原则,是系统调优的重要依据.

    5.       并发测试:测试多个用户同时访问一个应用程序、同一模块或者数据记录时是否存在思索或者其他性能问题.几乎所有的性能测试都设计到并发测试.

    6.       容量测试:测试系统能够处理最大会话能力,确定系统可处理同时在线的最大用户数,通常和数据库有关.

    7.       可靠性测试:通过给系统加载一定的业务压力情况下,运行一段时间,检查系统是否稳定.

    8.       失败测试:对于有冗余备份和负载均衡的系统,通过此测试来检验如果系统局部发生故障,用户是否能够继续使用系统,用户受到多大的影响.

    性能测试主要指标

    1.       响应时间(最关心的指标);一般遵循2/5/10的原则,过长的等待时间会使客户烦躁不安.

    2.       点击数;

    3.       吞吐量(任一秒再服务器上读取的数据量);

    4.       并发量;

    5.       资源利用率(内存、CPU的利用率);

    6.       每秒连接数(每秒打开新的TCP/IP的连接数);

    性能测试的主要工具

    商业

    1.       Mercury LoadRunner

    2.       Rational Performance Tester

    3.       Seague Silk Test

    免费

    1.       Microsoft Web Application Stress Tool

    2.       Microsoft Application Center Test

    开源

    1.       OpenSTA

    2.       Jmeter

    3.       Grinder  

    性能测试实施过程

    1.       了解被测项目的性能测试需求;

    2.       分析被测项目的性能测试需求;

    3.       编写性能测试计划/测试用例;

    4.       相关资源准备;(测试、开发、数据库设计、系统管理人员、硬件资源、软件资源)

    5.       脚本维护(编写程序);包括脚本录制、脚本修改/改善、脚本参数化、脚本以及数据的存储、程序的编写通常为多线程来实现.

    6.       执行脚本(执行程序);包括脚本保存、参数文件保存、结果信息保存.

    7.       分析结果;通常提供问题的定位(应积极和其他人员讨论) 、分析结果对比.

    8.       性能调优;补充多方面知识(系统、数据库、应用服务器等),为了更好的定位错误,每次只调整一方面的配置. 

数据统计

  • 访问量: 17223
  • 日志数: 29
  • 图片数: 2
  • 建立时间: 2006-12-12
  • 更新时间: 2007-05-28

RSS订阅

Open Toolbar