发布新日志

  • 使用Microsoft Web Application Stress Tool对web进行压力测试

    2009-08-19 10:18:36

       Web压力测试是目前比较流行的话题,利用Web压力测试可以有效地测试一些Web服务器的运行状态和响应时间等等,对于Web服务器的承受力测试是个非常好的手法。Web 压力测试通常是利用一些工具,例如微软的Web Application Stress、Linux下的siege、功能全面的Web-CT等等,这些都是非常优秀的Web压力测试工具。RS6CD `hn"j;ndY

    :R"q j!a-r虽 然这些工具给我们测试服务器承受能力带来方便,但是它们的危害却更是惊人,甚至于利用随便一种比较全面的测试工具就可以对一台小型的 Web服务器发动灾难性的拒绝式攻击。下面我就带大家利用微软的Web Application Stress进行一次Web压力测试,其目的是为了让大家看到它的巨大危害。TestAge 中国软件测试时代6o;j0E ^BG;M%Q*Vd]

    TestAge 中国软件测试时代 r7p|+u:~0P

    一、工具简单介绍

    qr4PX-F(K0DTestAge 中国软件测试时代s!K(mj4Lu7`zj`g

    Microsoft Web Application Stress Tool 是由微软的网站测试人员所开发,专门用来进行实际网站压力测试的一套工具。透过这套功能强大的压力测试工具,您可以使用少量的客户端计算机仿真大量用户上线对网站服务所可能造成的影响,在网站实际上线之前先对您所设计的网站进行如同真实环境下的测试,以找出系统潜在的问题,对系统进行进一步的调整、设置工作。就是因为这些特性,才使它具备了D.O.S轰炸的功能。

    &_jubY N-RTestAge 中国软件测试时代,oifk^e!g5z~

    小提示:D.O.S(拒绝服务攻击)通过使你的服务计算机崩溃或把它压跨来阻止你提供服务。简单来说,就是让你的计算机提供可能多的服务从而使你的计算机陷入崩溃的边缘或崩溃。TestAge 中国软件测试时代Y~4P4T;ht&U us

    TestAge 中国软件测试时代BIlH/v$?$RB

    二、工具简单设置

    $\-V*{ lJ Pw

    ,T mo;^zGm打开Web Application Stress Tool,很简洁的一个页面(如图1),上面是工具栏,左下方是功能选项,右下方是详细设置选项。在对目标Web服务器进行压力测试之前,先对它进行一些必要的设置。

    g2ttkm,F!N%HTestAge 中国软件测试时代rc2R(C Z A9t

    图1

    j?9AA(NKn


    C6E?z;v:yU:TTestAge 中国软件测试时代}.l*d6f*?'u

    TestAge 中国软件测试时代"B#W6FZ!L za

    1. 在“settings”的功能设置中(如图2),一个是Stress level (threads)这里是指定程序在后台用多少线程进行请求,也就是相当于模拟多少个客户机的连接,更加形象的就是说设置多少轰炸的线程数。一般填写 500~1000,因为这个线程数是根据本机的承受力来设置的,如果你对自己的机器配置有足够信心的话,那么设置的越高,轰炸的效果越好。TestAge 中国软件测试时代2F2b6B]i7?+A[6_O

    7}E8H/[L RF9by图2

    C q8Xid&ok

    hI F6S?OD2M&c

    'uH#Jf+Lu2.在“Test Run Time”中来指定一次压力测试需要持续的时间,分为天、小时、分、秒几个单位级别,你根据实际情况来设置吧!TestAge 中国软件测试时代W;r:}i|XJ9n

    TestAge 中国软件测试时代 A6H$J6L ~-@I

    3.其余的选项不太重要,这里就不再浪费笔墨,朋友们可以自己尝试一下设置。TestAge 中国软件测试时代4SD4lb c s1\2O

    TestAge 中国软件测试时代)Wc?] AgYA4Q

    三、压力测试

    FQw3x+h"M_TestAge 中国软件测试时代&F#c FZ4@Mu

    工 具介绍完了,下面来准备条件:这里与一个朋友商量好进行测试,他是单机上网,机器配置是CPU:Athlon XP2500+、内存512MB、硬盘80GB等,机器配置还不错。他在机器上安装了IIS,架设了一台对外的Web服务器,Web服务中的程序是动网 7.0。我就利用压力测试工具对这台服务器进行测试。TestAge 中国软件测试时代#hb'_ N3J(oM

    8W.vvZV"f5_cM:M步 骤1:在工具中点右键,选择Add命令,增加了一个新的测试项目:New script,对它进行设置,在主选项中的server中填写要测试的服务器的IP地址。在下方选择测试的Web连接方式,这里的方式Verb选择 get,path选择要测试的Web页面路径,这里填写/Index.asp,即动网的首页文件(如图3)。

    M rb6^2X8X5WTestAge 中国软件测试时代 ~,aM+kQ a*C+I {

    图3TestAge 中国软件测试时代 b'@ Ko(]@ D#[q"Y5I k

    TestAge 中国软件测试时代$C;U/TQ]3X

    n)\hy(wMn8@*M$QE步骤2:在“Settings”的功能设置中将Stress level (threads)线程数设置为1000。完毕后,点工具中的灰色三角按钮即可进行测试(如图4)。测试完毕,等待朋友把任务管理器以及连接查看的截图发过来!

    u f c'F5~j'ATestAge 中国软件测试时代F/vTrRqw&N%S

    图4

    :]9QsQq9t"w-d

    ;P&i_/Q(~

    @g5k c'qXXc攻 击开始后,朋友从任务管理器中可以看到CPU使用率已经达到100%,损耗率达到最大(如图5)。在CMD窗口中使用命令netstat -an,可以看到我的IP地址在朋友服务器上的80端口进行了非常多的连接(如图6)。而且它的Web网站已经打不开了,提示过多用户连接,达到了跟 D.O.S攻击一样的目的。TestAge 中国软件测试时代!| s'Vv q

    H/as8?&s"W&o|图5TestAge 中国软件测试时代LZwb9p/@i T,{

    TestAge 中国软件测试时代wL"q$^([!I5m*H

    v pR"XAvw图6TestAge 中国软件测试时代!U%og7|8DS

    -S3Y Y5K-PDf6^QytV7f-f r3Ucq&v试想,如果利用多台肉鸡对一台服务器进行Web压力测试,那么对这台服务器来说将是灭顶之灾,所以朋友们在使用它之前一定要慎重考虑。
  • [转]微软测试可借鉴之处

    2008-08-28 19:19:12

    开头语:

          作测试很久了,一直为一些问题所困扰,也一直对微软有一种顶礼膜拜的向往,终于有一天,近距离的接触了微软的测试,感觉不是以前想象中那么遥不可及,却又难以企及。于是把个人觉得微软值得借鉴的地方整理了一下,希望能对大家有所帮助。

    测试流程

    首先说说测试流程,微软的测试流程也没什么新的东西,和大多数的测试流程一样。

    大致是先进行测试准备,然后是Testcase的编写,然后是白盒测试(不一定每个项目都有),然后是功能测试阶段,然后是验收测试,最终release。

    如果看流程的话,和一般公司大同小异,没什么新花样。但是我觉得值得借鉴的是两点。

    第一,   微软的流程执行的非常认真。

    这点非常值得提倡,我们都知道,测试的最终质量决定于测试流程和测试人员素质,要想测试质量有保证,要么是流程很完善,要么你流程不行,但是个人能力超强。如果有一个很好的流程,就算执行的人稍微差点,最终的质量也不会差到哪里去。所以流程是很重要的。但是,看国内的公司欠缺的就是这个,要么是没有流程,要么流程是个花架子,没认真执行过。我想微软的测试人都是超级牛人,但是人家还是老老实实的忠实按照流程来走,我觉得这点非常好。(在IBM 也是这样,笔者以前在IBM作项目的时候,发现他们的文档写的特认真,流程特认真),所以说忠实的执行一个好的流程是成功的一大半。

    第二,   在整个流程中,微软非常强调测试尽早介入。微软在这方面是一致提倡的,按照我们国内IT业的恶习,一般都是软件主体差不多成型了,拉几个测试人员过来点点,其实这是非常不好的。微软的测试人员在项目一开始就和开发人员同步介入,在需求阶段就开始介入,进行需求评审。在开发人员开始编码的时候,测试人员就开始编写Test case,并开发一些测试工具,或者写一些配套的测试代码(不要奇怪,微软的测试人员都能写很好的代码)。微软的理念就是:预防bug比解决bug好,所以非常提倡测试尽早介入,把一部分bug消灭在需求阶段。

    自动化流程

    说到自动化,大家可能以为我是说微软的自动化测试工具多牛,其实微软内部用到的自动化测试工具倒是不多,就算有也都是内部开发的,非常实用的,他们不会去用MI的工具。说微软的自动化程度高,主要是体现在流程方面,譬如说整个自动构建流程,在开发人员代码check in之后,系统自动发邮件,邮件内容就是一个change list,包括代码更新list以及一个编译者添加的comment,其内容是该版本功能的变化或者修改掉的bug ID。整个测试过程中能用自动化的地方都尽可能采用自动化,尽可能减少人为失误,并且可以使人和机器并行工作。个人觉得,这点很值得我们国内的测试公司借鉴,能自动化的流程都自动化,减少一些不必要的沟通。

    质量控制机制

    说到质量控制是个大问题,需要整个团队和流程提高素质。那么微软的质量控制可以借鉴的是什么呢?是他们的机制。在微软的测试流程当中,在开发的早期,项目中所有的问题都是Dev leader和PM商量说了算(当然也要参考需求方的意见),但是到后期,具体就是功能测试之后,项目的主动权都在测试这边,某个bug的要不要解决,或者项目进度控制都是测试leader说了算。这和国内的大多数软件公司是不一样的,在微软,测试人员要对最终的软件质量负责任,但是也有相应的权利来约束开发人员。当然,他们也肯定有一些bug是产生争议的,这个时候的仲裁机制就是PM,这个不是我们传统的PM(Project manager),而是一种具有微软特色的PM(全称是Program manager)。这样,测试人员在对一些争议bug的处理上有相当的话语权。

    测试用例及管理

    微软的测试用例倒没什么特别的,不过看过他们用例之后,还是觉得写的详细,认真,但是又不冗长拖沓,这个需要很高深的水平。另外,微软的测试用例管理用的是微软自己开发的用例管理工具。

    另外值得说明的是,微软的每个用例都进行了分级,并且功能所在的模块都标的很清楚。

    效率

    在效率方面,微软的测试效率非常高!高的让人惊叹,我问一个在微软工作的哥们,“你们那边测试的最大特点是什么”,他说“最大特点是快!”,就是效率很高,具体就是在测试后期过程中测试和开发之间的反馈非常快,开发修改一定量的bug,提交一个新的版本。测试人员往往能在很快的时间内把测试结果反馈出来,一般是在1天之内就能把用例快速run一遍,这样就能减少某些后期才发现bug导致的项目delay。在国内很多项目的通病是,开发解决问题带进一个新问题,测试人员整个遍历一遍用例之后才能发现,这样来回反复就消耗了大量的时间。但微软是如何才能实现快速反馈呢?

    第一,   测试人员对程序的了解,微软的测试人员对程序内部结构都非常熟悉,修改某一个地方,可能引起什么问题,哪些用例需要重新测试,测试人员非常清楚,能快速的执行最可能出错的地方。如果某些模块不熟悉,那么他们会和开发人员在一起沟通这次修改可能引起的问题。

    第二,   工具!还是工具,在微软的测试中,测试人员用各种工具帮助测试,提高测试效率是占到很大的比重。

    第三,   时间意识。微软的测试人员有强烈的时间意识。

    测试工具能很大程度上提高测试效率,这个作为测试人员都很清楚。当然测试工具在微软的测试中也应用非常广泛,但是请注意,微软并不是像我们国内的公司一样使用的都是LR或QTP这类的录制回放工具,反而这种工具倒是用的不多,就跟微软不屑CMM一样,可能是不想屈尊自己IT老大的身份吧。

    但是微软的测试工具最大的特点是实用。他们用的测试工具都是确实能提高效率,确实能办事情的工具,都不是类似WR和QTP的很大很系统的工具,而是比较小的,很灵活,实用的小工具(譬如:Fiddler、Drip、httpwatch、IE DevToolBar、PaintNotNet、procexp etc.)。甚至有一些测试工具是测试人员在开发人员协助下根据项目需要临时开发的,不过大多数工具都是微软内部已经共享出来的,在微软内部各种各样的小工具特别多。

    总体给我的感觉是,不是为了用测试工具而用,而是根据实际的需要,确实能提高效率而用到,在用的过程中确实也很大的提高了效率。

    测试人员的专业素质

    微软测试给我印象最深刻的还有他们测试人员的专业水准,在测试过程中,测试人员在一些技术上并不逊色于开发人员,在一些bug的处理上,能提出很多合理的很有建设性的建议。

    微软的白盒测试

    微软的白盒测试怎么执行呢?让我略微有点吃惊的是,微软的一半测试人员基本不做白盒测试,除非有些不能做黑盒的模块,另外也不是所有的产品都作白盒测试。

    微软的白盒测试一般还是由专门的白盒测试人员来做,但是开发人员要对测试人员的白盒测试代码进行Review,另外微软对开发人员的代码,效率也都有一套详细的考核机制,所以开发人员对自己的代码也是非常负责任的,都进行很认真的进行测试。

    意识(时间,质量)

    另外微软的测试还有很好的一点就是意识,时间和质量的意识都是非常强。在控制时间成本上,意识非常强,这点非常值得我们国内同仁学习,另外,风险管理的机制和意识都是非常好。在微软,项目组的每个成员都被明确告知,如果这个项目每delay一天,就会损失多少个million的美元,所以整个项目组都有比较好的时间意识。

    另外,在微软,项目组人员的质量意识都是比较强的。怎么样更好服务用户,让用户体验更好,怎么样更好的改进,这种意识比较强。

    微软的培训

    在微软内部,员工外训的机会比较少,大多都是内部互训,各人培训自己的强项,有比较好的互相分享的习惯。另外微软的内部有非常丰富的各种培训文档。以后我会上传上去和大家分享。

    测试数据记录

    微软的测试数据记录是非常全的,也都是系统自动的,每天都是由系统自动统计当天的bug情况,然后发送一个report到每个项目组成员的邮箱里。最后到测试总结的时候,这些测试数据将变得非常有用。

    编后感:在深入了解微软的测试之前,对微软这个IT业界巨无霸的测试感觉是顶礼膜拜,高不可攀,总觉得可能很神秘,用很牛的技术或者很高深的手段。深入了解之后,发现微软的测试也是和我们做一样的事情,只不过人家做的更认真,更细,更实用,更有效率。再回过头来看时,微软的测试给我留下印象最多的是,流程,效率,意识,工具,素质!也就是这几项,成为我们国内IT企业亟需跨越的。

  • 软件测试中一些常用词语

    2008-08-28 19:15:51

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

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

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

    Automated Testing(自动化测试),使用自动化测试工具来进行测试,这类测试一般不需要人干预,通常在GUI、性能等测试中用得较多。

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

    Black box testing(黑盒测试),指测试人员不关心程序具体如何实现的一种测试方法。根据软件的规格对软件进行各种输入和观察软件的各种输出结果来发现软件的缺陷的测试,这类测试不考虑软件内部的运作原理,因此软件对用户来说就像一个黑盒子。

    Bug (错误),有时称作defect(缺陷)或error(错误),软件程序中存在的编程错误,可能会带来不必要的副作用,软件的功能和特性与设计规格说明书或用户需求不一致的方面。软件缺陷表现特征为:软件未达到产品说明书标明的功能;软件出现产品说明书指明不会出现的错误;软件功能超出产品说明书指明的范围;虽然产品说明书未指出但是软件应达到的目标;软件测试人员或用户认为软件难以理解,不易使用,运行速度缓慢等问题。

    Bug report(错误报告),也称为“Bug record(错误记录)”,记录发现的软件错误信息的文档,通常包括错误描述、复现步骤、抓取的错误图像和注释等。

    Bug tracking system(错误跟踪系统,BTS),也称为“Defect tracking system,DTS”,管理软件测试缺陷的专用数据库系统,可以高效率地完成软件缺陷的报告、验证、修改、查询、统计、存储等任务。尤其适用于大型多语言软件的测试管理。

    Build(工作版本),软件开发过程中用于内部测试的功能和性能等不完善的软件版本。工作版本既可以是系统的可操作版本,也可以是展示要在最终产品中提供的部分功能的部分系统。

    Compatibility Testing(兼容性测试),也称“Configuration testing(配置测试)”,测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等。验证测试对象在不同的软件和硬件配置中的运行情况。

    Capture/Replay Tool (捕获/回放工具),一种测试工具,能够捕获在测试过程中传递给软件的输入,并且能够在以后的时间中,重复这个执行的过程。这类工具一般在GUI测试中用的较多。

    Crash(崩溃),计算机系统或组件突然并完全的丧失功能,例如软件或系统突然退出或没有任何反应(死机)。

    Debug(调试),开发人员确定引起错误的根本原因和确定可能的修复措施的过程。一般发生在子系统或单元模块编码完成时,或者根据测试错误报告指出错误以后,开发人员需要执行调试过程来解决已存在的错误。

    Deployment(部署),也称为shipment(发布),对内部IT系统而言,指它的第一个版本通过彻底的测试、形成产品、交付给付款客户的阶段。

    Dynamic testing(动态测试),通过执行软件的手段来测试软件。

    Exception(异常/例外),一个引起正常程序执行挂起的事件。

    Functional testing (功能测试),也称为behavīoral testing(行为测试),根据产品特征、操作描述和用户方案,测试一个产品的特性和可操作行为以确定它们满足设计需求。本地化软件的功能测试,用于验证应用程序或网站对目标用户能正确工作。使用适当的平台、浏览器和测试脚本,以保证目标用户的体验将足够好,就像应用程序是专门为该市场开发的一样。

    Garbage characters(乱码字符),程序界面中显示的无意义的字符,例如,程序对双字节字符集的字符不支持时,这些字符不能正确显示。

    GB 18030 testing(GB 18030测试),软件支持GB 18030字符集标准能力的测试,包括GB 18030字符的输入、输出、显示、存储的支持程度。

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

    Integration testing(集成测试),被测试系统的所有组件都集成在一起,找出被测试系统组件之间关系和接口中的错误。该测试一般在单元测试之后进行。

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

    Localizability testing(本地化能力测试),本地化能力是指不需要重新设计或修改代码,将程序的用户界面翻译成任何目标语言的能力。为了降低本地化能力测试的成本,提高测试效率,本地化能力侧是通常在软件的伪本地化版本上进行。本地化能力测试中发现的典型错误包括:字符的硬编码(即软件中需要本地化的字符写在了代码内部),对需要本地化的字符长度设置了国定值,在软件运行时以控件位置定位,图标和位图中包含了需要本地化的文本,软件的用户界面与文档术语不一致等。

    Load testing(负载测试),通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力。在这种测试中,将使测试对象承担不同的工作量,以评测和评估测试对象在不同工作量条件下的性能行为,以及持续正常运行的能力。负载测试的目标是确定并确保系统在超出最大预期工作量的情况下仍能正常运行。此外,负载测试还要评估性能特征,例如,响应时间、事务处理速率和其他与时间相关的方面。

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

    Performance testing(性能测试),评价一个产品或组件与性能需求是否符合的测试。包括负载测试、强度测试、数据库容量测试、基准测试等类型。

    Pilot testing(引导测试),软件开发中,验证系统在真实硬件和客户基础上处理典型操作的能力。在软件外包测试中,引导测试通常是客户检查软件测试公司测试能力的一种形式,只有通过了客户特定的引导测试,软件测试公司才能接受客户真实软件项目的软件测试。

    Portability testing(可移植性测试),测试瞄准于证明软件可以被移植到指定的硬件或软件平台上。
    Priority(优先权),从商业角度出发是指错误的重要性,尤其是从客户和用户的角度出发,是指错误对于系统的可行性和可接受性的影响。与“Severity(严重性)”相对照。

    Quality assurance(质量保证QA),采取的所有活动以保证一个开发组织交付的产品满足性能需求和已确立的标准和过程。

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

    Review(评审),在产品开发过程中,把产品提交给项目成员、用户、管理者或其它相关人员评价或批准的过程。

    Sanity testing(健全测试),软件主要功能成分的简单测试以保证它是否能进行基本的测试。参考“Smoke testing(冒烟测试)”。

    Screen shot(抓屏、截图),软件测试中,将软件界面中的错误(窗口、菜单、对话框等)的全部或一部分,使用专用工具存储成图像文件,以便于后续处理。

    Severity(严重性),错误对被测系统的影响程度,在终端用户条件下发生的可能性,软件错误妨碍系统使用的程度。与“Priority(优先权)”相对照。

    Smoke testing(冒烟测试),冒烟测试的对象是每一个新编译的需要正式测试的软件版本,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。参考“Sanity testing(健全测试)”。

    Software life cycle(软件生命周期),开始于一个软件产品的构思,结束于该产品不再被使用的这段期间。

    Static testing(静态测试),不通过执行来测试一个系统。如代码检查,文档检查和评审等。

    Structured query language(结构化查询语句,SQL),在一个关系数据库中查询和处理数据的一种语言。

    TBD(To be determined,待定),在测试文档中标是一项进行中的尚未最终确定的工作。

    Test(测试),执行软件以验证其满足指定的需求并检测错误的过程。检测已有条件之间的不同,并评价软件项的特性软件项的分析过程。软件工程过程的一个活动,它将软件在预定的条件下运行以判断软件是否符合预期结果。

    Test case(测试用例),为特定目标而开发的一组测试输入、执行条件和预期结果,其目标可以是测试某个程序路径或核实是否满足某个特定的需求。

    Testing coverage(测试覆盖),指测试系统覆盖被测试系统的程度,一项给定测试或一组测试对某个给定系统或构件的所有指定测试用例进行处理所达到的程度。

    Testing environment(测试环境),进行测试的环境,包括测试平台、测试基础设施、测试实验室和其他设施。

    Testing item(测试项),作为测试对象的工作版本。

    Testing plan(测试计划),描述了要进行的测试活动的范围、方法、资源和进度的文档。它确定测试项、被测特性、测试任务、谁执行任务,并且任何风险都要冲突计划。

    Testing procedure(测试过程),指设置、执行给定测试用例并对测试结果进行评估的一系列详细步骤。

    Testing scrīpt(测试脚本),一般指的是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行。

    Testing suite(测试包),一组测试用里的执行框架;一种组织测试用例的方法。在测试包里,测试用例可以组合起来创造出独特的测试条件。

    Unit testing(单元测试),指一段代码的基本测试,其实际大小是未定的,通常是一个函数或子程序,一般由开发者执行。

    User interface(用户界面,UI),广义是指使用户可以和计算机进行交互的硬件和/或软件。狭义是指软件中的可见外观及其底层与用户交互的部分(菜单、对话框、窗口和其它控件)。

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

    White box testing(白盒测试),根据软件内部的工作原理分析来进行测试,基于代码的测试,测试人员通过阅读程序代码或者通过使用开发工具中的单步调试来判断软件的质量,一般黑盒测试由项目经理在程序员开发中来实现。

  • QC和TD的区别(zz)

    2008-08-12 15:19:58

      

     

    Subject

    TestDirector 8.0

    Quality Center 8.0

    Technology

    • C++
    • IIS
    • COM
    • Back-end is Java based
    • Runs on application servers
    • App server
      • JBoss (內建)
      • WebLogic
      • WebSphere
    • Web server
      • IIS (for Windows)
      • JBoss (內建)
      • Apache
      • WebLogic
      • WebSphere

    Operating Systems

    Microsoft Windows

    • Microsoft Windows
    • Red Hat Linux
    • Solaris

    Clustering

    Single server only

    Full clustering support

    Database Connectivity

    • Requires database client installation
    • ADO interface
    • Does not require database client installation
    • Direct access to a database server using a JDBC type 4 driver

    Repository

    Domain repository (TD_Dir).

    Repository divided into two subdirectories:

    • QC directory for default and user-defined domains.
    • SA directory for Site Administrator data

    Virtual Directory

    Virtual directory name is tdbin

    • Quality Center server virtual directory name is qcbin.
    • Site Administrator server virtual directory name is sabin.

    Supported Databases

    • Microsoft Access
    • Microsoft SQL
    • Oracle
    • Sybase
    • Microsoft SQL
    • Oracle

    Site Administrator Data (domains, projects, and users)

    Data stored in the doms.mdb file

    Data stored in the Site Administrator schema on a database server

    Common Settings

    Data stored in the file system

    Data stored in the database

    User Authentication

    Windows authentication

    LDAP authentication

  • 端口号初级入门帖

    2008-05-30 13:40:31

         对很多电脑上的端口不是很清楚,有个机会上网搜了搜,贴过来对自己进行初级入门教育

    端口概念


           在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用 于连接其他网络设备的接口,如RJ-45端口、SC端口等等。二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。我们这里将要介绍的就是逻辑意义上的端口。
           那么TCP/IP协议中的端口指的是什么呢?如果把IP地址比作一间房子 ,端口就是出入这间房子的门。真正的房子只有几个门,但是一个IP地址的端口 可以有65536个之多!端口是通过端口号来标记的,端口号只有整数,范围是从0 到65535。
    端口有什么用呢?我们知道,一台拥有IP地址的主机可以提供许多服务,比如Web服务、FTP服务、SMTP服务等,这些服务完全可以通过1个IP地址来实现。那么,主机是怎样区分不同的网络服务呢?显然不能只靠IP地址,因为IP 地址与网络服务的关系是一对多的关系。实际上是通过“IP地址+端口号”来区 分不同的服务的。
           需要注意的是,端口并不是一一对应的。比如你的电脑作为客户机访 问一台WWW服务器时,WWW服务器使用“80”端口与你的电脑通信,但你的电脑则 可能使用“3457”这样的端口。

    端口分类


      逻辑意义上的端口有多种分类标准,下面将介绍常见的按端口号分布的分类:

      (1)知名端口(Well-Known Ports)

      知名端口即众所周知的端口号,范围从0到1023,这些端口号一般固定分配给一些服务。比如21端口分配给FTP(文件传输协议)服务,25端口分配给SMTP(简单邮件传输协议)服务,80端口分配给HTTP服务,135端口分配给RPC(远程过程调用)服务等等。
           网络服务是可以使用其他端口号的,如果不是默认的端口号则应该在 地址栏上指定端口号,方法是在地址后面加上冒号“:”(半角),再加上端口 号。比如使用“8080”作为WWW服务的端口,则需要在地址栏里输入“www.cce.com.cn:8080”。
          但是有些系统协议使用固定的端口号,它是不能被改变的,比如139 端口专门用于NetBIOS与TCP/IP之间的通信,不能手动改变。

           (2)动态端口(Dynamic Ports)

      动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。
           不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等  。

    怎样查看端口

          一台服务器有大量的端口在使用,怎么来查看端口呢?有两种方式: 一种是利用系统内置的命令,一种是利用第三方端口扫描软件。

           1.用“netstat -an”查看端口状态
           在Windows 2000/XP中,可以在命令提示符下使用“netstat -an”查 看系统端口状态,可以列出系统正在开放的端口号及其状态.

            2.用第三方端口扫描软件
            第三方端口扫描软件有许多,界面虽然千差万别,但是功能却是类似 的。这里以“Fport” (可到http://www.ccert.edu.cn/tools/index.php?type_t=7或http://www.cci dnet.com/soft/cce下载)为例讲解。“Fport”在命令提示符下使用,运行结果 与“netstat -an”相似,但是它不仅能够列出正在使用的端口号及类型,还可 以列出端口被哪个应用程序使用。

  • 流行4大浏览器比较(zz)

    2008-05-21 10:34:40

     

    一、首先,当然是这四个主流浏览器的简介:

    IE:不用介绍了吧,最为熟悉的了。
    腾讯TT:腾讯公司推出的浏览器,目前也比较流行。
    Firefox:就是以前著名的Mozilla,现在也比较火,尤其是浏览速度的优势。
    Opera:挪威人开发的浏览器,可以用于很多平台,如PC、LINUX,MAC OS,甚至可以用在智能手机上。

    二、测试内容

    1.外观:(满分100)
    ?? 以主观观察为主,结合网上的皮肤图片。

    2.资源占用:(满分100)
    ?? 以都支持的网页为打开对象,用四款浏览器分别打开单个和多个网页,通过任务管理器考察其资源占用。

    3.打开网页速度:(满分100)
    ?? 以单网页(sina.com)的打开速度为标准。

    4.兼容性:(满分100)
    ?? 支持的网页的效果如何,有没有不兼容提示或者显示不正常。

    5.易用性:(满分100)
    ?? 也就是传说中的手感,按钮位置顺不顺手,右键菜单体不体贴,能不能拦截AD,等等……

    6.对RSS的支持与否:(满分100)
    ?? 重要的指标,能不能订阅和阅读RSS内容(包含使用插件)。

    7.稳定性:(满分100)
    ?? 浏览器死掉或假死现象会不会发生。

    三、以下为测试结果:

    1.外观

    IE:大家熟悉得很,我就不说呢!还比较简洁,我最讨厌花哨的按钮,因为挡住了我宝贵的网页面积~考虑到有些朋友喜欢PL的界面,就给60分吧,当作标准分~~

    腾讯TT:不够简洁,想办法弄得间接一些结果出现BUG,按钮按不下去,汗。。。几个主体颜色很不好看,给50分!

    Firefox:界面按钮通过插件可以轻松调整,也有PL的主题,100个人就会弄出100个不同的界面,100个不同的设置,加上firefox对google的支持很好,对于我这很喜欢google的人来说是个很好的事情,给90分!

    Opera:与Firefox一样,很清爽,也可以边PL,值得一提的是每个页面是单独的整体,可以拖放,如果你是宽屏的话,可以横向排列两个页面,很爽!给100分!

    2.资源占用

    这个应该是大家最关心的东西!CPU占用的单位是%。

    IE:显然,这个是IE的弱项,即使是打开相同的页面,每开一个页面IE都会占用相同的内存,切CPU占用较大!

    腾讯TT:在单页面的测试中可以看出TT内存方面的优势,但在多页面的情况下从数据上看TT似乎并没有多大优势,但有一个重要的情况得告诉大家:测试表明,四款浏览起中,TT是唯一能够快速的回收内存的浏览器,也就是说,当你切换至其他程序时,TT占用的内存将变得很低很低!相反,TT的CPU占用率是四款中最高的,这一点与Firefox和Opera相比较尤其明显!那是不是Firefox和Opera在CPU方面真的那么强悍呢?答案在FF身上是否定的!(后面将提到)

    Firefox:FF在内存方面仅次于TT,排在第二。但在CPU方面来看,FF表现出极大的CPU使用浮动!这在使用中表现出来的现象为,简单页面FF可以十分流畅显示,而在复杂页面FF中,当有教多动态图片或者较大图片出现时,FF会顿时卡住,滚轮延时严重!这种情况同样出现在CSS应用较复杂的页面中!

    Opera:CPU占用率较小,且浮动较小,实际使用最为流畅!内存使用略大于FF。综合表现很好!


     

    3.速度

    以单页面打开SINA主页为测试内容!每做完一个测试后都清楚缓存和COOKIE!每个浏览器做3次,最后取平均值!

    腾讯TT意外的获得了第一!本来以前FF会快点,汗。。。打开时间几乎只用了IE的一半!

     

    4.兼容性:

    如今的WEB依然没有做到完全的跨平台,所以使用一款兼容性好的浏览器是有必要的!

    IE:IE有MS做后盾,在兼容性上可以说是无敌,因为绝大多数页面都是基于MS制定的标准,唯一值得注意的是,有JAVA应用的页面,IE得安装相关的JAVA运行环境。

    腾讯TT:TT由于运用的IE的核心,在兼容性上实际跟IE是同出一辙的。

    Firefox:有部分兼容性问题。如无法加载嵌入网页的WINDOWS MEDIA PLAYER,部分网页显示不正常,对.NET支持貌似也有问题,MSN SPACES登陆有时会出现问题。

    Opera:兼容性最差,无法加载嵌入网页的WINDOWS MEDIA PLAYER,许多网页显示都有所变形,无法正常使用包括MSN SPACES在内的许多网页!但可以用于绝大网页,包括论坛和不浏览内容的网页。需要提到的是不少国外的网站开发的时候就考虑到不同浏览器的兼容问题,正确识别浏览器后会选择不同的内容返回浏览器端!而国内的网站建设则普遍没有多这个心眼~


     

    5.易用性:

    这个其实得仁者见仁了,总体上看:

    IE:适合上手,没有广告拦截功能,没有快捷搜索,没有下载窗口,没有鼠标手势……功能较为简单。

    腾讯TT:有广告拦截功能,快捷搜索,最近打开,自动填表,清除纪录等功能,比较满意。

    Firefox:通过插件,功能应有尽有……无比强大……管理起来稍稍有点麻烦……

    Opera:有广告拦截功能,快捷搜索(由于可能是免费版本,无法自己定义搜索),最近打开,清楚历史,集成了密码管理功能,集成记事本,下载管理,用上去很舒服~

     


    6.对RSS的支持与否:

    IE和腾讯TT都没有对RSS的支持!

    Firefox通过插件Sage对RSS的feed进行管理。功能一般,没有能够自动提示更新,且无法标注关注等级。部分有RSS的页面无法自动提示可以联合。

    Opera对RSS支持得很好,自动提示更新,可以标注关注等级,用起来很方便!

     


    7.稳定性

    通过长时间的使用,可以说每个浏览器都有遇到过死掉,重起或者假死的情况。但程度有不同:

    IE:资源占用较多的情况下偶尔出现假死(对部分论坛回帖区过敏~),给80分。

    腾讯TT:出现重起的现象略微多一点,给70分。

    Firefox:同样也会死但很少见,给80。

    Opera:只记得死过一次,给90。

            虽然opera我真的很喜欢,可是由于网页打开时,出现错误的频率比较高,所以我只好忍痛割爱。

    firefox和TT成了我主流的浏览器,由于不同内核,如果TT爆了。我就可以该用firefox

     

  • 浏览器内核简介 (zz)

    2008-05-21 10:28:40

    浏览器内核简介

    浏览器的核心作用就是用来上网浏览,因此它对页面载入速度的快慢,直接影响到我们的使用。

    一款优秀的网页浏览器,不仅要具备美观大方的外表,还必须能够以较快的速度载入用户访问的网页,将页面的内容完整地呈现在窗口中。或者,在这里我们可以说一个出色的浏览器,其内核必须拥有良好的解析速度。

    通常所谓的浏览器内核也就是浏览器所采用的渲染引擎,渲染引擎决定了浏览器如何显示网页的内容以及页面的格式信息。不同的浏览器内核对网页编写语法的解释也有不同,因此同一网页在不同的内核的浏览器里的渲染(显示)效果也可能不同,这也是网页编写者需要在不同内核的浏览器中测试网页显示效果的原因。

    浏览器内核很多,如果加上所有的几乎没有什么人在用的非商业的免费内核,那么可能大约有10款以上甚至更多,不过通常我们比较常见的大约只有以下四种,下面先简单介绍一下。

    Trident: IE浏览器使用的内核,该内核程序在1997年的IE4中首次被采用,是微软在Mosaic代码的基础之上修改而来的,并沿用到目前的IE7。Trident实际上是一款开放的内核,其接口内核设计的相当成熟,因此才有许多采用IE内核而非IE的浏览器涌现。此外,为了方便也有很多人直接简称其为IE内核(当然也不排除有部分人是因为不知道内核名称而只好如此说)。

    由于IE本身的“垄断性”(虽然名义上IE并非垄断,但实际上,特别是从Windows 95年代一直到XP初期,就市场占有率来说IE的确借助Windows的东风处于“垄断”的地位)而使得Trident内核的长期一家独大,微软很长时间都并没有更新Trident内核,这导致了两个后果——一是Trident内核曾经几乎与W3C标准脱节(2005年),二是Trident内核的大量Bug等安全性问题没有得到及时解决,然后加上一些致力于开源的开发者和一些学者们公开自己认为IE浏览器不安全的观点,也有很多用户转向了其他浏览器,Firefox和Opera就是这个时候兴起的。非Trident内核浏览器的市场占有率大幅提高也致使许多网页开发人员开始注意网页标准和非IE浏览器的浏览效果问题。使用Trident内核的浏览器大量出现,除了常见的IE、Maxthon、TT等,还有GreenBrowser、AvantBrowser等等

     

    Geckos: Netcape6开始采用的内核,后来的Mozilla FireFox也采用了改内核,Geckos的特点是代码完全公开,因此,其可开发程度很高,全世界的程序员都可以为其编写代码,增加功能。而且这个内核跟Mosaic的关系更深,或者说事实上现在的Netscape Navigator已经改用这个内核了,因此Firefox的插件能够在Navigator上使用——当然,不是所有的都能兼容。因为这是个开源内核,因此受到许多人的青睐,Geckos内核的浏览器也很多,这也是Geckos内核虽然年轻但市场占有率能够迅速提高的重要原因。

    事实上,Geckos引擎的由来跟IE不无关系,前面说过IE没有使用W3C的标准,这导致了微软内部一些开发人员的不满;他们与当时已经停止更新了的Netscape的一些员工一起创办了Mozilla,以当时的Mosaic内核为基础重新编写内核,于是开发出了Geckos。不过事实上,Gecko内核的浏览器仍然还是Firefox用户最多,所以有时也会被称为Firefox内核。此外Gecko也是一个跨平台内核,可以在Windows、BSD、Linux和Mac OS X中使用。

     

    Presto: 目前Opera采用的内核,该内核在2003年的Opera7中首次被使用,也是由Opera Software开发出来的用以代替早期的Elektra内核(Opera 4~6)。该款引擎的特点就是渲染速度的优化达到了极致,也是目前公认网页浏览速度最快的浏览器内核,然而代价是牺牲了网页的兼容性。

    实际上这是一个动态内核,与前面几个内核的最大的区别就在脚本处理上,Presto有着天生的优势,页面的全部或者部分都能够在回应脚本事件时等情况下被重新解析。此外该内核在执行Javascrīpt的时候有着最快的速度,根据在同等条件下的测试,Presto内核执行同等Javascrīpt所需的时间仅有Trident和Gecko内核的约1/3(Trident内核最慢,不过两者相差没有多大)。那次测试的时候因为Apple机的硬件条件和普通PC机不同所以没有测试WebCore内核。只可惜Presto是商业引擎,使用Presto的除开Opera以外,只剩下NDS Browser、Wii Internet Channle、Nokia 770网络浏览器等,这很大程度上限制了Presto的发展

     

    Webkit:苹果公司自己的内核,也是苹果的Safari浏览器使用的内核。 Webkit引擎包含WebCore排版引擎及JavascrīptCore解析引擎,均是从KDE的KHTML及KJS引擎衍生而来,它们都是自由软件,在GPL条约下授权,同时支持BSD系统的开发。所以Webkit也是自由软件,同时开发源代码。在安全方面不受IE、Firefox的制约,所以Safari浏览器在国内还是很安全的。

    限于Mac OS X的使用不广泛和Safari浏览器曾经只是Mac OS X的专属浏览器,这个内核本身应该说市场范围并不大;但似乎根据最新的浏览器调查表明,该浏览器的市场甚至已经超过了Opera的Presto了——当然这一方面得益于苹果转到x86架构之后的人气暴涨,另外也是因为Safari 3终于推出了Windows版的缘故吧。

    因为Apple最近才将Safari移植到Windows因此暂时没有Windows上使用WebKit的其他浏览器,不过Mac下还有OmniWeb、Shiira等人气很高的浏览器。

  • 卸载测试(zz)

    2008-05-19 21:16:49

     

    ============卸载测试==============
    文件----安装目录里的文件及文件夹(如:程序安装在几处的)
          非安装目录(向系统其它地方添加的文件及文件夹)
                它们包括(exe,dll,配置文件等)
    快捷方式-(桌面,菜单,任务栏,系统栏,控件面板,系统服务列表等)
    复原方面-卸载后,系统能否恢复到软件安装前的状态(包含目录结构、动态库,注册表,
    系统配置文件,驱动程序,关联情况等)
    卸载方式--程序自带卸载程序/系统的控件面板卸载/其它自动卸载工具(如:优化大师)
    卸载状态--程序在运行/暂停/终止等状态时的卸载
    非正常卸载情况-卸载软件过程中,取消卸载进程,然后,观察软件能否继续正常使用
    冲击卸载--在卸载的过程中,中断电源,然后,启动计算机后,重新卸载软件,如果软件
    无法卸载,则重新安装软件,安装之后再重新卸载。
    卸载环境--不同的(操作系统,硬件环境,网络环境等)下进行卸载
    卸载后,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)
    ==========安装测试============
    一:基本目标
    1.安装程序能正确运行
    2.程序安装正确
    3.程序安装后能正确运行
    4.完善性安装后程序能正确运行
    二:一些方面
    0、安装手册给的所有步骤得到验证;
    1、安装过程中所有缺省选项得到验证;
    2、安装过程中典型选项得到验证;
    3、测试各种不同的安装组合,并验证各种不同组合的正确性(包括参数组合,控件执行顺序
    组合,产品安装组件组合,产品组件安装顺序组合(如b/s)等)
    4、安装过程中异常配置或状态(非法和不合理配置)情况进行了测试(如:断电;数据库
    止,网络终止等)
    5、安装后是否能产生正确的目录结构和文件,文件属性正确;
    6、安装后动态库是否正确;
    6、安装后软件能否正确运行;
    7、安装后没有生成多余的目录结构,文件,注册表信息,快捷方式等;
    9、安装测试应该在所有的运行环境上进行验证(手册上指定如:操作系统,数据库,硬件环
    境,网络环境等);
    10、自动安装还是手工配置安装
    11、至少要在一台笔记本上进行安装/卸载测试,因为有很多产品在笔记本中会出现问题,
    尤其是系统级的产品
    13、安装,该系统是否对其他的应用程序造成不正常影响(如操作系统,应用软件等)

  • 测试与经验(摘录)

    2008-05-09 17:09:22

       在论坛里面看到的文章,觉得很有帮助,怎样学习才更加有效,测试与经验,行业与知识,作者说的很真切,希望对更多的人有帮助

        公司不是大公司,我是第一个海归,我后边又来了两个海归,不过都是在短时间内就跳槽了。从此之后,公司基本决定不再招收海归了。
    很长一段时间之后,在跟HR闲谈的时候,谈到了这个话题。她告诉我,领导很奇怪我为什么没有跳槽。我当时并没有怎么回答这个问题,回头想想,可能是这个原因。
    之前工作过3个公司,没有一个超过一年的,各个都是不同的行业。因此自己的感受特别深,跳槽很不利于行业经验的积累,往往要从头做起。而我当时可以说已经得到了除了行业经验之外的所有东西。因此我的目标就很明确,就是要积累行业经验,在自己选择的行业里精通下去。当然当时的目标是开发不是测试,后来目标就调整为行业经验+测试经验。而且,我相信只要在自己的领域做到精通,以后待遇都不会有任何问题。因此一直工作了20个月,自己感到成熟的时候才开始考虑。当然最后事实证明也跟我当时的想法基本一样,这个行业世界排第二的公司在面试了我15分钟以后就给了我offer,并且salary远远超出了我的预期。并且最后contract上的salary又比当时许诺我的高了一些。关于待遇问题,我没有negotiate,他们问我要多少,我的回答是,“你们根据我的水平来给就可以了,我个人没有什么特别要求”。关于面试,他们主要让我谈了对这个领域的看法,测试方面并没有问多少,这点也验证了我所说的,测试只是个基础,行业知识的精通才是关键。

    希望我的经历对大家的跳槽决定能有所帮助。

    我觉得测试的经验比较容易积累,一方面是多做项目,一方面是学习,并且在工作中应用起来。
    基本的测试要求是写测试用例,执行用例,报告bug,fix之后verify bug。很多公司的测试任务可能也就这些了。
    进一步来讲就是要熟悉一些测试工具,我当时是把winrunner, rational robot, silktest, testcomplete都学习了一下,基本了解了测试工具的特点,用途,和优缺点。
    下一步就是要自己编写测试工具或者测试系统,具有一些高级语言的编程能力。
    有了以上这些技术,测试的经验就积累的差不多了。

    行业经验吗?我最近比较关注互联网,虽然我不是这个行业的。可是我也积累了一些经验。
    首先就是密切关注,google,微软,yahoo的动向。他们推出的新产品都自己去试一试,看看好不好用。并且,了解他们的优缺点。
    和他们相关的一些新闻平时也都多看,因此对这个行业的发展有一个总体认识。
    还有就是他们的beta版,里边是一定有大量bug的,在自己使用的时候也有意识的去抓出来一些。

    另外就是这个行业的具体技术,比如google的服务是什么来开发的,微软的服务又是什么来开发的。他们的开发系统有什么特点,有什么优缺点。自己也学习其中的一种系统。
    我学的是微软的.NET。还有比如现在Web2.0的技术AJAX, 我前一段时间也学了学,做了一些东西出来。对于HTML,HTTP,DHTML,CSS,Jscrīpt这些常用的技术都相应的学习过。

    我这里只是举我自己的例子,大家可以根据自己的领域来进行深入的学习。如果你对这个行业的发展有总体的认识,并且这个行业的相关技术都了解或掌握,就差不多了。不过很重要的一点是要有自己的独特思想,这样在面试中就能够打动别人。

    我的做法是这样。首先在网上search相关的信息,看一些新闻,技术文章。这样就会对这个领域有一个总体认识。
    其次,就是要开始学习这个领域的相关技术了。也是争取有个总体的认识,然后从与自己工作有关的技术入手,在短时间内能够胜任工作,然后再慢慢扩展自己的技术。

    我学东西还是比较快的,这里举个例子我怎么看一本书,学习一个没有任何知识的技术。

    首先我会好好的看第一章,因此一般来说是进行背景介绍,一边看一边感受,看完后对这个技术有个整体认识。
    然后,第2章,第3章会好好的看,这里一般会涉及到具体的知识了,也要好好感受,争取理解透彻。
    后边的章节主要是看第一页就够了,也就是说你能知道这一章是讲什么的就可以了,没有必要知道太细节的东西。
    所以很快就会看完一本书,一般是一天。这样就可以动手工作了,工作的时候涉及到什么相关的技术,再回过头去看相关的章节,要求也不高,不一定要全看,工作够用就可以了。
    工作过一段时间,会对这个技术有了更深刻的认识,这个时候就可以找时间把这本书整体看一遍,这样基本就把这个技术掌握透彻了。

  • 主流七款web服务器点评(zz)

    2008-04-22 16:58:19

    如今互联网的WEB平台种类繁多,各种软硬件组合的WEB系统更是数不胜数,下面就来介绍一下几种常用的WEB服务器:

    1、Microsoft IIS

      Microsoft的Web服务器产品为Internet Information Server (IIS), IIS 是允许在公共Intranet或Internet上发布信息的Web服务器。IIS是目前最流行的Web服务器产品之一,很多著名的网站都是建立在IIS的平台上。IIS提供了一个图形界面的管理工具,称为 Internet服务管理器,可用于监视配置和控制Internet服务。

       IIS是一种Web服务组件,其中包括Web服务器、FTP服务器、NNTP服务器和SMTP服务器,分别用于网页浏览、文件传输、新闻服务和邮件发送等方面,它使得在网络(包括互联网和局域网)上发布信息成了一件很容易的事。它提供ISAPI(Intranet Server API)作为扩展Web服务器功能的编程接口;同时,它还提供一个Internet数据库连接器,可以实现对数据库的查询和更新。

    2、IBM WebSphere

      WebSphere软件平台能够帮助客户在Web上创建自己的业务或将自己的业务扩展到Web上,为客户提供了一个可靠、可扩展、跨平台的解决方案。作为IBM电子商务应用框架的一个关键组成部分,WebSphere软件平台为客户提供了一个使其能够充分利用Internet的集成解决方案。

      WebSphere软件平台提供了一整套全面的集成电子商务软件解决方案。作为一种基于行业标准的平台,它拥有足够的灵活性,能够适应市场的波动和商业目标的变化。它能够创建、部署、管理、扩展出强大、可移植、与众不同的电子商务应用,所有这些内容在必要时都可以与现有的传统应用实现集成。以这一稳固的平台为基础,客户可以将不同的IT环境集成在一起,从而能够最大程度地利用现有的投资。

      WebSphere Application Server 是 一 种功能完善、开放的Web应用程序服务器,是IBM电子商务计划的核心部分,它是基于 Java 的应用环境,用于建立、部署和管理 Internet 和 Intranet Web 应用程序。 这一整套产品进行了扩展,以适应 Web 应用程序服务器的需要,范围从简单到高级直到企业级。
      
      WebSphere 针对以 Web 为中心的开发人员,他们都是在基本 HTTP服务器和 CGI 编程技术上成长起来的。IBM 将提供 WebSphere 产品系列,通过提供综合资源、可重复使用的组件、功能强大并易于使用的工具、以及支持 HTTP 和 IIOP 通信的可伸缩运行时环境,来帮助这些用户从简单的 Web 应用程序转移到电子商务世界。

     

    3、BEA WebLogic

     

      BEA WebLogic Server 是一种多功能、基于标准的web应用服务器,为企业构建自己的应用提供了坚实的基础。各种应用开发、部署所有关键性的任务,无论是集成各种系统和数据库,还是提交服务、跨 Internet 协作,起始点都是 BEA WebLogic Server。由于 它具有全面的功能、对开放标准的遵从性、多层架构、支持基于组件的开发,基于 Internet 的企业都选择它来开发、部署最佳的应用。

      BEA WebLogic Server 在使应用服务器成为企业应用架构的基础方面继续处于领先地位。BEA WebLogic Server 为构建集成化的企业级应用提供了稳固的基础,它们以 Internet 的容量和速度,在连网的企业之间共享信息、提交服务,实现协作自动化。BEA WebLogic Server 的遵从 J2EE 、面向服务的架构,以及丰富的工具集支持,便于实现业务逻辑、数据和表达的分离,提供开发和部署各种业务驱动应用所必需的底层核心功能。

    4、IPlanet Application Server

      作为Sun与Netscape联盟产物的iPlanet公司生产的iPlanet Application Server 满足最新J2EE规范的要求。它是一种完整的WEB服务器应用解决方案,它允许企业以便捷的方式,开发、部署和管理关键任务 Internet 应用。该解决方案集高性能、高度可伸缩和高度可用性于一体,可以支持大量的具有多种客户机类型与数据源的事务。

      iPlanet Application Server的基本核心服务包括事务监控器、多负载平衡选项、对集群和故障转移全面的支持、集成的XML 解析器和可扩展格式语言转换(XLST)引擎以及对国际化的全面支持。iPlanet Application Server 企业版所提供的全部特性和功能,并得益于J2EE系统构架,拥有更好的商业工作流程管理工具和应用集成功能。

     

    5、Oracle IAS

     

      Oracle iAS的英文全称是Oracle Internet Application Server,即Internet应用服务器,Oracle iAS是基于Java的应用服务器,通过与Oracle 数据库等产品的结合,Oracle iAS能够满足Internet应用对可靠性、可用性和可伸缩性的要求。

      Oracle iAS最大的优势是其集成性和通用性,它是一个集成的、通用的中间件产品。在集成性方面,Oracle iAS将业界最流行的HTTP服务器Apache集成到系统中,集成了Apache的Oracle iAS通信服务层可以处理多种客户请求,包括来自Web浏览器、胖客户端和手持设备的请求,并且根据请求的具体内容,将它们分发给不同的应用服务进行处理。在通用性方面,Oracle iAS支持各种业界标准,包括 JavaBeans、CORBA、Servlets以及XML标准等,这种对标准的全面支持使得用户很容易将在其他系统平台上开发的应用移植到Oracle平台上。

    6、Apache

     Apache源于NCSAhttpd服务器,经过多次修改,成为世界上最流行的Web服务器软件之一。Apache是自由软件,所以不断有人来为它开发新的功能、新的特性、修改原来的缺陷。Apache的特点是简单、速度快、性能稳定,并可做代理服务器来使用。本来它只用于小型或试验Internet网络,后来逐步扩充到各种Unix系统中,尤其对Linux的支持相当完美。

      Apache是以进程为基础的结构,进程要比线程消耗更多的系统开支,不太适合于多处理器环境,因此,在一个Apache Web站点扩容时,通常是增加服务器或扩充群集节点而不是增加处理器。到目前为止Apache仍然是世界上用的最多的Web服务器,世界上很多著名的网站都是Apache的产物,它的成功之处主要在于它的源代码开放、有一支开放的开发队伍、支持跨平台的应用(可以运行在几乎所有的Unix、Windows、Linux系统平台上)以及它的可移植性等方面。

    7、Tomcat

      Tomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。Tomcat Server是根据servlet和JSP规范进行执行的,因此我们就可以说Tomcat Server也实行了Apache-Jakarta规范且比绝大多数商业应用软件服务器要好。

      Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。

  • 我的工作目标

    2008-03-12 19:34:46

       在网上看到了招聘会的信息,感觉自己还有一段差距,所以要缩短差距,弥补自己的不足之处,努力做到下面的每一项。那时候我就很厉害了,哈哈

       招聘要求:

                  SQA

    • 至少2年软件过程改进和SQA经验
    • 有一年以上软件产品开发经验,熟悉一门开发语言(如C/C++等)或脚本语言(如Per/python等)
    • 熟悉CMM/CMMI模型
    • 熟悉相关质量知识
    • 参与或主导过软件过程改进
    • 测试组长或测试经理
    • 至少三年以上QA管理经验
    • 至少两年以上质量管理或项目管理经验,熟悉CMM/CMMI质量模型
    • 精通Loadrunner,QTP,QC等测试工具.
    • 熟悉软件测试开发流程,熟悉掌握性能测试和自动化测试方法
    • 参与或主导过软件过程改进
    • 软件测试工程师:
    • 理解测试理论,熟练掌握各种软件的测试方法
    • 对测试流程有一定的理解, 熟悉缺陷管理流程/方法,善于进行缺陷分析
    • 熟练使用TD/ LoadRunner/ Winrunner/ Junit等多种测试工具
    • 掌握一种以上的编程语言,有开发经验的优先,C/C++/Java; Perl/Python/PHP
    • 熟悉网络技术
    • 熟悉软件开发环境
    • 熟悉操作系统:如windows,unix/linux,mac and so on
    • 相关数据库技术: MySql/Oracle

    (3)综合上述,要想做一个优秀而且全能的QA或软件测试师,需要具备以下几点:

    • 测试基础扎实
    • 对测试流程有自己独特的见解,可以根据不同的软件开发模型来定义软件测试模型
    • 掌握使用各种自动化测试工具Loadrunner,QTP 和测试管理工具QC,TD
    • 掌握一种以上的编程语言: C/C++/Java; Perl/Python/PHP
    • 熟悉软件开发环境
    • 熟悉各类操作系统
    • 熟悉相关数据库技术: MySql/Oracle
    • 熟悉网络开发技术
    • 了解CMM/CMMI加分
    • 英语优秀者加分.
  • Lotus Notes简介 (zz)

    2008-01-14 23:57:59

      

         Lotus Notes通常被称为群件,它可以使一组人员集成他们的知识、工作过程和应用系统而获得更好的商业效应。群件是一个集通信处理、文档存储和丰富的应用开发环境于一体的软件,支持在各种不同计算平台和包括Internet在内的各种网络之间共享各种类型的数据。 Lotus Notes是一个文档数据库管理系统:其最基本的元素就是单独的文档。因为Notes文档既可以包含结构化的内容,也可以包含非结构化的内容,所以,Notes能够存储和管理关系型数据库系统或者其它数据库系统无法存储和管理的各种数据。加之采用了文档模型,Notes向用户提供了大量有用的功能,处理复杂文本(Richtext)和多媒体对象的能力、全文搜索功能、版本控制、文档链接等。Notes的最新版本把这些功能扩充到能够处理存储在Internet上的各种信息。 复制 群体平台的最基本特征之一是支持工作组成员跨越时空界限共享信息的能力。工作组成员常常分布在不同的岗位,有时甚至跨越了省、市和国家。为了支持本地成员方便和经济地访问数据,每一个工作地点通常都需要配置本地服务器。Notes具有突出的复制技术,包括双向复制、高效复制、移动复制(MobileReplication)、字段级选择复制和后端复制。 安全 世界上许多企业都已开始建立自己的包容企业各个部门乃至供应商和客户的应用系统。尽管个人、部门和整个企业都已经认识到信息的宝贵价值和专有性,但是,在当今商场上的竞争环境迫使企业必须打破存在于企业内部和企业之间的、原有的各种界限,随时随地地共享信息,只有这样,才能缩短处理问题的时间,孕育出更多的革新力创造。当然,在群件系统中共享的信息仍需要保证其安全性,以防止有意的破坏。因此,群件平台既要求坚固的措施以保护关键的商业数据,也要求具有足够灵活的安全手段以保证合法用户能够存取和分配必要的信息。Lotus Notes使用密钥和其它手段满足了上述两个方面的要求,提供了四级安全措施:验证、存取控制、字段级加密和电子签名。 通信处理 作为工作流应用系统的一个关键组成部分,并作为工作组日程规划和进度安排的平台,Notes通信处理既可用于个人之间的通讯,也可以用于支持工作组成员之间的协同工作。 Notes给初学者提供了一个非常简单易学的邮件系统,同时,Notes还可以使熟练的用户快速地调用邮件管理工具,他们可以使用它来处理和组织大量的邮件。Notes Mail邮件可以包含与Notes数据库中任何一个文档的链接,这些Notes数据库包括Discussions(讨论)、Customer Profiles(顾客背景)、Web pages(环球网页面)和Newsfeeds(新闻来源)。 大多数工作流系统都需要根据工作流程的某种状态或者数据库字段的某种值,决定是否向某人发出通告或者更新某个数据库。Notes工作流应用程序被设计成可以自动地传送包含一个与某一文档的链接的邮件,而这个文档需要评审或者按其他方式处理。工作流应用程序还可以监视该工作流程,一旦停顿,就发送一个后援邮件,以重新启动这个过程。 Notes邮件传输可以同第三方厂家开发的工作组日程规划和进度安排产品一起使用。Lotus Organizer利用Notes的目录服务和邮件传输功能,向用户提供了非常完善的工作组进度安排。(下转第157版) 应用开发 Lotus Notes包含一个集成的开发环境,为不同层次的用户提供了丰富的开发工具。即使没有编程经验的用户也能很快地建立和实施Notes应用程序,而专业的开发人员更是可以使用Notes内置的编程工具创建功能强大的商务处理应用程序。 专业的开发人员可以利用一套完整的Notes开发工具集来创建战略性的系统。其主要工具包括: ·数据库基本设计元素———表、字段、视图、代理和文件类; ·完备的内置编程工具集———Lotusscrīpt、Notes公式语言、Navigators(导航器) ·完善的数据库集成功能———Lotusscrīpt Data Object(Lotusscrīpt数据对象,LS:DO)、NotesPump和许多Business partner DBMS(商业伙伴数据库管理系统)产品; ·通过Basic语言直接利用Notes功能———Lotus Notes HiTest for VisualBasic; ·许多流行的、第三方厂商开发的工具扩充。 最后,要求访问Notes开发平台全部功能的用户也可以在C或C++开发环境中同时访问Notes客户机和服务器。两个应用程序设计接口都可以使开发人员将Notes同任何提供C或者C++的系统结合在一起。 Internet 仅仅在几年前,人们还无法想象Internet和World Wide Web(环球网,WWW)能够在企业内部和企业之间的联系和商业机遇上占据主导地位。通过对广泛可用的Internet和Web(环球网)协议的开发,企业可以以一种前所未有的方式充分地利用这一环境,构造以前不可能构造出来的基于Client/Server(客户/服务器)结构的应用程序,这种应用程序既适用于企业内部,也适用于企业外部,而且还可以在顾客、商业伙伴、投资商和供货商之间进行信息交流。和Web(环球网)一样,LotusNotes是建立在一个复杂正文的、面向文档的数据库,包含字段的表格以及文档链接的概念基础之上的。因此,Notes是一个理想的Web(环球网)应用程序开发平台。 由于Notes对Internet和Web(环球网)标准的完全开放,因而Lotus扩展了Notes服务器的使用,使之可以将Web(环球网)浏览器作为一个替代的客户机来支持。由于全面支持本地Internet和Web(环球网)标准,因而Lotus也增加了Notes客户机的价值,使之包含最终用户和面向工作组的Web(环球网)信息管理。如同Notes客户机可以利用Notes服务器作为全部信息资源的存取中心一样,Notes客户机也可以通过Web(环球网)服务器存取和管理其上的信息。也就是说,Notes客户机可以将其一整套功能应用于在HTTP服务器上以HTML格式发布的内部信息和外部信息,这些功能包括:无连接使用、客户/服务器通信处理、复杂格式正文编辑、安全管理、工作流应用程序、讨论数据库和文档库等。 多平台支持 Lotus Notes在当今多机种协作系统环境中能够显示强大功能的关键在于其多平台支持。不管在什么平台上,所有的Notes客户机都能够存取所有的服务器、交换信息、发送和接收E-mail(电子邮件),并参与Notes服务范围之内的各种服务。利用Notes对Internet和Web(环球网)协议的内置支持,标准的Web(环球网)浏览器可以存取Notes文档、视图和应用程序。并且,Notes几乎支持在工业界的所有主流客户机、服务器和网络操作系统。 移动计算 Notes允许用户在旅途中存取信息,也就是说,把信息从服务器"拉"到其移动的客户计算机上。为了获得该信息,Notes移动用户只要使用一根电话线与一个Notes服务器相连即可进行通讯。Notes复制技术使移动用户在旅途中具有提取信息和加速工作组交流速度的能力,为客户和商业伙伴提供实时信息,保证随时可以获得签定合同或者填写订购单所需要的一切信息,并可以从任何地方发出邮件。 相反,重要的邮件和事件的发生时间与移动工作者将其客户机连接到服务器的时间常常是不一致的,如果移动工作者不能方便而又快速地获取及时的和紧急的事件,那么,他们仍会感到不太方便。也就是说,用户需要服务器自动把相关的信息提供给他们。Notes寻呼处理服务可以满足这种需要,它可以主动地向移动用户报告重要邮件或者事件。  

  • Xitami web服务器(转载)

    2008-01-04 00:10:51

    Xitami(正确的发音是Shi-tami或Ksi-tami,重读第二个音节)是一款免费的Web服务器。对一些组织而言,这些信息可能已经足够,只要免费就好。不过,Apache这个开放源码服务器的旗手也是免费的,而且它非常的流行。

    今天,有两种Web服务器在市场上占据绝对的优势,一个是开放、免费的Apache,据Netcraft每月一次的调查显示,它稳定的占据了65%以上的市场份额;另一个是非免费的IIS,Netcraft调查显示它的市场份额在20%左右。当然,这个市场上还有众多其它的Web服务器,但它们两位绝对是这个市场上的王者。

    现在进一步来看,用形象的话来讲,一般那些整天带着领带衣冠楚楚者运营的机构大多会选用IIS,而那些不爱打领带而爱装牛仔装的人运营的组织更倾向于使用Apache。据一家IIS工具销售商Port80软件公司的每月调查数据,在世界财富1000强的企业中,有几乎54%选择了IIS,而仅有不足15%使用Apache。

    把Web服务器软件划分为自由软件阵营和商业软件阵营有很好的原因,如果你选择了如IIS之类的商业Web服务器,那很可能是因为它已经是你的IT基础架构的一部分而且你有稳定而成熟的IT预算与支持体系。因此实话实说,如果你的组织已经在复杂的商业IT基础架构上整合进了商业的Web服务器,你将不会对Xitami再感兴趣,你完全没必要继续读下去。

    Xitami无疑是属于免费的自由软件服务器阵营的一员,在这个阵营里,Apache当然是无疑的领导者,也许你会问,既然Apache也是一款免费的多平台、多线程服务器,而且已经占有这么大的优势,那为什么还要选择Xitami?

    简单的说,Apache的功能非常齐全,在多年的发展中它已经成长为一个有极强功能而且部署广泛的软件巨兽,可是它有较为陡峭的学习曲线。而Xitami对用户更为友好,它没有那种想要满足一切需求的野心,但是功能也绝对不弱。网络管理员工作的第一要则是用合适的工具做合适的事,最强大的工具并不总是很必要,你并不需要用导弹来打蚊子。

    Xitami几乎可以在所有的现代操作系统上上运行,我们测试了它的Windows版本。它的下载包不到2MB,安装以后大约占4MB的磁盘空间。值得一提的是Xitami并没有大多数Windows平台软件中常见的install安装文件,安装时直接把压缩包解压到想要的目录,然后运行管理工具就可以了。

    解压以后,Xitami就已经可以为其默认Web根目录下的文档提供服务了。如果你要访问Xitami的基于Web界面的设置工具,你还需要手工修改一个设置文件来创建管理密码。在启用了管理界面后,你可以通过一系列Web页来对Xitami进行设置,整个设置界面非常朴素,不过想一下,如果你用得是Apache,你可能需要一个下午去修改Apache的那些晦涩的基于文本的配置文件。

    设置相对简单可以说是Xitami赢得一个虽然小却非常稳定的fans群的一大原因。

    Xitami支持各种基本的Web服务协议(如HTTP/1.0, CGI/1.1),还支持SSI,图片地图(image maps)与持久连接,同时还包括基本的FTP功能。它的标准Web日志可以用如Analog的工具进行进一步分析。

    Xitami真正的闪光点还是它很小的内存占用和极快的速度。与完成同样功能的Apache安装相比较,Xitami的多线程引擎占用更少的资源并提供更佳的性能。尽管Apache 2.0已经是多线程的,但与小巧快捷的Xitami相比,它仍然显得臃肿而迟钝。Xitami的核心是一个基础而高效的Web服务器。

    不过,基于Web界面的Xitami设置工具在Opera浏览器上无法正常运行,但在Netscape 7/Mozilla 1.4和Internet Explorer 6上工作良好。

    Xitami的文档与服务支持与Apache相比差得很远。Xitami也可以被扩充以进行更复杂的配置,也有几个附加模块可以增加向PHP和Perl这样的脚本支持。它的专业版还支持SSL,不过专业版不再免费,而是报价99美元。可是,如果要进行那些需要更复杂功能的工作,Apache比它更加适合,因为这才是Apache的力量所在。

    从很多方面讲,Xitami象是快捷简单的摩托车,而Apache则象豪华的体育竞技赛车。

    优点:快速的部署,简单的基于Web的管理界面,快速,对服务器资源消耗小。

    缺点:对完全的初学者来说还是有点难,有限的支持,相对于Apache功能较少。

    编者注:文中评估版本号为2.5。


  • 功能测试用例的书写方式(zz)

    2007-12-25 21:32:59

    功能测试用例的书写方式(适于新手学习)

     

    能性测试用例

    1. 测试的来源,即测试的需求

      测试用例的主要来源有:
    1) 需求说明”及相关文档
    2)相关的设计说明(概要设计,详细设计等)
    3)与开发组交流对需求理解的 记录(可以是开发人员的一个解释)
     4)已经基本成型的UI(可以有针对性地补充一些用例)
           简而言之,所有你能得到的项目文档,都尽量拿到。 从所得到的资料中,分解出若干小的“功能点”,理解“功能点”,编写相应的测试用例。

    2. 用例的组织方式

    不同的公司有不同的做法,原则上,只要方便管理和跟踪,怎么组织都可以的。
    用例可以按大的功能块组织,如查询功能模块的用例,可以组织在一起,打印模块的测试用例,可以另外组织在一起。
         在没有专门的测试用例管理工具的情况下,用例执行后会产生2种状态:“通过”、“失败”——这样加上“未 执行”的用例的状态,共3种状态。
        即从“未执行”用例中执行一个用例后,该用例状态应为“失败”或“通 过”。将同一状态的用例组织在一起。
      至于用例文件格式,可以是.DOC或.XLS(如果有专门的测试用例管理工具另当别论)。

    3. 用例与其他材料的关联方式,即如何解决用例跟踪的问题

    测试用例面临的比较大的风险有:需求的变更、设计的修改、需求的错误和遗漏等等。
    由于用例的主要来源是需求和设计的说明,所以对用例的跟踪其实就是对需求和设计的跟踪,需求和设计的 变更势必引起测试用例的变更。
      如前所说,将分解的功能点编号,与相应的用例联系起来。例如,你可以列一个表格,列出各个(编号的)功 能点和测试用例间的关联关系。
     这样,当需求和设计发生变化时,你只需要跟踪“功能点”是否变化,是否增加了新的功能点。
      4. 一个好的用例的表述要点,即用例中应当包含的信息

    一个优秀的测试用例,应该包含以下信息:
    1) 软件或项目的名称
    2) 软件或项目的版本(内部版本号)
     3) 功能模块名
     4) 测试用例的简单描述,即该用例执行的目的或方法
     5) 测试用例的参考信息(便于跟踪和参考)
     6) 本测试用例与其他测试用例间的依赖关系
     7) 本用例的前置条件,即执行本用例必须要满足的条件,如对数据库的访问权限
    8) 用例的编号(ID),如可以是 软件名称简写-功能块简写-NO.。
    9) 步骤号、操作步骤描述、测试数据描述
    10)预期结果(这是最重要的)和实际结果(如果有BUG管理工具,这条可以省略)
    11)开发人员(必须有)和测试人员(可有可无)
    12)测试执行日期

Open Toolbar