发布新日志

  • 工具

    2012-08-14 13:49:24

     

    转载:地址:本文出自 liangshi 的51Testing软件测试博客:http://www.51testing.com/?298785

    这是一年前写的日志,总结了Windows平台上通用的测试工具。除了Microsoft Office和Visual Studio,都是免费软件或开源软件。

      Notepad2

      测试者需要一种可以在任何机器上立即部署、立即应用的编辑器,Notepad2就是一个很好的选择。它是一个小巧的编辑器,用不到1M的大小提供了丰富的功能。在查看方面,它可以语法高亮多种程序文件,可以显示空格、回车、换行等特殊字符(这对测试者了解文件内容的细节很有帮助),可以轻松的放大或缩小字体。在编辑方面,它提供了基本的缩进、注释、字符集转换等功能。目前,我使用它完成80%的程序开发任务。

      Notepad++

      有时,测试者或他的工作伙伴也需要多标签的、功能更加丰富的源代码编辑器。开源的Notepad++是一个不错的选择。它的二进制格式查看和编辑能力,是Notepad2所不具备的。

      WinMerge

      在测试过程中,测试者往往需要比较不同版本的源代码,比较两个文件或目录的内容。WinMerge是开源的比较和合并工具,界面友好、功能实用。

      IronPython/Python

      Python是一门成熟的动态语言,特别适合测试自动化工作。IronPython是基于.NET平台的Python语言实现,特别适合.NET程序的测试。例如,IronPython可以绑定到.NET对象的私有成员,可以直接测试对象的实现细节。更重要的是,IronPython提供了快速测试、快速反馈的便利性,符合软件测试的语境驱动方法的理念。目前,我使用IronPython完成80%的测试开发任务。

      Windows PowerShell

      Windows PowerShell是Windows Server 2008以及后续Windows平台的内建组件。越来越多的Windows Service(如SQL Server、IIS、Visual Studio Team Fundation Server、Hyper-V等)已经或即将支持PowerShell。作为测试自动化工具,PowerShell是测试工具箱中不可或缺的一员。

      SQL Server

      测试工作者需要管理测试数据、检查测试输出、汇报测试结果,这都需要数据管理、操纵、计算工具。如果数据规模大、保持时间长、需要供多种系统使用,那么数据库就是值得仔细考虑的测试工具。SQL Server不但提供了强大的存储引擎、便利的管理工具,还可以与Visual Studio、ASP.NET等系统平滑集成,有利于测试开发和维护。一般情况下,免费的SQL Server Express可以满足大多数测试工作的需要。

      Microsoft Office

      测试人员最重要的能力是思考和交流;Microsoft Office Suite可以帮助测试者更好的思考和交流。

      ● Word可以编辑测试文档、工作日志(Word 2007可以发布Blog)、Fit测试表格。它的批注功能便于团队成员之间的交流。

      ● PowerPoint不但是制作测试报告的利器,也是测试大纲、会议纪要的记录工具。

      ● Excel可以用于测试结果分析、测试图表生成。它还可以用ODBC连接数据库或其他的数据源,是方便的数据呈现和操纵工具。

      ● OneNote可以记录工作笔记、测试灵感、待办事项等多种信息,可以解放测试者的大脑。

      ● Outlook和Exchange是大型企业工作流的一部分,是每日必用的交流工具。当然,面对面的交流是远胜于邮件的协作方式。

      ● SharePoint提供了团队合作的基础,其Wiki功能对于分享团队知识非常方便。

      Windbg

      面对测试环境中的异常,测试工作者往往有两个选择:第一、用Windbg附着(attach)到目标进程进行调试;第二、用Windbg或其他工具(自动)生成内存映像文件(memory dump file),然后用Windbg分析该文件。作为Windows平台上优秀的调试工具,Windbg是解决疑难杂症的好帮手。

      Reflector

      利用Reflector,可以方便地了解.NET程序集(Assembly)的实现细节,对于制定测试策略、编写测试用例很有帮助。它还支持多种插件,可以生成源代码文件、比较程序集异同、进行代码搜索,是.NET平台上必不可少的测试工具。

      EPSnap

      一图胜过千言万语,测试报告往往也需要图片来进一步说明。EPSnap是一个免费的绿色截屏工具,它可以自定义快捷键、抓取多种类型的区域、保持多种格式的图片。目前,我使用它完成所有的截图工作。

      Windows Sysinternals

      Sysinternals提供了一组好用的工具用于管理、诊断、检查Windows系统和应用程序。目前,我使用的最多的工具是进程管理工具Process Explorer和桌面制作工具BigInfo。

      Perfmon

      Windows内建组件Perfmon可以监控并记录Windows系统和应用程序的性能参数,是性能测试和故障诊断的好工具。

      Event Log

      Windows内建组件Event Log可以记录Windows系统和应用程序的重要事件,是故障诊断的好工具。

      Schedule Tasks

      Windows内建组件Schedule Tasks可以定时启动指定的程序。目前,我使用它完成数据备份、启动每日测试(daily test)和循环测试(rolling test)、自动部署被测试系统等多项任务。

      Visual Studio

      Visual Studio是Windows和.NET平台上最强大的开发工具,也是测试人员开发测试程序、调试产品代码的利器。配合Team Foundation Server (TFS),可以建立代码管理、缺陷管理、工作项管理、开发报告的集成环境,是团队协作的基础设施。目前,我所有的测试代码都签入(check-in)到TFS中。

  • 浏览器兼容性测试工具

    2012-02-20 14:57:46


    原文链接:http://www.ltesting.net/ceshi/ceshijishu/gncs/jrxcs/2011/0825/203126.html

    对于前端开发工程师来说,网页兼容性测试工程师而言,确保代码在各种主流浏览器的各个版本中都能正常工作是件很费时的事情,幸运的是,有很多优秀的工具可以帮助测试浏览器的兼容性,领测软件测试网向您推荐12款很棒的浏览器兼容性测试工具 让我们一起看看这些很棒的工具吧。

      Spoon Browser Sandbox

      点击你需要测试的浏览器环境,安装插件就可以进行测试了。帮助你测试网页在Safari、Chrome、Firefox和Opera浏览器中是否正常,IE以前也有的,网站上说应微软的要求去掉了。

      Superpreview

      这是为微软自己发布的跨浏览器测试工具,您可以同时查看您的网页在多个浏览器的呈现情况,对页面排版进行直观的比较。

      IETester

      专门用于测试网页在IE浏览器各个版本中兼容性的工具,版本包含IE5.5至IE9的各个版本,很不错的一款工具,推荐。

      BrowserShots

      BrowserShots 是一款免费的跨浏览器测试工具,捕捉网站在不同浏览器中的截图。这是最有名,也是最古老的浏览器兼容性测试工具。

      Multiple IEs

      这款工具同样用于测试网页在IE浏览器各个版本的兼容性。

      IE netrenderer

      Netrenderer 也是用于检查你的网站在IE浏览器中的呈现情况,包括各个常用版本的检测。

      Viewlike.Us!

      Viewlike 是一款新推出的工具,帮助你检查浏览器在不同分辨率下得呈现情况。

      BrowserSeal

      这款工具的两个主要特色是独立的浏览器支持和带有自动化脚本的命令行界面。

      Browsera

      Browsera 是一个可测试您的网站的跨浏览器布局的工具,您会看到您网站上存在的兼容性错误。

      WebDevLab

      这款工具专门用于测试你的网站在苹果Safari浏览器中是什么样子的。

      Litmus

      这个工具可以帮助你检查你的网站在多个浏览器中的呈现情况,跟踪Bug并创建报告。

      Browsercam

      最后这款工具是要付费的,可以帮助你检查 Javascript. 和 DHTML,提供不同的测试环境平台

  • FreeMind

    2011-12-13 18:10:53

     
    转载吴鲁
    1. 所谓MindMap
    1.1 MindMap是什么
    MindMap是什么呢?其实是英国人托尼·巴赞创造的一种提出笔记方法,和传统的直线记录方法完全不同,它以直观形象的图示建立起各个概念之间的联系。在国内,MindMap又被称为脑图或思维导图。
    
    思维导图(Mind Mapping)以放射性思考(Radiant Thinking)为基础的收放自如方式,除了提供一个正确而快速的学习方法与工具外,运用在创意的发想与收敛、项目企划、问题解决与分析、会议管理等方面,往往产生令人惊喜的效果。它是一种展现个人智力潜能极至的方法,将可提升思考技巧,大幅增进记忆力、组织力与创造力。它与传统笔记法和学习法有量子跳跃式的差异
    
    1.2 MindMap软件介绍
    其实当前MindMap软件相当多,最为流行的应该这三款:
    
    Mindjet MindManager 
    inspiration 
    FreeMind 
    对我来说,FreeMind最合适,原因有二:
    
    跨平台,这样无论我在Windows、Debian或者FreeBSD下都可以正常使用; 
    采用xml保存数据,方便读取或者与其它程序转换; 
    功能简洁,却又恰到好处的够用,因此我就选定它了!
    
    2. 我用FreeMind
    2.1 速读
    通过我的读书笔记可以看出,用FreeMind做记录是非常方便的。
    
    采用了FreeMind后,我对一些“快餐书籍”的阅读方式是这样的:
    
    仔细看一遍目录,根据目录先画一张mindmap,基本把握作者的思路; 
    进入阅读状态,边读边写写画画,圈出重点,读完一章,便在mindmap中完善一章的内容,如此周而复始; 
    看整张mindmap,从整体回顾,找出重点,标记不同的颜色以便今后重点重读,并且结合自己的感觉,填进mindmap中; 
    扔开mindmap,闭上眼睛回忆阅读的结果。 
    2.2 小项目管理
    FreeMind有个很好的功能是根据目录创建文件,也就是可以根据某个目录下的文件结构来直接生成一个MindMap,这个功能也很诱人,于是我利用它来管理我的小项目。
    
    首先直接生成一幅MindMap,然后进行部份细节调整和分类,再标出生要等级。当项目中有新任务创建时,就做简单记录。这样就能轻松地将企业内部的项目放在一起全盘考虑和分析了。
    
    
    2.3 脑力激荡
    一帮朋友在一起讨论某个创业机会时、几个程序员在商量产品功能特点的时候、企业管理人员聚会研究公司发展战略的时候……或者,仅仅是自己想写一篇文章的时候,比如我现在
    
    
    FreeMind是否都能助你一臂之力?
    
    2.4 会议记录
    会议记录这点似乎乏善可陈,谁都能看出用它做会议记录,相对较能抓住所谈事务的主题,并且容易促进与会者的关联分析。
    
    
    3. 小技巧
    3.1 快捷键或鼠标
    我常用的快捷键有:
    
    在下方新增节点 = Enter
    新增子节点 = INSERT
    在上方新增节点 =Shift+Enter
    查找 = Ctrl+F
    编辑 = F2
    展开或缩起 = Space
    
    当然,按F3-F9能够给节点设置不同的颜色等等,也是很常用的。另外还有些组合键,如按住Alt键后用鼠标选中根节点,就是全选。按住Ctrl+Shift后用鼠标连接两个节点,便是在节点间创建连接线……快捷键也可以自定义,但通常无须这样做。具体的细节也可以参见帮助文件。 
    
    3.2 在web上发布
    当你精心完成一个MindMap后,是否有希望别人看到的愿望呢?直接通过freemind-browser可以轻松地将Mindmap发表到网站上,并且访问者能够象直接操作程序般对各节点进行展开、关闭等行为。
    
    只要将freemindbrowser.html中的两部份稍做修改,即标题和具体mm文件的位置,并连同freemindbrowser.jar一起复制到你的web服务器上,用户应该就能够正常浏览了。
    
    3.3 聪明的复制与粘贴
    FreeMind比其它软件优势的一个地方还在于它智能的复制方式,例如,我可以通过一个有缩进层次关系的txt、html或其它文件复制成很漂亮的MindMap,也能将MindMap直接复制进word、excel甚至outlook中,并保持良好的缩进和层次关系。
    
    3.4 修改配置文件
    在一份user.properties的文件中,保存着许多可配置的选项,其中仅有几项是通过Edit->reference可以设定的。这份文件通常在你的~目录下,在windows 2k、xp和2003下,应该在cocuments and Settings(your user name) freeminduser.properties,如果是Win9x下则在C:WINDOWSfreeminduser.properties,要判断你的HOME目录,可以直接在cmd窗口输入:echo %HOMEPATH%
    
    里面的部份格式如下:
    
    ## Experimental features, "true" / "false"
    #experimental_file_locking_on = false
    ##If dnd is enabled. "true" or "false"
    #draganddrop = true
    #
    ##The Modes which Freemind will load on startup, full Class names separated by a comma.
    #modes = freemind.modes.browsemode.BrowseMode,freemind.modes.mindmapmode.MindMapMode,freemind.modes.filemode.FileMode
    ##The initial mode that is loaded on startup
    #initial_mode = MindMap
    
    并不难理解,就不多做说明了。
    
    3.5 MindManager数据导出到FreeMind
    身边有很多朋友使用的Mind Map工具是MindManager X5,这毫无疑问是一款杰出的商用软件,但与FreeMind之间的格式却是不相通用的,好在两者都采用xml格式来保存数据,因此数据转换并不困难。
    
    先用解压缩工具打开MindManager的*.mmap文件--该格式实际上就是将相关信息打包压缩。下图是用winrar打开时的情况,我们可以看到里面有一个Document.xml的文件,这就是MindManager的主文件了。
    
    
    采用特定的xslt,比如mm2fm.xslt,再配合xsltproc软件,将Document.xml解压后直接进行处理,便能够轻松地将该xml顺利转成Freemind所能理解的mm格式:
    
    c:xsltproc>xsltproc.exe -o ssp2p.mm mm2fm.xslt Document.xml
    c:xsltproc>
    
    3.6 FreeMind数据保存到MindManager
    因为成功地游说了几个朋友转移到FreeMind上来,因此一般我自己没有这个需求,偶尔要做这种转换时,就投机取巧了一把:
    
    选择File->Export to HTML,将mm导出为html; 
    用MS Word打开该html文件,并另存为Word的doc格式; 
    打开MindManager,采用File->Open->Microsoft word document(*.doc,*.dot),选定刚才保存的文件后打开。 
    3.7 添加自己的插件
    一个程序如果可定制程度高,当然能让人觉得更加自由。MindManager可以使用vb编写宏,并且直接载入菜单,这方面FreeMind做得如何呢?
    
    答案是:相当出色,事实上你可以用java或者python编写插件并加载。
    
    在windows下,到Crogram FilesFreeMindaccessoriesplugins下创建文件Pyhello.py如下:
    
    from freemind.extensions import NodeHookAdapter
    import javax.swing as swing
    
    class Pyhello(NodeHookAdapter):
        def __init__(win):
            win = swing.JFrame("HelloWorld")
            win.size = (200, 200)
            win.show()
    
    instance=Pyhello()
    
    这是插件程序本身,唯一的功能就是显示Hello World 
    
    创建Pyhello.properties如下:
    
    documentation=This is a simple Jython script. that tests the node hook possibilites
    #
    # the script. returns an object of this type:
    base=freemind.extensions.NodeHookAdapter
    script=Pyhello.py
    modes=freemind.modes.mindmapmode
    documentation=welcome to risker.org
    icon=accessories/plugins/icons/kcmsystem.png
    
    这里定义了上面那个程序的位置、运行模式、说明及图标,重新载入FreeMind时,我们可以看到在工具栏上多出一个图标,点击弹出helloworld。
    
    3.8 数据导出
    当前的最新测试版本是v 0.72,在这个版本中新增了将MindMap导出为图片或xslt文件的插件,不用费劲心机地截屏或者打印了,直接存成图片发送好了。

  • sip

    2011-11-15 16:05:33

    Sip 响应状态码 对照 详解
    (转载)

    SIP应答消息状态码
    与功能

    类型 状态码 状态说明
    临时应答(1XX) 100 Trying 正在处理中
    180 Ringing 振铃
    181 call being forwarder 呼叫正在前向
    182 queue 排队
    181* session progress 会话进行

    会话成功(2XX) 200 OK 会话成功

    重定向(3XX) 300 multiple 多重选择
    301 moved permanently 永久移动
    302 moved temporaily 临时移动
    305 use proxy 用户代理
    380 alternative service 替代服务

    请求失败(4XX) 400 bad request 错误请求
    401unauthorized 未授权
    402 payment required 付费要求
    403 forbidden 禁止
    404 not found 未发现
    405 method no allowed 方法不允许
    406 not acceptable 不可接受
    407 proxy authentication required 代理需要认证
    408 request timeout 请求超时
    410 gone 离开
    413 request entity too large 请求实体太大
    414 request-url too long 请求URL太长
    415 unsupported media type 不支持的媒体类型
    416 unsupported url scheme 不支持的URL计划
    420 bad extension 不良扩展
    421 extension required 需要扩展
    423 interval too brief 间隔太短
    480 temporarily unavailable 临时失效
    481 call/transaction does not exist 呼叫/事务不存在
    482 loop detected 发现环路
    483 too many hops 跳数太多
    484 address incomplete 地址不完整
    485 ambiguous 不明朗
    486 busy here 这里忙
    487 request terminated 请求终止
    488 not acceptable here 这里请求不可接受
    491 request pending 未决请求
    493 undecipherable 不可辨识

    服务器失败(5XX) 500 server internal error 服务器内部错误
    501 not implemented 不可执行
    502 bad gateway 坏网关
    503 service unavailable 服务无效
    504 server time-out 服务器超时
    505 version not supported 版本不支持
    513 message too large 消息太大

    全局性错误(6XX) 600 busy everywhere 全忙
    603 decline 丢弃
    604 does not exist anywhere 不存在
    606 not acceptable 不可接受
    SIP应答代码(以下是详细内容)

    应答码是包含了,并且扩展了HTTP/1.1应答码。并不是所有的HTTP/1.1应答码都适当应用,只有在折里指出的是适当的。其他HTTP/1.1应答码不应当使用。并且,SIP也定义了新的应答码系列,6xx。

    1 临时应答1xx
    临时应答,也就是消息性质的应答,标志了对方服务器正在处理请求,并且还没有决定最后的应答。如果服务器处理请求需要花200ms以上才能产生终结应答的时候,它应当发送一个1xx应答。
    注意1xx应答并不是可靠传输的。他们不会导致客户端传送一个ACK应答。临时性质的(1xx)应答可以包含消息体,包含会话描述。
    1.1 100 Trying
    这个应答表示下一个节点的服务器已经接收到了这个请求并且还没有执行这个请求的特定动作(比如,正在打开数据库的时候)。这个应答,就像其他临时应答一 样,种植了UAC重新传送INVITE请求。100(Trying)应答和其他临时应答不同的是,在这里,它永远不会被有状态proxy转发到上行流中。
    1.2 180 Ringing
    UA收到INVITE请求并且试图提示给用户。这个应答应当出世化一个本地回铃。
    1.3 818 Call is Being Forwarded(呼叫被转发)
    服务器可以用这个应答代码来表示呼叫正在转发到另一个目的地集合。
    1.4 182 Queued
    当 呼叫的对方暂时不能接收呼叫的时候,并且服务器决定将呼叫排队等候,而不是拒绝呼叫的时候,那么就应当发出这个应答。当被叫方一旦恢复接收呼叫,他会返回 合适的终结应答。对于这个呼叫状态,可以有一个表示原因的短语,比如:”5 calls queued;expected waiting time is 15minutes”。服务器可以给出好几个182(Queued)应答告诉呼叫方排队的情况(比如排队靠前了等等)。
    1.5 183 会话进度
    183(Session Progress)应答用于提示建立对话的进度信息。Reason-Phrase(表达原因的句子)、头域或者消息体可以用于提示呼叫进度的更消息的信息。
    2 成功信息2xx
    这个应答表示请求是成功的。
    2.1 200 OK
    请求已经处理成功。这个信息取决于不同方法的请求的应答。
    3 转发请求3XX
    3xx系列的应答是用于提示用户的新位置信息的,或者为了满足呼叫而转发的额外服务地点。
    3.1 300 Multiple Choices
    请求的地址有多个选择,每个选择都有自己的地址,用户或者(UA)可以选择合适的通讯终端,并且转发这个请求到这个地址。
    应答可以包含一个具有每一个地点的在Accept请求头域中允许的资源特性,这样用户或者UA可以选择一个最合适的地址来转发请求。没有未这个应答的消息体定义MIME类型。
    这些地址选择也应当在Contact头域中列出(20.10节)。不同于HTTP,SIP应答可以包含多个Contact头域或者一个Contact头域 中具有一个地址列表。UA可以使用Contact头域来自动转发或者要求用户确认转发。不过,本规范没有定义自动转发的标准。
    如果被叫方可以在多个地址被找到,并且服务器不能或者不愿意转发请求的时候,可以使用这个应答来给呼叫方。
    3.2 301 Moved Permently
    当不能在Request-URI指定的地址找到用户的时候,请求的客户端应当使用Contact头域(20.10)所指出的新的地址重新尝试。请求者应当用这个新的值来更新本地的目录,地址本,和用户地址cache,并且在后续请求中,发送到这个/这些列出的地址。
    3.3 302 Moved Temporarily
    请求方应当把请求重新发到这个Contact头域所指出的新地址(20.10)。新请求的Request-URI应当用这个应答的Contact头域所指出的值。
    在应答中的Expires(20.19节)或者Contact头域的expires参数定义了这个Contact URI的生存周期。UA或者proxy在这个生存周期内cache这个URI。如果没有严格的有效时见,那么这个地址仅仅本次有效,并且不能在以后的事务 中保存。
    如果cache的Contact头域的值失败了,那么被转发请求的Request-URI应当再次尝试一次。临时URI可以比超时时间更快的失效,并且可以有一个新的临时URI。
    3.4 305 Use Proxy
    请求的资源必须通过Contact头域中指出的proxy来访问。Contact头域指定了一个proxy的URI。接收到这个应答的对象应当通过这个proxy重新发送这个单个请求。305(UseProxy)必须是UAS产生的。
    3.5 380 Alternative Service
    呼叫不成工,但是可以尝试另外的服务。另外的服务在应答的消息体中定义。消息体的格式在这里没有定义,可能在以后的规范中定义。
    4 请求失败4xx
    4xx应答定义了特定服务器响应的请求失败的情况。客户端不应当在不更改请求的情况下重新尝试同一个请求。(例如,增加合适的认证信息)。不过,同一个请求交给不同服务器也许就会成功。
    4.1 400 Bad Request
    请求中的语法错误。Reason-Phrase应当标志这个详细的语法错误,比如”Missing Call-ID header field”。
    4.2 401 Unauthorized
    请求需要用户认证。这个应答是由UAS和注册服务器产生的,当407(Proxy Authentication Required)是proxy服务器产生的。
    4.3 402 Payment Required
    保留/以后使用
    4.4 403 Forbidden
    服务端支持这个请求,但是拒绝执行请求。增加验证信息是没有必要的,并且请求应当不被重试。
    4.5 404 Not Found
    服务器返回最终信息:用户在Request-URI指定的域上不存在。当Request-URI的domain和接收这个请求的domain不匹配的情况下, 也会产生这个应答。
    4.6 405 Method Not Allowed
    服务器支持Request-Line中的方法,但是对于这个Request-URI中的地址来说,是不允许应用这个方法的。
    应答必须包括一个Allow头域,这个头域包含了指定地址允许的方法列表。
    4.7 Not Acceptable
    请求中的资源只会导致产生一个在请求中的Accept头域外的,内容无法接收的错误。
    4.8 407 Proxy Authentication Required
    这个返回码和401(Unauthorized)很类四,但是标志了客户端应当首先在proxy上通过认证。SIP对认证的访问请参见26节和22.3节。
    这个返回码用于应用程序访问通讯网关(比如,电话网关),而很少用于被叫方要求认证。
    4.9 408 Request Timeout
    在一段时间内,服务器不能产生一个终结应答,例如,如果它无法及时决定用户的位置。客户端可以在稍后不更改请求的内容然后重新尝试请求。
    4.10 410 Gone
    请求的资源在本服务器上已经不存在了,并且不知道应当把请求转发到哪里。这个问题将会使永久性的。如果服务器不知道,或者不容易检测,这个资源消失是临时性质的还是永久性质的,那么应当返回一个404(Not Found)。
    4.11 413请求实体过大。
    服务器拒绝处理请求,因为这个请求的实体超过了服务器希望或者能够处理的大小。这个服务器应当关闭连接避免客户端重发这个请求。
    如果这个情况是暂时的,那么服务端应当包含一个Retry-After头域来表明这是一个暂时的故障,并且客户端可以过一段时间再次尝试。
    4.12 414 Request-URI Too Long
    服务器拒绝这个请求,因为Request-URI超过了服务器能够处理的长度。
    4.13 415 Unsupported Media Type
    服务器由于请求的消息体的格式本服务器不支持,所以拒绝处理这个请求。这个服务器必须根据内容的故障类型,返回一个Accept,Accpet-Encoding,或者Accept-Language头域列表。UAC根据8.1.3.5节定义的方法处理这个应答。
    4.14 416 Unsupported URI Scheme
    服务器由于不支持Request-URI中的URI方案而终止处理这个请求。客户端处理这个应答参照8.1.3.5。
    4.15 Bad Extension
    服务器不知道在请求中的Proxy-Require(20.29)或者Require(20.32)头域所指出的协议扩展。服务器必须在Unsupported头域中列出不支持的扩展。UAC处理这个应答请参见8.1.3.5
    4.16 421Extension Required
    UAS需要特定的扩展来处理这个请求,但是这个扩展并没有在请求的Supported头域中列出。具有这个应答码的应答必须包含一个Require头域列出所需要的扩展。
    UAS不应当使用这个应答除非它真的不能给客户端提供有效的服务。相反,如果在Support头域中没有列出需要的扩展,服务器应当根据基准的SIP兼容的方法和客户端支持的扩展来进行处理。
    4.17 423 Interval Too Brief
    服务器因为在请求中设置的资源刷新时间(或者有效时间)过短而拒绝请求。这个应答可以用于注册服务器来拒绝那些Contact头域有效期过短的注册请求。这个应答的用法和相关的Min-Expires头域在10.2.8,10.3,20.23节中介绍和说明。
    4.18 480 Temporarily Unavailable
    请求成功到达被叫方的终端系统,但是被叫方当前不可用(例如,没有登陆,或者登陆了但是状态是不能通讯,或者有”请勿打扰”的标记)。应答应当在 Retry-After中标志一个合适的重发时间。这个用户也有可能在其他地方是有效的(在本服务器中不知道)。Reason-Phrase(原因短句) 应当提示更详细的原因,为什么被叫方暂时不可用。这个值应当是可以被UA设置的。状态码486(Busy Here)可以用来更精确的表示本请求失败的特定原因。
    这个状态码也可以是转发服务或者proxy服务器返回的,因为他们发现Request-URI指定的用户存在,但是没有一个给这个用户的合适的当前转发的地址。
    4.19 481 Call/Transaction Does Not Exist
    这个状态表示了UAS接收到请求,但是没有和现存的对话或者事务匹配。
    4.20 482 Loop Detected
    服务器检测到了一个循环(16.3/4)
    4.21 483 Too Many Hops
    服务器接收到了一个请求包含的Max-Forwards(20.22)头域是0
    4.22 484 Address InComplete
    服务器接收到了一个请求,它的Request-URI是不完整的。在原因短语中应当有附加的信息说明。这个状态码可以和拨号交叠。在和拨号交叠中,客户端 不知道拨号串的长度。它发送增加长度的字串,并且提示用户输入更多的字串,直到不在出现484(Address Incomplete)应答为止。
    4.23 485 Ambiguous
    Request-URI是不明确的。应答可以在Contact头域中包含一个可能的明确的地址列表。这个提示列表肯囊个在安全性和隐私性对用户或者组织造 成破坏。必须能够由配置决定是否以404(NotFound)代替这个应答,又或者禁止对不明确的地址使用可能的选择列表。
    给带有Request-URI的请求的一个应答例子:
    sip: lee@example.com:
    SIP/2.0 485 Ambiguous
    Contact: Carol Lee <sip:carol.lee@example.com>
    Contact: Ping Lee <sip:p.lee@example.com>
    Contact: Lee M.Foote <sips:lee.foote@example.com>
    部分email和语音邮箱系统提供了这个功能。这个状态码和3xx状态码不同:对于300来说,它是假定同一个人或者服务有不同的地址选择。所以对3xx来说,自动选择系统或者连续查找就有效,但是对485(Ambiguous)应答来说,一定要用户的干预。
    4.24 486 Busy Here
    当成功联系到被叫方的终端系统,但是被叫方当前在这个终端系统上不能接听这个电话,那么应答应当回给呼叫方一个更合适的时间在Retry-After头域 重试。这个用户也许在其他地方有效,比如电话邮箱系统等等。如果我们知道没有其他终端系统能够接听这个呼叫,那么应当返回一个状态码600(Busy Everywhere)。
    4.25 487 Request Terminated
    请求被BYE或者CANCEL所终止。这个应答永远不会给CANCEL请求本身回复。
    4.26 488 Not Acceptable Here
    这个应答和606(Not Acceptable)有相同的含义,但是只是应用于Request-URI所指出的特定资源不能接受,在其他地方请求可能可以接受。
    包含了媒体兼容性描述的消息体可以出现在应答中,并且根据INVITE请求中的Accept头域进行规格化(如果没有Accept头域,那么就是application/sdp)。这个应答就像给OPTIONS请求的200(OK)应答的消息体一样。
    4.27 491 Request Pending
    在同一个对话中,UAS接收到的请求有一个依赖的请求正在处理。14.2描述了这种情况应当怎样解决。
    4.28 493 Undecipherable
    UAS接收到了一个请求,包含了一个加密的MIME,并且不知道或者没有提供合适的解密密钥。这个应答可以包含单个包体,这个包体包含了合适的公钥,这个公钥用于给这个UAS通讯中加密包体使用的。细节描述在23.2节。
    5 Server Failure 5xx
    5xx应答是当服务器本身故障的时候给出的失败应答。
    5.1 500 Server Internal Error
    服务器遇到了未知的情况,并且不能继续处理请求。客户端可以显示特定的错误情况,并且可以在几秒种以后重新尝试这个请求。
    如果这个情况是临时的,服务器应当在Retry-After头域标志客户端过多少秒钟之后重新尝试这个请求。
    5.2 501 Not Implemented
    服务器没有实现相关的请求功能。当UAS不认识请求的方法的时候,并且对每一个用户都无法支持这个方法的时候,应当返回这个应答。(proxy不考虑请求的方法而转发请求)。
    注意405(Method Not Allowed)是因为服务器实现了这个请求方法,但是这个请求方法在特定请求中不被支持。
    5.3 502 Bad Gateway
    如果服务器,作为gateway或者proxy存在,从下行服务器上接收到了一个非法的应答(这个应答对应的请求是本服务器为了完成请求而转发给下行服务器的)。
    5.4 503 Service Unavailable
    由于临时的过载或者服务器管理导致的服务器暂时不可用。这个服务器可以在应答中增加一个Retry-After来让客户端重试这个请求。如果没有Retry-After指出,客户端必须就像收到了一个500(Server Internal Error)应答一样处理。
    客户端(proxy或者UAC)收到503(Service Unavailable)应当尝试转发这个请求到另外一个服务器处理。并且在Retry-After头域中指定的时间内,不应当转发其他请求到这个服务器。
    作为503(Service Unavaliable)的替代,服务器可以拒绝连接或者把请求扔掉。
    5.5 504 Server Time-out
    服务器在一个外部服务器上没有收到一个及时的应答。这个外部服务器是本服务器用来访问处理这个请求所需要的。如果从上行服务器上收到的请求中的Expires头域超时,那么应当返回一个408(Request TimeOut)错误。
    5.6 505 Version Not Supported
    服务器不支持对应的SIP版本。服务器是无法处理具有客户端提供的相同主版本号的请求,就会导致这样的错误信息。
    5.7 Message To Large
    服务器无法处理请求,因为消息长度超过了处理的长度。
    6 Global Failures 6xx
    6xx应答意味这服务器给特定用户有一个最终的信息,并不只是在Request-URI的特定实例有最终信息。
    6.1 600 Busy Everywhere
    成功联系到被叫方的终端系统,但是被叫方处于忙的状态,并不打算接听电话。这个应答可以通过增加一个Retry-After头域更明确的告诉呼叫方多久以 后可以继续呼叫。如果被叫方不希望提示拒绝的原因,被叫方应当使用603(Decline)。只有当终端系统知道没有其他终端节点(比如语音邮箱系统)能 够访问到这个用户的时候才能使用这个应答。否则应当返回一个486(Busy Here)的应答。
    6.2 603 Decline
    当成功访问到被叫方的设备,但是用户明确的不想应答。这个应答可以通过增加一个Retry-After头域更明确的告诉呼叫方多久以后可以继续呼叫。只有当终端知道没有其他任何终端设备能够响应这个呼叫的势能才能给出这个应答。
    6.3 604 Does Not Exists Anywhere
    服务器验证了在请求中Request-URI的用户信息,哪里都不存在
    6.4 606 Not Acceptable
    当成功联系到一个UA,但是会话描述的一些部分比如请求的媒体,带宽,或者地址类型不被接收。
    606(NotAcceptable)应答意味着用户希望通讯,但是不能充分支持会话描述。606(Not Acceptable)应答可以在Warning头域中包含一个原因列表,用于解释为何会话描述不能被支持。警告原因代码在20.43节中列出。
    在应答中,可以出现一个包含媒体兼容性描述的消息体,这个消息体的格式根据INVITE请求中的Accept头域指出的格式进行规格化(如果没有Accept头域,那么就是application/sdp),就像给OPTIONS亲求的200(OK)应答中的消息一样。
    我们希望这些媒体协商不要经常需要,并且当一个新用户被邀请加入已经存在的会话的时候,这个媒体协商可能不需要。这取决于邀请的初始化者是否需要对606(Not Acceptable)进行处理。
    这个应答只有当客户端知道没有其他终端能够处理这个请求的时候才能发出。

    posted @ 2011-03-07 16:53 Please 阅读(390) 评论(0) 编辑

        Authorization    缩写为"A"
        CallID        "I"
        Contact        "M"
        ContentEncoding    "E"
        ContentLength    "L"
        ContentType    "C"
        CSeq        "Q"
        Date        "D"
        EndPoints    "EP"
        Event        "N"
        Expires        "X"
        From        "F"
        MessageID    "XI"
        ReferredBy    "RB"
        ReferTo        "RT"
        Require        "RQ"
        RosterManager    "RM"
        Source        "SO"
        Supported    "K"
        To        "T"
        Unsupported    "UK"
        WWWAuthenticate    "W"

    以下分析仍基于Fetion 2006 beta 2.1.0.0。

    飞信所使用的协议版本标记是"SIP-C/2.0",协议栈中标记的版权信息是"Copyright (c) 2004-2006 China Mobile Limited. All rights reserved.",(再次说明飞信开发了很久了嘛;))。抓协议包初看的印象是,它基于IETF(Internet Engineering Task Force)所制定的标准SIP协议作了一丁点调整。关于标准的SIP协议,请参见IETF或RFC3261以及其它一些对它进行扩展的RFC,内容实在是太多了,不过如果有点基础的话,估计看个半小时的RFC就明白了个大概。另外,飞信照着微软做的,所以看微软的实时通信协议的说明也一样:Look。

    一个SIP的请求消息的格式是:请求行+消息头+空行+消息体,请求行的格式是:SIP方法+空格+接受方uri+空格+SIP协议版本,如:
        INVITE sip:bob@biloxi.com SIP/2.0
    接下来是消息头部,消息头的格式跟http头格式一样,也是Field Name:Field Value的形式,如:
         Via: SIP/2.0/UDP pc33.atlanta.com;branch=z9hG4bK776asdhds
          Max-Forwards: 70
          To: Bob <sip:bob@biloxi.com>
          From: Alice <sip:alice@atlanta.com>;tag=1928301774
          Call-ID: a84b4c76e66710@pc33.atlanta.com
          CSeq: 314159 INVITE
          Contact: <sip:alice@pc33.atlanta.com>
          Content-Type: application/sdp
          Content-Length: 142
    IETF SIP中对这些Header Field均有专门的定义,见RFC3261以及IETF的SIP草案文档。Fetion的SIP-C/2.0协议中用到的Header Field有:
        Authorization    缩写为"A"
        CallID        "I"
        Contact        "M"
        ContentEncoding    "E"
        ContentLength    "L"
        ContentType    "C"
        CSeq        "Q"
        Date        "D"
        EndPoints    "EP"
        Event        "N"
        Expires        "X"
        From        "F"
        MessageID    "XI"
        ReferredBy    "RB"
        ReferTo        "RT"
        Require        "RQ"
        RosterManager    "RM"
        Source        "SO"
        Supported    "K"
        To        "T"
        Unsupported    "UK"
        WWWAuthenticate    "W"

    以上这些头域很多在RFC并没有定义,只在IETF的协议草案中有定义,如Event。SIP消息头后,由一个空行分隔,接下来就是SIP的消息体。消息体通过是用SDP协议描述的,见RFC2327,当然也有直接文本或XML表示的信息,消息体的格式按RFC中的定义,应由头部的Content-Type来决定,但飞信好象不是,具体是怎么定义,还没深入去研究,留待下次吧。


    飞信所支持的SIP方法(SIP Method)有以下几种:
    1. Ack方法。在Fetion的SIP-C/2.0中,缩写为"A",以下是一个Ack消息,会话(Session)发起方用以向SIP Proxy确认会话的开始:
    A fetion.com.cn SIP-C/2.0
    I: 16
    Q: 1 A
    T: sip:987654321@fetion.com.cn;p=1234
    F: 123456789
    其中:123456789是发起方的SIP地址,这个显然没按SIP标准来表达,只是用了一个飞信号码。sip:987654321@fetion.com.cn,这个是按标准表达的对方地址。

    2.BENotify方法(Fetion缩写为"BN"),这不是个标准的SIP方法,既没在RFC中定义,也没出现在IETF的协议草案中,这是微软在其LCS中定义的:BENOTIFY ("best effort" notify)enhances server performance by eliminating the response requirement. Otherwise, a BENOTIFY request has the same behavior. as NOTIFY. Applications that require NOTIFY support need to implement similar processing for BENOTIFY."(见MSDN)。就是个不需要回复的NOTIFY,微软扩展出这个方法是为了支持大量用户。以下是飞信的一个BENotify消息,表示用户987654321的在线状态的变化:
    BN 123456789 SIP-C/2.0
    Q: 13 BN
    N: presence
    X: xxxx
    I: 9
    L: xxx

    <events><event type="PresenceChanged"><presence uri="sip:987654321@fetion.com.cn;p=xxxx"><basic value="100" device-id="PCCL025722" device-type="PC" device-caps="simple-im,im-session,temp-group" /></presence></event></events>


    3.Bye方法(Fetion缩写为"B"),以下是一个BYE的请求消息,用以结束会话:
    B fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 11
    Q: 2 B
    T: sip:987654321@fetion.com.cn;p=1234

    4.Cancel方法(C),用以取消正在进行中的INVITE请求。

    5.Info方法(IN),用以在SIP协议中支持应用相关的控制信息,飞信传文件时,用到了这个方法。这是RFC中的一个扩展。以下是一个INFO方法的消息:
    IN fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 22
    Q: 3 IN
    T: sip:987654321@fetion.com.cn;p=1234
    L: 266

    <action type="share-content" method="request"><transmit type="relay" session-id="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" /><file name="xxxxxx.xx" size="xxx" url="HTTP://221.130.45.206/hds/RamRelayDownloadShareContent.aspx?FileUri=xxxxxxxxxxxxx" /></action>

    6.Invite方法(I),这是用建立会话过程的SIP方法。以下是飞信的INVITE方法的一个协议消息,表示用户123456789要求和987654321建立会话,准备进行文本消息的通信:
    I fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 16
    Q: 1 I
    T: sip:987654321@fetion.com.cn;p=1234
    K: text/html-fragment
    K: multiparty
    L: 137

    v=0
    o=-0 0 IN xxx.xxx.xxx.xxx:xxxx
    s=session
    c=IN IP4 xxx.xxx.xxx.xxx:xxxx
    t=0 0
    m=message 1769 sip sip:123456789@fetion.com.cn;p=xxxx


    7.Message方法(M),这也是一个标准的SIP扩展,用以支持即时消息。以下是飞信的一个Message消息,用户123456789向用户987654321发消息说“Hello!你好” :
    M fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 16
    Q: 2 M
    T: sip:987654321@fetion.com.cn;p=1972
    C: text/html-fragment
    K: SaveHistory
    L: 121

    <Font Face='Arial' Color='-16777216' Size='9'>hello! </Font><Font Face='SimSun' Color='-16777216' Size='12'>你好</Font>

    8.Negotiate方法(NEG),这是一个IETF定义的SIP的方法,好象没见纳入RFC? 用以在会话建立(INVITE)前的协商会话相关的参数,但没见飞信用啊....以后再说。

    9.Notify方法(N),这是IETF定义的一个SIP扩展方法,并被RFC接纳,见RFC3265。消息见前面的BENotify。这个消息是需要进行回复的。

    10.Options方法(O),标准的SIP方法,用来查询对端或服务器的能力。比如了解对方支持什么编码类型。在飞信传文件时使用了以下消息:
    O fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 22
    Q: 2 O
    K: ShareContent
    T: sip:987654321@fetion.com.cn;p=xxxx

    11.Refer方法(REF),这是已纳入RFC的一个SIP扩展方法,其功能是要求接受方通过使用在请求中提供的联系地址信息联系第三方。

    12.Register方法(R),这是SIP的标准方法,用来向服务器登记。如以下飞信在注册时发出的消息:
    R fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 1
    Q: 2 R
    A: Digest response="xxxxxxxxxxxxxxxxxxxxxxxxxx",cnonce="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    L: 147

    <args><device type="PC" version="131" /><caps value="simple-im;im-session;temp-group" /><events value="contact;permission;system-message" /></args>

    13.Service方法(S),这是IETF定义的一个SIP扩展方法,好象未纳入RFC?用来向SIP服务器请求额外的服务。如一下飞信发出的消息:
    S fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 2
    Q: 1 S
    N: GetPersonalInfo
    L: 172

    <args><personal version="11" attributes="all" /><services version="11" attributes="all" /><config version="109" attributes="all" /><mobile-device attributes="all" /></args>
    以上是飞信客户端要求服务器返回用户信息。又如:
    S fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 12
    Q: 1 S
    N: StartVoiceChat
    L: 103

    <args><voice-chat begin-date="2007-01-01 00:00:00.1234" /><users><user sid="987654321" /></users></args>
    这是通过服务器开始飞信语聊。


    14.Subscribe方法(SUB),这是IETF定义的一个SIP扩展方法,并被RFC接纳,见RFC3265。这个方法被用来向服务器订阅事件异步通知。服务器就会用NOTIFY或BENOTIFY(微软扩展的)方法,将事件通知给飞信客户端。如飞信订阅用户的presence事件,比如上线啊,下线啊什么的:
    SUB fetion.com.cn SIP-C/2.0
    F: 123456789
    I: 1
    Q: 1 SUB
    N: presence
    L: xxx

    <args><subscription><contacts><contact uri="sip:xxxxxxxx@fetion.com.cn;p=xxxx" /><presence><basic attributes="all" /><personal attributes="all" /><extended types="sms;location;listening;ring-back-tone" /></presence></subscription></args>


     

    posted @ 2011-03-07 16:52 Please 阅读(76) 评论(0) 编辑

    SIP主要支持以下5个方面信令技术功能:

        用户定位:确定通信所使用的终端系统位置。主要是和sip服务器实体中的注册服务器和非sip实体的

    位置服务器相关,每个用户在上线的所在的sip实体,会将该用户的sip号(sip域中的唯一标识)和一

    些地址,注册心跳等方面的信息注册到注册服务器中,服务器会将这些信息存在位置服务器中。用户会在

    自己注册心跳时间内到注册服务器注册一次。当该用户在自己填写的注册心跳时间内还没有再次注册,注

    册服务器会通知状态服务器,该用户不在线。
     
        用户能力判断:确定通信所使用的媒体类型及媒体参数。这个是SDP包中携带的数据。当用户发出

    INVITE邀请信息的时候,被叫方会查看该SDP描述的媒体类型和参数是否和自己的对应,如果被叫方同

    意的该邀请,发送200OK便可以建立RTP连接。
     
        用户可用性判定:确定被叫方是否愿意加入通信。这个很简单,主要是用户发送一个请求给另一个用

    户。如果这个用户拒绝,发送refuse就可以。
     
        呼叫建立:在主、被叫之间建立约定的、支持特定媒体流传输的连接。sip主要是做呼叫控制,在通话

    (也就是RTP传输)之前,会由sip发送invite,在对方接受的情况下,才可以进行通话。在通话过程

    中,也是由sip发送bye等,来结束通话。所以sip不参与会话,只是建立会话,呼叫控制,转移等。
     
        呼叫处理:包括呼叫修改和呼叫终止等处理。同上。

  • 落伍了

    2011-04-22 13:59:53

    安逸的环境让我变的有点堕落了,最近跟周围同学朋友熟人聊了聊,发现自己真的不像以前那样子了,

    自己真的不能再这么继续安逸下去啦!

    否则真不知道以后的自己变成什么样子~~

    做什么没点激情 没点动力

  • urnotes 小工具

    2011-04-20 16:42:07

    今天没事尝试了个便签小工具URNotes 呵呵,感觉不错,平时喜欢用office自带的onenote

    在看资料等浏览好的东东时快捷的剪贴在onenote,呵呵 ,刚才体验了下urnote感觉还不错,

    不过每次要登录这个感觉不太爽

  • 转载--设计网站集

    2011-04-20 14:19:29

    1、设计在线(新闻绝对是业界最及时的) www.dolcn.com
    2、视觉中国(新新设计师的代表性网站,有些杂,速度也不快) www.chinavisual.com
    3、设计前沿(从事工业设计的同胞们必去) www.foreidea.com
    4、设计师家园(建筑与室内设计师非去不可) www.china-designer.com
    5、亚洲CI网(网站本身不怎么样,但是论坛非常不错,高手云集) www.asiaci.com
    6、V6DP(论坛,年轻设计师的天下) www.v6dp.com
    7、ad110.com(云集非常多大师作品以及他们的网站导航) www.ad110.com
    8、Arting365(有些不错的独门信息及作品) www.arting365.com
    9、台湾创意设计中心(了解台湾设计的必去站点) a www.ddc.com.cn
    2、ad110.com(云集非常多大师作品以及他们的网站导航,2004年底成立) www.ad110.com
    3、鲜创意(综合性网站,2005年初成立) www.xianidea.com
    4、数字艺术(搜狐数码频道的分栏目,2005年初成立) digi.it.sohu.com
    5、涂鸦王国(自由开方性质的网上涂鸦站点,2004年底成立) poobbs.com
    6、中国美术家(非常全面,但是速度非常慢,2005年初成立) www.artist.org.cn
    7、中国CG联盟(数字内容创作、电影电视制作,视觉娱乐设计,2004年底成立) www.chinavfx.net
    8、火星时代动画网(不说了,看题目就知道,2004年成立) www.hxsd.com.cn
    9、视觉同盟网(综合性网站,2004年成立) www.visionunion.com
    10、中国广告协会(不说了,看题目就知道,2005年初成立) www.ad-e.cn
    GAMERES游戏开发资源网游戏开发技术主题站点,内容主要包括技术文档,专栏,作品演示,开发资源,属于游戏制作人的中文网络平台,2001年创立。
    www.gameres.com
    设计师应该看得40个英文网站
    网页 类别
    http://www.designaddict.com/ 工业设计
    http://www.dmi.org/dmi/html/index.htm 设计管理
    http://www.ddc.dk/ 丹麦工业设计
    http://www.designdiffusion.com/index-en.htm 设计资讯
    http://design-milk.com/ 最新产品设计介绍
    http://www.trendir.com/ 最新卫浴产品设计介绍
    http://www.form.de 著名的设计杂志
    http://www.moma.org/ 现代艺术中心
    http://www.ottagono.com/default.asp 著名的设计杂志
    http://www.madmuseum.org/ 艺术设计博物馆官方
    http://www.vam.ac.uk/ 维多利亚和阿尔波特博物馆
    http://www.wilsonart.com/design/statement/ 现代设计史方面的东东
    http://www.alessi.com/ 阿莱西官方网站
    http://www.artlebedev.com/ 通过网络走红的俄罗斯设计团体
    http://www.carlliu.com 卡尔刘,内有大量工业设计草图
    http://www.gordoninternational.com/directory.htm 家具设计史
    http://special.lib.gla.ac.uk/teach/gothic/ 17,18世纪设计史
    http://www.designmuseum.org/design 设计博物馆,设计史
    http://www.museum.vic.gov.au/design/
    http://www.danskdesign.nu/index.php/language/en 丹麦设计产品在线商店
    http://www.design-emotion.com/ 设计与情感,设计交流
    http://douglas.typepad.com/content/design/ 设计资讯
    http://www.droogdesign.nl 荷兰的设计组织
    http://www.forma.co.hu/shop/ 设计商店,图多
    http://www.frogdesign.com/ 这个要是不知道就拖出去枪毙1个小时
    http://new.idsa.org/index.htm 美国商业设计组织
    http://www.design-technology.info/home.htm 设计与技术
    http://www.karimrashidshop.com/ 著名的工业设计师
    http://www.danish-furniture.com/links/ 丹麦家具设计
    http://www.marcelwanders.com/ 当红设计明星
    http://www.uusimuoto.fi/ 内容很丰富可惜不是英文的
    http://www.panik-design.com/
    http://www.carbodydesign.com/ 汽车设计
    http://swissmiss.typepad.com/ 瑞士设计
    http://www.tendancehightech.com/blog/en/ 高科技趋势
    http://www.jidpo.or.jp/en/ 日本工业设计组织
    http://www.ziba.com/ 设计公司
    http://www.scandinaviandesign.com/ 斯堪的纳维亚设计
    http://www.arcadata.com/index.jsp 建筑环艺设计
    http://www.graphis.com/ 视觉传达
    http://www.japon.net/yanagi/indexe.shtml 日本当代设计大师柳宗理的个人网站
    http://www.ideo.com/ideo.asp 深泽直人与ideo都应该知道吧 

  • 搞设计应该珍藏的好东东

    2011-04-20 14:08:41

    今天上网看到的一些东西,转载过去与大家分享,不错的喔!
    一、设计怎么做?
    永远记住,你是一个懂设计,爱设计的商人。用设计吃饭,你比别人更有资格。
    设计公司是有品格的,十年做小,一朝做大的时候,你所有的努力毕将得到验证。
    永远不要对自己作品感到满足,比你强的人和公司就在周围,他们随时准备给予你狠狠一击。你能做的只有不断提高自己,使生命力更加旺盛
    要重视每一个小单子和小客户,不然所谓专业精神将荡然无存,你也就相应失去发展的机遇与品质
    要清楚,设计公司与广告公司的根本区别在哪里,知道路在哪里,才能想得到怎样去走这条路。
    要重视学习商务礼仪,在创业过程中,这些素养会为你赢得客户的尊重。
    少看连续剧,多看新闻和财经节目,培养自己观察和审视问题的能力。
    要博学,不要精,只要杂,要让你的每一个客户都觉得你是专家。
    不要背弃理想,除非你觉得钱是你唯一觉得重要的东西,做一个有理想的人,自然也会成就一个有理想的公司。
    不要总和做设计的人搞在一起,除非你只想做个设计师而已。
    二、设计网站
    DEDS深度 http://www.deds.cn 资源专业丰富.版面大气.包括 平面 网页 三维 工业 动漫 摄影 综合 论坛等内容.
    亚洲ci网 http://www.asiaci.com/index.php 国内高质量的平面原创论坛
    我爱设计网 http://www.52design.com 海量素材. 包括 设计 素材 资源 酷站
    设计路上 http://www.design63.com.cn 酷站资源 分类明确,更新频繁,精品收录
    蓝色理想 http://www.blueidea.com 程序员之家.
    5d多媒体 http://www.5d.cn 多媒体先锋
    设计联盟 http://www.chinadu.cn 设计资讯门户,改版之后更专业.
    视觉同盟 http://www.visionunion.com 中国设计专业网络媒体 包括 平面 工业 多媒体 等....
    中国艺术设计联盟 http://www.arting365.com 创意产业门户.内容丰富
    中国UI设计网 http://www.chinaui.com 国内优秀UI网站
    火星时代动画网 http://www.hxsd.com.cn 专业CG类站点
    视觉中国 http://www.chinavisual.com 国内老牌创意产业门户网站
    设计在线 http://www.dolcn.com 内容丰富
    NWP http://www.newwebpick.com 优秀视觉图形类网站, Newwebpick电子杂志就不用多说了.
    东方视觉 http://www.ionly.com.cn 创意产业门户站点
    数码艺术 http://www.computerarts.com.cn 数码艺术杂志就是这里.
    设计艺术家 http://www.chda.net 湖南设计艺术家网
    中华广告网 http://www.a.com.cn 老牌创意广告类网站
    设计中国 http://www.chinaddu.com 以前叫中国PHOTOSHOP联盟,内容丰富
    中国设计在线 http://www.oado.com 内容包括平面 网页等...
    中国设计网 http://www.cndgn.com 内容包括 包装 平面 工业 建筑 创意等...
    七色鸟 http://www.colorbird.com 艺术设计信息网站
    鲜创意 http://www.xianidea.com 广告 设计 传媒 数字 建筑等....
    DDC传媒 http://www.ddc.com.cn 中国数字艺术联盟 内容包括 设计 插画 动漫 资讯 教育认证等...
    V6DP http://www.v6dp.com 优秀数字艺术类论坛,高手众多.
    艺术中国网 http://www.artcn.cn/ 综合类资讯网站
    视觉联盟 http://www.okvi.com 资讯类设计站点
    CGFinal终级CG http://www.cgfinal.com 中国CG门户
    CGren技术交流论坛 http://cgren.net CG交流论坛
    中国包装设计网 http://www.chndesign.net 名字就说明了一切.
    中国美术家协会 http://www.caan.cn 中国美术家协会唯一官方网站
    视觉资讯 http://www.vi21.cn 新鲜视觉新鲜人
    国际设计网CCII http://www.ccii.com.cn
    中国pop艺术网 http://www.popart.cn/ 故明思意.POP艺术
    中国设计视觉 http://www.86dv.com 内容众多,包括平面 包装 广告竞赛等.
    图像谷 http://www.pstxg.com 包括 平面 网页 包装 工业等内容
    设计酷 http://www.designcool.net 教程类站点.
    异域设计 http://www.yy-s.com 内容丰富 涉汲 教程 平面 网页 动画 酷站等...
    设计艺术网 http://www.id00.com 工业设计艺术资讯类站点
    先锋设计联盟 http://www.designxf.com 教程 网页 编程 模板
    网页设计师联盟 http://www.68design.net 名字说明一切
    第一秀 http://www.ike.net.cn 网页设计师交流平台
    FM http://www.fmplay.com FM品牌设计
    虚拟无忌 http://www.86vr.com 中国虚拟现实门户站点 三维.
    哈弗设计 http://design.icxo.com 平面设计类站点
    妙联互妙 http://www.minethink.com 网站建设 域名 平面 推广 专业设计服务
    天极设计在线 http://art.yesky.com/ 天极网下设计频道
    网易学院 http://tech.163.com/cg 网易下设计频道
    流行 印象 http://www.vogim.com/ 资讯 教程 摄影 论坛等..
    AD100快乐分享 http://www.ad110.com/ 平面 广告 协会 教育等...
    世界CI网 http://www.wci.cn/ 平面设计站点
    八零秀 http://www.80diy.com 内容包括 资讯 招聘 平面 CG 多媒体等..
    设计·中国 http://www.design.cn 包括 教程 论坛 书刊 培训
    UI界面设计门户 http://www.uitimes.com/ 名字说明一切
    美术联盟 http://www.mslm.com.cn/ 艺术教育资讯类站点
    http://www.chinavisual.com/ 视觉中国
    http://www.cgfinal.com/ CG中国
    http://www.chinavfx.net/home/index.php 中国CG联盟
    www.dolcn.com 设计在线
    http://www.visionunion.com/ 视觉同盟
    http://www.80diy.com/index.html 八零秀视觉设计网
    http://www.yy-s.com/ 异域空间
    http://www.arting365.com/index.html 中国艺术设计联盟
    http://www.86vr.com/ 虚拟无忌
    http://design.icxo.com/ 哈佛设计
    http://www.chda.net/cms/ 设计艺术家
    http://www.foreidea.com/ 中国工业设计前沿
    http://www.***gn.cn/job/default.asp 中国设计人才网
    http://www.***gn.cn/job/default.asp 蓝色理想 网站设计与开发
    http://www.colorbird.com/ 七色鸟设计空间
    http://www.xxidea.com/ 创意中国网
    http://www.sj33.cn/ 设计之家
    http://www.apoints.com/ 圆点视觉
    http://www.design77.net/ 简单设计
    工业设计博客
    http://www.hxsd.com.cn/ 火星时代
    http://top.cgfinal.com/ CG原创风云榜
    http://www.cgsociety.org/ CG酒吧
    http://www.cgtimes.com.cn/ 中国CG资讯网 

  • 软件测试专业术语(转载)

    2010-05-11 13:53:52

     

    常见专业术语:

    组织过程定义控制程序   process for organizational process definition

    软件生命周期模型   software life cycle model

    组织标准过程集合描述   descrīption of organization's set of standard process.

    组织标准过程裁剪指南   tailoring guideline for organizational standard process

    过程数据库使用规范 usage specification for process metrics library

    过程财富度量报告   measurement report for process asserts

    项目生命周期模型选择工作单 sheet for selecting project software lifecycle model

    组织过程焦点控制程序   process for organizational process focus

    EPG工作章程 EPG charter

    EPG工作考核细则 performance appraisal rules for EPG member

    过程改进建议处理控制程序   process for handling process improvement proposal

    过程定义文件配置管理规范   configuration management specification for process definition document

    过程行动组(PAT)工作记录 process action team (PAT) working record

    过程定义文件试验结果评定表 evaluation form. for pilot result of process definition document

    过程状态季度报告模板   process status quarterly report template

    过程行动计划   process action plan

    过程推广计划   process promotion plan

    过程试验计划   process pilot plan

    公司年度过程评估计划   organizational process assessment annual plan

    公司过程改进总体要求   General objectives for organizational process improvement

    会议记录   meeting minutes

    过程改进建议和意见汇总表   summary form. of comments and suggestions of PI

    过程改进实践状态清单   status list for process improvement practice

    EPG工作度量 epg metrics

    程序文件评审讨论问题记录表 issue record of process document review

    过程改进总体计划   General plan for process improvement

    过程改进工作度量报告   metrics report for process improvement

    过程豁免申请单 process exempt application

    过程改进任务列表   process improvement tasks list

    组织级培训过程控制程序 organization- level training process

    兼职讲师管理规定   part-time instructor management regulation

    免修规程   training waiver procedure

    培训课程开发规程   training course development procedure

    外购培训管理规程   outsourcing training management procedure

    培训效果评估规定   training effectiveness evaluation procedure

    培训效果跟踪表 training effectiveness tracking record

    员工培训计划申请表 application for employee training plan

    员工外训学习申请表 application for employee external training

    免修培训申请表 application for training waiver

    战略培训需求表 demands form. for strategic training

    需求管理控制程序   requirement management process

    需求变更控制规程   requirement change control procedure

    变更影响分析控制规程   Impact analysis procedure of change

    确定项目已定义过程规程 procedure for establishing project's defined process

    项目协调与沟通规程 project communication & negotiation procedure

    风险管理控制程序  risk management process

    风险管理指导书 risk management guidebook

    风险管理计划   risk management plan

    风险列表   risk list

    商业现货软件产品选择控制程序  COTS product selection process

    COTS软件产品评价准则   COTS product evaluation criteria

    COTS软件产品评价报告   COTS product evaluation report

    供应商合作通知单   cooperation notification to supplier 

    第三方产品评估表   the 3rd party's product evaluation form

    商业现货采购控制程序   COTS product procurement process

    软件子合同管理控制程序 software sub-contract management process

    子合同评审规程 sub-contract review procedure

    子合同开发监管规程 sub-contract development monitoring procedure

    子合同配置管理规程 sub-contract Configuration Management procedure

    子合同配置监督计划模版 sub-contract configuration monitoring plan template

    子合同QA审核规程  sub-contract QA audit procedure

    软件子承包商评定标准   sub-contractor evaluation criteria

    直真软件开发子合同模板(商务)   contract template (business) for ZZ's software sub-contract

    子合同开发过程监控报告 sub-contract development monitoring report

    子合同开发过程监控计划 sub-contract development monitoring plan

    子合同工作计划 sub-contract working plan

    产品(项目)子合同申请单 application form. for product( project ) sub-contract

    候选子承包商评估报告   candidate sub-contractor evaluation report

    软件子合同评审记录 software sub-contract review record

    项目策划控制程序   project planning process

    规模估计规程   size estimation procedure

    工作量估计规程 effort estimation procedure

    编制进度规程   schedule generation procedure

    项目策划计划   plan for project planning

    PDSP文档   PDSP document

    项目环境列表   project's environment list

    项目的任务WBS列表 project's task WBS list

    产品规模估计表 product size estimation form

    工作量估计表   effort estimation form

    关键计算机资源表   CCR list

    外来工作产品清单   out-sourcing work product list

    主要工作产品清单   main work product list

    交付工作产品清单   deliverable work product list

    人力资源需求表 HR demands form

    人力资源评估表 HR evaluation form

    项目人员计划表 project's HR plan

    项目预算工时表 project's budget/ effort form

    项目需增加硬件、软件成本预算表 Budget form. for hardware & software added

    共利益者协调计划表 stakeholder negotiation plan

    资料管理计划表 materials management plan

    开发计划   development plan

    项目培训计划   project training plan

    项目进度表 project schedule

    项目总体进度表 abstract project schedule

    合同项目立项报告   initiating report for contract project

    研发项目立项报告   initiating report for R&D project

    项目跟踪监控程序   SPTO process

    研发中心例会管理规定   Review meeting procedure for R&D center

    研发项目组例会管理规定 Review meeting procedure for R&D project team

    项目关闭控制程序   project closure process

    里程碑评审规程 milestone review procedure

    软件开发计划变更规程   Software development plan revise procedure

    对外承诺变更控制规程   External commitment change procedure

    测量与分析控制程序    measurement & analysis process

    度量项定义规程 measurement item definition procedure

    测量目标选择表 measurement goal selection list

    项目测量数据集合   project's metrics set

    项目度量周报   project's metrics weekly report

    测量规格说明书 metrics specification

    度量报告   metrics report

    项目度量计划   project's measurement plan

    决策分析与解决方案控制程序 discussion analysis and resolution process

    DAR运用指南 DAR practice guideline

    决策方案评价准则   desiccation resolution evaluation criteria

    过程与产品质量保证控制程序 process& product quality assurance process

    不符合问题处理规程 non-compliance issue handle procedure

    项目过程活动评审规程   project's process activity review procedure

    项目工作产品审核规程   project's work product audit procedure

    质量保证活动策划规程   SQA planning procedure

    不符合问题等级标准 non-compliance issue grade standard

    评价工作产品任务集合   work product evaluation tasks set

    评价过程活动任务集合   process activity evaluation tasks set

    不符合问题报告表   non-compliance issue report

    不符合问题跟踪记录表   non-compliance issue tracking record

    工作产品审核记录表 work product audit record

    过程活动评审记录表 process activity review record

    项目QA计划进度表  project's QA planned schedule

    外部专家审核报告   external expert audit report

    跨项目QA报告  QA report across projects

    项目QA报告 project QA report

    项目QA计划 project QA plan

    软件配置管理控制程序   software configuration management process

    配置管理标准   configuration management standard

    测试阶段CI变更规程 CI change procedure in testing phase

    产品出库规程   product check-out procedure

    产品入库规程   product check-in procedure

    产品发布管理规程   product release management procedure

    产品日常备份规程   product daily backup procedure

    配置变更分析规程   configuration change impact analysis procedure

    配置变更管理子过程 configuration change management sub-process

    配置审核管理规程   configuration audit management procedure

    产品库管理规程 product library management procedure

    配置项状态报告 CI status report

    功能配置审核报告模板   FCA report template

    物理配置审核报告模板   FCA report template

    基线配置审核报告模板   baseline configuration audit report template

    软件送测单 delivering software to testing form

    日常备份记录   daily backup record

    配置项清单 CI list

    产品发布通知   product release notification

    产品发布报告   product release report

    配置管理计划模版   CM plan template

    配置管理任务列表   CM tasks list

    配置审核问题跟踪记录表 configuration audit issues tracking record

    文件归档申请单 application form. for document archiving

    项目SCM任务单 project's SCM task list

    最终产品规模测量记录   final product size metrics record

    销售管理控制程序  sales management control process

    售前支持控制程序   pre-sales support control process

    售前技术支持计划   pre-sales technical support plan

    售前技术申请   pre-sales technical application

    产品定义过程控制程序   product definition process

    需求调研规程   requirement investigation procedure

    软件需求分析控制程序   software requirement analysis process

    面向对象需求分析规程   O-O requirement analysis procedure

    需求分析方法工具指南   guideline for methods /tools of requirement analysis

    需求缺陷分类标准   standard of requirement defect types

    需求规格说明Checklist  checklist for requirement specification 

    需求分析计划跟踪表 requirement analysis plan and tracking record

    需求不一致项跟踪记录表 requirement defect tracking record

    产品(产品构件)需求 product ( product component) requirement

    产品(产品构件)需求规格说明书-By Object product ( product component) requirement specification template -by object

    产品(产品构件)需求规格说明书-By Feature   product ( product component) requirement specification template -by feature

    产品(产品构件)需求规格说明书-By User Class product ( product component) requirement specification template -by user class

    产品(产品构件)需求规格说明书-By Fun Hierarchy product ( product component) requirement specification template -by Fun Hierarchy

    软件概要设计控制程序   software preliminary design process

    软件详细设计控制程序   software detailed design process

    概要设计说明书模板一(面向对象) PD document template (OO)

    概要设计说明书模板 PD document template

    软件开发计划模版   SDP template

    数据库设计说明书模板   database design document template

    用户界面设计说明书 user interface design document

    详细设计说明书模板 DD document template

    产品实现控制程序-代码实现  product realization process-coding

    设计问题跟踪记录表 tracking record for design issues

    C++编码规范 C++ coding specification

    JAVA编程规范   JAVA coding specification

    产品构件实现清单   product component realization list

    产品构件实现方法和计划 product component realization method and plan

    产品实现控制程序-支持文档实现  product realization process- supportive document realization

    产品集成控制程序  product integration process

    接口管理规程   interface management procedure

    集成产品评价规程   integrated product evaluation procedure

    《产品集成策略》模版   product integration strategy template

    《产品集成评价报告》模版   product integration evaluation report template

    接口跟踪表 interface tracking record

    接口不一致项列表   interface non-compliance list

    部件测试控制程序   component testing process

    产品集成测试控制程序   product integration testing process

    系统测试控制程序   system testing process

    FIRST OFF测试控制程序  FIRST OFF testing process

    BUG管理系统使用规范 bug management system usage specification

    BUG确认规程 Bug confirmation procedure

    正式评审规程   formal review procedure

    同级评审指导书 PR guidebook

    技术评审规程   technical review procedure

    同级评审策划规程   PR planning procedure

    正式评审申请表 formal review application

    技术评审申请表 technical review application

    评审工作分析报告   review analysis report

    评审工作表 review working form

    评审准备数据表 review preparation metric form

    同级评审计划   PR plan

    评审记录和缺陷跟踪表   review record and defect tracking record

    系统测试数据和测试环境设计 system testing metrics and testing environment design

    部件测试数据和测试环境设计 component testing metrics and testing environment design

    部件测试用例   component testing use-case

    系统测试用例   system testing use-case

    系统测试方案   system testing scheme

    部件测试方案   component testing scheme

    接受系统测试检查单 system testing checklist

    接受产品集成测试检查单 product integration testing checklist

    接受部件测试检查单 component testing checklist

    接受First off测试检查单   FIRST OFF testing checklist

    First off测试计划  Fist Off testing plan

    测试计划   testing plan

    产品集成测试计划   product integration testing plan

    测试问题记录表 testing issue record

    单个自由产品测试总结   independent product testing summary

    测试报告   testing report

    测试总结   testing summary

    产品集成测试报告   product integration testing report

    代码走查规程   code walk-through procedure

    单元测试规程   unit testing procedure

    制定确认策划规程   validation planning procedure

    确认规程   validation procedure

    需求确认方法描述   requirement validation methods descrīption

    产品确认方法描述   product validation methods descrīption

    确认计划书模板 validation plan template

    产品验收控制程序   product acceptance process

    FIRST OFF规程  Fist off procedure

    产品发布规程   product release procedure

    产品移交规程   product delivery procedure

    系统集成控制程序   system integration process

    系统集成项目测试验收规程   acceptance procedure for system integration project testing

    系统集成项目维护规程   maintenance procedure for system integration project

    售后服务控制程序  post-sales service control process

    客户服务请求处理表 handle form. for customer service application

    客户服务请求解决情况统计表 statistics for closure status of customer service application

    客户满意度调查表   customer satisfaction questionnaire

    客户满意度统计分析报告 statistics analysis report for customer satisfaction

    客户满意改进方案   customer satisfaction improvement plan

    售后客户档案(原有文件) post-sales customer profile ( original documents)

    维护项目控制程序   maintenance project control process

    一级维护任务单 the 1st level maintenance tasks form

    维护项目立项报告   initiating report for maintenance project

    维护项目工作计划   working plan for maintenance project

    现场服务记录   on-site service record

    现场培训记录   on-site training record

    维护项目总结报告   summary report for maintenance project

    二级任务单 the 2nd tasks form

    项目结束通知单 project closure notification

    项目决算报告   project settlement report

    软件维护控制程序   software maintenance control process

    维护需求记录表 maintenance demands record

    软件维护申请表 software maintenance application

    软件维护记录单 software maintenance form

    Acceptance Testing--可接受性测试

    一般由用户/客户进行的确认是否可以接受一个产品的验证性测试.

    actual outcome--实际结果

    被测对象在特定的条件下实际产生的结果.

    Ad Hoc Testing--随机测试

    测试人员通过随机的尝试系统的功能,试图使系统中断.

    algorithm--算法

    (1)一个定义好的有限规则集,用于在有限步骤内解决一个问题;(2)执行一个特定任务的任何操作序列.

    algorithm analysis--算法分析

    一个软件的验证确认任务,用于保证选择的算法是正确的、合适的和稳定的,并且满足所有精确性、规模和时间方面的要求.

    Alpha Testing--Alpha测试

    由选定的用户进行的产品早期性测试.这个测试一般在可控制的环境下进行的.

    analysis--分析

    (1)分解到一些原子部分或基本原则,以便确定整体的特性;(2)一个推理的过程,显示一个特定的结果是假设前提的结果;(3)一个问题的方法研究,并且问题被分解为一些小的相关单元作进一步详细研究.

    anomaly--异常

    在文档或软件操作中观察到的任何与期望违背的结果.

    application software--应用软件

    满足特定需要的软件.

    architecture--构架

    一个系统或组件的组织结构.

    ASQ--自动化软件质量(Automated Software Quality)

    使用软件工具来提高软件的质量.

    assertion--断言

    指定一个程序必须已经存在的状态的一个逻辑表达式,或者一组程序变量在程序执行期间的某个点上必须满足的条件.

    assertion checking--断言检查

    用户在程序中嵌入的断言的检查.

    audit--审计

    一个或一组工作产品的独立检查以评价与规格、标准、契约或其它准则的符合程度.

    audit trail--审计跟踪

    系统审计活动的一个时间记录.

    Automated Testing--自动化测试

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

    Backus-Naur Form--BNF范式

    一种分析语言,用于形式化描述语言的语法

    baseline--基线

    一个已经被正式评审和批准的规格或产品,它作为进一步开发的一个基础,并且必须通过正式的变更流程来变更.

    Basic Block--基本块

    一个或多个顺序的可执行语句块,不包含任何分支语句.

    basis test set--基本测试集

    根据代码逻辑引出来的一个测试用例集合,它保证能获得100%的分支覆盖.

    behavīor--行为

    对于一个系统的一个函数的输入和预置条件组合以及需要的反应.一个函数的所有规格包含一个或多个行为.

    benchmark--标杆/指标/基准

    一个标准,根据该标准可以进行度量或比较.

    Beta Testing--Beta测试

    在客户场地,由客户进行的对产品预发布版本的测试.这个测试一般是不可控的.

    big-bang testing--大锤测试/一次性集成测试

    非渐增式集成测试的一种策略,测试的时候把所有系统的组件一次性组合成系统进行测试.

    Black Box Testing--黑盒测试

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

    bottom-up testing--由低向上测试

    渐增式集成测试的一种,其策略是先测试底层的组件,然后逐步加入较高层次的组件进行测试,直到系统所有组件都加入到系统.

    boundary value--边界值

    一个输入或输出值,它处在等价类的边界上.

    boundary value coverage--边界值覆盖

    通过测试用例,测试组件等价类的所有边界值.

    boundary value testing--边界值测试

    通过边界值分析方法来生成测试用例的一种测试策略.

    Boundary Value Analysis--边界值分析

    该分析一般与等价类一起使用.经验认为软件的错误经常在输入的边界上产生,因此边界值分析就是分析软件输入边界的一种方法.

    branch--分支

    在组件中,控制从任何语句到其它任何非直接后续语句的一个条件转换,或者是一个无条件转换.

    branch condition--分支条件

    branch condition combination coverage--分支条件组合覆盖

    在每个判定中所有分支条件结果组合被测试用例覆盖到的百分比.

    branch condition combination testing--分支条件组合测试

    通过执行分支条件结果组合来设计测试用例的一种方法.

    branch condition coverage--分支条件覆盖

    每个判定中分支条件结果被测试用例覆盖到的百分比.

    branch condition testing--分支条件测试

    通过执行分支条件结果来设计测试用例的一种方法.

    branch coverage--分支覆盖

    通过测试执行到的分支的百分比.

    branch outcome--分支结果

    见判定结果(decision outcome)

    branch point--分支点

    branch testing--分支测试

    通过执行分支结果来设计测试用例的一种方法.

    Breadth Testing--广度测试

    在测试中测试一个产品的所有功能,但是不测试更细节的特性.

    bug--缺陷

    capture/playback tool--捕获/回放工具

    参考capture/replay tool

    Capture/Replay Tool--捕获/回放工具

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

    CASE--计算机辅助软件工程(computer aided software engineering)

    用于支持软件开发的一个自动化系统.

    CAST--计算机辅助测试

    在测试过程中使用计算机软件工具进行辅助的测试.

    cause-effect graph--因果图

    一个图形,用来表示输入(原因)与结果之间的关系,可以被用来设计测试用例.

    certification--证明

    一个过程,用于确定一个系统或组件与特定的需求相一致.

    change control--变更控制

    一个用于计算机系统或系统数据修改的过程,该过程是质量保证程序的一个关键子集,需要被明确的描述.

    code audit--代码审计

    由一个人、组或工具对源代码进行的一个独立的评审,以验证其与设计规格、程序标准的一致性.正确性和有效性也会被评价.

    Code Coverage--代码覆盖率

    一种分析方法,用于确定在一个测试套执行后,软件的哪些部分被执行到了,哪些部分没有被执行到.

    Code Inspection--代码检视

    一个正式的同行评审手段,在该评审中,作者的同行根据检查表对程序的逻辑进行提问,并检查其与编码规范的一致性.

    Code Walkthrough--代码走读

    一个非正式的同行评审手段,在该评审中,代码被使用一些简单的测试用例进行人工执行,程序变量的状态被手工分析,以分析程序的逻辑和假设.

    code-based testing--基于代码的测试

    根据从实现中引出的目标设计测试用例.

    coding standards--编程规范

    一些编程方面需要遵循的标准,包括命名方式、排版格式等内容.

    Compatibility Testing--兼容性测试

    测试软件是否和系统的其它与之交互的元素之间兼容,如:浏览器、操作系统、硬件等.

    complete path testing--完全路径测试

    completeness--完整性

    实体的所有必须部分必须被包含的属性.

    complexity--复杂性

    系统或组件难于理解或验证的程度.

    Component--组件

    一个最小的软件单元,有着独立的规格

    Component Testing--组件测试

    computation data use--计算数据使用

    一个不在条件中的数据使用.

    computer system security--计算机系统安全性

    计算机软件和硬件对偶然的或故意的访问、使用、修改或破坏的一种保护机制.

    condition--条件

    一个不包含布尔操作的布尔表达式,例如:A

    condition coverage--条件覆盖

    通过测试执行到的条件的百分比.

    condition outcome--条件结果

    条件为真为假的评价.

    configuration control--配置控制

    配置管理的一个方面,包括评价、协调、批准、和实现配置项的变更.

    configuration management--配置管理

    一套技术和管理方面的原则用于确定和文档化一个配置项的功能和物理属性、控制对这些属性的变更、记录和报告变更处理和实现的状态、以及验证与指定需求的一致性.

    conformance criterion-- 一致性标准

    判断组件在一个特定输入值上的行为是否符合规格的一种方法.

    Conformance Testing-- 一致性测试

    测试一个系统的实现是否和其基于的规格相一致的测试.

    consistency-- 一致性

    在系统或组件的各组成部分和文档之间没有矛盾,一致的程度.

    consistency checker-- 一致性检查器

    一个软件工具,用于测试设计规格中需求的一致性和完整性.

    control flow--控制流

    程序执行中所有可能的事件顺序的一个抽象表示.

    control flow graph--控制流图

    通过一个组件的可能替换控制流路径的一个图形表示.

    conversion testing--转换测试

    用于测试已有系统的数据是否能够转换到替代系统上的一种测试.

    corrective maintenance--故障检修

    用于纠正硬件或软件中故障的维护.

    correctness--正确性

    软件遵从其规格的程度.

    correctness--正确性

    软件在其规格、设计和编码中没有故障的程度.软件、文档和其它项满足需求的程度.软件、文档和其它项满足用户明显的和隐含的需求的程度.

    coverage--覆盖率

    用于确定测试所执行到的覆盖项的百分比.

    coverage item--覆盖项

    作为测试基础的一个入口或属性:如语句、分支、条件等.

    crash--崩溃

    计算机系统或组件突然并完全的丧失功能.

    criticality--关键性

    需求、模块、错误、故障、失效或其它项对一个系统的操作或开发影响的程度.

    criticality analysis--关键性分析

    需求的一种分析,它根据需求的风险情况给每个需求项分配一个关键级别.

    cyclomatic complexity--循环复杂度

    一个程序中独立路径的数量.

    data corruption--数据污染

    违背数据一致性的情况.

    data definition--数据定义

    一个可执行语句,在该语句上一个变量被赋予了一个值.

    data definition C-use coverage--数据定义C-use覆盖

    在组件中被测试执行到的数据定义C-use使用对的百分比.

    data definition C-use pair--数据定义C-use使用对

    一个数据定义和一个计算数据使用,数据使用的值是数据定义的值.

    data definition P-use coverage--数据定义P-use覆盖

    在组件中被测试执行到的数据定义P-use使用对的百分比.

    data definition P-use pair--数据定义P-use使用对

    一个数据定义和一个条件数据使用,数据使用的值是数据定义的值.

    data definition-use coverage--数据定义使用覆盖

    在组件中被测试执行到的数据定义使用对的百分比.

    data definition-use pair--数据定义使用对

    一个数据定义和一个数据使用,数据使用的值是数据定义的值.

    data definition-use testing--数据定义使用测试

    以执行数据定义使用对为目标进行测试用例设计的一种技术.

    data dictionary--数据字典

    (1)一个软件系统中使用的所有数据项名称,以及这些项相关属性的集合.(2)数据流、数据元素、文件、数据基础、和相关处理的一个集合.

    data flow analysis--数据流分析

    一个软件验证和确认过程,用于保证输入和输出数据和它们的格式是被适当定义的,并且数据流是正确的.

    data flow coverage--数据流覆盖

    测试覆盖率的度量是根据变量在代码中的使用情况.

    data flow diagram--数据流图

    把数据源、数据接受、数据存储和数据处理作为节点描述的一个图形,数据之间的逻辑体现为节点之间的边.

    data flow testing--数据流测试

    根据代码中变量的使用情况进行的测试.

    data integrity--数据完整性

    一个数据集合完全、正确和一致的程度.

    data use--数据使用

    一个可执行的语句,在该语句中,变量的值被访问.

    data validation--数据确认

    用于确认数据不正确、不完整和不合理的过程.

    dead code--死代码

    在程序操作过程中永远不可能被执行到的代码.

    Debugging--调试

    发现和去除软件失效根源的过程.

    decision--判定

    一个程序控制点,在该控制点上,控制流有两个或多个可替换路由.

    Decision condition--判定条件

    判定内的一个条件.

    decision coverage--判定覆盖

    在组件中被测试执行到的判定结果的百分比.

    decision outcome--判定结果

    一个判定的结果,决定控制流走哪条路径.

    decision table--判定表

    一个表格,用于显示条件和条件导致动作的集合.

    Depth Testing--深度测试

    执行一个产品的一个特性的所有细节,但不测试所有特性.比较广度测试.

    design of experiments--实验设计

    一种计划实验的方法,这样适合分析的数据可以被收集.

    design-based testing--基于设计的测试

    根据软件的构架或详细设计引出测试用例的一种方法.

    desk checking--桌面检查

    通过手工模拟软件执行的方式进行测试的一种方式.

    diagnostic--诊断

    检测和隔离故障或失效的过程.

    dirty testing--肮脏测试

    参考负面测试(negative testing)

    disaster recovery--灾难恢复

    一个灾难的恢复和重建过程或能力.

    documentation testing--文档测试

    测试关注于文档的正确性.

    domain--域

    值被选择的一个集合.

    domain testing--域测试

    参考等价划分测试(equivalence partition testing)

    dynamic analysis--动态分析

    根据执行的行为评价一个系统或组件的过程.

    Dynamic Testing--动态测试

    通过执行软件的手段来测试软件.

    embedded software--嵌入式软件

    软件运行在特定硬件设备中,不能独立于硬件存在.这类系统一般要求实时性较高.

    emulator--仿真

    一个模仿另一个系统的系统或设备,它接受相同的输入并产生相同的输出.

    End-to-End testing--端到端测试

    在一个模拟现实使用的场景下测试一个完整的应用环境,例如和数据库交互,使用网络通信等.

    entity relationship diagram--实体关系图

    描述现实世界中实体及它们关系的图形.

    entry point--入口点

    一个组件的第一个可执行语句.

    Equivalence Class--等价类

    组件输入或输出域的一个部分,在该部分中,组件的行为从组件的规格上来看认为是相同的.

    equivalence partition coverage--等价划分覆盖

    在组件中被测试执行到的等价类的百分比.

    equivalence partition testing--等价划分测试

    根据等价类设计测试用例的一种技术.

    Equivalence Partitioning--等价划分

    组件的一个测试用例设计技术,该技术从组件的等价类中选取典型的点进行测试.

    error--错误

    IEEE的定义是:一个人为产生不正确结果的行为.

    error guessing--错误猜测

    根据测试人员以往的经验猜测可能出现问题的地方来进行用例设计的一种技术.

    error seeding--错误播种/错误插值

    故意插入一些已知故障(fault)到一个系统中去的过程,目的是为了根据错误检测和跟踪的效率并估计系统中遗留缺陷的数量.

    exception--异常/例外

    一个引起正常程序执行挂起的事件.

    executable statement--可执行语句

    一个语句在被编译后会转换成目标代码,当程序运行是会被执行,并且可能对程序数据产生动作.

    Exhaustive Testing--穷尽测试

    测试覆盖软件的所有输入和条件组合.

    exit point--出口点

    一个组件的最后一个可执行语句.

    expected outcome--期望结果

    参考预期结果(predicted outcome).

    failure--失效

    软件的行为与其期望的服务相背离.

    fault--故障

    在软件中一个错误的表现.

    feasible path--可达路径

    可以通过一组输入值和条件执行到的一条路径.

    feature testing--特性测试

    参考功能测试(Functional Testing)

    FMEA--失效模型效果分析(Failure Modes and Effects Analysis)

    可靠性分析中的一种方法,用于在基本组件级别上确认对系统性能有重大影响的失效.

    FMECA--失效模型效果关键性分析(Failure Modes and Effects Criticality Analysis)

    FMEA的一个扩展,它分析了失效结果的严重性.

    FTA--故障树分析(Fault Tree Analysis)

    引起一个不需要事件产生的条件和因素的确认和分析,通常是严重影响系统性能、经济性、安全性或其它需要特性.

    functional decomposition--功能分解

    参考模块分解(modular decomposition)

    Functional Specification--功能规格说明书

    一个详细描述产品特性的文档.

    Functional Testing--功能测试

    测试一个产品的特性和可操作行为以确定它们满足规格.

    glass box testing--玻璃盒测试

    参考白盒测试(White Box Testing)

    IEEE--美国电子与电器工程师学会(Institute of Electrical and Electronic Engineers)

    incremental testing--渐增测试

    集成测试的一种,组件逐渐被增加到系统中直到整个系统被集成.

    infeasible path--不可达路径

    不能够通过任何可能的输入值集合执行到的路径.

    input domain--输入域

    所有可能输入的集合.

    inspection--检视

    对文档进行的一种评审形式.

    install ability testing--可安装性测试

    确定系统的安装程序是否正确的测试.

    instrumentation--插装

    在程序中插入额外的代码以获得程序在执行时行为的信息.

    instrumenter--插装器

    执行插装的工具

    Integration Testing--集成测试

    测试一个应用组合后的部分以确保它们的功能在组合之后正确.该测试一般在单元测试之后进行.

    interface--接口

    两个功能单元的共享边界.

    interface analysis--接口分析

    分析软件与硬件、用户和其它软件之间接口的需求规格.

    interface testing--接口测试

    测试系统组件间接口的一种测试.

    invalid inputs--无效输入

    在程序功能输入域之外的测试数据.

    isolation testing--孤立测试

    组件测试(单元测试)策略中的一种,把被测组件从其上下文组件之中孤立出来,通过设计驱动和桩进行测试的一种方法.

    Job--工作

    一个用户定义的要计算机完成的工作单元.

    job control language--工作控制语言

    用于确定工作顺序,描述它们对操作系统要求并控制它们执行的语言.

    LCSAJ--线性代码顺序和跳转(Linear Code Sequence And Jump)

    包含三个部分:可执行语句线性顺序的起始,线性顺序的结束,在线性顺序结束处控制流跳转的目标语句.

    LCSAJ coverage--LCSAJ覆盖

    在组件中被测试执行到的LCSAJ的百分比.

    LCSAJ testing--LCSAJ测试

    根据LCSAJ设计测试用例的一种技术.

    Load Testing--负载测试

    通过测试系统在资源超负荷情况下的表现,以发现设计上的错误或验证系统的负载能力.

    logic analysis--逻辑分析

    (1)评价软件设计的关键安全方程式、算法和控制逻辑的方法.(2)评价程序操作的顺序并且检测可能导致灾难的错误.

    logic-coverage testing--逻辑覆盖测试

    参考结构化测试用例设计(structural test case design)

    maintainability--可维护性

    一个软件系统或组件可以被修改的容易程度,这个修改一般是因为缺陷纠正、性能改进或特性增加引起的.

    maintainability testing--可维护性测试

    测试系统是否满足可维护性目标.

    modified condition/decision coverage--修改条件/判定覆盖

    在组件中被测试执行到的修改条件/判定的百分比.

    modified condition/decision testing--修改条件/判定测试

    根据MC/DC设计测试用例的一种技术.

    Monkey Testing--跳跃式测试

    随机性,跳跃式的测试一个系统,以确定一个系统是否会崩溃.

    MTBF--平均失效间隔实际(mean time between failures)

    两次失效之间的平均操作时间.

    MTTF--平均失效时间(mean time to failure)

    第一次失效之前的平均时间

    MTTR--平均修复时间(mean time to repair)

    两次修复之间的平均时间

    multiple condition coverage--多条件覆盖

    参考分支条件组合覆盖(branch condition combination coverage)

    mutation analysis--变体分析

    一种确定测试用例套完整性的方法,该方法通过判断测试用例套能够区别程序与其变体之间的程度.

    Negative Testing--逆向测试/反向测试/负面测试

    测试瞄准于使系统不能工作.

    non-functional requirements testing--非功能性需求测试

    与功能不相关的需求测试,如:性能测试、可用性测试等.

    N-switch coverage--N切换覆盖

    在组件中被测试执行到的N转换顺序的百分比.

    N-switch testing--N切换测试

    根据N转换顺序设计测试用例的一种技术,经常用于状态转换测试中.

    N-transitions--N转换

    N+1转换顺序

    operational testing--可操作性测试

    在系统或组件操作的环境中评价它们的表现.

    output domain--输出域

    所有可能输出的集合.

    partition testing--分类测试

    参考等价划分测试(equivalence partition testing)

    path--路径

    一个组件从入口到出口的一条可执行语句顺序.

    path coverage--路径覆盖

    在组件中被测试执行到的路径的百分比.

    path sensitizing--路径敏感性

    选择一组输入值强制组件走一个给定的路径.

    path testing--路径测试

    根据路径设计测试用例的一种技术,经常用于状态转换测试中.

    performance testing--性能测试

    评价一个产品或组件与性能需求是否符合的测试.

    portability testing--可移植性

    测试瞄准于证明软件可以被移植到指定的硬件或软件平台上.

    Positive Testing--正向测试

    测试瞄准于显示系统能够正常工作.

    precondition--预置条件

    环境或状态条件,组件执行之前必须被填充一个特定的输入值.

    predicate--谓词

    一个逻辑表达式,结果为‘真’或‘假’.

    predicate data use--谓词数据使用

    在谓词中的一个数据使用.

    program instrumenter--程序插装

    参考插装(instrumenter)

    progressive testing--递进测试

    在先前特性回归测试之后对新特性进行测试的一种策略.

    pseudo-random--伪随机

    看似随机的,实际上是根据预先安排的顺序进行的.

    QA--质量保证(quality assurance)

    (1)已计划的系统性活动,用于保证一个组件、模块或系统遵从已确立的需求.(2)采取的所有活动以保证一个开发组织交付的产品满足性能需求和已确立的标准和过程.

    QC--质量控制(quality control)

    用于获得质量需求的操作技术和过程,如测试活动.

    Race Condition--竞争状态

    并行问题的根源.对一个共享资源的多个访问,至少包含了一个写操作,但是没有一个机制来协调同时发生的访问.

    recovery testing--恢复性测试

    验证系统从失效中恢复能力的测试.

    regression analysis and testing--回归分析和测试

    一个软件验证和确认任务以确定在修改后需要重复测试和分析的范围.

    Regression Testing--回归测试

    在发生修改之后重新测试先前的测试以保证修改的正确性.

    release--发布

    一个批准版本的正式通知和分发.

    reliability--可靠性

    一个系统或组件在规定的条件下在指定的时间内执行其需要功能的能力.

    reliability assessment--可靠性评价

    确定一个已有系统或组件的可靠性级别的过程.

    requirements-based testing--基于需求的测试

    根据软件组件的需求导出测试用例的一种设计方法.

    review--评审

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

    risk--风险

    不期望效果的可能性和严重性的一个度量.

    risk assessment--风险评估

    对风险和风险影响的一个完整的评价.

    safety--(生命)安全性

    不会引起人员伤亡、产生疾病、毁坏或损失设备和财产、或者破坏环境.

    safety critical--严格的安全性

    一个条件、事件、操作、过程或项,它的认识、控制或执行对生命安全性的系统来说是非常关键的.

    Sanity Testing--理智测试

    软件主要功能成分的简单测试以保证它是否能进行基本的测试.参考冒烟测试

    SDP--软件开发计划(software development plan)

    用于一个软件产品开发的项目计划.

    security testing--安全性测试

    验证系统是否符合安全性目标的一种测试.

    security.--(信息)安全性

    参考计算机系统安全性(computer system security)

    serviceability testing--可服务性测试

    参考可维护性测试(maintainability testing)

    simple sub path--简单子路径

    控制流的一个子路径,其中没有不必要的部分被执行.

    simulation--模拟

    使用另一个系统来表示一个物理的或抽象的系统的选定行为特性.

    simulation--模拟

    使用一个可执行模型来表示一个对象的行为.

    simulator--模拟器

    软件验证期间的一个设备、软件程序、或系统,当它给定一个控制的输入时,表现的与一个给定的系统类似.

    SLA--服务级别协议(service level agreement)

    服务提供商与客户之间的一个协议,用于规定服务提供商应当提供什么服务.

    Smoke Testing--冒烟测试

    对软件主要功能进行快餐式测试.最早来自于硬件测试实践,以确定新的硬件在第一次使用的时候不会着火.

    software development process--软件开发过程

    一个把用户需求转换为软件产品的开发过程.

    software diversity--软件多样性

    一种软件开发技术,其中,由不同的程序员或开发组开发的相同规格的不同程序,目的是为了检测错误、增加可靠性.

    software element--软件元素

    软件开发或维护期间产生或获得的一个可交付的或过程内的文档.

    software engineering--软件工程

    一个应用于软件开发、操作和维护的系统性的、有纪律的、可量化的方法.

    software engineering environment--软件工程环境

    执行一个软件工程工作的硬件、软件和固件.

    software life cycle--软件生命周期

    开始于一个软件产品的构思,结束于该产品不再被使用的这段期间.

    SOP--标准操作过程(standard operating procedures)

    书面的步骤,这对保证生产和处理的控制是必须的.

    source code--源代码

    用一种适合于输入到汇编器、编译器或其它转换设备的计算机指令和数据定义.

    source statement--源语句

    参考语句(statement)

    specification--规格

    组件功能的一个描述,格式是:对指定的输入在指定的条件下的输出.

    specified input--指定的输入

    一个输入,根据规格能预知其输出.

    spiral model--螺旋模型

    软件开发过程的一个模型,其中的组成活动,典型的包括需求分析,概要设计,详细设计,编码,集成和测试等活动被迭代的执行直到软件被完成.

    SQL--结构化查询语句(structured query language)

    在一个关系数据库中查询和处理数据的一种语言.

    state--状态

    一个系统、组件或模拟可能存在其中的一个条件或模式.

    state diagram--状态图

    一个图形,描绘一个系统或组件可能假设的状态,并且显示引起或导致一个状态切换到另一个状态的事件或环境.

    state transition--状态转换

    一个系统或组件的两个允许状态之间的切换.

    state transition testing--状态转换测试

    根据状态转换来设计测试用例的一种方法.

    statement--语句

    程序语言的一个实体,是典型的最小可执行单元.

    statement coverage--语句覆盖

    在一个组件中,通过执行一定的测试用例所能达到的语句覆盖百分比.

    statement testing--语句测试

    根据语句覆盖来设计测试用例的一种方法.

    Static Analysis--静态分析

    分析一个程序的执行,但是并不实际执行这个程序.

    Static Analyzer--静态分析器

    进行静态分析的工具.

    Static Testing--静态测试

    不通过执行来测试一个系统.

    statistical testing--统计测试

    通过使用对输入统计分布进行分析来构造测试用例的一种测试设计方法.

    stepwise refinement--逐步优化

    一个结构化软件设计技术,数据和处理步骤首先被广泛的定义,然后被逐步的进行了细化.

    storage testing--存储测试

    验证系统是否满足指定存储目标的测试.

    Stress Testing--压力测试

    在规定的规格条件或者超过规定的规格条件下,测试一个系统,以评价其行为.类似负载测试,通常是性能测试的一部分.

    structural coverage--结构化覆盖

    根据组件内部的结构度量覆盖率.

    structural test case design--结构化测试用例设计

    根据组件内部结构的分析来设计测试用例的一种方法.

    structural testing--结构化测试

    参考结构化测试用例设计(structural test case design)

    structured basis testing--结构化的基础测试

    根据代码逻辑设计测试用例来获得100%分支覆盖的一种测试用例设计技术.

    structured design--结构化设计

    软件设计的任何遵循一定纪律的方法,它按照特定的规则,例如:模块化,有顶向下设计,数据逐步优化,系统结构和处理步骤.

    structured programming--结构化编程

    在结构化程序开发中的任何包含结构化设计和结果的软件开发技术.

    structured walkthrough--结构化走读

    参考走读(walkthrough)

    stub--桩

    一个软件模块的框架或特殊目标实现,主要用于开发和测试一个组件,该组件调用或依赖这个模块.

    symbolic evaluation--符号评价

    参考符号执行(symbolic execution)

    symbolic execution--符号执行

    通过符号表达式来执行程序路径的一种静态分析设计技术.其中,程序的执行被用符号来模拟,例如,使用变量名而不是实际值,程序的输出被表示成包含这些符号的逻辑或数学表达式.

    symbolic trace--符号轨迹

    一个计算机程序通过符号执行是经过的语句分支结果的一个记录.

    syntax testing--语法分析

    根据输入语法来验证一个系统或组件的测试用例设计技术.

    system analysis--系统分析

    对一个计划的或现实的系统进行的一个系统性调查以确定系统的功能以及系统与其它系统之间的交互.

    system design--系统设计

    一个定义硬件和软件构架、组件、模块、接口和数据的过程以满足指定的规格.

    system integration--系统集成

    一个系统组件的渐增的连接和测试,直到一个完整的系统.

    System Testing--系统测试

    从一个系统的整体而不是个体上来测试一个系统,并且该测试关注的是规格,而不是系统内部的逻辑.

    technical requirements testing--技术需求测试

    参考非功能需求测试(non-functional requirements testing)

    test automation--测试自动化

    使用工具来控制测试的执行、结果的比较、测试预置条件的设置、和其它测试控制和报告功能.

    test case--测试用例

    用于特定目标而开发的一组输入、预置条件和预期结果.

    test case design technique--测试用例设计技术

    选择和导出测试用例的技术.

    test case suite--测试用例套

    对被测软件的一个或多个测试用例的集合.

    test comparator--测试比较器

    一个测试工具用于比较软件实际测试产生的结果与测试用例预期的结果.

    test completion criterion--测试完成标准

    一个标准用于确定被计划的测试何时完成.

    test coverage--测试覆盖

    参考覆盖率(Coverage)

    test driver--测试驱动

    一个程序或测试工具用于根据测试套执行软件.

    test environment--测试环境

    测试运行其上的软件和硬件环境的描述,以及任何其它与被测软件交互的软件,包括驱动和桩.

    test execution--测试执行

    一个测试用例被被测软件执行,并得到一个结果.

    test execution technique--测试执行技术

    执行测试用例的技术,包括手工、自动化等.

    test generator--测试生成器

    根据特定的测试用例产生测试用例的工具.

    test harness--测试用具

    包含测试驱动和测试比较器的测试工具.

    test log--测试日志

    一个关于测试执行所有相关细节的时间记录.

    test measurement technique--测试度量技术

    度量测试覆盖率的技术.

    Test Plan--测试计划

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

    test procedure--测试规程

    一个文档,提供详细的测试用例执行指令.

    test records--测试记录

    对每个测试,明确的记录被测组件的标识、版本,测试规格,和实际结果

    test report--测试报告

    一个描述系统或组件执行的测试和结果的文档.

    Test scrīpt--测试脚本

    一般指的是一个特定测试的一系列指令,这些指令可以被自动化测试工具执行.

    Test Specification--测试规格

    一个文档,用于指定一个软件特性、特性组合或所有特性的测试方法、输入、预期结果和执行条件.

    test strategy--测试策略

    一个简单的高层文档,用于描述测试的大致方法,目标和方向.

    test suite--测试套

    测试用例和/或测试脚本的一个集合,与一个应用的特定功能或特性相关.

    test target--测试目标

    一组测试完成标准.

    testability--可测试性

    一个系统或组件有利于测试标准建立和确定这些标准是否被满足的测试执行的程度.

    Testing--测试

    IEEE给出的定义是:1)一个执行软件的过程,以验证其满足指定的需求并检测错误.2)一个软件项的分析过程以检测已有条件之间的不同,并评价软件项的特性.

    thread testing--线程测试

    自顶向下测试的一个变化版本,其中,递增的组件集成遵循需求子集的实现.

    time sharing--时间共享

    一种操作方式,允许两个或多个用户在相同的计算机系统上同时执行计算机程序.其实现可能通过时间片轮转、优先级中断等.

    top-down design--由顶向下设计

    一种设计策略,首先设计最高层的抽象和处理,然后逐步向更低级别进行设计.

    top-down testing--自顶向下测试

    集成测试的一种策略,首先测试最顶层的组件,其它组件使用桩,然后逐步加入较低层的组件进行测试,直到所有组件被集成到系统中.

    traceability--可跟踪性

    开发过程的两个或多个产品之间关系可以被建立起来的程度,尤其是产品彼此之间有一个前后处理关系.

    traceability analysis--跟踪性分析

    (1)跟踪概念文档中的软件需求到系统需求;(2)跟踪软件设计描述到软件需求规格,以及软件需求规格到软件设计描述;(3)跟踪源代码对应到设计规格,以及设计规格对应到源代码.分析确定它们之间正确性、一致性、完整性、精确性的关系.

    traceability matrix--跟踪矩阵

    一个用于记录两个或多个产品之间关系的矩阵.例如,需求跟踪矩阵是跟踪从需求到设计再到编码的实现

  • lr学习

    2009-12-15 09:40:19

    对初学LoadRunner朋友的建意

    原创地址:http://www.boobooke.com/bbs/viewthread.php?tid=16337&extra=page%3D1

    对初学LoadRunner朋友的建意
       作者:wind
    摘要:随着Internet的普及与迅速发展,企业业务量的迅速加大,数据大集中成为一种趋势,IT系统承载的负荷越来越重,系统性能的好坏严重的影响了企业对外提供的服务质量.从而对IT系统的性能进行测试和调优引起企业的重视,进而性能测试工程师成为IT市场的”香悖悖”,并且性能测试有着极高的技术挑战.于是吸引了大量的测试爱好者来学这方面的技术,而一谈到性能测试很多人便会想到鼎鼎大名的LoadRunner这款优秀的性能测试工具,然而到这里问题就产生了?
    关建字:LoadRunner 性能测试  网络基础 编程语言 数据库 操作系统
          LoadRuner与性能测试的关系:LoadRunner初学者的误点:把LoadRunner神化了.很多初学LoadRunner的朋友认为掌握了使用LoadRunner这款性能测试工具,就能够做性能测试了.常在网上看到好多人在学习怎么去使用这款优秀的性能测试工具,本来学习怎么去使用LoadRunner这个工具没有错,却把LoadRunner神化了,”天真的”以为它什么都能做,以为学会了LoadRunner的使用就能做性能测试了.尽管用了大量的时间学会了如何使用LoadRunner录制脚本,如何进行关联,如何进行参数化,如何设置集合点等等?可到头来,性能测试还是不会做.为什么? 对于产生的性能报告不知道怎么去分析?不知道如何利用得到的分析报告分析出系统存在的瓶颈?不知道如何进行性能调优?像这些事光会使用LoadRunner是做不到的?说白了LoadRunner只是我们做性能测试的一个工具,它并不是万能的,是死的,具体怎么做还得依靠人去操作与分析.会使用LoadRunner的人,并不一定会做性能测试,会做性能测试的人并不一定都会使用LoadRunner.LoadRunner只是一个性能测试工具而已.我们应该意识到,测试工具只是性能测试中的一部分,仅是为达到性能测试目的而采用的一种手段

    性能测试与系统性能的关系:高性能,高安全的系统,不是测试出来的,而是构架,设计,编写出来的.当然在这里我并不否认性能测试的重要性,甚至可以说没有经过性能测试的系统,一定不会是优秀的系统,软件是人开发出来的,而人总是会出错的,所谓智者千虑,必有一失……要想做好性能测试,在软件系统需求,设计,编写代码的这些阶段就应该进行性能测试,而不仅仅是系统测试这个阶段才去做性能测试,性能测试应该贯穿于整个软件开发周期中.

         
         对初学LoadRunner朋友的建意:常看到网上一些网友发贴子问,怎么对性能测试产生的结果进行分析?测试系统时怎么去选择合适的协议?对于发这些贴子的人我想请问你?你能够详细的说下HTTP协议吗?TCP建立连接和释放连接的过程是怎样进行的?什么是协议?协议是用来做什么的?在OSI参考模型中各层的作用?数据库中产生并发的冲突的原因?不要太依赖于LoadRunner工具本身的学习,而去忽略计算机其它基础知识的学习,我们更应该去掌握一门编程语言,良好的网络基础知识,计算机原理与操作系统知识,数据库知识.这些是我们去学习怎么去使用LoadRunner前提与基础。.
    1为什么要掌握一门编程语言
    其一,大家在使用LoadRunner时常会遇到一些不能录制脚本的情况发生,或者需要录制一些复杂的脚本,这时候我们就必须手动的开发脚本.其二LoadRunner虽然强大,易于使用,可是它却属于商业软件,价格昂贵,并且代码不开源,我们无法了解LoadRunner具体的实现细节,甚至我们会怀疑LoadRunner收集的性能数据准确吗?它有是如何实现的等等,而这些我们通过LoadRunner的帮助文档无法得知.性能测试工具并不只有LoadRunner,做性能测试还有许多优秀的性能测试工具可以选择,像JMeter,Curl-Loader等等这些非常优秀的开源工具,在全能上虽然并不上LoadRunner,但在某些方面却比LoadRunner还要强大.例如Curl-Loader这个工具,它虽然支持的协议不多,但是对于http协议它最高能产生10万的并发用户,这是LoadRunner远远所不及的.并且这些工具代码是公开的,我们能够从这些代码中去分析具体实现的细节,并且还可以自已编写代码,增强软件的功能,这也是成为性能测试高手的一条途径.LoadRunner好比我们的Windows操作系统,易于使用,功能强大,代码封闭,论全能比Linux要强大.我们的开源性能测试工具好比Linux操作系统代码开源,不易于使用,但很多方面比我们的Windows要强大.也许这个时候有人会问对于初学者学哪门语言最好最有前途C,C++,VB,JAVA,C#?其实每一种语言能够生存下来,自有其生存的道理,每一种语言都有自已优势和缺点,并且编程语言具有相通信,学好了一门,再去学另外的编程语言,非常快就能上手.对于初学者我建意学习C语言,理由有很多,例如很多优秀的开源性能测试工具就是用C语言开发的….当然不管选择什么编程语言,或者数据库,或者操作系统,我们不要去想学哪门最好,学哪方面最有前途.我们更应该结合自身的情况,选择最合适的,而不是选择最好的.
    2为什么要掌握计算机原理和操作系统知识
           论坛上常会看到这些问题?LoadRunner中线程与进程的关系?在什么时候用到它们,怎么区别用线程还是进程呢?LoadRunner录制产生了乱码怎么解决?怎么去发现内存泄漏?对那些发贴问这些问题的朋友,我依然想请问你你知道进程和线程的概念吗?知道进程有几种状态吗?知道进程间的通信是怎么进行的吗?死锁,进程与线程的区别这些概念你明白吗?如果你连内存的概念,内存的作用,内存泄露的概念都搞不清楚,你怎么去发现内存泄露?如果这些你都不知道,自然就不知道怎么去做性能测试分析?一些网友录制脚本常常会产生一些莫名奇妙的错误?还震震有词的说这是LoadRunner的原因.其实要说到底要解决这些问题就必需得有良好的计算机原理和操作系统知识.弄清了进程和线程的区别,你自然就明白了使用进程资源使用高,但安全性要强于线程,线程资源利用率少,使用线程能在一个负载生成器上运行更多的Vuser,但可能存在安全问题.LoadRunner录制产生了乱码怎么解决?为什么会产生乱码,你知道什么是字符集吗?什么是编码吗?字符串在我们内存中有是如何存放的?ASCII编码,ANSI编码,UNICODE编码它们的区别是什么?这些都是操作系统的基础基础.掌握好了这些你自然明白LoadRunner中产生乱码的原因.当然计算机原理和操作系统的基础知识还有很多得掌握的知识.像操作系统的体系架构、操作系统的重要基础概念,内存管理、存储/文件系统、驱动/硬件的管理.要做好性能测试计算机原理和操作系统知识必不可少.

    3为什么要有良好的网络基础
    经常在51testing论坛中看到很多人发贴子.像LoadRuner中为什么要进行关联?,LoadRunner测试系统时如何选择协议?LoadRunner中的如何进行IP欺骗?等等.这些问题随便一搜就能发现大量的贴子,其实说到底这些问题和LoadRunner的关系并不是很大,要去解决这些问题并不在于你对LoadRunner这个工具使用是否熟练,而在于我们网络基础知识是否扎实.例如第一个问题LoadRunner中为什么要进行关联?相信很多朋友都知道HTTP协议知道它是超文本传输协议,但是对于一些新手往往不能够详细的说出HTTP具体的内容,像HTTP工作的原理,HTTP协议为什么要使用基于TCP的协议而不使用UDP的协议,HTTP工作在OSI参考模型的哪一层?在HTTP协议上数据是怎么传输的等等.而只有当我们明白了这一切,自然而然就会明白为什么要使用关联,到最后你会发现这些问题其实根LoadRunner关系并不是很大.HTTP协议本质上是无状态的;对页面的每个请求都将被视为新请求,而且默认情况下,来自一个请求的信息对下一个请求不可用.在传统的 Web 编程中,这通常意味着在每一次往返行程中,与该页及该页上的控件相关联的所有信息都会丢失.例如,如果用户将信息输入到文本框,该信息将在从浏览器或客户端设备到服务器的往返行程中丢失,为了使用浏览网页,页与页是相互联系不去丢失这些信息,于是了就从现了Cookie,Session,查询字符串等等保持状态的技术.什么是Cookie?什么是Session?Cookie 和Session 有是怎么工作的?当我们明白了这些,很多的问题就自然而然的明白了,像这些都是基础的知识和LoadRunner关系大吗?不大.Cookie 是一些少量的数据,这些数据存储在客户端文件系统的文本文件中,或者存储在客户端浏览器会话的内存中.Cookie 包含特定于站点的信息(像用户名密码以及我们在网站一些个性化的设置等等),这些信息是随页输出一起由服务器发送到客户端的.如果浏览器使用的是cookie,那么所有的数据都保存在浏览器端,比如我们登录以后,服务器设置了cookie用户名,那么当你再次请求服务器的时候,浏览器会将用户名一块发送给服务器,这些变量有一定的特殊标记.服务器会解释为cookie变量,所以只要不关闭浏览器,那么cookie变量一直是有效的,所以能够保证长时间不掉线..如果设置了的有效时间,那么它会将 cookie保存在客户端的硬盘上,下次再访问该网站的时候浏览器先检查有没有 cookie,如果有的话,就读取该 cookie,然后发送给服务器.这些是Cookie的工作过程,常看到论坛上一些朋友发贴子问使用LoadRunner时录制到了一些Cookie的信息,它是用来做什么的,看起来很烦可不可以把它删除掉?明白了这些细节的知识,你自然能明白那个Cookie的信息能不能删除掉.如果web服务器端使用的是session,那么所有的数据都保存在服务器上,客户端每次请求服务器的时候会发送当前会话的SessionId,服务器根据当前SessionId唯一地标识在服务器上包含会话数据的浏览器,以确定用户是否登录或具有某种权限.不同的用户发送请求Web服务器会随机发送一个唯一的SessionID.而我们使用LoadRunner录制时它会把我们SessionID写死,所以导致出错.这时候就得使用关联了,这样不仅明白了LoadRunner怎样使用关联,而且还明白了为什么要使用关联?对于LoadRunner测试系统时如何选择协议?这个问题也是网络论讨的比较多的问题.要解决这个问题同样得依靠我们的扎实的网络基础,而不是对LoadRunner使用的熟练程度,首先我们得了解LoadRunner录制时的工作原理了,LoadRunner的录制和QTP不一样,它不关心你的对象识别什么的,不关心你的什么界面之类的,不关心你使用什么语言编写的,LoadRunner有一个Agent进程,来专门监控客户端和服务器之间的通信,然后用自己的函数进行录制.LoadRunner录制的时候关心的是通信包,是客户端和服务器之间的数据包.说到这里,大家就比较清楚了,为什么有的时候不能录制呢?因为,协议不认识,导致LoadRunner截获的数据包不能解析,所以录制下来是空的.所以我们得熟悉什么是协议,熟悉OSI参考模型,OSI参考模型中各层的作用,TCP协议栈各层的作用,熟悉TCP,UDP,ICMP等等协议.当我们明白了这些网络的基础知识后我们自然会明白应该如何去选择协议.另外关于LoadRunner中的如何进行IP欺骗?要解决这个问题同样得有良好的网络基础知识.其实当我们理解了IP地址的格式,IP地址的分类,子网掩码的概念,以及知道怎么去进行非标准子网的划分方法 ,掌握了这些原理的东西,那么具体怎么在LoadRunner中如何进行IP欺骗,就非常简单了. 当然网络基础知识并不只是上面的而已,还包括路由器,交换机,加密技术等等这些基础的网络知识,这些远远比我们去学习怎么去使用LoadRunner更重要.
    4为什么要掌握数据库知识
          数据库的重要性我想是不言而喻的,性能测试产生的一个非常大的原因是因为数据大集中的趋势,测试从某种意义来讲就是对数据测试,而我们企业的核心数据是放在数据库中的.现在大型的WEB应用程序,都采用多层结构,像典型三层,用户界面层,数据逻辑层,数据层.而数据层,而数据层对我们整个WEB应用程序的性能是非常大的,对数据库的基础知识不懂,我们怎么去进行性能测试分析?怎么知道确定性能产生的瓶颈是否是数据库的原因,如何对系统进行调优?例如数据库模型设计不合理,一条坏的SQL语句就能影响到整个WEB应用程序的性能,所以熟悉SQL语句,建表,索引,存储过程,事务,触发器,并发等这些基础知识是必需得掌握的.


    路漫漫其修远兮,吾将上下而求索:性能测试难点不在于Loadrunner工具本身,难在对整个系统的全局把握,而对全局的把握你就必需得有丰富的知识面.并不是学好了LoadRunner的使用就能做性能测试 .目前,国内性能测试领域正处于起步阶段,要做好性能测试还需学习更多的知识,技术性和非技术.性能测试这条路充满着挑战,也充满着机遇.但正如鲁迅先生所说这世上本来没有路,走的人多了,也就成了路.最后祝愿喜爱性能测试的爱好这条道路上能够不鸣则已,一鸣惊人,不飞则已,一飞冲天.
  • 大家有什么好书推荐下

    2009-12-11 15:35:14

    最近想买本测试方面的书 ,飘过的路过的大家 推荐几本

    看了几本性能方面的书 几本都缺货的

  • web 测试用例

    2009-12-09 11:19:08

    借此地收藏下资料

    原创作者:青竹居士  网站:测试之家

    web 测试用例

    界面测试 -- 一般包括页面文字,控件使用,少图,CSS,颜色等
    1、文字
    内容一致性:
      公司要求文字的一致性,例如各种宣传文字、注册的协议条款、版权信息等;
      各处相同含义文字的一致性,例如标题栏文字、页面主题文字、弹出窗口文字、菜单名称、功能键文字等。
    样式一致性:
       (通常分类包括)各类文字字体、字号、样式、颜色、文字间距、对齐方式
                按钮的文字间距,按钮长度一定前提下,2个字的按钮,需要中间空一格(或者其它约定,需要统一);
                链接文字,同一类,菜单、小标题、页角文字链接,在点击时颜色变化要相同;
                对齐方式,页面上文字的对齐,例如表单、菜单列、下拉列表中文字的对齐方式(左、右、居中等要统一)
    语言习惯
       中文:文字简单,含义明确,无歧异,无重复,无别字,正确运用标点符号。
       英文:
       日文:

    2、按钮
      1)button的样式整体要统一,例如突出、扁平、3D效果等只能选其一;
      2)采用的图片表述相同功能,要采用单一图标。
    3、文本框
      1)录入长度限制,根据数据库的设计,页面直接限定录入长度(特殊处屏蔽复制、粘贴);
      2)文本框自身的长度限制,主要考虑页面样式。
    4、单选框
      1)默认情况要统一,已选择,还是未选。
    5、日期控件
      1)图标、控件颜色、样式统一;
      2)点击控件、文本框均应弹出日期选择框。
    6、下拉选择框
      1)默认是第一个选项,还是提示请选择一个。

    7、提示信息
      1)静态文字与它的提示信息一致性,例如静态文字为‘ID’,出错信息显示‘用户ID’;
      2)空值时,出错信息需要统一,例如可以采用“静态文字”+不能为空;
      3)出现录入错误时,例如可以统一采用“静态文字”+格式不符合要求;
      4)提示信息标点符号是否标识; 点击上一步,返回的页面上不应残留出错信息;
      5)静态提示信息,在录入框右侧,应有录入信息的相应要求的提示文字,达到方便操作的目的;
      6)必输项提示信息,必输项提示信息采用统一的标志。

    导航测试 -- 死导航、乱导航、操作复杂等
    链接测试 -- 发现404错误
    8、死链接
      1)避免死链接情况,执行完相应操作应有返回按钮,返回到相应页面;例如:操作成功后,进入成功提示信息页面,但页面没有返回按钮,无法及时进入操作之前的页
    面。
    9、IE的后退
       退出系统,无论直接关闭浏览器或点击后退键,退出都不应再返回系统;
    10、分辨率
      1)页面文字显示、样式等要支持常见分辨率,例如CRT显示器的1024*768,LCD的1280*1024。

    11、重复提交问题
        功能操作完成后,鼠标右键点击所在页面,选择弹出菜单的刷新功能,容易出现重复提交问题。
        功能操作完成后,通过IE的后退键进行重复操作,容易出现重复提交问题。
        某功能键反应时间延迟时(限制客户端网络带宽等方式来模拟实现),在短时间内重复点击该功能键,容易出现重复提交问题;

    安全性测试 -- 别被人黑掉
    12、防止SQL注入式攻击
      1)不允许任何直接在jsp页面调用SQL语句,这种情况常发生在系统的后期修改中。
    13、用户非授权页面访问
      1)每个页面都需要安全验证,防止用户通过直接拷贝具体页面地址等方式,访问系统;
      2)页面过期的时间设定,用户在设定时间内未进行任何操作,不允许访问系统。

    压力测试 -- 得到服务器的负载。

  • test case 心得(转)

    2009-12-09 11:03:07

    好久没有写用例了,这次项目的用例感觉写的不怎么好,考虑也不是很全面

    通过这次我觉得用例还是要平时多写写多看看,多总结 ,也让自己感受到了以往写的用例好像只是个表面文章,因为上级不是很重视,执行基本也是我来做,所以写的都不够好 ,今天在看资料中,看到一位前辈对用例设计写出了他的心得

    值得学习 ,转载过来 需要多看看,用别人的心得指导自己学习, 总结

    测试案例(test case)编写心得
    文章出处: 作者:中国风 发布时间:2007-04-28

    测试的过程应该严格遵循一定的过程与计划,这样的过程体现于测试案例中,测试者可以只按照测试案例便可以找出该软件的问题所在,而不需要对软件的需求有深入的了解,恰恰这个测试案例的编写人却需要很深入了解软件需求设计架构,可是能够编写好的测试案例的是一个测试员的基本素质。总结几年风雨兼程的测试历程,有以下的一些肤浅体会,与大家一起交流:
    编写原则:FVT(功能测试)-- 涵盖需求,细到API(), 综合业务考虑,case数不在多,而在精,尽大地避免重复。
    SVT(系统测试)-- 全面考虑,接口部分要细,case数不在多,而要涵盖所有可能的组合
    1、熟悉需求,了解业务
    2、熟悉设计
    3、结合需求与设计进行模块划分
    4、根据模块的侧重点来定位case数目的比例
    5、case要写的足够详细,尽量做到任何人拿着case能够完成测试
    6、测试代码书写命名规范,代码注释,尽量与case挂钩
    我们的软件需要保证质量,规范这个流程的过程是必不可少的,希望我们能够共同提高,希望我们的测试队伍越来越壮大!! ^_^

  • Facebook 最有前景的25 个apps

    2009-12-08 14:44:13


    Facebook上最有前景的25个应用


     
    最近在做个facebook 的application ,看到了里面一些比较好的 应用,   以后玩玩
    前一段时间Facebook举办了一个应用竞赛,并通过其fbFund基金为软件开发商提供资金扶持,排名前五位的可以获得25万美元。
        这次竞赛事实上是Facebook梳理其应用平台发展方向的一次尝试。有超过600支开发团队参与了此次竞赛,而最终遴选了其中的25个应用供大家投票,投票结果将于11月底公布。
        下面分别介绍一下这些应用:
     
    BarTab
    向一个朋友送饮料,Facebook! BarTab允许用户向朋友送真的饮料,价格仅1美元。饮料将可以在合作酒吧或饭店通过用户手机兑换。
     
    Black Drumm
    它帮助用户和好友组织各种活动。无论是参加本地的音乐会,还是去乞力马扎罗山徒步旅行,Black Drumm可以无缝地协调线下的活动,不再需要一长串email或Excel文件来维护这些信息。
     
    Bottle Rocket
    帮助用户挑选一瓶完美无缺的红酒。用户可以与Facebook的好友们比较各种酒,Bottle Rocket整理分析各项来自好友的评价数据并给出排名,并给出推荐建议。
     
    Check My Campus
    这个应用可让大学生分享校园生活照片、视频,并让其高中同学们看看不同大学的内部生活状况。
     
    Daikon
    Daikon可以让用户在不写一行代码的情况下构建出有价值的Facebook应用,尤其是那些增加乐趣和改进Facebook体验的应用程序。
     
    FaithFeed
    用户可以利用FaithFeed和朋友分享心灵旅程:赞美、祈祷、以及上帝赐予的信念。好友之间可以保持交流沟通,彼此扶持。
     
    The Game Creators
    这个应用创建了一个“社交走廊”应用,用户可以在此获得灵感,并制作自己的在facebook运行的游戏,还可以把这些游戏当做礼物赠送给好友。
     
    Good Call Sports
    Good Call Football是一款由Good Call Sports公司开发的应用。用户可以藉此在电视转播的足球赛中预测进攻套路,同时,可以和全国各地的球迷比较其预测的准确性。
     
    GroupCard
    当群组中出现某些庆祝事宜(例如某人的生日)时,GroupCard程序可以向每个成员发送一个贺卡,并帮助组织者召集群组成员在同一张可打印的贺卡上签名。当庆祝日期来临,便把贺卡及时发出。每个好友均可向贺卡添加留言、照片、音频。
     
    HitGrab
    MouseHunt是HitGrab公司开发的一款大型游戏的一部分。玩家扮演由国王雇佣的赏金猎手,抓捕王国内滋生的老鼠。每抓到一个老鼠,用户可以得到一份犒赏,从而向成为这片土地上最好的MouseHunter的目标又迈进了一步。
     
    Infrablue Technology
    Twenty20 Cricket是Infrablue Technology公司为全球的板球迷们开发的一款应用。通过在线的板球经理游戏分享激情,用户可以训练自己的球员组成一支球队,并向好友或其他球队经理发出挑战,从而竞争成为最佳球队。
     
    Kontagent
    Kontagent是一个面向SNS应用开发者的社交网络数据分析工具,可以对SNS应用的粘合度、病毒式传播渠道等等数据进行深入的分析,并以可视化的界面展示出来。
     
    Koofers
    它帮助学生创建和分享上课的信息,包括各种考试、测验、笔记等等,查看每门课和老师的评价,并从其他选修过同样课程的同学那里获得帮助。
     
    Newsbrane
    Newsbrane向用户推荐新闻故事,并根据用户的兴趣推荐其他在线的内容,通过用户的投票打分,Newsbrane可以了解用户的兴趣所在。
     
    Party Buzz
    在平时,朋友圈会发生哪些事情呢?Party Buzz就是这样一个信息源,它可以提醒朋友的活动、讨论周末计划,找到最好的party。尤其是,Party Buzz可以帮助了解聚会成员的年龄、男女比例,单身人士的数量。
     
    Pongr
    这是一个手机的比价应用,可以让用户在附近的商店中在线比较商品价格,并在购物时与Facebook的好友分享这些信息。Pongr支持文本和图像识别,从而是购物更有乐趣。
     
    Professional Profile
    它将一个用户现有的社交联系提升为一个个人职业发展网络。
     
    RealGifts
    RealGifts也是一个社交礼物赠送应用程序,可以通过它向用户发送真正的礼物,而无需知道好友的收货地址。通过将虚拟礼物和电子商务相结合,RealGifts是向朋友送礼的一条快捷途径。
     
    Socialfly
    Socialfly帮助用户追踪与好友的交流信息,写下自己对朋友的评语,提醒自己与好友聊天,或一起制定各种有趣活动的计划。Socialfly可同时运行在Facebook和iPhone.
     
    Teach the People
    Teach the People是一个开放的教育平台。老师可以在此分享专业知识,吸引更多的听众,并从中赚钱。学生则可以接触到高质量 、低成本的课程.
     
    Thankster
    Thankster帮助你向真实生活中的某人表达感激之情。不管是通过是Facebook、手机、或者其他联系工具,你可以向身边的发送数字奖品,以感谢他们在平凡生活中为你付出的点点滴滴。
     
    TrailBehind
    TrailBehind帮助用户去寻找伟大的徒步圣地。驴友们可以研究地图,安排行程,写徒步日志,并且合作编制更好的户外运动地图。
     
    vDream Racing
    vDream也许应该是亨利.福特喜欢的应用。vDream可以向用户展示真实的汽车、真实的零件、真实的性能指标,并且和汽车爱好者们联系并互相攀比。
     
    WedSnap
    WedSnap公司开发了一个婚礼百科全书式的应用:Weddingbook,新娘、新郎可以从Weddingbook得到婚礼筹备的各项建议、支持、和灵感.
     
    WildFire
    Wildfire可以是消费者发现、共享、参与各种互动的市场营销活动,例如竞赛、抽奖、购物券等等,从而是公司可以轻易地举办与Facebook相结合的各类营销活动。
     
  • QTP识别对象和操作原理

    2009-12-07 16:08:41

    最近准备用qtp 来做项目的测试,收藏些东东先看看

    一、识别对象的原理QTP里的对象有两个概念,一个是Test Object(简称TO),一个是Runtime Object(简称RO)。
     
      这两个概念从字面上不大好理解,也容易混淆。
     
      但从实际作用上来看,应该说TO就是是仓库文件里定义的仓库对象,RO是被测试软件的实际对象。
     
      QTP识别对象,一般是要求先在对象仓库文件里定义仓库对象,里面存有实际对象的特征属性的值。
    然后在运行的时候,QTP会根据脚本里的对象名字,在对象仓库里找到对应的仓库对象,接着根据仓库对象的特征属性描述,在被测试软件里搜索找到相匹配的实际对象,最后就可以对实际对象进行操作了。
     
      仓库对象TO一般在录制/编写脚本时加入仓库文件,它不仅可以在录制编写时进行修改,也可以在运行过程中进行动态修改,以匹配实际对象。
     
      和TO、RO相关的几个函数有:GetTOProperty():取得仓库对象的某个属性的值GetTOProperties():取得仓库对象的所有属性的值SetTOProperty():设置仓库对象的某个属性的值GetROProperty():取得实际对象的某个属性的值理解了TO的含义,你就可以自由的用SetTOProperty()定义TO,以灵活的操作RO比如有个测试任务,窗口上有很多待检查的记录,每条记录右边都有一个Check按钮,用来检查各条记录。
     
      记录个数不定,所以Check按钮个数也就不定,只有一个Edit显示记录个数。
     
      我们要对每条记录进行检查,也就是要点击每个Check按钮。

    但是Check按钮个数不定,不好录制,而且个数可能也很多(上百个),即使能一一录制,那也很麻烦。
     
      那我有一个好办法,只录制一个按钮对象,它设有两个特征属性 label=OK, index=0然后用下面的脚本,就可以完成测试buttonNum = CInt(JavaWindow("Test")。JavaEdit("Record Num")。GetROProperty("value"))
     
      For buttonIndex = 0 to buttonNum - 1 JavaWindow("Test")。JavaButton("Check")。SetTOProperty("index", buttonIndex)
     
      JavaWindow("Test")。JavaButton("Check")。Click Next或者窗口上有New、Modify、Delete、Check等好几个按钮,要把这几个按钮一一按过去我在对象仓库里只设置一个按钮对象AnyButton,label特征属性值填任意值,然后用下面脚本执行测试JavaWindow("Test")。JavaButton("AnyButton")。SetTOProperty("label", "New")
     
      JavaWindow("Test")。JavaButton("AnyButton")。Click JavaWindow("Test")。JavaButton("AnyButton")。SetTOProperty("label", "Modify")
     
      JavaWindow("Test")。JavaButton("AnyButton")。Click JavaWindow("Test")。JavaButton("AnyButton")。SetTOProperty("label", "Delete")
     
      JavaWindow("Test")。JavaButton("AnyButton")。Click JavaWindow("Test")。JavaButton("AnyButton")。SetTOProperty("label", "Check")
     
      JavaWindow("Test")。JavaButton("AnyButton")。Click另外,QTP还支持脚本描述的方法来定义和访问对象,即不需要在仓库里定义,也能访问和操作实际对象如上面两个任务,可以如下实现1. 不需要在仓库里定义Check按钮对象,直接用下面脚本来实现测试buttonNum = CInt(JavaWindow("Test")。JavaEdit("Record Num")。GetROProperty("value"))
     
      For buttonIndex = 0 to buttonNum - 1 JavaWindow("Test")。JavaButton("label:=Check", "index:="+CStr(buttonIndex))。Click Next 2. 不需要在仓库里定义New、Modify、Delete、Check按钮对象,直接用下面脚本来实现测试JavaWindow("Test")。JavaButton("label:=New")。Click JavaWindow("Test")。JavaButton("label:=Modify")。Click JavaWindow("Test")。JavaButton("label:=Delete")。Click JavaWindow("Test")。JavaButton("label:=Check")。Click

      二、QTP操作对象的原理QTP为用户提供了两种操作对象的接口,一种就是对象的封装接口,另一种是对象的自身接口。
     
      对象的自身接口是对象控件本身的接口,只要做过软件开发,使用过控件的人应该很清楚。
     
      对象的封装接口是QTP为对象封装的另一层接口,它是QTP通过调用对象的自身接口来实现的。
     
      两种接口的脚本书写格式的差别在于:自身接口需要在对象名后面加object再加属性名或方法名,封装接口就不用在对象名后面加object.
    具体格式如下:对实际对象的操作:对象。object.自身属性对象。object.自身方法()
     
      对象。GetROProperty("封装属性")
     
      对象。封装方法()
     
      对仓库对象的操作:对象。GetTOProperty("封装属性")
     
      对象。GetTOProperties()      ‘获取所有封装属性的值对象。SetTOProperty("封装属性", "封装属性值")
     
      比如操作JavaEdit对象,通过QTP封装的封装接口,脚本如下:设置JavaEdit的内容:JavaDialog("Add NE")。JavaEdit("NE Name")。Set "NE1"读取JavaEdit的内容:msgbox JavaDialog("Add NE")。JavaEdit("NE Name")。GetROProperty("value")

    如果通过JavaEdit的自身接口,脚本如下:设置JavaEdit的内容:JavaDialog("Add NE")。JavaEdit("NE Name")。object.setText("NE1")
     
      读取JavaEdit的内容:Msgbox JavaDialog("Add NE")。JavaEdit("NE Name")。object.getText()
     
      QTP执行JavaEdit()。Set语句时,是通过执行JavaEdit()。object.setText()来实现的。
     
      QTP执行JavaEdit()。GetROProperty("value"),是通过执行JavaEdit()。object.getText()来实现的。
     
      JavaEdit对象的封装接口Set()和GetROProperty("value"),是QTP封装JavaEdit对象的自身接口setText()和getText()而得来的。

    对象的封装接口是QTP使用的缺省接口,我们录制出来的脚本都是使用封装接口,大家用的也都是封装接口。
     
      但是封装接口不如自身接口丰富,因为QTP只是封装了部分常用的自身接口嘛。
     
      所以我们在需要时,可以绕过封装接口,直接调用对象的自身接口。
     
      不过有些自身接口不够稳定,在实践中偶尔会出现问题,但是概率很少。
     
      封装接口有相应功能的话,就尽量用封装接口吧!
     
      理解了封装接口和自身接口的原理,我们就可以更加灵活的操作对象了。
     
      但是我们怎么知道对象都有哪些封装接口和自身接口呢?
     
      其实很简单,用对象查看器(Object Spy)查看对象,在查看窗口里有列出这些接口,包括属性和方法。
     
      窗口中间有选择栏让你选择Run-time Object或者Test Object,当你选择Runtime Object时,它显示的就是对象的自身接口(自身的属性和方法)
     
      当你选择Test Object时,它显示的就是对象的封装接口(封装的属性和方法)
     
      (注意:GetROProperty访问的是实际对象的封装接口,GetTOProperty访问的是仓库对象的封装接口,两者访问的都是对象的封装接口,即Object Spy窗口里选Test Object时显示的属性。
     
      不要以为GetROProperty访问的是自身接口,即Object Spy窗口里选Run-time Object时显示的属性。
     
      QTP里的Test Object/Run-time Object的概念太容易让人混淆了!
     
      它既用来区分仓库对象和实际对象,又用来区分对象的封装接口和自身接口。)



  • 性能测试的理解

    2009-12-03 23:25:33

    今天在写测试计划中,好多术语, 虽然以前看过也理解了,但今天看这那么多专业术语,一下子楞了

    然后在群里,发起个讨论话题,大家的发言都很积极

    将讨论中的一些话题跟想象的理解解释法出来,大家在看的过程中对还有什么更好的理解可以继续讨论

     

    路人甲
    容量测试  通过性能测试,如果找到了系统的极限或苛刻的环境中系统的性能表现,在一定的程度上,就完成了负载测试和容量测试。容量还可以看作系统性能指标中一个特定环境下的一个特定性能指标,即设定的界限或极限值。
      容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行。容量测试还将确定测试对象在给定时间内能够持续处理的最大负载或工作量。软件容量的测试能让软件开发商或用户了解该软件系统的承载能力或提供服务的能力,如某个电子商务网站所能承受的、同时进行交易或结算的在线用户数。知道了系统的实际容量,如是不能满足设计要求,就应该寻求新的技术解决方案,以提高系统的容量。有了对软件负载的准确预测,不仅能对软件系统在实际使用中的性能状况充满信心,同时也可以帮助用户经济地规划应用系统,优化系统的部署。
    路人甲 12:49:32
    百科的解释
    ermine 12:50:05
    不认同。。。
    ermine(252135287) 12:51:40
    呵呵,兴趣来了,我也去百科查查
    路人饼饼( 12:54:12
    看下我的理解正确不好不?
    系统容量是固定的   然后通过测试看系统所能承受的最大负载量
    望月晨阳( 12:58:03
    这个理解可以吗大家
     
    ermine( 12:58:52
    不晓得,每个人理解不同吧,呵呵。
    路人(24721015) 12:59:19
    可以这么来理解
    路人甲( 12:59:44
    不是通过测试得到最大负载量,而是在系统能够确定的最大容量时各项指标是否正常
    ermine( 12:59:55

    路人( 13:00:36
    不是这样的
    望月晨阳( 13:00:54
     那是压力吧
    路人(24721015) 13:00:56
    是各项指标正常的最大负载量
    路人(24721015) 13:01:07
    这才是容量测试
    流星ダ雨♂☆(469591681) 13:01:17
    恩 
    ermine(252135287) 13:01:20
    所以。。。每个人理解不一样
    望月晨阳(306860823) 13:01:23
    系统所能承受的最大负载 ,看系统运行是否还能正常运行 
    流星ダ雨♂☆(469591681) 13:01:30
    负载测试侧重的是负载量
    路人甲(83290478) 13:01:49
    容量测试的目的是通过测试预先分析出反映软件系统应用特征的某项指标的极限值(如最大并发用户数、数据库记录数等),系统在其极限状态下没有出现任何软件故障或还能保持主要功能正常运行

    关于性能测试、压力测试和容量测试概念的,很形象。

    有一个农夫决定买一匹骡子,他认为这个骡子至少得能扛动3袋大米,他才会决定买这匹骡子(这相当于用户提出的性能需求)。结果他来到农贸集市上,试了好几头骡子,都不合适,最后终于有一头骡子能够比较轻松的扛动这3袋大米,而且还潇洒的走了几步(这相当于于性能测试通过)。然后农夫高高兴兴地牵着这头骡子回家,而且给它扛了4袋大米(相当于让系统超负荷运行),因为他跑了太远才买到了这匹不可多得的骡子,他想看看它到底能有多强,所以农夫决定,让这匹骡子就扛着这四袋大米走回家试试看,这匹骡子真的很厉害,刚开始的时候还一颠一跑的,可是后来实在路太远了,骡子越驮越费劲(在超负荷情况下检验系统能正常运行多久,这相当于压力测试),快到家的时候,已经是走两步歇一步了。终于到家了,农夫非常自豪地叫出自己的老婆,说:“老婆子,快来看看,看我买到了一头多么厉害的骡子啊!”,老婆出来后,农夫把他和骡子在一路上的经历都告诉了老太婆,谁知这个老太婆却说:“你真蠢,这么大老远的路,也不让骡子驮着你,竟然和这头傻骡子一样走回来!”,农夫听了,觉得非常后悔,说:“那好吧,既然在路上它没有驮我,那就让它现在补上,也算是对我的补偿。”,骡子还没有反应过来,就看那老农夫一个箭步,跳到了骡子背上(这相当于容量测试的极限点),可怜的骡子,无论如何也不会想到,这狠心的农夫竟然在它走了这么久之后,不但没有帮它卸掉身上的重担,更没有给它喝口水,竟然变本加厉的跳到了它那本已弯曲的背上。可怜的骡子啊,就这么一命呜乎了!就看见那个骡子、农夫和4袋麦子一起轰然倒地。(相当于已经到了系统的最大拐点,造成了系统瘫痪,无法使用,容量测试结束)。
     
    流星ダ雨♂☆(469591681) 13:03:55
    容量和 负载不是一个概念?
    路人甲(83290478) 13:03:59
    看看这个吧
    ermine(252135287) 13:04:00
    。。。中午没睡觉。。
    望月晨阳(306860823) 13:04:05
    我认为不是的
    流星ダ雨♂☆(469591681) 13:04:26
    只是叫法不同而已
    路人(24721015) 13:04:34
    不一样的
    路人(24721015) 13:04:49
    容量和 负载不是一个概
    路人(24721015) 13:05:08
    负载测试就像我们跑步:
    背10公斤的东西跑多少秒
    背20公斤的东西跑多少秒
    背50公斤的东西跑多少秒
    等等
    路人(24721015) 13:05:32
    容量是为了找出系统的最大数据容量,面向数据的
    流星ダ雨♂☆(469591681) 13:05:31
    负载测试
    我们都已经在性能测试调试的过程中,见识过负载测试了。在那种环境中,它意味着通过自动化工具来持续对系统增加负载。但对于WEB应用来讲,负载则是并发用户或者HTTP连接的数量。
    术语“负载测试”在测试文献资料中通常都被定义为给被测系统加上它所能操作的最大任务数的过程。负载测试有时也会被称为“容量测试”,或者“耐久性测试/持久性测试”*
     
    ermine(252135287) 13:05:34
    负载是动态的看系统的各指标,反映情况,
    容量是给一个点,看系统能否正常运行
    路人甲(83290478) 13:06:08
    我和ermine已经达成共识了,嘿嘿
    路人甲(83290478) 13:10:32
    陈能技的连载:(十)软件测试技术——软件的容量测试是这么写的:说明:大数据容量的测试是指软件系统在处理大数据量的时候,或者是加载了大批量数据时的性能表现。
    路人甲(83290478) 13:10:52
    大数据容量测试的关键是模拟大批量的用户业务数据,因此首先要估算好用户若干年后可能出现的最大数据量。
     
    ermine(252135287) 13:10:59
    还是路人讲的跑步,需求是被100公斤要跑50秒。
    背10公斤的东西跑多少秒
    背20公斤的东西跑多少秒
    背50公斤的东西跑多少秒
    等等,这个是负载。可以根据负载情况,得到一个分析曲线图。

    直接背上100公斤,看能不能跑50秒,就是容量
     
    路人甲(83290478) 13:11:31
    在能够确定的一个极限值的情况下,检查系统各功能是否正常
    ermine(252135287) 13:13:20
    100公斤继续背东西,看什么时候人昏倒了,倒下不能跑了,就是压力

  • 喝酒与测试

    2009-12-03 20:55:32

    喝酒与测试
    啊,人到齐了,酒席开始了。
    你先一个人喝了一小口,这叫单元测试。
    你跟旁边的人说哥们咱们随意,这叫交叉测试。
    你跟几个经常一起玩的说兄弟几个喝一杯,这叫集成测试。
    但是他说不行,这杯要干了,这叫压力测试。
    喝完旁边的兄弟桌回来再跟同桌的喝,这叫回归测试。  
    于是你说那就大家一起来吧,这叫内部测试。
    这个时候领导向全场举杯了,这叫公开测试。
    在测试过程中终于有人受不了了
    你突然跑向厕所,这叫捕获异常。
    你在厕所吐了,反而觉得状态不错,这叫内存泄露。
    你在台面上吐了,觉得很惭愧,这叫程序异常。
    你在领导面前吐了,觉得很害怕,这叫系统崩溃
  • 收集测试计划,用例

    2009-12-02 23:36:31

    收集web测试详细的测试计划,测试用例的设计 以及qtp lr 工具的使用 等等

    email: aqiao211@hotmail.com

     

  • 石文

    2009-11-27 21:26:13

    有人破解么

  • (转)web 性能的测试

    2009-11-27 17:47:12

    界面层 业务层,数据层

    从测试来来上,可分为:发现问题, 分析问题, 定位问题, 再到开发解决问题

    如何来做好这个测呢?

    首先需要对软件/系统属性 ,必须有需求文档, 性能需求说明书,明确测试目标,

    通用指标(指Web应用服务器、数据库服务器必需测试项):
    * ProcessorTime: 指服务器CPU占用率,一般 平均达到70%时,服务就接近饱和;
    * Memory Available Mbyte :   可用内存数,如果测试时发现内存有变化情况也要注意,如果是内存泄露则比较严重;
    * Physicsdisk Time  : 物理磁盘读写时间情况;
            Web服务器指标:
    * Avg Rps: 平均每秒钟响应次数= 总请求时间 / 秒数;
    * Avg time to last byte per terstion (mstes):平均每秒业务角本的迭代次数 ,有人会把这两者混淆;
    * Successful Rounds:成功的请求;
    * Failed  Rounds :失败的请求;
    * Successful  Hits :成功的点击次数;
    * Failed  Hits :失败的点击次数;
    * Hits Per Second :每秒点击次数;
    * Successful  Hits Per Second :每秒成功的点击次数;
    * Failed  Hits Per Second :每秒失败的点击次数;
    * Attempted  Connections :尝试链接数;
            数据库服务器指标:
    * User 0  Connections :用户连接数,也就是数据库的连接数量;
    * Number of deadlocks:数据库死锁;
    * Butter Cache hit :数据库Cache的命中情况;  
    上面的指标只是一些通用的指标,起到抛砖引玉的作用,对于不同的应用你还必需作相应的调整,比如程序使用的是.NET技术的,则必需加入一些针对性的测试指标。对于这些指标的详细了解,你可以参考Windows 下面的 SystemMonitor的帮助与LoadRunner、ACT的帮助。对于发现问题,指标的设置非常重要,它会帮你定性的发现一些错误。对于定性的压力测试我就不做过多的分析,工具很多,流行的主要有LoadRunner,ACT,WAS,WebLoad,各个工具有它的使用范围,其中我各个认为LoadRunner 最全面,它提供了多种协议的支持,对复杂的压力测试都可以胜任,WAS与ACT则对微软的技术支持的比较好,其中WAS支持分布式机群测试,ACT则是与.NET集成比较好,支持ViewState (.NET 下控件缓存的支持) 的测试,当时我用时,其它测试工具还不支持,现在应该支持了吧,呵呵。在这一阶段测试你要不断的跟据系数的测试目标进行变化,一开始由于系统过于庞大,所以我们要分成若干个子系统,各个子系统的性能目标必需明确,主要是并发指标定一个阀值,同时设定一些与系统相关的测试参数,应用服务器,数据库服务器都要有,对达不到阀值的与一些通用参数有问题的子系统进行深入分析。比如它的并发达不到你的要求,证明子系统性能有问题,或是数据库用户连接过高,程序没有释放用户连接等等。这个我们要对子系统进行详细测试,由于B/S 结构下,图片的请求对性能的影响较大,所以我们对子系统测试时要分两个部分进行,一、非程序部分,即图片等等;二、应用程序本身。通过事务或函数的分离,可以把这两块实现单独的测试,具体做法参考各个工具的手册,我这里就不做说明。对子系统的测试参数的设置要求则更高,它有助你后面精确的定位问题,比如对异常,死锁,网络流量等等前面没有注意到的情况的增加,同时你要注意增加测试参数的收集对系统的性能影响比较大,所以一般不要超过10个,刚刚介绍的整体的性能测试指标也不要增加很多,这样影响会小一点。最后在这一阶段要说明的是数据库的数据量会很大程度的影响性能,所以要根据前面的性能需求说明书向数据库中模拟相应的数据量,来进行测试,这样才有更高的可信度。
            上面所说的是对问题的发现,下面就是分析问题原因,这一步的要求比较高,一般由测试人员与程序员配合完成,当然如果你有相当的开发经验,再做这方面的测试,就更为难得。下面我们说说如何精确定位问题,出现问题的可能性可能有很多种,大致分以下几种,一、性能达不到目标;二、性能达到目标,但有一些其它的问题,比如异常,死锁,缓存命中过低,网络流量较大;三、服务器稳定性的问题,比如内存泄漏……。要发现这些问题起马的要求要有一款使用的比较称心的性能分析与优化工具,比如微软的.NET下就有自己开发的工具,对Borland的Java开发工具中也有类似的工具,但我个人认为更好的工具是Rose下的Purify与Quantify,主要是他对.net 与java ,C++都有支持,而且分析效果特别专业,我们先了解一下Rational Purify,  Rational Purify 能自动找出Visual C/C++ 和Java 代码中与内存有关的错误,确保整个应用程序的质量和可靠性。在查找典型的Visual C/C++ 程序中的传统内存访问错误,以及Java,C# 代码中与垃圾内存收集相关的错误方面;Rational Quantity 则是一款针对函数级的性能分析利器,使用它你可以从图形化的界面中得到函数调用的时间,百分比与次数,以及子函数所占时间,使你可以更快的定位性能瓶颈。
    我们先说性能优化与异常的处理,性能优化有一个原则,即用时间比例最大的进行优化,效果才最明显,比如有个函数它的执行时间为30秒,如果你优化了一百倍则执行时间为0.3秒,提升了29.7秒,而如果它的执行时间为0.3秒,优化后为0.003秒,实际提升了0.297秒,提升的效果并不明显,而且写过程序的人都知道,后者性能优化的代价更大。在性能优化的过程中,一般是先数据库,后程序,因为数据库的优化不需要修改程序,修改的风险很小。但如何才能确定是数据库的问题,这就需要技巧,在使用Quantity时,你一路分析下去,大多数最终会发现,是数据库查询函数占用时间比较大, 比如什么,SqlCmd.ExecuteNoQuery等等数据库执行函数,这时你就需要分析数据库,呵呵。数据库的分析原则是先索引,后存储过程,最后表结构视图的优化,索引的优化是最简单也是通常最有效的方法,如果合理的使用会带来意想不到不到的效果。在这里我要给大家简单的介绍一下我的最爱,SQLProfile,SQL查询分析器,Precise,SQLProfile是一个SQL语句跟踪器,可以跟踪程序流程使用的SQL语句与存储过程,结合查询分析器对SQL的分析,可以对索引的优化做出很好的判断,但索引也不是万能的,在增删改较多的表,索引过多会引起这些操作的性能下降,所以判断还是需要一定的经验。 同时针对用户使用频度最高的SQL进行优化也是最行之有效的,这时我则需要Precise,它可以观测某一个较长时间内的SQL语句的执行情况。数据库优化的潜能挖光后,如果还是达不到性能要求或是还有问题,则要从程序来进行优化,这是程序员做的事,测试人员要做的,就是告诉他们,哪个函数执行过多引起了性能下降,比如异常过多,某个循环过多,或是DCOM调用过多等等,但说服程序员也是一件不容易的事,你要在这一阶段做的出色一定要有几年的编程经验,并且要让程序员感到听你的性能会有提升,这是一件很不容易的事情哦。
    内存的分析,一般是一个长期分析的过程,要做好不容易,首先要有长期奋战的准备,其次内存泄漏的分析最好是放在单元测试之中同步进行,而不是要等到最后再去发现问题,当然出了问题也只好面对,一般这类问题都是在服务器运行了很久才暴露出来,一旦发现问题后,则需要定位问题,分析的原则采用子系统相互独立运行,找到最小问题的系统集,或是借助内存分析工具观察内存对象情况,初步定位问题,再用Purify进行运行时分析,通常C++ 内存问题比较多,Java与.NET比较少,一般由GC不合理引起。C++的内存错误就比较多了,主要常见的有:
    1、        Array Bounds Read (ABR) :数组越界读
    2、        Array Bounds Write (ABW):数组越界写
    3、        Beyond stack Read (BSR):堆栈越界读
    4、        Free Memory Read(FMR):空闲内存读
    5、        Invalid pointer Read(IPR):非法指针阅读
    6、        Null Pointer Read(NPR):  空指针阅读
    7、        Uninitialized Memory Read(UMR):未初始化内存读写
    8、        Memory Leak:内存泄漏
    注:如果需要更多的信息,可以参见Purify的帮助信息。
    顺便提一句,为什么我要说单元测试时做这个比较好,由于单元测试针对的是单一功能,这时结合单元测试案例做内存分析会更快的定位问题,同时由于问题较早的发现,则后期的风险则会减少,当然如果结合代码覆盖工具PureCoverage 来做就更完美了,呵呵。
            完成此文,已经是凌晨了,也算是回答了前一段时间提出要进行B/S结构测试又无从下手的朋友的要求,在这里要向大家表达一下歉意,由于工作比较忙,难免对大家的来信有所疏漏,请大家原谅。此文的要求的读者,对测试工具有所了解,希望进入更深测试的同仁,希望我的文章给大家带来帮助,同时也借此文表达一些曾经帮助过我的朋友与同事。
           
    注:本篇只是对B/S应用的测试过程作一个整体的描述,对某一个阶段使用的工具只是作大概的介绍,你也可使用你比较熟悉的工具达到相同的目标。

441/3123>
Open Toolbar