大家好,很高兴认识大家,一起分享谈论测试知识!

发布新日志

  • 测试窝

    2010-03-15 12:56:18

    http://www.testwo.com/invite.php?u=1065&c=fef208c70bf89758
  • Windows 性能计数器

    2009-09-30 10:00:48

    <一>Windows性能计数器分析
    对象 计数器 分析
    processor %processor time 建议阈值85%
    memory Available bytes 建议阈值少于4MB需要添加内存;
    另外,又建议至少要有10%的物理内存值
    Pages reads/sec Page Reads/sec 是指为解析硬页错误而读取磁盘的次数,如果该值一直持续较大,表明可能内存不足
    建议阈值30(5?),大数值表示磁盘读而不是缓存读
    Pages writes/sec Page Writes/sec 是指为了释放物理内存空间而将页写入磁盘的次数
    Pages Input/sec Pages Input/sec 指为解决页错误从磁盘上读取的页数
    Pages Output/sec Pages Output/sec 是指为了释放物理内存空间而写入磁盘的页数
    如果该值远远大于Pages Input/sec,可能有内存泄露
    Pages/sec Pages/sec 是指为解析硬页错误从磁盘读取或写入磁盘的页数
    建议阈值20
    Network interface
    (对于TCP/IP) Bytes received/sec 该数据结合Bytes total/sec看
    Bytes sent/sec 该数据结合Bytes total/sec看
    Bytes total/sec 推荐不要超过带宽的50%
    Packets/sec 根据实际数据量大小,无建议阈值,该数据结合Bytes total/sec看
    Physical disk Disk reads/sec 取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格
    Disk writes/sec 取决于硬盘制造商的规格,检查磁盘的指定传送速度,以验证此速度没有超出规格
    又:上两值相加,应小于磁盘设备的最大容量
    %Disk Time 建议阈值90%
    Current disk queue length
    Avg. disk queue length(如果使用RAID设备,%Disk Time计数器显示的值可以大于100%。如果大于100%,则使用Avg. disk queue length计数器决定正在等待磁盘访问的系统请求的平均数) 不超过磁盘数的1.5~2倍
    如果上两值始终较高,可以考虑升级磁盘驱动器或将某些文件移动到其他磁盘或服务器


    一些注意事项
    1. 如果监视不超过4个小时,则每15秒更新一次比较合理;如果将监视系统8个小时或更长时间,则设置的间隔不要小于300秒
    2. 个人认为测试报告结果同时还要附上图参考,因为单靠最小、最大和平均值还不能说明问题
    3. 与物理磁盘计数器的数据不同,逻辑磁盘计数器的数据默认情况下不是由操作系统搜集。要获得逻辑驱动器或存储卷的性能计数器数据,必须在命令提示符下键入diskperf –yv。默认情况下,操作系统使用diskperf –yd命令包含物理驱动器数据。使用命令diskperf的详细信息,请在命令提示符下键入diskperf -?。
    4. 通常,决定性能是否可以接受是一种主观判断,随用户环境的变化而明显地变化。
    5. 内存不足是计算机系统中的严重性能问题最常见的原因。工作站响应速度很慢最有可能是内存和处理器问题造成的;服务器更容易受到磁盘和网络问题的影响。
    6. 在程序启动时,每个程序的Process\%Processor Time值迅速攀升、降低,然后稳定。注意程序启动时处理器的峰值非常重要;你可能要暂时忽略监视数据中高的启动值,以获得典型程序使用处理器情况的更精确的图片。
    7. 当内存减少时,操作系统开始通过从活动较少的程序的工作集(working set)中获得内存来补充,因此,将看到一个程序工作集的增大,而其他程序的值减少。如果系统中没有足够的内存来满足所有活动程序的要求,将发生内存页交换,程序性能将受到影响。
    8. 如果发生了内存泄漏,Process\Private Bytes计数器和Process\Working set 计数器的值往往会升高,同时Available bytes会降低。
    9. 如果Process不见了,修改注册表HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfProc\Performance 下的Disable Performance Counters值为0.
    <二>性能分析
    1。内存分析方法

      内存分析用于判断系统有无内存瓶颈,是否需要通过增加内存等手段提高系统性能表现。

      内存分析需要使用的计数器:Memory类别和Physical Disk类别的计数器。内存分析的主要方法和步骤:

     (1)首先查看Memory\Available Mbytes指标

      如果该指标的数据比较小,系统可能出现了内存方面的问题,需要继续下面步骤进一步分析。

    注:  在UNIX/LINUX中,对应指标是FREE(KB)

      (2)注意Pages/sec、Pages Read/sec和Page Faults/sec的值

     操作系统回利用磁盘较好的方式提高系统可用内存量或者提高内存的使用效率。这三个指标直接反应了操作系统进行磁盘交换的频度。

      如果Pages/sec的技术持续高于几百,可能有内存问题。Pages/sec值不一定大九表明有内存问题,可能是运行使用内存映射文件的程序所致。Page Faults/sec说明每秒发生页面失效次数,页面失效次数越多,说明操作系统向内存读取的次数越多。此事需要查看Pages Read/sec的计数值,该计数器的阀值为5,如果计数值超过5(有点问题,路过者知道的可说下...),则可以判断存在内存方面的问题。

      注:在UNIX/LINUX系统中,对于指标是(page)si和(page)so.

      (3)根据Physical Disk计数器的值分析性能瓶颈

      对Physical Disk计数器的分析包括对Page Reads/sec和%Disk Time及Aerage Disk Queue Length的分析。如果Pages Read/sec很低,同时%Disk Time和Average Disk Queue Length的值很高,则可能有磁盘瓶颈。但是,如果队列长度增加的同时Pages Read/sec并未降低,则是内存不足。

     注:在UNIX/LINUX系统中,对应的指标是Reads(Writes)per sec、Percent of time the disk is busy和Average number of transactions waiting for service.

      2.处理器分析法

    (1)首先看System\%Total Processor Time 性能计数器的计数值

       该计数器的值体现服务器整体处理器利用率,对多处理器的系统而言,该计数器提醒所有CPU的平均利用率。如果该值持续超过90%,则说明整个系统面临着处理器方面的瓶颈,需要通过增加处理器来提高性能。

      注:多处理器系统中,该数据本身不大,但PUT直接负载状况极不均衡,也应该视作系统产生处理器方面瓶颈。

    (2)其次查看每个CPU的Processor\%Processor Time 和 Processor\%User  Time 和 Processor\%Privileged Time

       Processor\%User  Time 是系统非核心操作消耗的CPU时间,如果该值较大,可以考虑是否能通过友好算法等方法降低这个值。如果该服务器是数据库服务器, Processor\%User  Time 值大的原因很可能是数据库的排序或是函数操作消耗了过多的CPU时间,此时可以考虑对数据库系统进行优化。

    (3)研究系统处理器瓶颈

     查看 System\Processor Queue Length 计数器的值,当该计数器的值大于CPU数量的总数+1时,说明产生了处理器阻塞。在处理器的%Process Time很高时,一般都随处理器阻塞,但产生处理器阻塞时,Processor\%Process Time 计数器的值并不一定很大,此时就必须查找处理器阻塞的原因。

     %DOC Time 是另一个需要关注的内容,该计数器越低越好。在多处理器系统中,如果这个值大于50%,并且Processor\%Precessor Time非常高,加入一个网卡可能回提高性能。

    3。磁盘I/O分析方法

    (1)计算梅磁盘的I/O数

      梅磁盘的I/O数可用来与磁盘的I/O能力进行对比,如果经过计算得到的每磁盘I/O数超过了磁盘标称的I/O能力,则说明确实存在磁盘的性能瓶颈。

      每磁盘I/O计算方法

     RAID0计算方法:(Reads +Writes)/Number of Disks

     RAID0计算方法:(Reads +2*Writes)/2

     RAID0计算方法:[Reads +(4*Writes)]/Number of Disks

     RAID0计算方法:[Reads +(2*Writes)]/Number of Disks

      (2)与Processor\Privileged Time 合并进行分析

      如果在Physical Disk 计数器中,只有%Disk Time 比较大,其他值都比较适中,硬盘可能会是瓶颈。若几个值都比较大,且数值持续超过80%,则可能是内存泄漏。

      (3)根据Disk sec/Transfer进行分析

        一般来说,定义该数值小于15ms为Excellent,介于15~30ms之间为良好,30~60ms之间为可以接受,超过60ms则需要考虑更换硬盘或是硬盘的RAID方式了。

     4。进程分析方法

    (1)查看进程的%Processor Time值

      每个进程的%Processor Time反映进程所消耗的处理器时间。用不同进程所消耗的处理器时间进行对比,可以看出具体哪个进程在性能测试过程中消耗了最多的处理器时间,从而可以据此针对应用进行优化。

    (2)查看每个进程产生的页面失效

       可以用每个进程产生的页面失效(通过PRCESS\PAGE FAILURES/SEC计数器获得)和系统页面失效(可以通过MEMORY\PAGE FAILURES/SEC计数器获得)的比值,来判断哪个进程产生了最多的页面失效,这个进程要么是需要大量内存的进程,要么是非常活跃的进程,可以对其进行重点分析。

      (3)了解进程的Process/Private Bytes

        Process/Private Bytes是指进程所分配的无法与其他进程共享的当前字节数量。该计数器主要用来判断进程在性能测试过程中有无内存泄漏。例如:对于一个IIS之上的WEB应用,我们可以重点监控inetinfo进程的Private Bytes,如果在性能测试过程中,该进程的Private Bytes计数器值不断增加,或是性能测试停止后一段时间,该进程的Private Bytes仍然持续在高水平,则说明应用存在内存泄漏。

      注:在UNIX/LINUX系统中,对应的指标是Resident Size

      5。网络分析方法

      Network Interface\Bytes Total/sec为发送和接收字节的速率,可以通过该计数器值来判断网络链接速度是否是瓶颈,具体操作方法是用该计数器的值和目前网络的带宽进行比较。

     RAID0计算方法:[Reads +(2*Writes)]/Number of Disks

      (2)与Processor\Privileged Time 合并进行分析

      如果在Physical Disk 计数器中,只有%Disk Time 比较大,其他值都比较适中,硬盘可能会是瓶颈。若几个值都比较大,且数值持续超过80%,则可能是内存泄漏。

      (3)根据Disk sec/Transfer进行分析

        一般来说,定义该数值小于15ms为Excellent,介于15~30ms之间为良好,30~60ms之间为可以接受,超过60ms则需要考虑更换硬盘或是硬盘的RAID方式了。

  • 测试工程师面试问题

    2009-09-28 18:34:20

    下面对自己面试的过程中遇到的一些问题作下总结,希望对面试的同仁有所帮助?

    1、自我介绍?

    这个应该介绍自己的特点以及优势,比如可以这样,我叫xxx,毕业于xxx大学,学的是xxx专业,学校中受到什么奖励以及在哪些地方做过实习等等,以上适合应届毕业生。对于有工作经验的来说(4年工作经验,主要的工作java开发、测试、以及带队经验、成就:做过测试流程改进、公司明星员工 、做过LoadRunner的培训。性格:负责耐心、比较容易相处等等),主要介绍自己的做过的项目,对项目的架构,以及涉及的服务器以及配置必须熟悉,自己用过什么工具,会什么技术,为项目组或公司做出过什么贡献等等!再一个就是自信!

    2、为什么辞职?

    这个最好说一些与前一家公司无关的信息或无关自己技能或心态的问题,比如经常出差或公司比较闲,感觉学不到太多东西,想换一个环境,住的地方到公司不方便等,最好能让应聘者相信你说的是实话~!

    3、你期望的待遇是多少?

    外企的工资水平是很灵活的,何种能力拿何种工资。外企喜欢直率的人,但这个问题却不能正面回答,外企希望听到:“以我的能力和我的优势,我完全可以胜任这个职位,我相信我可以做的很好。但是贵公司对这个职位的描述不是很具体,我想还可以延后再讨论”,外企欢迎求职者给其定薪的自由度,而不是咬准一个价码。

    4、个人规划

    一、初级测试工程师
    刚入门拥有计算机科学学位的个人或具有一些手工测试经验的个人。开发测试脚本并开始熟悉测试生存周期和测试技术。
    二、测试工程师/程序分析员
    具有1~2年经验的测试工程师或程序员。编写自动测试脚本程序并担任测试编程初期领导工作。拓展编程语言、操作系统、网络与数据库技能。
    三、高级测试工程师/程序分析员
    具有3~4年经验的测试工程师或程序员。帮助开发或维护测试或编程标准与过程,负责同级的评审,并为其他初级的测试工程师或程序员充当顾问。
    四、测试组负责人
    具有4~6年经验的测试工程师或程序员。负责管理1至3名测试工程师或程序员。担负一些进度安排和工作规模/成本估算职责。
    五、测试/编程负责人
    具有6~10年经验的测试工程师或程序员。负责管理8至10名技术人员。负责进度安排、工作规模/成本估算、按进度表和预算目标交付产品。
    六、测试/质量保证/开发(项目)经理
    具有10多年的工作经验。管理8名或更多的人员参加的1个或多个项目。负责这一领域(测试/质量保证/开发)内的整个开发生存周期业务。

    七、计划经理
    具有15年以上开发与支持(测试/质量保证)活动方面的经验。管理从事若干项目的人员以及整个开发生存周期。负责把握项目方向与盈亏责任。
    软件测试人员的三大发展方向
    “软件测试人员一般有三大发展方向。”微软公司的陈宏刚博士介绍说,一是走软件测试的技术路线,成长为高级软件测试工程师。二是向管理方向发展,从测试工程师到组长,再到测试经理,以至更高的职位。三是可以换职业,做项目管理或做开发人员。经过软件测试岗位洗礼的人才往往是行业中的多面手,在技术、管理、市场甚至其他非IT领域都能得到良好的发展。当然这首先要取决于从业者是否具备长远眼光,对自己的职业生涯进行合理规划。

    5、你还有什么问题问不?

    6、为什么选择我们公司,你能给公司带来什么

    7、测试流程?bug管理流程?

    8、如何做性能测试,举例?

    9、如何确定并发用户?

    10、数据库服务器的一些服务或命令

    11、sql语句

    12、linux的一些服务如何监控以及一些常用的命令

    13、如何管理一个团队,你对团队的理解,你如何服人?

    14、你比较喜欢在什么样的团队中工作

    15、介绍一个熟悉的项目,在项目中你遇到的最大问题是什么,如何解决的

    16、和开发存在bug理解上的冲突时,你如何处理

    17、如何在一个陌生的环境中开展工作

    18、介绍一下自动化测试工具如LoadRunner、qtp、TC、winrunner 、 TD、qc等的工作原理?

    19、熟悉哪些业务知识

    20、一些临时发挥的应变问题

    21、我们为什么要录用你,你的优势在哪里?

    22、你是一个什么性格的人,你如何与人相处

    23、web测试主要关注点

    24、bs与cs的区别

    25、英语、自信、有条理的说、数据说话、不要编造或说一些虚的东西

    26、为什么开发转测试

      软件测试这个行业,  感觉不错,自己也很感兴趣,开发转测试,具有一定的优势,挺好的!开发不可能做很久

    目前工作不好找,有时候也需要运气,同时找一些朋友推荐职位!

  • 如何确定软件测试结束的标准

    2009-09-15 23:41:16

    在软件消亡之前,如果没有测试的结束点,那么软件测试就永无休止,永远不可能结束。软件测试的结束点,要依据自己公司具体情况来制定,不能一概而论!个人认为测试结束点由以下几个条件决定:

      1.基于“测试阶段”的原则:

      每个软件的测试一般都要经过单元测试、集成测试、系统测试这几个阶段,我们可以分别对单元测试、集成测试和系统测试制定详细的测试结束点。每个测试阶段符合结束标准后,再进行后面一个阶段的测试。举个例子来说:单元测试,我们要求测试结束点必须满足“核心代码100%经过Code Review”、“功能覆盖率达到100%”、“代码行覆盖率不低于80%”、“不存在A、B类缺陷”、“所有发现缺陷至少60%都纳入缺陷追踪系统且各级缺陷修复率达到标准”等等标准。集成测试和系统测试的结束点都制定相关的结束标准,当然也是如此。

      2.基于“测试用例”的原则:

      测试设计人员设计测试用例,并请项目组成员参与评审,测试用例一旦评审通过,后面测试时,就可以作为测试结束的一个参考标准。比如说在测试过程中,如果发现测试用例通过率太低,可以拒绝继续测试,待开发人员修复后再继续。在功能测试用例通过率达到100%,非功能性测试用例达到95%以上,允许正常结束测试。但是使用该原则作为测试结束点时,把握好测试用例的质量,非常关键。

      3.基于“缺陷收敛趋势”的原则:

      软件测试的生命周期中随着测试时间的推移,测试发现的缺陷图线,首先成逐渐上升趋势,然后测试到一定阶段,缺陷又成下降趋势,直到发现的缺陷几乎为零或者很难发现缺陷为止。我们可以通过缺陷的趋势图线的走向,来定测试是否可以结束,这也是一个判定标准。

      4.基于“缺陷修复率”的原则:

      软件缺陷在测试生命周期中我们分成几个严重等级,它们分别是:严重错误、主要错误、次要错误、一般错误、较小错误和测试建议6种。那我们在确定测试结束点时,严重错误和主要错误的缺陷修复率必须达到100%,不允许存在功能性的错误;次要错误和一般错误的缺陷修复率必须达到85%以上,允许存在少量功能缺陷,后面版本解决;对于较小错误的缺陷修复率最好达到60%~70%以上。对于测试建议的问题,可以暂时不用修改。

      5.基于“验收测试”的原则:

      很多公司都是做项目软件,如果这种要确定测试结束点,最好测试到一定阶段,达到或接近测试部门指定的标准后,就递交用户做验收测试。如果通过用户的测试验收,就可以立即终止测试部门的测试;如果客户验收测试时,发现了部分缺陷,就可以针对性的修改缺陷后,验证通过后递交客户,相应测试也可以结束。

      6.基于“覆盖率”的原则:

      对于测试“覆盖率”的原则,个人觉的只要测试用例的“覆盖率”覆盖了客户提出全部的软件需求,包括行业隐性需求、功能需求和性能需求等等,只要测试用例执行的覆盖率达到100%,基本上测试就可以结束。如“单元测试中语句覆盖率最低不能小于80%”、“测试用例执行覆盖率应达到100%”和“测试需求覆盖率应达到100%”都可以作为结束确定点。如果你不放心,非得要看看测试用例的执行效果,检查是否有用例被漏执行的情况,可以对常用的功能进行“抽样测试 ”和“随机测试”。对于覆盖率在单元测试、集成测试和系统测试,每个阶段都不能忽略。

      7.基于“项目计划”的原则:

      大多数情况下,每个项目从开始就要编写开发和测试的Schedule,相应的在测试计划中也会对应每个里程碑,对测试进度和测试结束点做一个限制,一般来说都要和项目组成员(开发,管理,测试,市场,销售人员)达成共识,团队集体同意后制定一个标准结束点。如果项目的某个环节延迟了,测试时间就相应缩短。大多数情况下是所有规定的测试内容和回归测试都已经运行完成,就可以作为一个结束点。很多不规范的软件公司,都是把项目计划作为一个测试结束点,但是如果把它作为一个结束点,测试风险较大,软件质量很难得到保证。

      8.基于“缺陷度量”的原则:

      这个原则也许大家用的不是很多,了解比较少。我们可以对已经发现的缺陷,运用常用的缺陷分析技术和缺陷分析工具,用图表统计出来,方便查阅,分时间段对缺陷进行度量。我记得以前zhuzx在这个论坛上提出过缺陷分析技术这个问题,我不再重复讲述。我们也可以把 “测试期缺陷密度”和 “运行期缺陷密度”作为一个结束点。当然,最合适的测试结束的准则应该是“缺陷数控制在一个可以接受的范围内”。比如说:一万行代码最多允许存在多少个什么严重等级的错误,这样比较好量化,比较好实施,成为测试缺陷度量的主流。

      9.基于“质量成本”的原则:

      一个软件往往要从“质量/成本/进度”三方面取得平衡后就停止。至于这三方面哪一项占主要地位,就要看是什么软件了。比如说是:人命关天的航天航空软件, 那还是质量重要些,就算多花点钱、推迟一下进度,也要测试能保证较高质量以后才能终止测试,发布版本。如果是一般的常用软件,由于利益和市场的原因,哪怕有bug,也必须得先推出产品,没办法呀。一般来说,最主要的参考依据是:“把找到缺陷耗费的代价和这个缺陷可能导致的损失做一个均衡”。具体操作的时候,可以根据公司实际情况来定义什么样的情况下算是“测试花费的代价最划算、最合理”,同时保证公司利益最大化。如果找到bug的成本比,用户发现bug 的成本还高,也可以终止测试。

      10.基于“测试行业经验”的原则:

      很多情况下,测试行业的一些经验,也可以为我们的测试提供借鉴。比如说测试人员对行业业务的熟悉程度,测试人员的工作能力,测试的工作效率等等都会影响到整个测试计划的执行。如果一个测试团队中,每个人都没有项目行业经验数据积累,拿到一个新的项目,自然是一头雾水,不知道从何处开始,测试质量自然不会很高。因此通过测试者的经验,对确认测试执行和结束点也会起到关键性的作用。
  • 性能分析名词解释——LoadRunner

    2009-09-14 19:09:32

    Transactions(用户事务分析)
      用户事务分析是站在用户角度进行的基础性能分析。
    1、Transation Sunmmary(事务综述)
      对事务进行综合分析是性能分析的第一步,通过分析测试时间内用户事务的成功与失败情况,可以直接判断出系统是否运行正常。
    2、Average Transaciton Response Time(事务平均响应时间)
      “事务平均响应时间”显示的是测试场景运行期间的每一秒内事务执行所用的平均时间,通过它可以分析测试场景运行期间应用系统的性能走向。
      例:随着测试时间的变化,系统处理事务的速度开始逐渐变慢,这说明应用系统随着投产时间的变化,整体性能将会有下降的趋势。
    3、Transactions per Second(每秒通过事务数/TPS)
      “每秒通过事务数/TPS”显示在场景运行的每一秒钟,每个事务通过、失败以及停止的数量,使考查系统性能的一个重要参数。通过它可以确定系统在任何给定时刻的时间事务负载。分析TPS主要是看曲线的性能走向。
      将它与平均事务响应时间进行对比,可以分析事务数目对执行时间的影响。
      例:当压力加大时,点击率/TPS曲线如果变化缓慢或者有平坦的趋势,很有可能是服务器开始出现瓶颈。
    4、Total Transactions per Second(每秒通过事务总数)
      “每秒通过事务总数”显示在场景运行时,在每一秒内通过的事务总数、失败的事务总署以及停止的事务总数。
    5、Transaction Performance Sunmmary(事务性能摘要)
      “事务性能摘要”显示方案中所有事务的最小、最大和平均执行时间,可以直接判断响应时间是否符合用户的要求。
      重点关注事务的平均和最大执行时间,如果其范围不在用户可以接受的时间范围内,需要进行原因分析。
    6、Transaction Response Time Under Load(事务响应时间与负载)
      “事务响应时间与负载”是“正在运行的虚拟用户”图和“平均响应事务时间”图的组合,通过它可以看出在任一时间点事务响应时间与用户数目的关系,从而掌握系统在  用户并发方面的性能数据,为扩展用户系统提供参考。此图可以查看虚拟用户负载对执行时间的总体影响,对分析具有渐变负载的测试场景比较有用。
    7、Transaction Response Time(Percentile)(事务响应时间(百分比))
      “事务响应时间(百分比)”是根据测试结果进行分析而得到的综合分析图,也就是工具通过一些统计分析方法间接得到的图表。通过它可以分析在给定事务响应时间范围内能执行的事务百分比。
    8、Transaction Response Time(Distribution)(事务响应时间(分布))
      “事务响应时间(分布)”显示在场景运行过程中,事务执行所用时间的分布,通过它可以了解测试过程中不同响应时间的事务数量。如果系统预先定义了相关事务可以接受的最小和最大事务响应时间,则可以使用此图确定服务器性能是否在可以接受的范围内。
      Web Resources(Web资源分析)
      Web资源分析是从服务器入手对Web服务器的性能分析。
    1、Hits per Second(每秒点击次数)
      “每秒点击次数”,即使运行场景过程中虚拟用户每秒向Web服务器提交的HTTP请求数。
      通过它可以评估虚拟用户产生的负载量,如将其和“平均事务响应时间”图比较,可以查看点击次数对事务性能产生的影响。通过对查看“每秒点击次数”,可以判断系统是否稳定。系统点击率下降通常表明服务器的响应速度在变慢,需进一步分析,发现系统瓶颈所在。
    2、Throughput(吞吐率)
      “吞吐率”显示的是场景运行过程中服务器的每秒的吞吐量。其度量单位是字节,表示虚拟用在任何给定的每一秒从服务器获得的数据量。
      可以依据服务器的吞吐量来评估虚拟用户产生的负载量,以及看出服务器在流量方面的处理能力以及是否存在瓶颈。
      “吞吐率”图和“点击率”图的区别:
      “吞吐率”图,是每秒服务器处理的HTTP申请数。
      “点击率”图,是客户端每秒从服务器获得的总数据量。
    3、HTTP Status Code Summary(HTTP状态代码概要)
      “HTTP状态代码概要”显示场景或会话步骤过程中从Web服务器返回的HTTP状态代码数,该图按照代码分组。HTTP状态代码表示HTTP请求的状态。
    4、HTTP Responses per Second(每秒HTTP响应数)
      “每秒HTTP响应数”是显示运行场景过程中每秒从Web服务器返回的不同HTTP状态代码的数量,还能返回其它各类状态码的信息,通过分析状态码,可以判断服务器在压力下的运行情况,也可以通过对图中显示的结果进行分组,进而定位生成错误的代码脚本。
    5、Pages Downloader per Second(每秒下载页面数)
      “每秒下载页面数”显示场景或会话步骤运行的每一秒内从服务器下载的网页数。使用此图可依据下载的页数来计算Vuser生成的负载量。
      和吞吐量图一样,每秒下载页面数图标是Vuser在给定的任一秒内从服务器接收到的数据量。但是吞吐量考虑的各个资源极其大小(例,每个GIF文件的大小、每个网页的大小)。而每秒下载页面数只考虑页面数。
      注:要查看每秒下载页数图,必须在R-T-S那里设置“每秒页面数(仅HTML模式)”。
    6、Retries per Second(每秒重试次数)
      “每秒重试次数”显示场景或会话步骤运行的每一秒内服务器尝试的连接次数。
      在下列情况将重试服务器连接:
      A、初始连接未经授权
      B、要求代理服务器身份验证
      C、服务器关闭了初始连接
      D、初始连接无法连接到服务器
      E、服务器最初无法解析负载生成器的IP地址
    7、Retries Summary(重试次数概要)
      “重试次数概要”显示场景或会话步骤运行过程中服务器尝试的连接次数,它按照重试原因分组。将此图与每秒重试次数图一起使用可以确定场景或会话步骤运行过程中服务器在哪个时间点进行了重试。
    8、Connections(连接数)
      “连接数”显示场景或会话步骤运行过程中每个时间点打开的TCP/IP连接数。
      借助此图,可以知道何时需要添加其他连接。
      例:当连接数到达稳定状态而事务响应时间迅速增大时,添加连接可以使性能得到极大提高(事务响应时间将降低)。
    9、Connections Per Second(每秒连接数)
      “每秒连接数”显示方案在运行过程中每秒建立的TCP/IP连接数。
      理想情况下,很多HTTP请求都应该使用同一连接,而不是每个请求都新打开一个连接。通过每秒连接数图可以看出服务器的处理情况,就表明服务器的性能在逐渐下降。
    10、SSLs Per Second(每秒SSL连接数)
      “每秒SSL连接数”显示场景或会话步骤运行的每一秒内打开的新的以及重新使用的SSL连接数。当对安全服务器打开TCP/IP连接后,浏览器将打开SSL连接。
      Web Page Breakdown(网页元素细分)
      “网页元素细分”主要用来评估页面内容是否影响事务的响应时间,通过它可以深入地分析网站上那些下载很慢的图形或中断的连接等有问题的
    元素。
    1、Web Page Breakdown(页面分解总图)
      “页面分解”显示某一具体事务在测试过程的响应情况,进而分析相关的事务运行是否正常。
      “页面分解”图可以按下面四种方式进行进一步细分:
    1)、Download Time Breaddown(下载时间细分)
      “下载时间细分”图显示网页中不同元素的下载时间,同时还可按照下载过程把时间进行分解,用不同的颜色来显示DNS解析时间、建立连接时间、第一次缓冲时间等各自所占比例。
    2)、Component Breakdown(Over Time)(组件细分(随时间变化))
      “组件细分”图显示选定网页的页面组件随时间变化的细分图。通过该图可以很容易的看出哪些元素在测试过程中下载时间不稳定。该图特别适用于需要在客户端下载控件较多的页面,通过分析控件的响应时间,很容易就能发现那些控件不稳定或者比较耗时。
  • 如何写性能测试用例?

    2009-09-14 19:08:39

    1. 如何写性能测试用例


    由于性能测试与功能测试有很大的区别,所以讨论出的结果可能与预先的设想有一定的区别


    性能测试的目的:
    为了验证系统是否达到用户提出的性能指标,同时发现系统中存在的性能瓶颈,起到优化系

    统的目的。

    性能测试指标的来源:
    用户对各项指标提出的明确需求;如果用户没有提出性能指标则根据用户需求、测试设计人

    员的经验来设计各项测试指标。(需求+经验)

    主要的性能指标:
    服务器的各项指标(CPU、内存占用率等)、后台数据库的各项指标、网络流量、响应时间

    BUG观点:
    1、性能测试就象人在无风情况下跑步(正常情况下的性能指标);
    2、压力测试就象人在微风中跑步(在正常的基础上加大多少百分比压力的性能指标);
    3、负载测试就象人在强风中跑步(不断加压,直到系统崩溃)。

    HTTP观点:
    1、 负载测试是正常情况下持续的加压;
    2、 压力测试是直接加压达到一个极限值。

    大家统一的观点:
    性能测试、压力测试、负载测试密不可分,可统称为性能测试。

    性能测试要点:
    1、 性能测试是在功能测试完成之后进行。
    2、 性能测试计划、方案一般与测试用例统一在一个文档里。
    3、 测试环境应尽量与用户环境保持一致。
    4、 性能测试一般使用测试工具和测试人员编制测试脚本来完成,性能测试的环境应单独运

    行尽量避免与其他软件同时使用。
    5、 性能测试的重点在于前期数据的设计与后期数据的分析。
    6、 性能测试的用例主要涉及到整个系统架构的问题,所以测试用例一旦生成,改动一般不

    大,所以做性能测试的重复使用率一般比较高。(说明:当系统中出现的某个功能点需要修

    改,它一般只会影响到功能测试的设计用例,而对于性能测试,很少影响到性能测试的设计

    用例。但是如果某个功能有较大的修改,性能测试也应该进行重新测试。)

     

    2. Loadrunner性能测试一个实例 (经典)


      随着测试越来越重要,其中的性能测试也受到越来越多的关注。比较普遍的性能测试工

    具是Loadrunner7.51,但是很多人对此性能工具不是很熟悉。本人也是总结心得体会,将做

    过的性能测试实例以饷大家,希望对各位做测试的朋友有所帮助。
    该方案是针对某公司试题库的性能测试。该试题库是用来对公司内部员工培训结果的一个考

    核。试题库在公司内部web服务器上,假设开设50个账号和密码可供50个考生同时参加考试

    。要求,每台机器只能由一个用户使用,每个用户只能使用各自不同的账号登录考试系统,

    做完题目后,要求提交考试结果,若在制定的时间内不提交,则系统强制提交考试结果。
    但是,一般测试部门不可能有50台机器同时进行测试的。所以,可以借Loadrunner7.51模拟

    IP地址,修改脚本来协助测试。但是,为了保证测试结果,建议搜罗公司中所有可用的机器

    进行复测,因为有时候是不可以完全信赖工具的。
    现场测试环境
    硬件:50台PC机,Web服务器
    软件:Loadrunner7.0,Win2000,IE5.0和IE6.0
    人员:质控部2人,执行现场测试
    项目部22人,提供现场环境
    技术部各1人,提供技术支持
    测试要求
    50个用户拥有独立IP地址,不同的用户及密码登录,试题完成后各自同时提交。
    测试内容
    50个用户以不同的用户名和密码登录试题库。试题完成后,提交考试结果。测试考试结果是

    否能正常提交以及正确评分。
    测试方案
    1、 完全20台实际的PC机进行现场测试。
    (1) 准备工作,并做计划。第一轮测试执行三遍,设定用户考试内容全部同时提交,第一

    遍全部使用IE5.0,第二遍10台使用IE5.0,10台使用IE6.0,第三遍全部使用IE6.0
    (2) At 9:00 ,20个用户同时登录系统
    (3) At 9:05 ,20个用户同时全部提交
    (4) 分别记录第一轮测试(三遍)的结果
    (5) 第二轮测试准备工作,设定15个用户考试内容同时提交,另外5个用户延时5分钟提交

    ,全部使用IE5.0
    (6) At 9:15 ,20个用户同时登录系统
    (7) At 9:20 ,15个用户同时提交
    (8) At 9:25 ,剩余5个用户同时提交
    (9) 记录第二轮测试结果
    (10) 第三轮测试准备工作,设定15个用户考试内容同时提交,另外5个用户延时5分钟提

    交,全部使用IE6.0
    (11) At 9:15 ,20个用户同时登录系统
    (12) At 9:20 ,15个用户同时提交
    (13) At 9:25 ,剩余5个用户同时提交
    (14) 记录第三轮测试结果
    (15) 第四轮测试准备工作,设定15个用户考试内容同时提交,另外5个用户延时5分钟提

    交,正常提交用户使用IE5.0,延时提交用户使用IE6.0
    (16) At 9:15 ,20个用户同时登录系统
    (17) At 9:20 ,15个用户同时提交
    (18) At 9:25 ,剩余5个用户同时提交
    (19) 记录第四轮测试结果
    (20) 第五轮测试准备工作,设定15个用户考试内容同时提交,另外5个用户延时5分钟提

    交,正常提交用户使用IE6.0,延时提交用户使用IE5.0
    (21) At 9:15 ,20个用户同时登录系统
    (22) At 9:20 ,15个用户同时提交
    (23) At 9:25 ,剩余5个用户同时提交
    (24) 记录第五轮测试结果
    (25) 第六轮测试准备工作,设定15个用户考试内容同时提交,另外5个用户延时5分钟提

    交,正常提交用户其中10个使用IE5.0,5个使用IE6.0,延时提交用户使用IE5.0
    (26) At 9:15 ,20个用户同时登录系统
    (27) At 9:20 ,15个用户同时提交
    (28) At 9:25 ,剩余5个用户同时提交
    (29) 记录第六轮测试结果
    (30) 第七轮测试准备工作,设定10个用户考试内容同时提交,另外10个用户分两次分别

    延时5分钟、15提交
    (31) At 9:35 ,20个用户同时登录系统
    (32) At 9:40 ,10个用户同时提交
    (33) At 9:45 ,剩余的其中5个用户同时提交
    (34) At 9:55 ,剩余的5个用户同时提交
    (35) 记录第七轮测试结果,参见第二轮测试-第六轮测试过程分别对IE5.0和IE6.0的情

    况进行测试
    (36) 第八轮测试准备工作,设定其中10个用户不提交,由系统强行提交
    (37) At 10:10 ,20个用户同时登录系统
    (38) At 10:15 ,10个用户同时提交
    (39) 其余用户的内容由系统强行提交
    (40) 记录第八轮测试结果,参见第二轮测试-第六轮测试过程分别对IE5.0和IE6.0的情

    况进行测试
    (41) 第九轮测试准备工作,设定其中10个用户同时提交,5个用户延时5分钟提交,其余

    用户由系统强行提交
    (42) At 10:25 ,20个用户同时登录系统
    (43) At 10:30 ,10个用户同时提交
    (44) At 10:35 ,剩余的其中5个用户同时提交
    (45) 剩余5个用户系统强制提交
    (46) 记录第九轮测试结果,参见第二轮测试-第六轮测试过程分别对IE5.0和IE6.0的情

    况进行测试
    2、 模拟20个用户进行测试。其中,10台是PC机,另外10台机器的IP地址是Loadrunner模拟

    出来的。
    (1) 在10台实际的PC机中抽取其中一台虚拟10个IP地址,包括自身的IP地址,该机器上共

    11个IP地址,这11个IP地址只能全部使用IE5.0或者全部使用IE6.0
    (2) 其余9台实际的PC机分别由9个人操作,另外一台机器由一位质控部人员操作
    (3) 对于异常情况,延时提交和强制提交全部由实际的机器来模拟
    (4) 其余过程参见1
    3、 模拟20个用户进行测试。其中,5台是PC机,另外15台机器的IP地址是用Loadrunner模

    拟出来的。
    (1) 在5台实际的PC机中抽取其中一台虚拟15个IP地址,包括自身的IP地址,该机器上共

    16个IP地址,这16个IP地址只能全部使用IE5.0或者全部使用IE6.0
    (2) 其余4台实际的PC机分别由4个人操作,另外一台机器由一位质控部人员操作
    (3) 对于异常情况,延时提交和强制提交全部由实际的机器来模拟
    (4) 其余过程参见1
    4、 模拟35个用户进行测试。其中,20台是PC机,另外15台机器的IP地址是用Loadrunner模

    拟出来的。
    (1) 在20台实际的PC机中抽取其中两台分别虚拟7个、8个IP地址,这17个IP地址只能全部

    使用IE5.0或者全部使用IE6.0
    (2) 其余18台实际的PC机分别由18个人操作,另外两台机器由两位质控部人员操作
    (3) 对于异常情况,延时提交和强制提交全部由实际的机器来模拟
    (4) 其余过程参见1
    5、 模拟50台用户进行测试。其中,20台是PC机,另外30台机器的IP地址是用分别用两台实

    际的PC机模拟出来的。记录测试结果。
    (1) 在20台实际的PC机中抽取其中两台分别虚拟15个IP地址,这32个IP地址只能全部使用

    IE5.0或者全部使用IE6.0
    (2) 其余18台实际的PC机分别由18个人操作,另外两台机器由两位质控部人员操作
    (3) 对于异常情况,延时提交和强制提交全部由实际的机器来模拟
    (4) 其余过程参见1
    6、 对5中所述情况重复测试两次。
    7、 为了保证结果的正确性,完全50台实际的PC机进行现场测试。过程参见1
    测试过程
    注:该测试过程针对虚拟IP地址情况。
    1、 一台PC机上创建15个虚拟的IP地址。首先,启动IP Wizard,如下:开始程序-

    >Loadrunner->Tools->IP Wizard
    点击“Add”,添加你计划虚拟的IP地址。但是注意不能添加已经被占用的IP地址。
    2、 启动Virtual User Generator,并录制脚本,由于50个用户的账号和密码各不相同,所

    以,要修改脚本,设置参数。我是录制了一个脚本,复制了49份,在每个脚本中手工修改了

    各自不同的地方。
    3、 启动Loadrunner Controller,先将刚才保存的脚本添加进来。然后点击“Scenario”

    菜单,激活其中的“Enable IP Spoofer”。
    4、 点击屏幕右方的“Generators”,添加已经建立的IP,然后connect建立连接。
    5、对连接起来的不同用户(IP地址)分配不同的脚本,在Controller中的“design”中,

    点击“Load Generators”其中,每个脚本有一个用户执行。
    6、 执行Scenario

  • 性能测试工程师的面试题

    2009-09-14 19:07:15

    1.什么是负载测试?什么是性能测试?

     

    2.性能测试包含了哪些测试(至少举出3种)

     

    3.简述性能测试的步骤

     

    4.简述使用Loadrunner的步骤

     

    5.什么时候可以开始执行性能测试?

     

    6.LoadRunner由哪些部件组成?

     

    7.你使用LoadRunner的哪个部件来录制脚本?

     

    8.LoadRunner的哪个部件可以模拟多用户并发下回放脚本?

     

    9.什么是集合点?设置集合点有什么意义?Loadrunner中设置集合点的函数是哪个?

     

    10.什么是场景?场景的重要性有哪些?如何设置场景?

     

    11.请解释一下如何录制web脚本?

     

    12.为什么要创建参数?如何创建参数?

     

    13.什么是关联?请解释一下自动关联和手动关联的不同。

     

    14.你如何找出哪里需要关联?请给一些你所在项目的实例。

     

    15.你在哪里设置自动关联选项?

     

    16.哪个函数是用来截取虚拟用户脚本中的动态值?(手工管联)

     

    17.你在VUGen中何时选择关闭日志?何时选择标准和扩展日志?

     

    18.你如何调试LoadRunner脚本?

     

    19你在LR中如何编写自定义函数?请给出一些你在以前进行的项目中编写的函数。

     

    20.在运行设置下你能更改那些设置?

     

    21.你在不同的环境下如何设置迭代?

     

    22.你如何在负载测试模式下执行功能测试

     

    23.什么是逐步递增?你如何来设置?

     

    24.以线程方式运行的虚拟用户有哪些优点?

     

    25.当你需要在出错时停止执行脚本,你怎么做?

     

    26.响应时间和吞吐量之间的关系是什么?

     

    27.说明一下如何在LR中配置系统计数器?

     

    28.你如何识别性能瓶颈?

     

    29.如果web服务器、数据库以及网络都正常,问题会出在哪里?

     

    30.如何发现web服务器的相关问题?

     

    31.如何发现数据库的相关问题?

     

    32.解释所有web录制配置?

     

    33.解释一下覆盖图和关联图的区别?

     

    34.你如何设计负载?标准是什么?

     

    35.Vuser_init中包括什么内容?

     

    36. Vuser_end中包括什么内容?

     

    37.什么是think timethink_time有什么用?

     

    38.标准日志和扩展日志的区别是什么?

     

    39.解释以下函数及他们的不同之处。

    Lr_debug_message

    Lr_output_message

    Lr_error_message

    Lrd_stmt

    Lrd_fetch

     

    40.什么是吞吐量?

     

    41.场景设置有哪几种方法?

  • 彩票人生

    2009-09-08 19:07:24

    1 总有尾号相同的(2个或2类尾号相同的)
    2 奇偶比(3:3 2:4 1:5),前两个比例稍微多点,且交替出现,查看奇偶比图表
    3 一个连号,比如5,6
    4 斜连号
    5 直接用上期的号,一般2个或1个
    6 5注的号进行排除,有2、3、4个号在排除内的号中
    7 机选一注进行排除、修改
    8 奇偶图选号,第二个2、第八个8规则
    9 找四个相同的号过滤,其余的修改,每期都如此过滤
    10 输入生日幸运号选号
    11 固定投注一个号码!
  • 经典面试题!

    2009-09-08 18:51:50

  • 软件测试方法大全

    2009-08-31 17:57:36

     

      β测试_Beta测试

      β测试,英文是Beta testing。又称Beta测试,用户验收测试(UAT)。

      β测试是软件的多个用户在一个或多个用户的实际使用环境下进行的测试。开发者通常不在测试现场,Beta测试不能由程序员或测试员完成。

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

      α测试_Alpha测试

      α测试,英文是Alpha testing。又称Alpha测试.

      Alpha测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的受控测试,Alpha测试不能由该系统的程序员或测试员完成。

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

      可移植性测试

      可移植性测试,英文是Portability testing。又称兼容性测试。

      可移植性测试是指测试软件是否可以被成功移植到指定的硬件或软件平台上。

      用户界面测试-UI测试

      用户界面测试,英文是User interface testing。又称UI测试。

      用户界面,英文是User interface。是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。

      用户界面测试是指测试用户界面的风格是否满足客户要求,文字是否正确,页面是否美观,文字,图片组合是否完美,操作是否友好等等。UI 测试的目标是确保用户界面会通过测试对象的功能来为用户提供相应的访问或浏览功能。确保用户界面符合公司或行业的标准。包括用户友好性、人性化、易操作性测试。

      用户界面测试用户分析软件用户界面的设计是否合乎用户期望或要求。它常常包括菜单,对话框及对话框上所有按钮,文字,出错提示,帮助信息 (Menu 和Help content)等方面的测试。比如,测试Microsoft Excel中插入符号功能所用的对话框的大小,所有按钮是否对齐,字符串字体大小,出错信息内容和字体大小,工具栏位置/图标等等。

      冒烟测试

      冒烟测试,英文是Smoke testing。

      冒烟测试的名称可以理解为该种测试耗时短,仅用一袋烟功夫足够了。也有人认为是形象地类比新电路板功基本功能检查。任何新电路板焊好后,先通电检查,如果存在设计缺陷,电路板可能会短路,板子冒烟了。

      冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。

      随机测试

      随机测试,英文是Ad hoc testing。

      随机测试没有书面测试用例、记录期望结果、检查列表、脚本或指令的测试。主要是根据测试者的经验对软件进行功能和性能抽查。随机测试是根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

      随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试样例(TestCase)没有覆盖到的部分。另外,对于软件更新和新增加的功能要重点测试。重点对一些特殊点情况点、特殊的使用环境、并发性、进行检查。尤其对以前测试发现的重大Bug,进行再次测试,可以结合回归测试 (Regressive testing)一起进行。

      本地化测试

      本地化测试,英文是Localization testing。

      本地化就是将软件版本语言进行更改,比如将英文的windows改成中文的windows就是本地化。本地化测试的对象是软件的本地化版本。本地化测试的目的是测试特定目标区域设置的软件本地化质量。本地化测试的环境是在本地化的操作系统上安装本地化的软件。从测试方法上可以分为基本功能测试,安装/卸载测试,当地区域的软硬件兼容性测试。测试的内容主要包括软件本地化后的界面布局和软件翻译的语言质量,包含软件、文档和联机帮助等部分。

      本地化能力测试

      本地化能力测试,英文是Localizability testing。

      本地化能力测试是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。

      本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了国定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。

      国际化测试

      国际化测试,英文是International testing。又称国际化支持测试。

      国际化测试的目的是测试软件的国际化支持能力,发现软件的国际化的潜在问题,保证软件在世界不同区域都能正常运行。国际化测试使用每种可能的国际输入类型,针对任何区域性或区域设置检查产品的功能是否正常,软件国际化测试的重点在于执行国际字符串的输入/输出功能。国际化测试数据必须包含东亚语言、德语、复杂脚本字符和英语(可选)的混合字符。

      国际化支持测试是指验证软件程序在不同国家或区域的平台上也能够如预期的那样运行,而且还可以按照原设计尊重和支持使用当地常用的日期,字体,文字表示,特殊格式等等。比如,用英文版的 Windows XP 和 Microsoft Word 能否展示阿拉伯字符串?用阿拉伯版的 Windows XP 和 阿拉伯版的Microsoft Word 能否展示阿拉伯字符串?又比如,日文版的Microsoft Excel对话框是否显示正确翻译的日语?一旦来说执行国际化支持测试的测试人员往往需要基本上了解这些国家或地区的语言要求和期望行为是什么。

      安装测试

      安装测试,英文是Installing testing。

      安装测试是确保软件在正常情况和异常情况下,例如,进行首次安装、升级、完整的或自定义的安装都能进行安装的测试。异常情况包括磁盘空间不足、缺少目录创建权限等场景。核实软件在安装后可立即正常运行。安装测试包括测试安装代码以及安装手册。安装手册提供如何进行安装,安装代码提供安装一些程序能够运行的基础数据。

      白盒测试-结构测试-逻辑驱动测试

      白盒测试,英文是White Box Testing。又称结构测试或者逻辑驱动测试。

    等价划分测试

      等价划分测试的英文是equivalence partition testing。

      等价划分测试是根据等价类设计测试用例的一种技术。是黑盒测试的典型方法之一,通过把被测试程序所有可能的输入数据域划分成若干部分。从每一部分中选取少数有代表性的数据作为测试用例,可有效减少测试次数,极大提高软件测试效率,缩短软件开发周期.等价类划分测试的目的就是为了在有限的测试资源的情况下,用少量有代表性的数据得到比较好的测试效果。有效等价类盒无效等价类。有效等价类中的数据代表的是一组符合需求文档的正确的有意义数据。无效等价类则正相反。

      判定表

      判定表的英文是decision table,是指一个表格,用于显示条件和条件导致动作的集合。

      定义:判定表是分析和表达多逻辑条件下执行不同操作的情况的工具。

      判定表的优点:能够将复杂的问题按照各种可能的情况全部列举出来,简明并避免遗漏。因此,利用判定表能够设计出完整的测试用例集合。

      在一些数据处理问题当中,某些操作的实施依赖于多个逻辑条件的组合,即:针对不同逻辑条件的组合值,分别执行不同的操作。判定表很适合于处理这类问题

      深度测试

      深度测试的英文Depth test ,是指执行一个产品的一个特性的所有细节,但不测试所有特性。

      当比较函数返回真的时候才显示出效果来。必须启用“#深度测试”,才能执行测试。不使用的时候需要关闭。

      基于设计的测试

      基于设计的测试的英文是design-based testing,是根据软件的构架或详细设计引出测试用例的一种方法。

      一种基于设计模型的测试方法(Model Based  TestIng System,MATIS).该方法利用用户界面自动生成方法,把设计模型中的类属性定义和实现中的控件属性组织在一起,构建描述界面的逻辑对照表,辅助测试脚本引擎执行自动测试脚本.借助设计模型中扩展的类定义,MATIS方法可以自动生成测试用例和测试数据。

      文档测试

      文档测试的英文是documentation testing,测试关注于文档的正确性。

      文档测试有三大类分别是开发文件、用户文件、管理文件。

      1. 开发文件:可行性研究报告、软件需求说明书、数据要求说明书、概要设计说明书、详细设计说明书、数据库设计说明书、模块开发卷宗。

      2.用户文件:用户手册、操作手册。

      3.管理文件:项目开发计划、测试计划、测试分析报告、开发进度月报、项目开发总结报告。

      软件测试中的文档测试主要是对相关的设计报告和用户使用说明进行测试,对于设计报告主要是测试程序与设计报告中的设计思想是否一致;对于用户使用说明进行测试时,主要是测试用户使用说明书中对程序操作方法的描述是否正确,重点是用户使用说明中提到的操作例子要进行测试,保证采用的例子能够在程序中正确完成操作。

      域测试

      域测试的英文是domain testing,定义参考等价划分测试(equivalence partition testing);

      一般分为单域测试和多域测试,其中单域测试包括设备测试和业务测试,设备测试包括测试某个系统的软交换设备、中继媒体网关设备、信令网关设备、接入媒体网关和IAD等设备。

      等价类划分有两种不同的情况:有效等价类和无效等价类。设计时要同时考虑这两种等价类,因为软件不仅要能接收合理的数据,也要能经受意外的考验。

      一有效等价类:是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。

      二无效等价类:与有效等价类的定义恰巧相反。

      接口测试

      接口测试的英文是interface testing,接口测试测试系统组件间接口的一种测试。

      接口测试的好处:

      由于接口测试代码本身就是用junit(当然接口的类型不同,不一定是Junit来实现)来实现的,是属于自动化测试的范畴,因此必定也包含自动化测试所固有的优势。

      1) 提高测试质量

      软件开发的过程是一个持续集成和改进的过程,而每一次的改进都可能引进新bug,因此当软件的一部,或者全部修改时,都需要对软件产品重新进行测试。其目的是要验证修改后的产品是符合需求的,而当没有自动化测试代码时,往往会由于各种各样的原因,回归不充分,导致bug遗漏。

      2) 提高测试效率

      软件系统的规模越来越大,功能点越来越多,开发人员的自测或者测试人员的人工测试非常耗时和繁琐,势必导致测试效率的低下,而自动化测试正好解决这些耗时繁琐的任务,在对外接口功能不变的情况下,达到了一次编写,永久使用的效果。

      3) 提高测试覆盖

      通过手工测试很难测试到一些更深层次的异常和安全的问题,通过一些辅助的一些测试工具,能分析出代码的覆盖率,通过覆盖率的提高来提高测试的深度。

      4) 更好地重现软件缺陷

      由于每次执行都是相同的代码,一旦代码出错,必定回归出错

      5) 更好定位错误

      由于接口测试是一种自下向上的测试,因此一量出错,非常容易定位出错,不向系统测试那样了,一旦有Bug,需要几层验证之后才能确定出错位置

      6) 降低修改bug的成本接口测试基本和开发人员的编码平行工作,因此发现问题会比系统测试早很多,因此减少了修改bug的成本。

      7) 增进测试人员和开发人员之间的合作关系,测试工程师为了更好地开展工作,需要对开发技术有深入的理解和实践,有了与开发工程师更多的交流。

      8) 降低了项目不能按时发布的风险由于接口测试很早就介入,在提交给系统测试前对项目代码的核心模块已经做了详尽的测试,必定加速系统测试的时间,由此来保证项目的按时发布。

      9)提升测试人员的技能。做接口测试必须了解开发人员的开发流程和一些开发技能,也需要了解测试工具的一些使用方法和一些测试思想,提升了测试人员的技术附加值,提高了自身的竟争力。

      10)促使项目开发过程的规范化

      要进行接口,需要完善的文档进行保障,没有测试文档,接口测试将寸步难行,接口测试将增加开发过程规范化产出,而规范化产出也保证了项目质量。

      逆向测试,反向测试,负面测试

      逆向测试/反向测试/负面测试的英文是Negative Testing,测试瞄准于使系统不能工作。

      负面测试与正面测试的比较:

      负面测试(Negative testing)是相对于正面测试(Positive testing)而言的。它们也是测试设计时的两个非常重要的划分。简单点说,正面测试就是测试系统是否完成了它应该完成的工作;而负面测试就是测试系统是否不执行它不应该完成的操作。形象一点,正面测试就象一个毕恭毕敬的小学生,老师叫我做什么,我就做什么;而负面测试就象一个调皮捣蛋的孩子,你叫我这样做,我偏不这样做,而且和你对着干。开发人员也是最讨厌修改此类bug的。

      非功能性需求测试

      非功能性需求测试的英文是non-functional requirements testing ,是与功能不相关的需求测试,如:性能测试、可用性测试等。

      为什么非功能性需求很重要?

      在您设计解决方案的过程中满足功能性需求当然是很重要的。但是,如果没有考虑非功能性需求,您的解决方案则很难取得实效。

      非功能性需求特点:1.不要脱离实际环境;2.可靠性;3.可用性;4.有效性;5.可维护性;6.可移植性。

      白盒测试是把测试对象看作一个打开的盒子。利用白盒测试法进行动态测试时,需要测试软件产品的内部结构和处理过程,不需测试软件产品的功能。

      白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试。其中逻辑覆盖包括语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。

      白盒测试是知道产品内部工作过程,可通过测试来检测产品内部动作是否按照规格说明书的规定正常进行,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不顾它的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用于软件验证。

      白盒测试常用工具有:Jtest、VcSmith、Jcontract、C++ Test、CodeWizard、logiscope。

      黑盒测试-功能测试-数据驱动测试

      黑盒测试,英文是Black Box Testing。又称功能测试或者数据驱动测试。

      黑盒测试是根据软件的规格对软件进行的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。

      软件测试人员以用户的角度,通过各种输入和观察软件的各种输出结果来发现软件存在的缺陷,而不关心程序具体如何实现的一种软件测试方法。

      黑盒测试常用工具有:AutoRunner、winrunner、loadrunner。

      自动化测试

      自动化测试,英文是Automated Testing。

      使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试和功能测试中用得较多。通过录制测试脚本,然后执行这个测试脚本来实现测试过程的自动化。国内领先的自动化测试服务提供商是泽众软件。自动化测试工具有AutoRunner和TAR等。

      回归测试

      回归测试,英文是Regression testing。

      回归测试是指在发生修改之后重新测试先前的测试以保证修改的正确性。理论上,软件产生新版本,都需要进行回归测试,验证以前发现和修复的错误是否在新软件版本上再次出现。

      根据修复好了的缺陷再重新进行测试。回归测试的目的在于验证以前出现过但已经修复好的缺陷不再重新出现。一般指对某已知修正的缺陷再次围绕它原来出现时的步骤重新测试。通常确定所需的再测试的范围时是比较困难的,特别当临近产品发布日期时。因为为了修正某缺陷时必需更改源代码,因而就有可能影响这部分源代码所控制的功能。所以在验证修好的缺陷时不仅要服从缺陷原来出现时的步骤重新测试,而且还要测试有可能受影响的所有功能。因此应当鼓励对所有回归测试用例进行自动化测试。

      验收测试

      验收测试,英文是Acceptance testing。

      验收测试是指系统开发生命周期方法论的一个阶段,这时相关的用户或独立测试人员根据测试计划和结果对系统进行测试和接收。它让系统用户决定是否接收系统。它是一项确定产品是否能够满足合同或用户所规定需求的测试。

      验收测试一般有三种策略:正式验收、非正式验收活Alpha 测试、Beta 测试。

      动态测试

      动态测试,英文是Moment Testing。

      动态测试是指通过运行软件来检验软件的动态行为和运行结果的正确性。

      根据动态测试在软件开发过程中所处的阶段和作用,动态测试可分为如下几个步骤:

      1、单元测试

      2、集成测试

      3、系统测试

      4、验收测试

      5、回归测试

      探索测试

      探索测试,英文是Exploratory Testing。

      探索测试是指通常用于没有产品说明书的测试,这需要把软件当作产品说明书来看待,分步骤逐项探索软件特性,记录软件执行情况,详细描述功能,综合利用静态和动态技术来进行测试。探索测试人员只靠智能、洞察力和经验来对bug的位置进行判断,所以探索测试又被称为自由形式测试。

      单元测试

      单元测试,英文是Unit Testing。

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

      集成测试

      集成测试,英文是Integration Testing。

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

      集成测试是单元测试的逻辑扩展。它的最简单的形式是:两个已经测试过的单元组合成一个组件,并且测试它们之间的接口。从这一层意义上讲,组件是指多个单元的集成聚合。在现实方案中,许多单元组合成组件,而这些组件又聚合成程序的更大部分。方法是测试片段的组合,并最终扩展进程,将您的模块与其他组的模块一起测试。最后,将构成进程的所有模块一起测试。此外,如果程序由多个进程组成,应该成对测试它们,而不是同时测试所有进程。

      集成测试识别组合单元时出现的问题。通过使用要求在组合单元前测试每个单元,并确保每个单元的生存能力的测试计划,可以知道在组合单元时所发现的任何错误很可能与单元之间的接口有关。这种方法将可能发生的情况数量减少到更简单的分析级别

      系统测试

      系统测试,英文是System Testing。

      系统测试是基于系统整体需求说明书的黑盒类测试,应覆盖系统所有联合的部件。系统测试是针对整个产品系统进行的测试,目的是验证系统是否满足了需求规格的定义,找出与需求规格不相符合或与之矛盾的地方。

      系统测试的对象不仅仅包括需要测试的产品系统的软件,还要包含软件所依赖的硬件、外设甚至包括某些数据、某些支持软件及其接口等。因此,必须将系统中的软件与各种依赖的资源结合起来,在系统实际运行环境下来进行测试。

      端到端测试

      端到端测试,英文是End to End Testing。

      端到端测试类似于系统测试,测试级的“宏大”的端点,涉及整个应用系统环境在一个现实世界使用时的模拟情形的所有测试。例如与数据库对话,用网络通讯,或与外部硬件、应用系统或适当的系统对话。端到端架构测试包含所有访问点的功能测试及性能测试。端到端架构测试实质上是一种"灰盒"测试,一种集合了白盒测试和黑盒测试的优点的测试方法。

      健全测试

      健全测试,英文是Sanity testing。

      健全测试是指一个初始化的测试工作,以决定一个新的软件版本测试是否足以执行下一步大的测试努力。例如,如果一个新版软件每5分钟与系统冲突,使系统陷于泥潭,说明该软件不够“健全”,目前不具备进一步测试的条件。

      衰竭测试

      衰竭测试,英文是Failure Testing。

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

      接受测试

      接受测试,英文是Accept Testing。

      接受测试是基于客户或最终用户的规格书的最终测试,或基于用户一段时间的使用后,看软件是否满足客户要求。一般从功能、用户界面、性能、业务关联性进行测试。

      负载测试

      负载测试,英文是Load testing。

      负载测试是测试一个应用在重负荷下的表现。例如测试一个 Web 站点在大量的负荷下,何时系统的响应会退化或失败,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。

      负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

      强迫测试

      强迫测试,英文是Force Testing。

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

      压力测试

      压力测试,英文是Stress Testing。和负载测试差不多。

      压力测试是一种基本的质量保证行为,它是每个重要软件测试工作的一部分。压力测试的基本思路很简单:不是在常规条件下运行手动或自动测试,而是在计算机数量较少或系统资源匮乏的条件下运行测试。通常要进行压力测试的资源包括内部内存、CPU 可用性、磁盘空间和网络带宽等。一般用并发来做压力测试。

      性能测试

      性能测试,英文是Performance Testing。

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

      通常验证软件的性能在正常环境和系统条件下重复使用是否还能满足性能指标。或者执行同样任务时新版本不比旧版本慢。一般还检查系统记忆容量在运行程序时会不会流失(memory leak)。比如,验证程序保存一个巨大的文件新版本不比旧版本慢。

      可用性测试

      可用性测试,英文是Practical Usability Testing。

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

      卸载测试

      卸载测试,英文是Uninstall Testing。

      卸载测试是对软件的全部、部分或升级卸载处理过程的测试。主要是测试软件能否卸载,卸载是否干净,对系统有无更改,在系统中的残留与后来的生成文件如何处理等。还有原来更改的系统值是否修改回去

      恢复测试

      恢复测试,英文是Recovery testing。

      恢复测试是测试一个系统从如下灾难中能否很好地恢复,如遇到系统崩溃、硬件损坏或其他灾难性问题。恢复测试指通过人为的让软件(或者硬件)出现故障来检测系统是否能正确的恢复,通常关注恢复所需的时间以及恢复的程度。

      恢复测试主要检查系统的容错能力。当系统出错时,能否在指定时间间隔内修正错误并重新启动系统。恢复测试首先要采用各种办法强迫系统失败,然后验证系统是否能尽快恢复。对于自动恢复需验证重新初始化(reinitialization)、检查点(checkpointing mechanisms)、数据恢复(data recovery)和重新启动 (restart)等机制的正确性;对于人工干预的恢复系统,还需估测平均修复时间,确定其是否在可接受的范围内。

      安全测试

      安全测试,英文是Security Testing。

      安全测试是测试系统在防止非授权的内部或外部用户的访问或故意破坏等情况时怎么样。这可能需要复杂的测试技术。安全测试检查系统对非法侵入的防范能力。安全测试期间,测试人员假扮非法入侵者,采用各种办法试图突破防线。例如:

      ①想方设法截取或破译口令;

      ②专门定做软件破坏系统的保护机制;

      ③故意导致系统失败,企图趁恢复之机非法进入;

      ④试图通过浏览非保密数据,推导所需信息,等等。理论上讲,只要有足够的时间和资源,没有不可进入的系统。因此系统安全设计的准则是,使非法侵入的代价超过被保护信息的价值。此时非法侵入者已无利可图。

      兼容性测试

      兼容测试,英文是Compatibility Testing。

      兼容测试是测试软件在一个特定的硬件/软件/操作系统/网络等环境下的性能如何。向上兼容向下兼容,软件兼容硬件兼容。软件的兼容性有很多需要考虑的地方。

      比较测试

      比较测试,英文是Compare Testing。

      比较测试是指与竞争伙伴的产品的比较测试,如软件的弱点、优点或实力。来取长补短,以增强产品的竞争力。

      可接受性测试

      可接受性测试,英文是Acceptability Testing。

      可接受性测试是在把测试的版本交付测试部门大范围测试以前进行的对最基本功能的简单测试。因为在把测试的版本交付测试部门大范围测试以前应该先验证该版本对于所测试的功能基本上比较稳定。必须满足一些最低要求。比如不会很容易程序就挂起或崩溃。如果一个新版本没通过可测试性的验证,就应该阻拦测试部门花时间在该测试版本上测试。同时还要找到造成该版本不稳定的主要缺陷并督促尽快加以修正

      边界条件测试

      边界条件测试,英文是Boudary Testing。又称边界值测试。

      一种黑盒测试方法,适度等价类分析方法的一种补充,由长期的测试工作经验得知,大量的错误是发生在输入或输出的边界上。因此针对各种边界情况设计测试用例,可以查出更多的错误。

      边界条件测试是环绕边界值的测试。通常意味着测试软件各功能是否能正确处理最大值,最小值或者所设计软件能够处理的最长的字符串等等。

      强力测试

      强力测试,英文是Mightiness Testing。

      强力测试通常验证软件的性能在各种极端的环境和系统条件下是否还能正常工作。或者说是验证软件的性能在各种极端环境和系统条件下的承受能力。比如,在最低的硬盘驱动器空间或系统记忆容量条件下,验证程序重复执行打开和保存一个巨大的文件1000次后也不会崩溃或死机。

      装配/安装/配置测试

      装配/安装/配置测试是验证软件程序在不同厂家的硬件上,所支持的不同语言的新旧版本平台上,和不同方式安装的软件都能够如预期的那样正确运行。比如,把英文版的 Microsoft Office 2003安装在韩文版 的Windows Me 上,再验证所有功能都正常运行。

      静态测试

      静态测试,英文是Static Testing。

      静态测试指测试不运行的部分,例如测试产品说明书,对此进行检查和审阅.。静态方法是指不运行被测程序本身,仅通过分析或检查源程序的文法、结构、过程、接口等来检查程序的正确性。静态方法通过程序静态特性的分析,找出欠缺和可疑之处,例如不匹配的参数、不适当的循环嵌套和分支嵌套、不允许的递归、未使用过的变量、空指针的引用和可疑的计算等。静态测试结果可用于进一步的查错,并为测试用例选取提供指导。

      静态测试常用工具有:Logiscope、PRQA;

      隐藏数据测试

      隐藏数据测试在软件验收和确认阶段是十分必要和重要的一部分。程序的质量不仅仅通过用户界面的可视化数据来验证,而且必须包括遍历系统的所有数据。

      假设一个应用程序要求用户两条信息-----用户名和密码来创建帐户。这个用户输入这两条数据后保存。最后,一个确认窗口将通过数据库中找到这条数据来显示用户名和密码给用户。为了验证所有的数据保存是否正确,一个QA测试人员会在这个确认窗口简单的查看下用户名和密码。如果他们成功了?假设数据库记录了第三条信息----创建日期,它可能不会出现在确认窗口,而只在存档中才出现。如果创建日期保留的不正确,而QA测试人员只验证屏幕上的数据,那么这个问题就不可能被发现。创建日期可能就是一个bug,由于一个用户帐户保存了一个错误的日期到数据库中,这个问题也不可能会被引起注意,因为它被用户界面所隐藏。这只是一个简单的例子,但是它却演化出了一点:隐藏数据测试的重要性。

  • 卸载测试\安装测试

    2009-08-21 15:48:29

    卸载测试 and 安装测试
    ============卸载测试==============
    文件----安装目录里的文件及文件夹(如:程序安装在几处的)
    非安装目录(向系统其它地方添加的文件及文件夹)
                          它们包括(exe,dll,配置文件等)
                                快捷方式-(桌面,菜单,任务栏,系统栏,控件面板,系统服务列表等)
                                复原方面-卸载后,系统能否恢复到软件安装前的状态(包含目录结构、动态库,注册                                                    表,系统配置文件,驱动程序,关联情况等)
                                卸载方式--程序自带卸载程序/系统的控件面板卸载/其它自动卸载工具(如:优化大师)
                                卸载状态--程序在运行/暂停/终止等状态时的卸载
                                非正常卸载情况-卸载软件过程中,取消卸载进程,然后,观察软件能否继续正常使用
                                冲击卸载--在卸载的过程中,中断电源,然后,启动计算机后,重新卸载软件,如果软                                                件无法卸载,则重新安装软件,安装之后再重新卸载。
                                卸载环境--不同的(操作系统,硬件环境,网络环境等)下进行卸载
    卸载后,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)


    ==========安装测试============
    一:基本目标
    1.安装程序能正确运行
    2.程序安装正确
    3.程序安装后能正确运行
    4.完善性安装后程序能正确运行
    二:一些方面
    0、安装手册给的所有步骤得到验证;
    1、安装过程中所有缺省选项得到验证;
    2、安装过程中典型选项得到验证;
    3、测试各种不同的安装组合,并验证各种不同组合的正确性(包括参数组合,控件执行顺序组合,产品安装        组件组合,产品组件安装顺序组合(如b/s)等)
    4、安装过程中异常配置或状态(非法和不合理配置)情况进行了测试(如:断电;数据库终止,网络终止            等)
    5、安装后是否能产生正确的目录结构和文件,文件属性正确;
    6、安装后动态库是否正确;
    6、安装后软件能否正确运行;
    7、安装后没有生成多余的目录结构,文件,注册表信息,快捷方式等;
    9、安装测试应该在所有的运行环境上进行验证(手册上指定如:操作系统,数据库,硬件环境,网络环境            等);
    10、自动安装还是手工配置安装
    11、至少要在一台笔记本上进行安装/卸载测试,因为有很多产品在笔记本中会出现问题,尤其是系统级的        产品
    13、安装,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)



    一、安装测试
    常规功能测试
    0、安装手册给的所有步骤得到验证;
    1、安装过程中所有缺省选项得到验证;
    2、安装过程中典型选项得到验证;
    3、测试各种不同的安装组合,并验证各种不同组合的正确性(包括参数组合,控件执行顺序组合,产品安装    组件组合,产品组件安装顺序组合(如b/s)等)
    4、安装界面的所有信息都显示正确、没有错误别子、没有二义性;
    5、安装界面的每个按钮都进行校验有效性;
    6、安装后是否能产生正确的目录结构和文件,文件属性正确;
    7、安装后动态库是否正确;
    8、安装后软件能否正确运行;
    9、安装后没有生成多余的目录结构,文件,注册表信息,快捷方式等;
    10、如果安装程序有重新安装功能的话,要考虑重新安装是否正常。
    增强测试
    1、验证用户机器已安装相同产品的情况下再进行安装,安装程序是否有进行相应校验;
    2、安装测试应该在所有的运行环境上进行验证(手册上指定如:操作系统(XP\2000\2003),数据库,硬        件环境,网络环境等)
    3、安装路径要考虑几种情况:a、安装路径较长;b、安装路径中包含空格;c、安装路径包含中文;d、安     装路径包含特殊字符;e、安装路径编码规范校验(比如c:crm或c:/crm)
    4、硬盘分区、可用空间校验:a、硬盘空间不足;b、硬盘分区不存在(如用户机器不存在F盘,安装路径     输入F盘);c、空间本来充足的情况下,在安装过程中往磁盘空间放入大量文件,导致磁盘空间不足的     情况。
    5、目的安装文件夹为只读的情况;
    6、在安装过程中人为访问其他软件,比如安装过程中打开word文档或打开IE上网;
    7、同时运行两个安装程序的情况:验证同时运行相同的安装程序及同时运行不同的安装程序两种情况;
    8、在笔记本环境下进行安装卸载,因为有很多产品在笔记本中会出现问题,尤其是系统级的产品;
    9、考虑文件被占用的情况下进行程序回滚或卸载;
    10、校验执行安装包的系统权限,即以系统管理员权限进行安装及非系统管理员权限进行安装;
    异常测试
    1、安装过程中计算机断电,要保证重新插上电源,重新安装可以正常安装;
    2、安装过程中计算机重启,要保证计算机重启后,重新安装可以正常安装;
    3、安装过程中安装进程被迫停止(即手动停止进程),要保证重新安装可以正常安装;
    4、安装包如果有创建数据库步骤,则要考虑在创建数据库步骤时数据库服务停止,安装包是否进行友好提        示;重启数据库服务后,是否还可以重新安装;

    二、卸载测试
    1、文件删除情况---卸载后是否删除安装时所创建的文件及文件夹(如:程序安装在几处的)、非安装目录                                (向系统其它地方添加的文件及文件夹),它们包括(exe,dll,配置文件等) ,快捷方式-                            (桌面,菜单,任务栏,系统栏,控件面板,系统服务列表等)
    2、复原方面---卸载后,系统能否恢复到软件安装前的状态(包含目录结构、动态库,注册表,系统配置文                                    件,驱动程序,关联情况等)(专门的测试工具regsnap)
    3、卸载方式--程序自带卸载程序/系统的控件面板卸载/其它自动卸载工具(如:优化大师)
    4、卸载状态--程序在运行/暂停/终止等状态时的卸载
    5、非正常卸载情况-卸载软件过程中,取消卸载进程,或计算机断电,或计算机重启;然后,启动计算机                            后,重新卸载软件,如果软件无法卸载,则重新安装软件,安装之后再重新卸载。
    6、卸载环境--不同的(操作系统,硬件环境,网络环境等)下进行卸载
    7、卸载后,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)
    8、健壮性测试:在用户机器上进行反复的安装-卸载-再安装
  • 做软件测试三、四年的给新手的建议

    2009-08-13 11:05:54

    做软件测试三、四年的给新手的建议

    做软件测试三,四年了,确实正应了那句“测试不如开发”,只是个人观点,而且我工作过都是外企和大型国有企业,软件测试流程和管理都相对很规范化的。
    下面几点给做测试的朋友参考一下:
    1、钱肯定少过开发人员,除非你工作七,八年才能拿年薪10W以上,一般的软件测试工程师很难上6K以上,开发人员工作四,五年后拿7,8K是太多数的。

    2、加班的现象可以说是很普遍,周一到周五随时加班是很正常的,周末肯定有一天要加班。
    3、不管怎么样努力和用什么测试效果的数据说明,领导还是不太重视测试部,领导认为我们测试的没有什么技术含量。但是我们已经在流程上改进很大,使用测试管理工具和自动化测试工具来提高测试生产力等等,这些努力的结果好象只有我们的老大才得分比较高,我们下面的小兵就只有吃苦的份。
    4、团队合作精神比较差,都是做技术的人的通病,以为你在一间公司呆久了,就很牛B一样,说话口气难于接受,好象现在公司就是他的一样。这个问题在几间公司里面的测试队伍中得到证实。在工作之余,很少团队一起聚餐或是出外游玩的机会,好象大家就知道上班---吃中午饭--上班--吃晚饭---加班---下班回家---睡觉的简单模式。
    5、人际关系和沟通技能都很重要,这一点不用我多说,大家都知道的。
    6、还有一点要提醒测试人员的是:做测试容易懒惰,因为重复性的工作比较多,然后在公司呆着好好的,什么都不想学和提高了,这样容易使你在软件的测试面比较狭窄了,其实你到其他的公司面试的时候,才发现自己很多不知道,不懂的。
    7、我们做测试几年了,都不想老是停留在执行测试,写测试用例,设计测试计划,写测试脚本,评审开发/测试文档上,写缺陷报告,写测试报告,管理和维护测试工具。但是上面的几点工作后,我们软件测试人员还能做些什么?

    怎么样提高软件测试员自身素质培养?
    (1) 首先,应对软件测试感兴趣和对自己有自信,如果具备了这两点,那么在开发过程中不管遇到什么样的困难,我相信你一定能克服。
    (2) 善于怀疑,世界上没有绝对正确的,总有错误的地方,具有叛逆心理,别人认为不可能发生的事,我却认为可能发生。别人认为是对的,我却认为不是对的。
    (3) 打破砂锅问到底的精神,对于只出现过一次的bug,一定找出原因,不解决誓不罢休。
    (4) 保持一个良好的心情,否则可能无法把测试作好。不要把生活中的不愉快的情绪带到工作中来
    (5) 做测试时要细心,不是所有的bug都能很容易的找出,一定要细心才能找出这些bug。
    (6) 灵活一些,聪明一点,多制造一些容易产生bug的例子。
    (7) 在有条件的情况下,多和客户沟通,他们身上有你所需要的。
    (8) 设身处地为客户着想,从他们的角度去测试系统。
    (9) 不要让程序员,以“这种情况不可能发生”这句话说服你,相反,你应该去说服他,告诉他在客户心里,并不是这样的。
    (10) 考虑问题要全面,结合客户的需求、业务的流程、和系统的构架,等多方面考虑问题。
    (11) 提出问题不要复杂化,这一点和前面的有点矛盾,如果你是一新手,暂时不要管这一点,因为最终将有你的小组成员讨论解决。
    (12) 追求完美,对于新测试员来说,努力的追求完美,这对你很好,尽管有些事无法做到,但你应该去尝试。
    (13) 幽默感,能和开发小组很好的沟通是关键,试着给你的开发小组找一个“BUG杀手”,或对他们说“我简直不敢相信,你写的程序居然到现在没有找到BUG”。
    (14) 到此是不是对测试很有兴趣呢?不过我要告诉你,测试过程中有酸甜苦辣,其中的滋味只有你知道,也许你会感到枯燥,要学会放松自己,去溜冰或做你喜欢做的事,不过,别放弃,因为你的自信告诉过你“你会是很优秀的测试员”不是吗?

    我们常见软件测试的技巧 :
    软件测试虽然辛苦,但是掌握了一定的技巧之后将使你事半功倍。
    (1) 边界测试,测试用户输入框中的数值的最大数和最小数,以及为空时的情况。
    (2) 非法测试,例如在输入数字的地方输入字母。
    (3) 跟踪测试,跟踪一条数据的流程,保证数据的正确性。
    (4) 在开始测试时应保证数据的正确性,然后在从系统中找出各种BUG。
    (5) 接口测试,程序往往在接口的地方很容易发生错误,要在此模块测试勿掉以轻心。
    (6) 代码重用测试,在开发过程中有些模块功能几乎相同,程序员在重用代码时可能忘记在原有代码上修改或修改不全面,而造成的错误。
    (7) 突发事件测试,服务器上可能发生意外情况的测试。
    (8) 外界环境测试,有些系统在开发时依赖于另外一个系统,当另外一个系统发生错误时, 这个系统所受到的影响的情况。
    (9) 在程序员刚修复Bug之后的地方,再找一找,往往程序员只修复报告出来的缺陷而不去考虑别的功能在修改时可能会重新造成错误。
    (10) 认真做好测试记录在做完一天的测试记录之后,第二天再根据第一天的测试记录重复测试你会发现有未修正的错误。
    (11) 文字测试,如果在系统中有用词不当的地方,我想这是不应该的。
    (12) 系统兼容测试,例如有些程序在IE6能运行正常,到IE5下不能运行。有些程序在WIN2000下能运行,而到WIN98却不能运行。像一些很特别的用户去使用系统,你很有可能发现BUG。
    (13) 用户的易用性测试,往往用户的需求是不断的变化的,而其中的一部份变化的原因,是有用户操作上不方便引起的。
    软件测试是软件开发中的重中之重,没有一点可以马虎的,在项目管理过程,我强调的时是每个过程的每一个环节都要进行测试,保证系统在每个阶段可以控制。因为软件测试中考虑的问题基本上是项目管理中考虑的问题。
    我认为在项目管理中考虑的一些问题应该是在软件测试时有些体现,体现的内容是软件测试的一些侧重点,具体说,软件测试是事务性的,而项目管理是策略性,一些策略性的东西必须在一些事务性的事务上来实现。
    针对这个经验,看过的朋友都会产生相同或者不同的看法,不妨与大家共享一下!

  • Web测试要点(功能、性能、可用性、兼容、安全)

    2009-08-12 11:21:03

    一、功能测试

    1、链接测试  
    (1)、测试所有链接是否按指示的那样确实链接到了该链接的页面; 
    (2)、测试所链接的页面是否存在; 
    (3)、保证Web应用系统上没有孤立的页面(所谓孤立页面是指没有链接指向该页面,只有知道正确的URL地址才能访问)。 

    2、表单测试
    (1)、注册、登陆、信息提交等,必须测试提交操作的完整性,以校验提交给服务器的信息的正确性;
    (2)、用户填写的出生日期与职业是否恰当,填写的所属省份与所在城市是否匹配等; 
    (3)、检验默认值的正确性;
    (4)、如表单只能接受指定的某些值,测试时跳过这些字符,看系统是否会报错。

    3、Cookies测试(session测试同)
    (1)、Cookies是否起作用; 
    (2)、Cookies是否按预定的时间进行保存;
    (3)、刷新对Cookies有什么影响。 


    4、设计语言测试
    (1)、使用哪种版本的HTML;
    (2)、验证不同的脚本语言。例如Java、Javascrīpt、 ActiveX、VBscrīpt或Perl等。

    5、数据库测试
    (1)、数据一致性错误:主要是由于用户提交的表单信息不正确而造成的;
    (2)、输出错误:主要是由于网络速度或程序设计问题等引起的。 


    二、性能测试

    1、连接速度测试
    (1)、Web系统响应时间;
    (2)、超时的限制。

    2、负载测试
    (1)、某个时刻同时访问Web系统的用户数量;
    (2)、也可以是在线数据处理的数量。

    3、压力测试
    (1)、压力测试是测试系统的限制和故障恢复能力,也就是测试Web应用系统会不会崩溃,在什么情况下会崩溃。黑客常常提供错误的数据负载,直到Web应用系统崩溃,接着当系统重新启动时获得存取权。
    (2)、压力测试的区域包括表单、登陆和其他信息传输页面等。

    三、可用性测试

    1、导航测试
    (1)、导航是否直观
    (2)、Web系统的主要部分是否可通过主页存取 
    (3)、系统是否需要站点地图、搜索引擎或其他的导航帮助 
    (4)、Web应用系统的页面结构、导航、菜单、连接的风格是否一致 
    (5)、Web应用系统导航帮助要尽可能地准确。Web应用系统的层次一旦决定,就要着手测试用户导航功能。

    2、图形测试
    一个Web应用系统的图形可以包括图片、动画、边框、颜色、字体、背景、按钮等。图形测试的内容有:
    (1)、要确保图形有明确的用途,图片或动画不要胡乱地堆在一起,以免浪费传输时间;
    (2)、Web应用系统的图片尺寸要尽量地小,并且要能清楚地说明某件事情,一般都链接到某个具体的页面;
    (3)、验证所有页面字体的风格是否一致;
    (4)、背景颜色应该与字体颜色和前景颜色相搭配;
    (5)、图片的大小和质量也是一个很重要的因素,一般采用JPG或GIF压缩。

    3、内容测试
    检验Web应用系统提供信息的正确性、准确性和相关性。
    信息的正确性是指信息是可靠的还是误传的 。

    4、整体界面测试
    整体界面是指整个Web应用系统的页面结构设计,是给用户的一个整体感。例如:当用户浏览Web应用系统时是否感到舒适,是否凭直觉就知道要找的信息在什么地方?整个Web应用系统的设计风格是否一致?当然,对界面的整体测试并不能单靠个人直觉来评定;每个人的审美观、专业角度、系统面向的行业及用户 、甚至性别与年龄等等,都是可能导致对界面作出不同评价的因素。所以要明白在对整体界面的测试过程中,其实是一个对最终用户进行调查的过程。一般Web应用系统采取在主页上做一个调查问卷的形式,来得到最终用户的反馈信息。

    四、兼容性测试

    1、平台测试
    在Web系统发布之前,需要在各种操作系统下对Web系统进行兼容性测试。

    2、浏览器测试
    (1)、浏览器是Web客户端最核心的构件,来自不同厂商的浏览器对Java,、Javascrīpt、ActiveX、 plug-ins或不同的HTML规格有不同的支持。例如,ActiveX是Microsoft的产品,是为Internet Explorer而设计的,Javascrīpt是Netscape的产品,Java是Sun的产品等等。另外,框架和层次结构风格在不同的浏览器中也有不同的显示,甚至根本不显示。不同的浏览器对安全性和Java的设置也不一样。
    (2)、测试浏览器兼容性的一个方法是创建一个兼容性矩阵。在这个矩阵中,测试不同厂商、不同版本的浏览器对某些构件和设置的适应性。

    五、安全性测试
    (1)、现在的Web应用系统基本采用先注册,后登陆的方式。因此,必须测试有效和无效的用户名和密码,要注意到是否大小写敏感,可以试多少次的限制,是否可以不登陆而直接浏览某个页面等;
    (2)、Web应用系统是否有超时的限制,用户登陆后在一定时间内(例如15分钟)没有点击任何页面,是否需要重新登陆才能正常使用;
    (3)、为了保证Web应用系统的安全性,需要测试相关信息是否写进了日志文件、是否可追踪;
    (4)、当使用了安全套接字时,还要测试加密是否正确,检查信息的完整性; 
    (5)、服务器端的脚本常常构成安全漏洞,这些漏洞又常常被黑客利用。所以,还要测试没有经过授权,就不能在服务器端放置和编辑脚本的问题。
    (6)、通过模拟攻击的形式拷贝Web应用程序的某个功能点的url地址,然后打开新的页面输入该url地址看其是否能跨过系统的登录模块直接进入该功能点。
    (7)、服务器端IIS是否设置了默认文档功能。
    (8)、IIS服务器的主目录应该与操作系统的安装路径设置在不同的盘符下。

  • windows xp下安装Redhat Linux

    2009-08-11 22:28:08

    windows xp下安装Redhat Linux

    windows xp下安装Redhat Linux

     

    windows xp下安装Redhat Linux

    下载VMWare解压后根据提示正触安装VMWare到硬盘中

    (1) 建立虚拟机

    A.用鼠标左建双击桌面中的"VMware workstation"图标,运行虚拟机

    B.建立一台虚拟机。点击“FILE(文件)”-“NEW(新建)”--“NewVirtual Machine(

    新建虚拟机)”,弹出虚拟机创建菜单。

    C.根据向导一步一步地创建虚拟机,首先选择安装方式是“TYPICAL(典型)”还是

    “CUSTOM(自定义)”安装。 我这里选择典型。

    D.因为这里是用于安装REDHAT,所以在Guest operating system(客户操作系统)“

    中选择”LINUX“,点击下一步。

    E.在Virtual machine name(虚拟机名字)中输入你想建立的虚拟机的名字

    F.在Location(位置)中选择虚拟机的安装位置。因为会在虚拟机中安装操作系统

    和应用软件,所以建议将虚拟机安装在一个有较大空间的磁盘分区中

    G.如果你的电脑连接在网络中,那么选择一个合适的网络环境。我这里选择

    Use bridged net-working(使用路由网络)

    H.点击finish,返回VMWARE主界面,LINUX虚拟机就建好了。


    2. 安装操作系统

    A. 选中LINUX虚拟机,点击VMWARE工具栏中的Power ON按钮,启动LINUX虚拟机

    B.然后插入REDHAT7.3光盘,虚拟系统根据你选择的安装方式开始安装。

    3.从硬盘安装REDHAT7.3

    如果你认为从光驱中安装比较费时间,又不方便,那你可以将光盘文件转换成ISO文件拷

    贝在硬盘中,然后从硬盘安装。

    A.点击Settings(设置)--Configuration Editor(编辑配置)进入设置界面对虚拟机进行

    配置。

    B.在Hardware(硬件)选项中,选择DVD/CD--ROM[IDE 1:0]项,在左边的选项中进行设置。

    C.在Connection(连接)选项选中Use ISO image(使用ISO镜像包),然后点击Browse(预览)

    按钮,找到放置ISO文件的目录。

    D.在打开对话框中选择RedHat.ISO文件,然后点击打开,将ISO文件打开(如果第一个ISO

    文件安装完后,计算机提示你插入第二张光盘,则在此选择RedHat.ISO,如此类推)

    E.在Virtual device mode(虚拟设备模式)选择虚拟设备的接口方式,选择IDEO:0项

    然后点击OK返回到虚拟机界面下,点击Power ON就可以直接从硬盘安装操作系统了


    4 安装VMware Tools

    虚拟机安装REDHAT7.3时,在状态栏中一直提醒你安装VMware Tools.因为虚拟机是默认

    使用自带的虚拟显卡,只有正确安装了VMware Tools后,才能在虚拟机中正确启动

    REDHAT7.3操作系统,并正确设置显卡以及显示器的分辨率等参数。

    注意:在安装好LINUX后再进行此项操作

    A.重新启动虚拟机,点击Setting(设置)--VMware Tools Install(安装VMware工具)

    在弹出的菜单中点击Install,安装VMware工具。

    B.点击Devices(设备)菜单,你会发现光驱的菜单项由IDE :0变成了IDE :0>F:\

    program Files\VMware\Vmware Workstation\Programs\Linux.ISO,

    这表示VMware将LINUX的ISO映像文件 作为了虚拟机的光盘。

    C.其实这时并没有真正地安装上VMware Tools软件包,还须进一步设置。

    进入文本登录界面中,输入管理员用户名(ROOT)和密码进入ROOT@LOCALHOST ROOT

    目录下。

    D.在命令行后面输入如下命令(注意大小写和空格,同时每行命令后记住回车)

    mount -t iso9660 /dev/cdrom /mnt (加载CDROM设备,并且CDROM为只读属性。)

    cp /mnt/vmware-linux-tools.tar.gz/tmp (将该软件包持拷贝到LINUX的TMP目录下)

    umount /dev/cdrom (舍载CDROM)

    cd /tmp (进入TMP目录)

    tar zxf vmware-linux-tools.tar.gz (解压该软件包)

    cd vmware-linux-tools (进入解压后的目录)

    ./install.pl (运行安装命令,系统开始安装vmware tools)

    E` 在屏幕的提示下,连续回车两次后,系统安装完VMWARE TOOLS,在命令

    行中输入STARTX命令,启动REDHAT7.3,进入图形界面。


    5. 设置显示器的分辨率

    这时虚拟机显示器的分辨率高于本机,由于两机显示器的分辨率的不同将造成图形

    窗口的大小不一致,在本机与虚拟机之间相互切换时就很不方便

    所以要重新设置虚拟机显示器的分辨率。

    A.在命令行中键入cd /etc/x11(X为大写)。进入配置文件所在的目录,同时输入

    mc命令。

    B.进入MC编辑器,用上下箭头将光标移动到XF86Config-4.vm文件,按下F4,这时将出

    现一个文本窗口,里面显示了配置信息。

    D.显示的配置信息一般在Screen Section标题后面可找到它。

    E 找到显示器的分辨率之后,将Modes中高于本机的ms windows所用的分辨率全部

    删除,删除务必从高分辨率向低分辨率删除,以免出现漏洞。

    F.保存修改的信息,退到X11目录下,输入startx进入图形界面,虚拟机内的操作系统

    的分辨率就发生了改变。


    +++++++++++++++++++++++++++++++++++++++++++++
    在VMWARE下用host-only实现Redhat linux-guest上网,并启动samba服务

    以下是在装完vmware,并装好vmware-tools

    1,在windows下,连接外网的网卡,属性-〉高级-〉Internet连接共享-〉选中允许其他网络用户通过。。-〉家庭网络连接选VMnet1-〉确定
    2,在linux下,配置静态IP
    点小红帽-〉System Settings ->Network 打开Network Configuration
    双击下面的Profile打开对话框,在静态ip地址下填上
    Address:192.168.0.21 (最后一位除1可以随便写)
    Subnet Mask: 255.255.255.0
    Gateway:192.168.0.1
    点OK
    选DNS,填Primary DNS:192.168.0.1
    选hosts,可以看见你的主机名和IP,下面需要改动
    Save
    3,编辑主机地址
    新建一个终端,写vi /etc/hosts 打开hosts文件
    把主机前的ip改为Address里面设的ip。(一般就在第一行)
    4,重起网络服务
    service network restart
    5, 应该可以上网了
    6,配置samba
    vi /etc/samba/smb.conf 打开配置文件
    找到hosts allow或在文件里加上 hosts allow = 192.168.0.(不要忘了最后的点)
    在文件的最后加上共享的文件夹,下面是示例。(文件里有说明怎样加上共享文件夹)
    [root]
    comment = all for windows
    path = /root
    guest ōk = yes
    writeable = yes
    [data]
    comment = data
    path = /data
    guest ōk = yes
    writeable = yes
    保存退出
    7, 重起samba服务
    service smb restart
    8, 然后在windows下,就可以访问上面设置的共享文件夹了。
    开始-〉运行->填上\\192.168.0.21
    访问你的共享文件夹
    9,最后,你可以用远程工具如putty.exe,在windows下用ip:192.168.0.21登陆linux
    这样你就可以在windows下用命令行工作在linux下,而不用去切换到vmware下
    10,如果以上设置好,不行的话,在linux下用下面的命令
    ifconfig 看一下eth0是不是设的ip:192.168.0.21
    如果不是
    ifconfig eth0 192.168.0.21
    service smb restart
    service network restart

  • B/S结构简介及与C/S结构的区别

    2009-07-26 14:54:37

    B/S结构简介及与C/S结构的区别

      一、什么是C/S和B/S

      要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。

      第一、什么是C/S结构。

      C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

      传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。

      第二、什么是B/S结构。

      B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

      以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

      第三、管理软件主流技术。

      管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

      二、C/S和B/S 之比较

      C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国 Borland公司最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可谓仁者见仁,智者见智。

      1、C/S架构软件的优势与劣势

      (1)、应用服务器运行数据负荷较轻。

      最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

      (2)、数据的储存管理功能较为透明。

      在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

      (3)、C/S架构的劣势是高昂的维护成本且投资大。

      首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

      其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

      2、B/S架构软件的优势与劣势

      (1)、维护和升级方式简单。

      目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

      (2)、成本降低,选择更多。

      大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

      比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

      (3)、应用服务器运行数据负荷较重。

      由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

      3、C/S 与 B/S 区别

      Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

      (1)、硬件环境不同:

      C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。

      B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备, 信息自己管理, 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。

      (2)、对安全要求不同

      C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息。

      B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。

      (3)、对程序架构不同

      C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。

      B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上。 比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。

      (4)、软件重用不同

      C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好。

      B/S 对的多重结构,要求构件相对独立的功能。 能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

      (5)、系统维护不同

      系统维护是软件生存周期中,开销大,相当重要。

      C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难, 可能是再做一个全新的系统。

      B/S 构件组成方面构件个别的更换,实现系统的无缝升级。 系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

      (6)、处理问题不同

      C/S 程序可以处理用户面固定,并且在相同区域, 安全要求高

    B/S结构简介及与C/S结构的区别

    字体:        | 上一篇 下一篇 | 打印  | 我要投稿  | 每周一问,答贴有奖

      一、什么是C/S和B/S

      要想对“C/S”和“B/S”技术发展变化有所了解,首先必须搞清楚三个问题。

      第一、什么是C/S结构。

      C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

      传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用。而且代价高, 效率低。

      第二、什么是B/S结构。

      B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。

      以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全 。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。

      第三、管理软件主流技术。

      管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。

      二、C/S和B/S 之比较

      C/S和B/S是当今世界开发模式技术架构的两大主流技术。C/S是美国 Borland公司最早研发,B/S是美国微软公司研发。目前,这两项技术以被世界各国所掌握,国内公司以C/S和B/S技术开发出产品也很多。这两种技术都有自己一定的市场份额和客户群,各家企业都说自己的管理软件架构技术功能强大、先进、方便,都能举出各自的客户群体,都有一大群文人墨客为自己摇旗呐喊,广告满天飞,可谓仁者见仁,智者见智。

      1、C/S架构软件的优势与劣势

      (1)、应用服务器运行数据负荷较轻。

      最简单的C/S体系结构的数据库应用由两部分组成,即客户应用程序和数据库服务器程序。二者可分别称为前台程序与后台程序。运行数据库服务器程序的机器,也称为应用服务器。一旦服务器程序被启动,就随时等待响应客户程序发来的请求;客户应用程序运行在用户自己的电脑上,对应于数据库服务器,可称为客户电脑,当需要对数据库中的数据进行任何操作时,客户程序就自动地寻找服务器程序,并向其发出请求,服务器程序根据预定的规则作出应答,送回结果,应用服务器运行数据负荷较轻。

      (2)、数据的储存管理功能较为透明。

      在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用可以违反的规则,并且通常把那些不同的(不管是已知还是未知的)运行数据,在服务器程序中不集中实现,例如访问者的权限,编号可以重复、必须有客户才能建立定单这样的规则。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无须过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S体系的下,数据库不能真正成为公共、专业化的仓库,它受到独立的专门管理。

      (3)、C/S架构的劣势是高昂的维护成本且投资大。

      首先,采用C/S架构,要选择适当的数据库平台来实现数据库数据的真正“统一”,使分布于两地的数据同步完全交由数据库系统去管理,但逻辑上两地的操作者要直接访问同一个数据库才能有效实现,有这样一些问题,如果需要建立“实时”的数据同步,就必须在两地间建立实时的通讯连接,保持两地的数据库服务器在线运行,网络管理工作人员既要对服务器维护管理,又要对客户端维护和管理,这需要高昂的投资和复杂的技术支持,维护成本很高,维护任务量大。

      其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

      2、B/S架构软件的优势与劣势

      (1)、维护和升级方式简单。

      目前,软件系统的改进和升级越来越频繁,B/S架构的产品明显体现着更为方便的特性。对一个稍微大一点单位来说,系统管理人员如果需要在几百甚至上千部电脑之间来回奔跑,效率和工作量是可想而知的,但B/S架构的软件只需要管理服务器就行了,所有的客户端只是浏览器,根本不需要做任何的维护。无论用户的规模有多大,有多少分支机构都不会增加任何维护升级的工作量,所有的操作只需要针对服务器进行;如果是异地,只需要把服务器连接专网即可,实现远程维护、升级和共享。所以客户机越来越“瘦”,而服务器越来越“胖”是将来信息化发展的主流方向。今后,软件升级和维护会越来越容易,而使用起来会越来越简单,这对用户人力、物力、时间、费用的节省是显而易见的,惊人的。因此,维护和升级革命的方式是“瘦”客户机,“胖”服务器。

      (2)、成本降低,选择更多。

      大家都知道windows在桌面电脑上几乎一统天下,浏览器成为了标准配置,但在服务器操作系统上windows并不是处于绝对的统治地位。现在的趋势是凡使用B/S架构的应用管理软件,只需安装在Linux服务器上即可,而且安全性高。所以服务器操作系统的选择是很多的,不管选用那种操作系统都可以让大部分人使用windows作为桌面操作系统电脑不受影响,这就使的最流行免费的Linux操作系统快速发展起来,Linux除了操作系统是免费的以外,连数据库也是免费的,这种选择非常盛行。

      比如说很多人每天上“网易”(原文为新浪)网,只要安装了浏览器就可以了,并不需要了解“网易”的服务器用的是什么操作系统,而事实上大部分网站确实没有使用windows操作系统,但用户的电脑本身安装的大部分是windows操作系统。

      (3)、应用服务器运行数据负荷较重。

      由于B/S架构管理软件只安装在服务器端(Server)上,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(Server)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。但是,应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。因此,许多单位都备有数据库存储服务器,以防万一。

      3、C/S 与 B/S 区别

      Client/Server是建立在局域网的基础上的,Browser/Server是建立在广域网的基础上的。

      (1)、硬件环境不同:

      C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务。

      B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网, 租用设备, 信息自己管理, 有比C/S更强的适应范围, 一般只要有操作系统和浏览器就行。

      (2)、对安全要求不同

      C/S 一般面向相对固定的用户群, 对信息安全的控制能力很强。 一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息。

      B/S 建立在广域网之上, 对安全的控制能力相对弱, 面向是不可知的用户群。

      (3)、对程序架构不同

      C/S 程序可以更加注重流程,可以对权限多层次校验,对系统运行速度可以较少考虑。

      B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上。 比C/S有更高的要求,B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统。SUN和IBM推的JavaBean构件技术等,使B/S更加成熟。

      (4)、软件重用不同

      C/S 程序可以不可避免的整体性考虑, 构件的重用性不如在B/S要求下的构件的重用性好。

      B/S 对的多重结构,要求构件相对独立的功能。 能够相对较好的重用。就如买来的餐桌可以再利用,而不是做在墙上的石头桌子。

      (5)、系统维护不同

      系统维护是软件生存周期中,开销大,相当重要。

      C/S 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难, 可能是再做一个全新的系统。

      B/S 构件组成方面构件个别的更换,实现系统的无缝升级。 系统维护开销减到最小,用户从网上自己下载安装就可以实现升级。

      (6)、处理问题不同

      C/S 程序可以处理用户面固定,并且在相同区域, 安全要求高的需求,与操作系统相关, 应该都是相同的系统。

      B/S 建立在广域网上, 面向不同的用户群,分散地域, 这是C/S无法作到的,与操作系统平台关系最小。

      (7)、用户接口不同

      C/S 多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。

      B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流, 并且大部分难度减低,降低开发成本。

      (8)、信息流不同

      C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。

      B/S 信息流向可变化, B-B、 B-C、 B-G等信息流向的变化, 更象交易中心。的需求,与操作系统相关, 应该都是相同的系统。

      B/S 建立在广域网上, 面向不同的用户群,分散地域, 这是C/S无法作到的,与操作系统平台关系最小。

      (7)、用户接口不同

      C/S 多是建立在Window平台上,表现方法有限,对程序员普遍要求较高。

      B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流, 并且大部分难度减低,降低开发成本。

      (8)、信息流不同

      C/S 程序一般是典型的中央集权的机械式处理,交互性相对低。

      B/S 信息流向可变化, B-B、 B-C、 B-G等信息流向的变化, 更象交易中心。

  • 如何在虚拟机下安装linux系统

    2009-07-24 12:37:20

    正确安装 VMWARE TOOLS步骤如下:
    1、以ROOT身份进入LINUX
    2、按下 CTRL+ALT组合键,进入主操作系统,点击VMWARE状态栏安装提示,或者点击 SETTING菜单下的ENABLE VMWARE TOOLS子菜单。
    3、确认安装VMWARE TOOLS。
    这时我们并没有真正的安装上了VMWARE TOOLS软件包,如果您点击菜单:DEVICES,您就会发现光驱的菜单文字变为:ide1:0-> C:Program FilesVMwareVMware WorkstationProgramslinux.iso,这表示VMWARE将LINUX的ISO映象文件作为了虚拟机的光盘
    4、鼠标点击LINUX界面,进入LINUX。
    5、运行如下命令,注意大小写。
    mount -t iso9660 /dev/cdrom /mnt
    加载CDROM设备,这时如果进入 /mnt 目录下,你将会发现多了一个文件:vmware-linux-tools.tar.gz。这就是WMWARE TOOLS的LINUX软件包,也就是我们刚才使用WINISO打开LINUX.ISO文件所看到的。
    cp /mnt/vmware-linux-tools.tar.gz /tmp
    将该软件包拷贝到LINUX的 TMP目录下。
    umount /dev/cdrom
    卸载CDROM。
    cd /tmp
    进入TMP目录
    tar zxf vmware-linux-tools.tar.gz
    解压缩该软件包,默认解压到vmware-linux-tools目录下(与文件名同名)。
    cd vmware-linux-tools
    进入解压后的目录
    ./install.pl
    运行安装命令。
    这时install提示你是否需要备份以前的配置文件,建议选择"y"。
    等待INSTALL运行完成后,这时键入 START 命令,是不是可以看到漂亮的LINUX图形界面了?***********************************************************************************
    第二篇
    在WindowsXP上安装VMWare和在win2000上安装没什么区别,按照步骤来就行,
    配置linux运行环境的时候,如果你真想玩,就别太省硬盘空间,反正你也有几十个G,
    分出两个G给Linux也不算过分,如果你有两个以上的光驱设备,比如刻录机什么的,
    别忘了在环境里设置一下启动顺序,有光驱,刻录机就省着点用吧

    在环境里,对虚拟网卡有多种设置,看你的需要,如果只想自己连自己,可选Host-only,
    毕竟要用Linux直接上网的不多,你要自己设定WindowsXP里的对应设备的IP,和Linux里的IP.
    不过如果选择Bridged,通常Linux可以自动取得IP,如果你的宽带提供商能提供自动IP分配的话。
    可我在Linux里上网总感觉字体很难看,而且我还是喜欢NetCaptor,方便!

    在VMWare里安装Linux和在实际机器上安装过程没什么区别,虚拟环境设置成光驱启动按步骤来,就可以了,
    注意把光盘放到你设置的那个光驱里。

    安装时最好使用text方式,反正我追求安装速度。

    出现Linux登录提示符也别高兴的太早了,要启动XWindow也要费周折,VMWare网站上有XWindow的专用驱动,
    你要去下载回来,按照网站上的说明修改XWindow的配置文件,通常这样还是不行的,我的大部分时间都花在这上面了,
    后来安装了VMware tools才能启动XWindow,建议你在装完VMware的驱动,修改完配置文件,就立刻安装VMware tools,
    少走很多弯路。

    到现在,你可以一台机器同时当两台使了,在WinXP下用你的Telnet工具登录到你自己的Linux上看看吧,体验一下远程访问,
    注意,Linux有火墙设置,而且默认很多服务没有开,先进Linux里设置一下就可以了。

    第三篇http://www.gamerhome.net/main/jingtai/62/73064.htm


    以下是按总结的在XP和VMware Workstation 4.5.2下安装LINUX RED HAT 9 的要点。为了记录准确起见,偶删除了本已装好的VMWare下的RED HAT和VMWare下的虚拟机,重新设置虚拟机和安装RED HAT 9,一边设置/安装一边同时写下了以下的内容。之所以要这样,是因为对初学者来说,一个细小步骤/细节的省略或不清楚,都可能导致整个设置/安装过程的停顿。

    这个安装是借助VMWARE在XP下进行的LINUX安装,但我推测,在纯PC系统下的LINUX安装不会有太多的不同。若果真如此,我们就完全可以说:RED HAT 9的安装和WINDOWS的安装一样地简单。



    一、VMware Workstation 4.5.2的设定要点

    1.先安装好VMware Workstation 4.5.2(俺用的是E文版)。点help下的enter serial number,输入注册码(否则程序不能用)。

    2。选主窗口中的New Virtual Machine, 连按两个"下一步"之后,选"linux",并在下面的下拉选单里选自己的linux 版本,然后按"下一步";

    3。按"browse"选择虚拟机在XP下的所在目录。默认的目录是
    C:document. and SettingsqMy document.My Virtual MachinesRed Hat Linux
    但我觉得最好不要和XP同在C盘上。另外,虚拟机目录所在的盘要有足够的空间,因为安装好的RED HAT 9本身就有近1.8G。定好虚拟机目录后按"下一步"。

    4。选择适当的网络连接。按"下一步"。

    5。这一步是指定虚拟盘的容量,默认的是4G。俺加到6G后按"完成"。界面上出现了虚拟机,有内存、硬盘、光驱、软驱、网卡、USB控制器、声频适配器。界面的左部是"start this virtual machine"和"edit virtual machine setting"两个命令。点"edit virtual machine setting"命令可以添加部件。具体步骤是在弹出的界面上点"ADD",然后选所要添加的部件。要注意的是,如果添加硬盘后又去掉(remove)硬盘,则好象并不删出XP目录下的这个硬盘项。具体情况还是问有经验的人吧。



    二、启动VMware Workstation 4.5.2中的虚拟机以及安装RED HAT 9

    1。启动之前,首先确定你的RED HAT 9是光盘还是虚拟光盘文件。我是在http://princo.org:8080/linux/redhat/9.0/iso/下载的RED HAT 9。

    这个网站目录下共有7个文件,下载其中的3个带"386"字样的应该就可以了。这是虚拟光盘版的RH9。

    2。若使用虚拟光盘版的RED HAT 9,要在启动VMWARE虚拟机前先装上虚拟光盘,方法是:
    1)双击VMWare界面右部的光驱CD-ROM图标,
    2)在弹出的对话框中选"Use ISO image",
    3)按"Browse",选你下载好的3个光盘文件中的第一个(注意:在后面的安装过程中还要重复步骤2)和3)以选择这3个光盘文件中的另2个),然后按"OK"。

    3。现在可以启动虚拟机了,就是点"start this virtual machine"命令,按OK,VMWARE的窗口里就出现了虚拟机启动的画面。

    要注意的是光标在XP界面和VMWARE界面间的切换方法。光标从XP到VMWARE,只要在VMWARE窗口上点鼠标即可。从VMWARE回到XP,则要按CTRL+ALT。


    4。RED HAT的光盘自动进入安装程序的界面。先问你要不要测光驱,我选不要;具体方法是:在VMWARE窗口上按一下鼠标,再按键盘上的右箭头键,然后回车。

    5。然后,在选择语言鼠标等之后,安装程序问是否要自动分区(Aotumatic Partitioning),我直接点的"Next"。下一个界面中有关于Aotumatic Partitioning的3种选择,我选第3个"保持所有分区并使用已有的未使用空间"(keep all partitions and use existing free space)。然后我是连点NEXT。

    5。选完系统时间之后,安装程序要求设置root (administrator)密码,中文直译是根(管理员)密码。设好后,连点几个"NEXT",就开始安装了。

    6。一段安装过后(10分钟或更长吧),安装程序提示换第二张光盘,这时新手们可能感到不知所措了。正确的方法是,找到VMWARE窗口右下角边上的4个小图标,双击其中左数第二个(就是光驱图标),就会出现上面步骤2.2中提到的那个对话框,按"Browse",选你下载好的3个光盘文件中的第二个,按OK,再到VMWARE窗口中按OK,就完成了换第二张盘的工作。

    7。在提示换第三张盘时,按步骤6的方法换第三张盘。

    8。第三张读完后,系统问是否做启动盘,随便啦(俺没做),然后就是显卡之类的,俺都是默认。最后选一个"EXIT",VMWARE内系统重启。

    9。重启后,系统提示你可以开一个个人帐号(personal account)和密码。注意,虽然这里不开帐号也能过,但实际上是不行的,你必须在这里起一个户名和密码,因为再启动时你必须提供personal account和密码,否则不给你开机。然后是选日子和试听声卡(第一次听到LINUX的声音,不错地呀)。然后问你是否注册,俺选NO(VMWare下吗,不过玩一玩而已啦)。接着又问有无附加安装,先不装吧,把系统搞定了先,所以直接按"FORWARD"。VMWARE内系统重启。

    10。启动后,系统问用户名和密码。输入在步骤9中开的户名和密码即可(没有的不行!)然后,就是RED HAT 9的界面。安装大功告成啦!!!
  • 测试管理的需要的技术

    2009-07-20 22:52:21

    如果你是测试员或是高级测试员,有志转向管理发展,那么需要加强以下几点:

    1. 测试计划的编写(要结合测试的项目,能以此来控制和确定测试所需人员,设备及时间来管理测试时间)

    2. 要熟悉BUG跟踪工具及软件测试流程.(如: TD, Bugzilla, CQ等)

    3. 要熟悉配置管理工具. (如: CVS, VSS等)

    4. 要熟悉自动化工具.(例如:WinRunner, QTP, Robot, RFT, Automation等,能结合录制完的脚本编写代码)

    5. 要熟悉压力及性能测试工具.(例如: LoadRunner, webload, silkperformance等,能结合相关数据,分析出性能瓶颈)

    6. 要熟悉或精通一门语言. (例如: Java, C++)

    7. 要熟悉数据库.(例如: Oracle, DB2, SQLServer, MySQL)

    8. 要熟悉主流操作系统. (例如: HP Unix, IBM AIX, Sun Solaris, Red Hat Linux, SuSE Linux, Windows)

    9. 能用英文流利的和老外交流以及往来Email.

    10. 语言表达能力强,表达问题清晰明了.

    11. 沟通能力强,能和上级/开发经理很好的达成测试相关/BUG事宜.

    12. 学习技术的能力要强,能快速上手一个新的技术.

    13. 乐于与人交流.
  • 软件测试管理常见问题及其回答

    2009-07-20 22:50:30

    1、测试负责人要进行严格的测试进度跟踪吗?
    很多时候,由于人力资源的不足,测试项目负责人都是在执行测试,这样就使整个项目缺乏控制,一些问题(例如:有些成员的缺陷质量不够合格;开发人员修改不及时,系统某些功能发生严重问题导致部分功能无法测试。)得不到解决,耽误了进度。所以测试负责任必须全程监控项目,尽可能多的掌握信息。通常,测试负责人需要完成下面这些内容的管理工作:
    测试用例执行情况;
    每个测试员提交的缺陷情况;
    测试中是否发生突发问题。


    2、 测试也有版本控制吗?
    这里的版本主要是指测试对象的版本控制,也就是指对开发部提交的产品进行版本控制。在开发小组版本管理不规范的情况下,测试小组进行版本控制十分重要,要保证测试对象是可以控制的。建议开发和测试双方进行明确的约定,可以各自指定专门的测试版本负责人,制定提交原则,对提交情况进行详细的记录,这样基本避免了版本失控导致的测试失误或无效。


    3、如何处理测试人员的流动问题?
    人员流动不仅仅是测试部门,这是IT行业的普遍现象。从管理者角度,主管需要多多和团队内成员进行沟通,建立一个融洽的团队环境,及时掌握情况,可以早些进行相应的调整。但是只有企业建立好的用人制度,给员工提高广阔的发展空间和好的培训学习机会,才能从根本上解决这一问题。
    加强项目管理,强化文档管理并保证文档的有效性,可以大大减少由于人员流失带来的损失。同时,测试部门要建立培训机制,使新到员工接受直接或者间接的培训,快速适应工作。


    4、为什么开发人员经常抱怨测试工程师提交的缺陷质量太差?
    我们经常听开发人员说:“这不是缺陷!”,“这个缺陷没有,因为我的系统上运行正常!”。测试工程师本身就是做质量工作的,提交的成果本身就应该质量高些,为什么还会有这种现象?
    提交的缺陷引起争议是一种正常的现象,例如测试人员描述不清楚就会引起争议。减少甚至避免这种现象的方法是交叉测试,交叉测试是提高测试质量的一个有效手段,当然交叉测试会增加一定的测试成本投入。在测试任务完成后,测试工程师之间互相验证彼此提交的缺陷,就会避免了缺陷描述不清、因运行环境而产生的缺陷等一系列问题,从而大大降低了回归测试以及交流的成本,因而这种投入也是值得的,实际开发人员在单元测试阶段也会进行交叉测试,来提高开发质量。
    另外,测试人员一定要按照规范描述测试中发现的缺陷,一个缺陷至少描述清楚概要描述、详细描述、重现步骤三方面的内容,缺陷管理参考第八章的内容。


    5、“让那些新手来做测试,反正他们也不会什么”正确吗?
    在实际项目开发中,我们常常看到有些单位忽视测试团队存在的意义,当要实施测试时,往往临时找几个程序员充当测试人员。也有些单位尽管认识到了组建测试团队的重要性,但在具体落实的时候往往安排一些毫无开发经验的行业新手去做测试工作,这常常导致测试效率低下,测试人员对测试工作索然无味。
    根据笔者的经验,测试团队应首先聘请一名资深的测试领域专家,他应具有极为丰富的同类项目软件测试经验,对软件开发过程中常见的缺陷或错误了然于胸;此外,他还具有较好的亲和力和人格魅力。其次,项目测试团队还具有很多具备一技之长的成员,如对某些自动化测试工具运用娴熟或能轻而易举地编写自动化测试脚本等。
    另外,测试团队还应聘请一些兼职成员,如验证测试实施过程中,同行评审是最常使用的一种形式,这些同行专家就属于兼职测试团队成员的范畴。至于测试团队里里的测试新手,这部分人可以安排去从事交付验证或黑盒测试之类的


    6、测试同化现象是什么?
    同化现象是指随着时间的推移,开发人员会逐渐影响测试人员的思维和对缺陷的判断能力,尤其是针对同一产品,同一组开发人员和同一组测试人员共同配合了很长时间,很多本来是缺陷的问题,由于测试人员对软件“习惯成自然”的使用,会不被当成缺陷,尤其是在开发人员的解释和说服下。同化现象发生可能意味着“恶性循环”的开始:测试人员会帮着开发人员解释一个个缺陷的合理性,一轮有一轮的测试都不会发现问题。
    招聘新的人员,不同的测试项目组轮换去测试不同的产品,就可以避免。同时建议产品可以发布测试版,更多的人对其进行测试,就可以发现更多的问题。


    7、测试工程师如何避免定位效应?
    社会心理学家曾作过一个试验:在召集会议时先让人们自由选择位子,之后到室外休息片刻再进入室内入座,如此五至六次,发现大多数人都选择他们第一次坐过的位子。这种现象称为定位效应,说明人们习惯上凡是自己认定的,人们大都不想轻易改变它。
    定位效应在开发人员和测试人员身上都有体现。例如开发工程师针对某一自己写的功能,经常进行代码移植,这种复制的“功能”,由于上一次经过调试,在新的地方往往不会认真调试,这些代码往往会带来共享变量冲突等许多种类型的缺陷。
    定位效应体现在测试人员身上就是测试过的功能不再进行认真测试:在回归测试时,之前由于进行过认真的测试,往往会认为某些功能是可靠,只要验证一些以前发现的缺陷是否修改完成就可以了。这种现象在反复多次回归时表现的更加突出,因为回归测试中很多功能都会进行多次反复测试。众所周知,开发人员在修改缺陷时往往会引入新的缺陷,测试人员的疏于防范就会把这些缺陷带到用户这里。
    解决这种问题的方案一般有两个:
    (1)完整的执行测试用例:这种方法投入较大,但是在开发产品时最好在最后一次回归测试时测试的执行一次全部的测试用例。
    (2)交叉测试:测试人员交叉测试,就可以很大程度的避免定位效应。测试工程师在回归测试时互相交换任务,反复测试某一功能的机会大大减少,从而也就不会“主观的”人员某些功能没有缺陷。
    通常上面的两个方法都是结合使用的,既要进行交叉测试,又要全面执行测试用例,测试覆盖面要尽可能的广泛。


    8、测试人员忽然辞职怎么办?
    目前IT行业人员流动较大已经成为一种不争的事实,员工的辞职大多数都会给组织带来一定的影响,而这种影响基本是不可能避免的。在测试领域,员工忽然辞职也会带来很大的负面影响,尤其测试队伍规模较小时。面对这种情况,我们所能做的,就是如何最大限度的降低这种影响。
    根据作者的经验,主要有两种方法:第一种是在测试人员内部建立一个良好的学习环境,大家互相学习,这样某些特有技术不会被某一个人所掌握,而互相学习和提高自身,也是大多数成员愿意做的;第二种就是在组织中进行知识管理,把技术作为知识沉淀下来,这样新的员工在接手工作时容易上手,通过学习快速适应环境。
    此外,日常还要注意工作规范化,例如形成尽可能多的文档,都可以降低员工离职带来的损失。


    9、测试人员工作发生问题测试经理应该如何做?
    测试人员工作发生问题是测试经理经常要面对的问题,作为测试部门的领导,首先要做的是指出测试人员所犯的错误,使其尽快改正错误。
    唯一不能做的就是盯着下属的错误不放。总盯着下属的失误,是一个领导者的最大失误。英国行为学家波特说:当遭受许多批评时,下级往往只记住开头的一些,其余就不听了,因为他们忙于思索论据来反驳开头的批评。身为测试经理要根据测试人员的心理来进行指导,最大限度的调动每个人员的积极性来参加工作。


    10、不深入到具体测试工作时,测试经理如何考核员工?
    这种现象在测试规模较大的组织中很常见。测试经理应该尽可能的安排每周与每个成员在不被打扰的环境下进行谈话,这样可以尽早发现和解决很多问题。
    最为一个测试经理,主要工作之一就是定期的评定组织做了些什么并且是怎样做的。同时还要为员工做一个报告——关于充分了解测试人员正在做什么和怎样做的报告,以此来给测试人员做做工作成绩考核。这份报告要了解到每个人的动态。
    测试经理和每个员工重点是谈谈目前的工作,例如大家在工作中的问题或意见;是否需要帮助等。许多管理者经常抱怨没有时间在一周会见每一个员工来谈他们的工作。但是根据作者的经验,如果不能安排时间和员工进行每周的谈话,员工会来打扰测试经理的工作,因为员工很多问题还要要来找测试经理商议。
    同时对待员工要用他们能接受的方式,而不是我们自己可以接受的方式。“己之不予,勿施于人”,这条黄金法则可能会对许多生活中的纯粹的社交因素有效,但是并不是总对工作有用。有效率的管理者知道应该逐渐了解每一个员工需要怎样的对待方式。
    总之,只有尽可能多的和员工接触,才能更精确的进行考核。


    11、测试经理如何面对加班问题?
    大多数情况下,作者是不主张加班的。当员工每周工作超过40个小时的时候,他们开始在工作的时候关心自己的事。他们花钱,会给很久没有联系的人打电话,因为员工们一直都在工作。员工不能在太疲劳的状态下完成工作,这是因为他们在工作时不能关心自己,这种情况下通常效率很低。
    测试管理工作的重要任务之一就是要创造一个环境,让员工在工作时间内完成工作,同时还要鼓励他们每周不要超过40小时,甚至可以基于他们在40个小时能够完成的工作量给他们酬劳。通常情况下这样做能够提升创造力,从而会逐渐提高效率。
    测试工作本身的一个突出特点就是不断重复枯燥、冗长的测试,如果在疲劳状态下,很有可能精力不集中,略过一些重要的测试环节。而且有的时候测试需要编写测试驱动程序,这种情况更需要较好的状态来工作。


    12、测试管理者如何面对自己的错误?
    每个人都会犯错。我们可能会因为忘记开会而使客户发怒,承认自己犯错是一件尴尬的事情,尤其是管理人员认为对自己负责的项目小组承认犯错可能会失去尊严。如果我们不是经常犯错,承认错误的时候其实能够赢得尊敬。例如我们忘记一次会议,然后为此向同事或者客户道歉,其他的人会理解我们的。
    不管做了什么,不要否认或故意忽略自己的失误。故意忽略不会让错误消失,这只会让错误成长为怪物。


    13、为什么计划定期的培训?
    测试工作和开发工作一样,不但要面对日新月异的新技术,还要学习相关系统的领域知识。只有在不断的学习中,才能做好工作,跟上行业的发展。如果测试管理者没有基于不断的变化而培训员工,就会给组织带来一定的损失。日常培训可以是关于特定项目或者是技术,通常采用下面几种方法:
    (1)测试部门内自由交流方式的培训。这种培训的交流比较随意,可以在周五的例会上进行交流,也可以大家一起坐在茶馆里进行交流。方法可以采用“头脑风暴法”,让每个组员讨论一个特定的领域,这种交流方法特别对同时要做很多不同项目的小组比较有益处。当每个人做不同的项目,这会有助于每个人了解你小组所有的工程。
    (2)跨部门的互相学习。测试工作需要很多领域以及技术知识,这些知识单靠自学是远远不够的。和其它部门的同事进行交流是一个相当好的办法,大家在工作中可以在技术等各个方面互相得到提高。
    (3)外部培训。外部培训尽管投入较高,但也是值得的。这些专家一般在自己的领域非常精通,可以快速提高整个测试团队的水平。也可以通过测试小组介绍一些朋友来进行培训,这种方式可以降低成本。
    培训是构造学习型组织的基本条件,也是提高员工水平的重要方法。经常的定期培训,可以增强组织凝聚力,使员工更加愿意长期留在组织中发展。做为测试负责人,定期的进行培训是十分必要的。


    14、时间上不允许进行全部测试,测试负责人应该如何做?
    这个问题也许十分可笑,可是现实中我们的测试经理们却不得不面对这个问题。这里的全部测试不是指对软件进行遍历测试,而是指测试负责人制定的测试计划包含的全部测试内容。
    通常,不管是开发产品还是做具体的项目,都会发生耽误进度的情况。一旦整体进度不能向后延迟,项目相关人员习惯上的做法就是缩减测试时间。尤其在功能还没有开发完成的情况下,这种现象更为突出。
    担负着质量重任的测试经理,如何来解决这个问题呢?比较好的做法是按照下面的步骤逐步来完成和改进工作:
    (1)按照测试任务的轻重缓急,尽最大努力完成测试任务。在时间不足的情况下,我们应该对测试任务按照优先级来划分,重要紧急的任务先完成。这个时候的测试任务是一种辅助性工作,其目的就是尽最大努力来提高质量。因此,面对这种情况,测试负责人要做的就是带领测试小组充分利用所有资源来保证质量。
    (2)在实际工作中和开发人员共同配合,逐步改进工作。只有整个团队的软件开发能力提高了,才能从根源上解决问题。因此,测试负责人要带领团队和开发小组共同寻找适合自己的开发模式,从而使项目规划的更加合理,进而按照预定计划来开展测试工作。
    总之,在任何情况下,测试负责人都不应该抱怨。只有积极的面对问题,才能更好的解决问题。


    15、公司不重视测试,测试负责人如何开展测试工作?
    目前国内的软件公司不重视测试仍然是一种普遍现象。尽管很多公司在意识上已经开始重视测试,但是在具体工作中,往往由于追赶进度、节省资源等方面原因而忽略测试工作。在这种情况下,测试负责人仍要对软件质量负主要责任。在这种环境下,测试负责人应该如何开展工作呢?
    首先,要主动去配合开发人员完成工作。尤其是不能抱怨环境,在任何情况下抱怨是不能解决问题的,只能加重矛盾的激化。在此基础上,逐渐显出测试工作的重要性,然后再逐步健全测试体系。
    其次,用实际行动来证明测试工作的重要性。只有测试工作的业绩逐步表现出来,人们才会真正的注意到测试的重要性。因此,测试负责人从点滴开始做起,才能逐步做好测试工作。
    要想做好软件,把开发的软件产品形成商品,测试工作必须和开发一样重视。否则,质量不好的产品,很快会被市场淘汰的。现代的软件规模越来越大,测试工作也会越来越重要,因此测试负责人只要坚持做好工作,可发挥作用的空间会越来越大。
    最后要说的是,如果真的是在一个没有希望的团队里,测试负责人可以考虑辞职。辞职也是一个不错的选择,到新的环境去发挥自己的能力,要比长时间的怀着“郁闷”的心情去工作好的多。


    16、测试管理者需要是技术专家吗?
    测试管理者在测试项目中的主要任务是制定测试策略,管理测试计划的落实情况,并且还要为测试项目的进行创造良好的执行环境。同时还要调动员工的创造性,对员工的工作作出评估。这些工作不一定要求测试管理者达到专家的水平。
    但是在实际工作中,由于测试人员的短缺,测试管理者常常做为测试员来执行具体的测试任务。尤其在规模较小的测试团队,测试管理者的日常工作通常以具体的测试执行工作为主,这个时候更需要测试管理者有较好的背景知识。
    总体说来,技术方面的背景知识对测试管理者是十分有益的。例如:分配工作任务、做进度预算,以及一些具体的执行工作,都需要一定的背景知识。当然,做为一个测试管理者,没有必要精通所有的技术,那也是办不到的。测试管理者做到正确的帮助员工最好地完成工作,并且提供最好的完成工作的环境就可以了。

  • 虚拟机系统

    2009-07-19 13:22:52

    1、掌握了如何搭建虚拟测试环境:安装虚拟机——新建相应的虚拟操作系统——虚拟光驱文件安装相应的操作系统——设置主机的虚拟网络为NAT,自动获取IP,虚拟机自动获取IP
    2、在虚拟操作系统下,按ctrl+alt+insert,不是按ctrl+alt+del解除屏幕锁定

    3、学会了虚拟机下一些操作技巧:硬件加速、窗口切换技术、系统窗口的最大化
    4、windows下不设置密码,不支持远程登陆问题

    5、mstsc远程登录时设置本地资源为串口,才能复制粘贴!

    6、远程登录时,若服务器不在域内,可以用本地用户登录,而不是域用户登录。

  • web测试

    2009-07-18 12:11:36

    关于web测试
    1
    页面部分
    1) 页面清单是否完整(是否已经将所需要的页面全部都列出来了)
    2) 页面是否显示(在不同分辨率下页面是否存在,在不同浏览器版本中页面是是否显示)
    3) 页面在窗口中的显示是否正确、美观(在调整浏览器窗口大小时,屏幕刷新是否正确)
    4) 页面特殊效果(如特殊字体效果、动画效果)是否显示
    5) 页面特殊效果显示是否正确

    2
    页面元素部分
    1)页面元素清单(为实现功能,是否将所需要的元素全部都列出来了,如按钮、单选框、复选框、列表框、超连接、输入框等等)
    2)素是否显示(元素是否存在)
    3)页面元素是否显示正确(主要针对文字、图形、签章)
    4)页面元素的外形、摆放位置(如按钮、列表框、核选框、输入框、超连接等)
    5) 页面元素基本功能是否实现(如文字特效、动画特效、按钮、超连接)
    6) 页面元素的容错性列表(如输入框、时间列表或日历)
    7) 页面元素的容错性是否存在
    8) 页面元素的容错性是否正确

    3
    功能部分
    1) 数据初始化是否执行
    2) 数据初始化是否正确
    3) 数据处理功能是否执行
    4) 数据处理功能是否正确
    5) 数据保存是否执行
    6) 数据保存是否正确
    7) 是否对其他功能有影响
    8) 如果影响其他功能,系统能否作出正确的反应
    9) 其他错误
    10) 对模块的具体功能进行测试时可以列出功能模块的所有功能,进行排列组合,测试所有情况
    如:某一功能模块具有最基本的增删改查功能,则需要进行以下测试
    单项功能测试(增加、修改、查询、删除)
    增加——>增加——>增加 (连续增加测试)
    增加——>删除
    增加——>删除——>增加 (新增加的内容与删除内容一致)
    增加——>修改——>删除
    修改——>修改——>修改 (连续修改测试)
    修改——>增加 (新增加的内容与修改前内容一致)
    修改——>删除
    修改——>删除——>增加 (新增加的内容与删除内容一致)
    删除——>删除——>删除 (连续删除测试)
    11)查询功能分为两种情况,验证操作结果。
    一、打开页面时自动显示结果,则不特别强调;
    二、需要手工操作进行查询,则每次在其他功能完成后进行。
    4
    提示信息
    1) 成功、失败提示
    2) 操作结果提示
    3) 确认提示
    4) 危险操作、重要操作提示
    5) 返回页面 提示后显示的页面
    5
    容错性
    注意以下几种情况
    1) 为空、非空
    2) 唯一性
    3)字长、格式
    4) 数字、邮政编码、金额、电话、电子邮件、ID号、密码
    5) 日期、时间
    6) 特殊字符 (对数据库)英文单、双引号,&符号
    6
    权限部分
    功能权限: 指定用户可以使用那些功能,不能使用那些功能
    数据权限: 指定用户可以处理那些数据,不可以处理那些数据。可
    以合并到功能测试
    操作权限: 在逻辑关系上,操作前后顺序、数据处理情况。可以合
    并到功能测试
    权限变化: 可以合并到功能测试

    1) 功能权限是否存在
    2)功能权限是否正确
    3) 数据权限是否存在
    4) 数据权限是否正确
    5)操作权限是否存在
    6) 操作权限是否正确
    7) 引起权限变化的功能列表
    8) 功能权限变化还是数据权限变化,或两者兼有
    9) 权限变化是否正确

    7
    键盘操作
    1Tab键的使用
    2) 上下方向键的使用
    3Enter键的使用
    4) 系统设定快捷键的使用(如果设置有快捷键)

    8
    测试中还应注意的其他事项
    6) 完整性:是否是一个整体,没有功能缺损
    7) 易用性:使用是否方便
    8) 一致性:类似的问题用类似的方法处理
    9) 提示信息:提示信息是否完整、正确、详细
    10) 帮助信息:是否提供帮助信息,帮助信息的表现形式(页面文字、提示信息、帮助文件),帮助信息是否正确、详细
    11) 兼容性:包括操作系统兼容和应用软件兼容,可能还包括硬件兼容
    12) 可扩展性:是否由升级的余地,是否保留了接口
    13) 稳定性:运行所需的软硬件配置,占用资源情况,出现问题时的容错性,对数据的保护
    14) 运行速度:运行的快慢,带宽占用情况

    有几点:
    1.
    功能点测试:是否满足需求所要求的功能
    2.
    字符串长度检查:输入超出需求所说明的字符串长度的内容,看系统是否检查字符串长度,会不会出错.
    3.
    字符类型检查:在应该输入指定类型的内容的地方输入其他类型的内容(如在应该输入整型的地方输入其他字符类型),看系统是否检查字符类型,会否报错.
    4.
    标点符号检查:输入内容包括各种标点符号,特别是空格,各种引号,回车键.看系统处理是否正确.
    5.
    中文字符处理:在可以输入中文的系统输入中文,看会否出现乱码或出错.
    6.
    信息重复:在一些需要命名,且名字应该唯一的信息输入重复的名字或ID,看系统有没有处理,会否报错,重名包括是否区分大小写,以及在输入内容的前后输入空格,系统是否作出正确处理.
    7.
    界面测试:界面的正确性、一致性、友好性、易用性。

    用户界面测试是从最终的使用者用户的角度来看软件,软件难以理解,不易使用就是软件缺陷。可以从以下几个方面重点来检查用户界面:
    1.
    易用性检查:确保软件易于理解,方便使用。
    2.
    一致性检查:
    a.
    注意系统页面的风格是否一致,如字的大小、颜色、字体要相同。
    b.
    提示信息的表达方式是否一致。
    c.
    按钮排列顺序是否一致。
    d.back, cancel
    等按钮跳转页面处理是否一致。
    e.
    各字段的名称,位置、长度、类型是否和设计文档要求一致,如Employee NoLoginName不一致。
    3.
    正确性检查:检查页面上的form, button, table, header, footer,提示信息,还有其他文字拼写,句子的语法等是否正确。
    4.
    友好性检查:
    a.
    提示信息是否友好.
    b.
    系统应该在用户执行错误的操作之前提出警告,提示信息.
    c.
    页面分辨率检查,在各种分辨率浏览系统检查系统界面友好性。
    5.
    合理性检查:做delete, update, add, cancel, back等操作后,查看信息回到的页面是否合理。
    6.
    检查本地化是否通过:英文版不应该有中文信息,英文翻译准确,专业。
    7.
    页面最大化检查:测试最大化/最小化/还原时页面是否做了对应的处理

Open Toolbar