belie的个人空间_首页_51Testing软件测试网 - powered by X-Space

我的最新日志

  • Windows系统实用工具集!

    2008-7-04

    Windows系统实用工具集

    Windows NT | 2K |XP | 2K3实用工具集
    Windows系统实用工具集

    Windows NT | 2K |XP | 2K3实用工具集

    【监视类】

    CPUMon v2.0

    CPU性能监视工具。可以获取CPU计数器信息。该版本集成了Perfmon。
    DebugView v4.31
    截取Win32设备驱动程序发出的消息,允许通过本机或网络查看和录制调试信息而不打开一个活动的调试器。
    Diskmon v2.01
    显示硬盘的活动信息。
    Filemon v6.12
    实时监视操作系统中活动的文件。
    Handle v2.20
    显示进程及其打开的文件等信息。
    ListDLLs v2.23
    列出当前系统加载的所有dll文件、调用它的执行程序及dll版本路径等详细信息。
    NTFSInfo v1.0
    查看NTFS卷的详细信息,包括大小、文件分配表的大小起止位置,还有元数据文件的大小等。
    PMon v1.0
    监视进程的创建、删除,也包括显示多CPU机器或checked kernel 机器上的上下文交换信息。
    Portmon v3.02
    端口监视工具,监视端口收发的信息等。
    Process Explorer v8.52
    查看进程所打开的文件,注册表和其他对象,并显示加载了那些dll。
    PsTools v2.1
    包含一套命令行工具,包括显示本机或远程机器上运行的进程,在远程机器上运行进程,重启机器,记录日志等。
    Regmon v6.12
    实时监视注册表的活动。
    TCPView v2.34
    监视本机TCP和UDP协议的活动情况,并显示使用该协议的进程,包括了dos版本。
    TDImon v1.01
    通过网络API实时监视TCP和UDP协议的活动情况。
    Tokenmon v1.01
    令牌监视器,监视与信息安全相关的活动,比如登录,退出等。
    Winobj v2.13
    对象命令空间管理器。增强了用户界面,显示更多对象类型,并集成了NT的本地安全设置。
    【性能工具类】

    CacheSet v1.0
    缓存设置器。设置NT使用的缓存空间大小。
    Contig v1.51
    可以使文件变的连续,提高访问速度。
    Frob v1.6a
    设置优先相应前台程序还是后台服务。
    PageDefrag v2.3
    磁盘文件和注册表整理。
    【实用工具类】

    AccessEnum v1.2
    可以查看哪个用户在访问本机上目录、文件和注册表。用此工具可以找出系统访问的漏洞。
    Autoruns v6.0
    查看随系统一起启动的程序,dll及服务等等信息。
    BgInfo v4.08
    生成本机的一些重要信息(ip地址、机器名、网卡等)并作为桌面的背景显示。
    Ctrl2cap v2.0
    按键功能转换。
    Diskview v2.0
    磁盘分析,可以查看文件在硬盘上存储的具体位置。
    FAT32 for Windows NT 4.0 v1.01
    制作双重启动的工具,可以使用fat32分区。
    Fundelete v2.02
    文件恢复工具,可以恢复从回收站中删除的文件或者被程序删除的文件。
    LDMDump v1.02
    把磁盘上数据库中逻辑驱动器的内容保存到文件中,该文件描述了Windows 2000的动态磁盘信息。

    LiveKd v2.11
    使用Microsoft内核调试器检查系统。
    NewSID v4.05
    生成新的SID。
    NTRecover v1.0
    NT系统的数据救援工具,可以通过正常的操作系统来访问一个崩溃的NT系统,然后可以使用NT的命令来抢救数据。共享版只能读取。
    NTFSCHK v1.0
    把NT4格式转换为NT5格式。
    NTFSDOS v3.02
    通过dos系统只读访问NTFS分区。
    NTFSDOS Professional v4.01
    可以在dos中完全访问NTFS分区。共享版只能读取。
    NTFSFlp v1.0
    创建可访问NTFS分区的软盘。
    NTFS for Windows 98 v2.0 Ready-Only
    95/98系统下读取NTFS的工具。
    PsTools v2.1
    包含一套命令行工具,包括显示本机或远程机器上运行的进程,在远程机器上运行进程,重启机器,记录日志等。
    Remote Recover v2.0
    远程救援工具。共享版只能读取。
    SDelete v1.2
    安全地覆盖敏感的文件。
    ShareEnum v1.51
    列举出网络中共享的文件夹并查看安全设置减少安全漏洞。
    Sync v2.1
    强制系统保存所有打开的文件。
    VolumeID v2.0
    设置磁盘的ID。
    【其他类工具】

    Bluescreen v3.2
    恶作剧的屏保。
    Miscellaneous
    一系列小工具,许多都附带源码。AdRestore, Junction, DiskExt, EFSDump, Streams, UpTime, VolumeId, Sync, Sigcheck, AutoLogon,

    HostName, Strings.等。
    PsTools v2.1
    包含一套命令行工具,包括显示本机或远程机器上运行的进程,在远程机器上运行进程,重启机器,记录日志等。

    所有工具来源:http://www.sysinternals.com/


    关于sitescope的介绍和使用:

    http://www.51testing.com/html/50/126.html

     

  • 【转】LoadRunner监控Apache!

    2008-6-22

    一、Apache上的设置
    打开<Apache Installation>\conf\httpd.conf,进行如下修改:

    1、 设置允许查看Apache运行状态的主机

    #

    # Allow server status reports, with the URL of http://servername/server-status

    # Change the ".your-domain.com" to match your domain to enable.

    #

    #取消一下代码前面的注释符号“#”,并且设置Order(顺序)为允许优先

    <Location /server-status>

    SetHandler server-status

    Order allow,deny

    Deny from nothing

    Allow from all

    </Location>

    这样改变以后重新启动Apache在浏览器中输入http://servername/server-status就可以看到Apache运行时的信息,而输入http://servername/server-status?auto就会看到如下信息:

    Total Accesses: 124

    Total kBytes: 444

    CPULoad: 3.32432

    Uptime: 37

    ReqPerSec: 3.35135

    BytesPerSec: 12288

    BytesPerReq: 3666.58

    BusyWorkers: 1

    IdleWorkers: 7

    Scoreboard: ____W___.........................


    看到这样的信息就表示修改成功,这样就可以使用LoadRunner监视Apache了。

    以下两步跟使用LoadRunner监视Apache无关,可以跳过不看。

    2、 改变Apache的设置,打开详细状态开关;

    #

    # ExtendedStatus controls whether Apache will generate "full" status

    # information (ExtendedStatus On) or just basic information (ExtendedStatus

    # Off) when the "server-status" handler is called. The default is Off.

    #

    #取消了下面一行前面的注释符号“#”

    ExtendedStatus On

    3、 有用的设置,查看各模块信息

    #

    # Allow remote server configuration reports, with the URL of

    # http://servername/server-info (requires that mod_info.c be loaded).

    # Change the ".example.com" to match your domain to enable.

    #

    #取消一下代码前面的注释符号“#”,并且设置Order(顺序)为允许优先

    <Location /server-info>

    SetHandler server-info

    Order allow,deny

    Deny from nothing

    Allow from all

    </Location>

    二、LoadRunner上的设置

    经过以上第一项设置以后就可以使用LoadRunner监控Apache的运行情况了,在LoadRunner可用的监视器中双击Web Server Resource Graphs下的Apache节点,然后在右边对应的窗口中添加Apache所在主机的IP地址,并且加入计数器后单击OK,这样就可以在LoadRunner中实时显示Apache的运行状态信息了。

    注意:您可能收到如下消息【Monitor name :Apache. Parsing error, cannot find token: BusyServers. Measurement: BusyServers|192.168.0.186. Hints: 1) Such a measurement does not exist, or the html page may be different from the supported one. 2) Try to replace the Apache.cfg with appropriate Apache_<version>.cfg file in <Installation>\dat\monitors and rerun the application (entry point: CApacheMeasurement::NewData). [MsgId: MMSG-47479]】,这是由于要监视Apache的版本提供的计数器与LoadRunner默认的计数器不一致导致的。此时建议先关闭Controller,打开<Installation>\dat\monitors下的apache.cfg文件(其它文件名类似Apache_<version>.cfg的是Apache监视配置的备份,只有apache.cfg是生效的):

    1、 修改Counter0=IdleServers为Counter0=IdleWorkers,同时修改注释信息Label0=#Idle Servers (Apache)为Label0=#Idle Workers (Apache),描述信息也建议修改;

    2、 修改Counter4=BusyServers为Counter4=BusyWorkers,同时修改注释信息Label4=#Busy Servers (Apache)为Label4=#Busy Workers (Apache) ,描述信息也建议修改。

    然后保存并关闭该文件,重新打开Controller并添加计数器,这样监视就正常了。
  • 把网站设为灰色的方法

    2008-6-22

    根据国务院文件,5.19-5.21为全国哀悼日,在此期间,全国和各驻外机构下半旗志哀,停止公共娱乐活动,外交部和我国驻外使领馆设立吊唁簿。5月19日14时28分起,全国人民默哀3分钟,届时汽车、火车、舰船鸣笛,防空警报鸣响。 Admin5与很多草根网站都将整站换成素装。并建议中国所有站点更换为素装。 国务院决定5月19日至21日为全国哀悼日  http://www.admin5.com/article/20080518/85035.shtml  
    为方便站点哀悼,特提供css滤镜代码,以表哀悼。以下为全站CSS代码。 

    html { filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); }  

    使用方法:这段代码可以变网页为黑白,将代码加到CSS最顶端就可以实现素装。建议全国站长动起来。为在地震中遇难的同胞哀悼。 

    如果网站没有使用CSS,可以在网页/模板的HTML代码  <head>和  </head> 之间插入: 

    <style> 
    html{filter:progid:DXImageTransform.Microsoft.BasicImage(grayscale=1);} 
    </style>  

    有一些站长的网站可能使用这个css 不能生效,是因为网站没有使用最新的网页标准协议  

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml">  

    请将网页最头部的  <html>替换为以上代码。 

    有一些网站FLASH动画的颜色不能被CSS滤镜控制,可以在FLASH代码的  <object …>和  </object>之间插入: 

    <param value="false" name="menu"/> 
    <param value="opaque" name="wmode"/>  

    最简单的把页面变成灰色的代码是在head 之间加 
    <style type="text/css"> 

    html { 
        FILTER: gray 

    </style>  

    一般的discuz论坛在 你的控制css 文件下修改 
    /images/header/header.css 这个文件,点源码即可看到 参考 http://bbs.admin5.com  

    另在哀悼日或遇难的新闻,所有专题和主题 图片上不能使用红色标题。  

    文章来自: 站长网(www.admin5.com) 详文参考:http://www.admin5.com/article/20080519/85073.shtml
  • 如何判断是否需要对一个软件进行性能测试?

    2008-6-22

    软件测试每周一问有的软件没做性能测试,客户反馈了很多性能问题;有的软件没做性能测试,客户从没抱怨性能有问题;有的软件做了性能测试,客户依然反馈了很多性能问题;有的软件做了性能测试,客户从没抱怨性能有问题。到底要不要做性能测试,这是一个大问题。如何判断你的软件是否需要做性能测试?欢迎大家讨论交流!

    会员godn_1981的精彩回答:

            这确实是个问题。
            其实我倒觉得问题不是要不要做的问题,而是怎么做,做多少的问题!
            请注意,没有任何一个软件不需要做性能测试,而是说需要程度到底有多高,这个需求程度决定了花多少精力去做,并且怎么做的问题。
            就算一个只有1000行代码的小程序,你怎么能保证它不需性能测试?你怎么知道它里面就没有内存溢出?你怎么知道它有没有耗费了不必要的资源?
            所以问题不是做不做的问题,而是花多少代价,怎么做的问题。

            一般性能测试有几个层次,或者说两个需求。
            a.为了找出性能问题
            b.为了给出性能指标
            c.为了给出需要的配置
            而我们国内现在常做的软件无非有几种:1.单机版应用程序 2.C/S或者B/S的项目(一般是外包项目或者政府软件,银行,医疗证券类软件)
            对于单机版应用程序来说,一般作性能测试是比较简单的,一般需求是两个,
            第一,你要测试一下有没有内存泻漏,或者深情况下内存溢出,或者有没有申请一些没必要的资源。这个一般要用一些分析工具
            第二,一般一个单机版应用程序,你总要给出,最低配置或者建议配置什么的,那么你给客户这个东西 就需要性能测试,测试一下在各种配置下面的运行情况,给出理想的建议值
            对于C/S或者B/S结构的软件就比较复杂了,一般是必须要做性能测试的。这个性能测试一般从以下方面考虑:
    第一,优化
            这个还是去考虑性能有没有问题,这个是起码的要求。特别是B/S系统,有没有多余请求,资源有没有释放之类的问题,要先考虑的。这类的问题,一般用网络分析工具就可以搞定。
    第二,时间
            这个是一般性能测试的重点。一般是用性能测试工具LR或WAS之类的做,这个叫负载测试。一般你测试一个软件,总要给老大一个结论,500人并发时,响应时间大概是几秒,300人并发时,是几秒。这个是每个客户都会要的。
    第三,配置
            这个也是性能测试的重点。这个一般叫压力测试。譬如一般客户会向你要一个数据:我想500人同时并发,响应时间在3秒之内,那么我的服务器要求最低配置是多少?这个嘛,你就只管压吧!压垮了,升级服务器,再压,又垮了,继续升级,到客户要求的性能指标达到为止,呵呵~~~~~~~~~~~~
            总结一下,不是要不要做的问题,而是怎么做,按照客户要求哪些需求,哪些指标做的问题!

  • 录制脚本是的thinktime

    2008-6-22

    考虑时间Thinking Time指的是在性能测试脚本中,事务与事务之间,会有一些短暂的停顿,就好像真实用户在操作时,两次操作之间需要考虑一下。比如用户注册的时候,在打开注册页面到提交注册页面之间,是有一段考虑时间的(用户在填写个人信息)。

    下面就讨论一下在性能测试实战中,为什么要设置考虑时间。

    先说一个概念:吞吐量,这指的是服务器系统(包括软件和硬件)单位时间内处理业务的数量。我们现在做一个小试验,写一个小程序,执行一个简单的业务,并且在程序中进行计时,计算每分钟能执行多少次。然后当我们运行1路这个程序的时候,每分钟能完成约6万次。好,现在问一个问题,如果我们起2路,是不是每一路都能达到 6万/分钟 的吞吐量?

    试验发现,当运行2路的时候,两个程序的数值都降了下来,但是它们的总和仍然是6万次。而且不管我们起多少路,这些程序的性能总和都接近于6万。

    这就好像一个人1分钟最快能吃1个馒头,你让他一个一个吃,他两分钟能吃2个,如果你让他一手拿一个,同时吃,他两分钟吃不了4个,还是只能吃两个。

    我们不是在说“考虑时间”么,哈哈,别急,因为上面的问题必须要先说清楚。

    如果我们需要进行性能测试的业务是一个单纯的业务,就好像上面举的那个例子一样,那么测试脚本中就不需要设置“考虑时间”,因为不管你用什么方法测试,一个服务系统处理单一业务的吞吐量总是一个定值。

    但是在实际环境里面,往往一个系统都是要处理多种业务,并且这些业务之间是有逻辑关系的。举例说明,比如一个论坛系统,每天最常处理的业务有两个:A打开帖子、B回复帖子。那么每天系统处理AB业务的总数是不是一样的呢,答案很明显,看帖子多,回复的少一些。假设A:B=2:1。

    好,如果我们不设置考虑时间,起2路A的脚本,1路B的脚本进行性能测试,我们会得到什么结果呢?我们会得到这两个业务的吞吐量,并且能算出每个小时系统完成A、B业务的总数,吞吐量 × 时间 = 总数。

    这时我们发现,同样时间,AB业务的处理总数却不是2:1的关系,这是为什么呢?原因是这样的,我们在跑AB脚本的时候,这两组脚本都在尽全力争夺服务器的资源,他们的并发路数虽然是2:1,但是给服务器的压力却不一定是2:1,可能会出现偏差,测试结果就是最好的证据。A查看帖子由于响应时间短,因此跑的次数更多,最后的比例可能是4:1。

    那么这样的结果有什么问题呢。总结为一句话:测试环境的业务和真实环境不符,这样测出的数据没有价值。即使测试通过,也不能证明真实环境是ok的;或者即使测试不通过,也不能说明真实环境不ok,呵呵。

    比如上面的例子,如果我们测出的结果是B回复帖子的吞吐量不够,响应时间太长,那可能是因为A业务抢走了过多的,本不属于A的资源,而引起了B的性能降低。

    说到这里,大家应该明白了,我们设置考虑时间,是为了保证测试复合业务的时候,各个业务之间的比例关系符合我们的真实生产环境。
  • LoadRunner如何在大负载下测试

    2008-6-22

       在大负载中使用LoadRunner进行负载测试,需要配置一些环境来满足大负载下各种资源的充足:

    1.为了避免出现“No Buffer Space Available”的错误,需要进行如下配置:

       1)修改注册表:

          * 设置“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Par
    ameters\TcpTimedWaitDelay”为 30
          * 设置“HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\tcpip\Par
    ameters\MaxUserPort”为 65534
          * 在“HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Session
    Manager\Sub Systems\Windows”设置SharedSection 为 4096

        2)通过在每个脚本的开头添加如下函数来设置“SHUTDOWN”模式为"ABRUPT"

         web_set_sockets_option(“SHUTDOWN_MODE”,”ABRUPT”)

     2.关闭所有的杀毒,反间谍扫描软件等。同时也关闭任务扫描和所有不需要的服务。

     3.脚本运行时设置:

       1)设置日志为“只在错误发生时发送信息”

       2)去掉错误时产生snapshot的选项

       3)在miscellaneous上,去掉 定义每一步为一个事务 的选项

       4)不选择 模拟浏览器缓存,选上“simulate new user on each iteration”和它的子选项

     4.如果下载的页没有资源,在web_url函数中添加“Mode=HTTP”,这样会减少LG上的负载(不用转换成HTML)。默认情况下,web_url的Mode为Mode=HTML

     5.重启LG并且确保他们都能跟Controller连接.

     6.确保LG和控制器上有足够的剩余磁盘空间.

     7.在controller中去掉web page breakdown

     8.限制Vuser在所有LG上同时进行初始化的数目.可以在Controller的Tools > Options > Run-Time Settings中进行修改.每个LG都有这个设置.

     9.限制controller在运行时存储的错误数.通过修改wlrun.ini中的[output]项来实现:

      • FlagLimitOutputMessages=1
      • MaxNumberOfOutputMessages=<errors count> (default is 10,000)

     10.在Controller上修改Monitor的采样率来降低CPU的使用.可以在Controlller的Tools > Options > Monitors 下修改,如下图所示:

     

    11. 如果有很多错误产生,最好不要经常打开Error/Output窗口,因为这样会因为访问数据库而打开另外的数据库连接.

    12.负载测试中不要使用"Show Vuser"选项.

    13.把输出信息重定向到一个文本文件中来代替输出到mdb文件中.可以在wlrun7.ini中修改[output]下的

    ExportMessageToFile=1来实现.

    14.不要在Controller机器上运行虚拟用户.

    15.在场景中设置监视器:

      * 内存使用上 mmdrv进程的private bytes

      * disk使用

      * CPU使用

      * 网络使用

    16.把脚本中所与打印信息的脚本去掉.如下面的代码每次迭代都会调用一次,对大量并发用户的运行产生负面的影响.

    lr_vuser_status_message("pIteration: %s -
    START Action", lr_eval_string("{pIteration}"));
    lr_output_message("pIteration: %s - START Action", lr_eval_string("{pIteration}"));

    Controller处理所有虚拟用户的信息,这样会大大降低Controller的性能. 如下是类似的代码:

    web_reg_find("Text=Time on Server", "SaveCount=cErr", ..);
    web_url( some url …);
    if (atoi(lr_eval_string("{cErr}"))>0) {
    lr_error_message(some message);
    lr_end_transaction("S05_T01_Request_Content_Page", LR_FAIL);
    }

      通常认为在脚本中插入lr_error_message是不好的,除非是调用的客户化的API失败了才有必要插入该语句.如果是LoadRunner的函数调用失败(如上面的web_url调用),它会自动发送一个错误消息.

      在大量用户运行的情况下,控制Controller和LG之间的通信流量是非常重要的.发送多余的信息(错误,输出等信息)会增大通信流量降低负载能力.所以,通常都需要把代码中不必要的信息去掉.

    17.去掉脚本中所有的sleep()的调用,用lr_think_time()来代替.lr_think_time给LR让出控制,即LR能够在Vuser休眠的时候去做其他有用的事情.

    18.不要去掉lr_think_time:使用该函数能更准确的模拟负载,对LG产生相对小的压力

    19.web_reg_save_param和web_reg_find()函数:

       • 在 web_reg_save_param() 中添加“Notfound=empty” 参数.
       • 在 web_reg_find() 添加 "Savecount=some_parameter_name". 如果你想知道它是否成功可以使用atoi(lr_eval_string("{some_paramater_name }"))来衡量.

    20.其他

      可能会出现的问题:

       * 测试产生了太多的错误:

         错误引擎不能处理多于1.5GB的错误

         如果测试过程中每秒产生多与1000个错误,Controller的行为将不可预测

       * 测试产生了大量的在线数据

     上面的两个问题都可以使用如下的方法解决:

       例如: 场景是一个组有1000个虚拟用户

       可以把这个组分成两个组:

       G1 100 Vusers
       G2 900 Vusers

       这两个组可以跟原始的组产生一样的负载,对于G2在组命令行中添加如下参数:

       -disable_data -disable_messages

        _disable_data : 让这个组不发送任信息,不发送任何online信息,不写任何offline信息.

        _disable_message: 让这个组不给Controller发送任何信息(错误,日志)

    注意:使用上面的命令行选项会使该LG不给congtroller发送online和offline信息.这样这个组上的虚拟用户的分析数据就收集不到了.

    21.如果需要远程访问,Mercury仅支持PC anywhere.

    翻译自<LoadRunner Large Load Test Considerations>

      

  • 论坛日常用语!

    2008-4-22

    一、论坛日常用语  转自:http://hi.baidu.com/392568311

    1、BBS:①Bulletin Board System的缩写,指电子公告板系统,国内统称论坛。②波霸,Big-Breasted Sister的缩写。
    2、版主:版主,也可写作板猪、斑竹。由于拼音输入造成的美妙谐音。副版主叫“板斧”。
    3、马甲:注册会员又注册了其他的名字,这些名字统称为马甲,与马甲相对的是主ID。
    4、菜鸟:原指电脑水平比较低的人,后来广泛运用于现实生活中,指在某领域不太拿手的人。与之相对的就是老鸟。
    5、大虾:“大侠”的通假,指网龄比较长的资深网虫,或者某一方面(如电脑技术,或者文章水平)特别高超的人,一般人缘声誉较好才会得到如此称呼。
    6、灌水:原指在论坛发表的没什么阅读价值的帖子,现在习惯上会把绝大多数发帖、回帖统称为“灌水”,不含贬义。
    7、纯净水:无任何实质内容的灌水,也说水蒸气。
    8、水手:喜欢灌水的人。级别高的也称水桶、水鬼、水仙。指女性灌水狂人时,还有个特定称呼:水母。
    9、潜水:天天在论坛里呆着,但是不发帖,只看帖子、而且注意论坛日常事务的人。
    10、打铁:写帖子,一般指有点儿重量的帖子。
    11、拍砖:对某人某帖发表与其他人不同看法和理解的帖子。
    12、刷屏:打开一个论坛,所有的主题帖都是同一个ID发的。
    13、扫楼:也叫刷墙,打开一个论坛,所有主题帖的最后一个回复都是同一个ID的。
    14、楼主:发主题帖的人。
    15、盖楼:回同一个主题帖,一般粉丝比较喜欢盖楼。
    16、楼上的:比你先一步回复同一个主题帖的人,与之相对的是“楼下的”。
    17、几楼的:除楼主外,所有回复帖子的人,依次可称为“2楼的”、“3楼的”……
    18、沙发:SF,第一个回帖的人。后来,坐不到沙发的人,声称自己坐了“床”或楼主的“大腿”~
    19、椅子:第二个回帖的人。
    20、板凳:第三个回帖的人。
    21、地板:连板凳都没得坐的人。
    22、顶:一般论坛里的帖子一旦有人回复,就到主题列表的最上面去了。这个回复的动作叫做“顶”,与“顶”相对的是“沉”。
    23、走召弓虽:超强,通常用于回帖时表示对主题帖的膜拜。
    24、汗:表示惭愧、无可奈何之意。衍生词有:暴汗、大汗、汗死、瀑布汗、暴雨梨花汗等。
    25、倒:晕倒,表示对某帖某人或某现实很惊异。
    26、寒:对某帖某人或某现象感到浑身发冷。
    27、抓狂:形容自己受不了某人某帖的刺激而行为失常,处于暴走状态中。
    28、踩一脚:也称踢一脚、留个爪子印等,都是跟帖之意。
    29、路过:不想认真回帖,但又想拿回帖的分数或经验值。与之相对的字眼还有:顶、默、灌水、无语、飘过、路过等。
    30、闪:离开。

    31、匿鸟:隐身了。“匿”作“藏匿”讲;“了”是多音字,在句尾本该读“LE”,有人喜欢误读“LIAO”,遂谐音为“鸟”。
    32、找抽帖:楼主发的帖子内容特别找抽,让绝大多数人都不待见,也称找砖帖。
    33、火星帖:很久以前已经被无数人看过转过的旧帖,转火星帖的人被称为火星人。通常回帖会这样说:楼主还是快回火星吧,地球是很危险滴。(来自周星星《少林足球》)
    34、恐龙:长得不漂亮的女性网民,含贬义。与之相对的是“青蛙”,形容相貌抱歉的男性网民。
    35、犬科 :喜欢追逐论坛里的女生的那种类型,尤其喜欢死缠烂打。
    36、狼族:热爱美色,不过比犬科作风正派一点,不会纠缠。
    37、……的说:动词后置的一种用法,来自日文语法。
    38、……ing:动词进行时的一种用法,来自英文语法。
    39、残念:可惜之意,引申有“碎碎念”等,来自日语汉字。
    40、×××××:儿童不宜的内容。
    41、王道:相当于“权威、真理”之意。
    42、黑旺财:旺财是《唐伯虎点秋香》里的一条狗,狗者,犬也。黑犬,就是“默”。此典出自晋江。
    43、小白:①白烂的昵称,指专在网上无事生非的人。②“小白痴”的缩写。
    44、小黑:黑名单。
    45、浸小黑:ID被登记进黑名单。
    46、小强:《唐伯虎点秋香》中的那只蟑螂,泛指生命力特别顽强的人。
    47、粉丝:FANS的音译,超迷某人或某物的一类人,也称扇子、蕃薯,简称“粉”或“迷”。
    48、包子:形容某人笨,或者长相欠佳。
    49、蛋白质:笨蛋+白痴+神经质。
    50、白骨精:白领+骨干+精英。
    51、腊鸭:垃圾(来自《麦唛》系列)。“挂腊鸭”在粤语俗语中指吊颈自杀。
    52、Kuso:日语“粪”的发音。起先是教游戏玩家如何把“烂Game认真玩”的意思,后来经台湾传入大陆,渐渐演化成“恶搞”之意。也有可恶的意思。
    53、维客:喜欢使用WIKI这种超文本技术的网络爱好者。
    54、博客:一种网上共享空间,让人以日记的方式在网络上展现自己的形式。博客让两个女人飞速走红:木子美和芙蓉姐姐。似乎还有流氓燕和竹影青瞳倒在其次。
    55、黑客:又称骇客,指在电脑领域有特殊才能或技巧的人。这类人运用自己的才能或技巧,要么是专门检测系统漏洞,要么有可能做有违道德或法律的事。
    56、红客:具有民族主义倾向的中国网络技术爱好者,与黑客相对。
    57、朋客:起源于“朋克”。电脑朋客现在越来越多的被等同于电脑罪犯了。
    58、闪客:使用Flash软件做动画的人,我们看到的很多电子贺卡和网站MTV都是闪客的杰作。
    59、极客:也称奇客,Geek,指有较高超电脑能力的人。
    60、驴友:泛指爱好旅游,经常一起结伴出游的人。


    二、中文缩写指南:

    1、BT:①Bit Torrent的缩写,是一种P2P(点对点)共享软件,中文译名“比特流”或“变态下载”。②“变态”的缩写。
    2、ZT:①“转帖”的缩写。②“猪头”的缩写,引申有ZT3,猪头三;ZT4,猪头四。
    3、PP:①“片片”的缩写,片片指代照片。②“屁屁”的缩写,屁屁指代臀部。
    4、GG:哥哥的缩写,指代男性,有时候女生用来指代自己的男友。与之相对的是MM,妹妹或者美眉的缩写,指代女性,有时候男生用来指代自己的女友。
    5、NB:牛×的缩写,北京方言里用来表示叹为观止之意。
    6、JJ:①姐姐的缩写。②鸡鸡的缩写。
    7、DD:①弟弟的缩写,偶尔有引申义。②东东的缩写,指代东西。
    8、GF:Girl Friend,女友。与之相对的是BF,Boy Friend,男友。
    9、PLMM:漂亮美眉的缩写。
    10、PPMM:PLMM的升级版,漂漂美眉。
    11、RPWT:人品问题的缩写,来自猫扑论坛。一般来说,只要某上遇上了不可解之事,统统可归结为其有RPWT。
    12、人品帖:测试你是否有RPWT的帖子,帖子题目很劲爆,只要你被骗进去,就说明你有RPWT。
    例句:这张名为《朴树的裸照》的帖子是个人品帖,其实里面真的是一棵朴树的照片啊,树当然是裸的,哪里有穿衣服的 树?青眉居然被这个人品帖骗进去了,果真有RPWT啊。
    13、PF:佩服的缩写。
    14、SL:色狼的缩写。
    15、KH:葵花,代指练《葵花宝典》的高手。
    16、KHBD:葵花宝典。
    17、PXJF:辟邪剑法,源于KHBD,KH专用的剑法。
    18、BS:鄙视的缩写,也可写作B4。
    例句:你要是ZT不注明,青眉会BS你,全论坛的人都会B4你的。
    19、PMP:拍马屁。
    20、PMPMP:拼命拍马屁。
    21、MPJ:“马屁精MP:拍马屁。
    20、PMPMP:拼命拍马屁。
    21、MPJ:“马屁精”的缩写。
    22、BC:“白痴”的缩写。也说是“白菜”的缩写,在网上,如果人家说你很白菜,那么就是形容你BC。
    23、ODBC:“哦,大白痴”的缩写。
    24、XB:小白的缩写。
    25、YY:意淫的缩写,出自《红楼梦》第六回,精神上行淫。在网络上其意得到进一步推广,凡信心极度膨胀的小说,统称为YY小说。
    26、ZE:“贼恶”的缩写,即真恶心,东北地区的方言发音。


    27、SE:“少恶”即“少恶心”的缩写。
    28、XHW:小黑屋的缩写,来自猫扑,在猫扑,违反规则是要被关小黑屋的。
    29、FB:腐败的缩写,现在通常指出去吃喝一顿好的。
    30、MD:妈的,粗话,慎用。
    31、-请使用文明用语-:爱生活~爱珊瑚,粗口,慎用。
    32、TNND:他奶奶的,粗口,慎用。
    33、JR:贱人,脏话,特别慎用。
    34、SJB:神经病,脏话,慎用。
    35、SB:傻X,脏话,对别人的蔑称,禁用。
    36、LR:烂人,禁用。
    37、LJ:垃圾,禁用。
    38、RY:人妖,慎用。
    39、JS:“奸商”的缩写。
    40、BXCM:冰雪聪明。
    41、HJ:汉奸。
    42、FQ:愤青。
    43、BD:笨蛋。
    44、JJWW:叽叽歪歪。
    45、Tjjtds:弹鸡鸡弹到死,来自猫扑论坛。
    46、CJ:纯洁。(来自郭敬明语:单我是纯洁的。广为天涯八卦菊花教引用的简写。)
    47、HC:花痴。
    48、BH:剽悍。出自新东方罗胖子的名言:剽悍的人生不需要解释。(采访郭敬明的时候,一个郭迷小正太表示支持郭,口出此言,此言顿时红遍互联网。注意:应该是PIAO HAN,而不是biao han,因为剽窃的剽字犯了忌讳,所以不用PH而用了BH。)
    49、G JM:郭敬明,某当红青春作家,曾涉嫌抄袭。GJM后来被当作抄袭的简称,意义接近于“ZT”。(天涯菊花教为他而生,百度也有菊花教吧,名为菊花教,实为反郭的文学青年。菊花教教名取自他自己作品中的一句话“我是一朵小雏菊”)
    50、三毛抄四:GJM出版过一本书,和三毛作品同名,由此衍生而来的新成语。意指盲信某种理论、某个人物而完全不管真相,本末倒置、颠倒黑白的一种狂热精神状态。出自龙空。(背景知识:三毛女士生于公元1943年3月26日,1991年1月4日清晨去世,享年48岁。而郭敬明生于公元1983年6月6日。唯一相同的是都是生于四川。)
    51、145:猫扑论坛某名女,代表该论坛参加过雅典奥运。她曾做过一套网上广泛流传的测试智商的题目,得分为145,遂有名言:比我聪明的都没有我漂亮,比我漂亮的都没有我聪明。天涯社区遂演绎出一句名言:比我CJ的都没我BT,比我BT的都没我CJ。
    52、FRJJ:芙蓉姐姐,一个女人,一种网络现象。自恋白痴的代名词。很快淹过了145的风头。从2005年4月起直到现在,她上了几乎所有网站的头条、新浪腾迅等各大网站


    三、音译术语指南:

    1、3166:沙哟娜拉,曰语,再见。

    2、886:拜拜喽,再见。

    3、3Q:Thank You,谢谢。

    4、7456:气死我了。

    5、9494:就是就是。

    6、818:八卦一下,出自天涯社区。

    7、616:遛一遛。通常回帖时贴教猫教花等图片时,通称“遛一遛”。

    8、8:不。

    9、54:“无视”的谐音,即漠视一个人,对其表达最大的不屑。

    10、4242:是啊是啊。

    11、稀饭:喜欢。

    12、木有:没有。“木”不知道是来源于哪里的发音。同样用法的还有“米有”。

    13、粉:很。来自闽南方言。

    14、表:“不要”速读连音,据说来自上海人的发音。

    15、白烂:来自闽南语“白卵”,意指一个人既笨又啰唆,还很麻烦,含贬义。

    16、素:台湾普通话“是”的读音。与之对应的有“8素”。

    17、酱紫:“这样子”速读连音,也作“绛紫”。

    18、酷:也说“裤”、“库”,Cool的音译。

    19、偶:台湾普通话“我”的读音。

    20、虾米:啥,什么之意,来自闽南语发音。

    21、口耐:也说可耐,可爱之意。

    22、滴:的,地。

    23、介个:这个。

    24、奔四:笨死的谐音。

    25、果酱:过奖。

    26、马甲决:马家爵。

    27、二硫碘化钾:KISS。

    28、咔嚓:某种练《葵花宝典》前必做的手术。

    29、口年:可怜。

    30、人参公鸡:“人身攻击”的通假。

    31、泥:你。

    32、好康:好看。来自闽南方言。

    33、筒子:同志。

    34、厚厚、吼吼、咔咔、kaka、嘻嘻、xixi、hiahia等:表示笑声,通常当作语气助词用。

    四、英文缩写指南:

    1. IT是什么意思?
    IT是指信息技术,即英文Information Technology 的缩写.

    2.bt是什么意思?
    BT是一种P2P共享软件,全名叫"BitTorrent",中文全称:"比特流"又名"变态下载",论坛中说某BT,则是"变态"的意思.

    3.diy是什么意思?
    DIY是每个电脑爱好者熟悉的新名词,是英文Do It Yourself的首字母缩写,自己动手制作的意思,硬件爱好者也被俗称DIYer.

    4.oem是什么意思?
    OEM是英文Original Equipment Manufacturer的缩写,意思是原设备制造商。

    5.xp是什么意思?
    XP,是英文Experience(体验)的缩写, 自从微软发布Office XP后,成为软件流行命名概念.

    6.ps是什么意思?
    在网上,常用软件一般都用缩写代替photoshop简称ps,DreamWeaver简称dw,等等..
    play station
    photoshop
    parenthesis

    7.ID是什么意思?
    ID是英文IDentity的缩写,ID是身份标识号码的意思.

    8.msn是什么意思?
    MSN 即MICROSOFT NETWORK, 是微软公司的一个门户站点. MSN作为互联网上最受欢迎的一个门户, 具备了为用户提供了在线调查、浏览和购买各种产品和服务的能力.

    9.dj是什么意思?
    DJ是DISCO JOCIKEY(唱片骑士)的英文缩写,以DISCO为主,DJ这两个字现在已经代表了最新、最劲、最毒、最HIGH的Muisc。

    10.URL是什么意思?
    URL是英文Uniform Resoure Locator的缩写,即统一资源定位器,它是WWW网页的地址,如http://www.99du.net.

    11.ceo是什么意思?
    CEO(Chief 执行utive Officer),即首席执行官,源自美国20世纪60年代进行公司治理结构改革创新时.

    12.ova是什么意思?
    OVA是英文录象带的缩写.

    13.vip什么意思?
    VIP是英文Very Important Person的缩写,就是贵宾的意思。

    14.mc是什么意思?
    MC的意思是Micphone Controller的意思,翻译差不多是“控制麦克风的人”。也可以理解为Rapper,很多Rap都在自己的艺名前面加上“MC”,比如台湾的MChotdog,香港的MCYan,美国的MC Hammer等。

    15.cs是什么意思?
    CS是非常流行的网络游戏,中文名是反恐精英。

    16.banner是什么意思?logo是什么意思?
    BANNER是横幅广告,logo是图标广告.

    17.ftp是什么意思?
    FTP是英文File Transfer Protocol的缩写,即文本传输协议。

    18.ip是什么意思?
    为了使Internet上的众多电脑主机在通信时能够相互识别,Internet上的每一台主机都分配有一个唯一的32位地址,该地址称为IP地址,也称作网际地址。IP地址由4个数组成,每个数可取值0~255,各数之间用一个点号“.”

    19.bug是什么意思
    在英语中,bug表示“臭虫”的意思。但在电脑行业却把电脑内部发生的小故障也称为“bug”,如程序运行不畅等,这种叫法也许与臭虫不无关系。有人猜测,之所以用bug,是因为它非常简洁明快。其次,臭虫也确实使人连休息也不得安宁,如同电脑中的小故障一样,它虽小,但麻烦还是很大的。

    20.pm是什么意思
    Private Messages 论坛短信

    1、DIY:Do It Yourself的缩写,自己动手做的意思。
    例句:清欢太坏了,青眉电脑坏了找他修,他让青眉DIY。

    2、SOHO:Small Office Home Officer的简称,意思是“在家办公”。
    例句:《游侠秀秀》的作者小非是SOHO一族啊。

    3、BUG:原意是“臭虫”,后来把跟电脑有关的故障都称之为“BUG”。
    例句:每回侠客社区出现BUG,青眉都急得跳脚。

    4、I服了U:我服了你……周星星片子里的经典台词。
    例句:你居然能让清欢不对你说“不”,I服了U!

    5、伊妹儿:Email的音译,电子邮件的意思。也可简称为“妹儿”。
    例句:青眉从来不用伊妹儿,给她写信是没用的啦。

    6、CU:See You的缩写带音译,再见。
    例句:CU,今天就到这里吧。

    7、IC:I See的缩写带音译,我知道了。
    例句:IC,你是个神经病。(《大话西游》里的经典台词)

    8、Q:Cute 的音译,可爱。
    例句:傲月寒长得好Q,像个芭比娃娃。

    9、FT:分特,Faint的缩写,昏倒、晕厥之意。

    10、SP:support,支持。

    11、败:BUY的音译,买的意思。

    12、SIGH:叹息,有无可奈何之意。

    13、LOL:Laugh Out Loud,大笑。

    14、KFC:Kill fu*king customers。

    15、PK:player kill。

    16、BTW:By the way,顺便说一句。

    17、BRB:Be right back,马上回来。

    18、TTYL:Talk to you later,回头再谈。

    19、BBL:Be back later,过会儿就回。

    20、kick your ass:打你屁屁。

    21、PPL:people,人们。

    22、PLZ:please,请,也有缩写成PLS。

    23、RUOK:Are you OK?

    24、IOWAN2BWU:I only want to be with you。

    25、M$ULKeCraZ:Miss you like crazy。

    26、CUL8R:see you later。

    27、IMHO:In my humble opinion

  • 什么是TD-SCDMA?

    2008-4-22

    什么是TD-SCDMA?

     TD-SCDMA,Time Division-Synchronous Code Division Multiple Access,即时分同步的码分多址技术,是ITU正式发布的第三代移动通信空间接口技术规范之一,它得到了CWTS及3GPP的全面支持。TD-SCDMA集CDMA、TDMA、FDMA技术优势于一体、系统容量大、频谱利用率高、抗干扰能力强的移动通信技术。它采用了智能天线、联合检测、接力切换、同步CDMA、软件无线电、低码片速率、多时隙、可变扩频系统、自适应功率调整等技术。
        TD-SCDMA为TDD模式,在应用范围内有其自身的特点:一是终端的移动速度受现有DSP运算速度的限制只能做到240km/h;二是基站覆盖半径在15km以内时频谱利用率和系统容量可达最佳,在用户容量不是很大的区域,基站最大覆盖可达30-4km。所以,TD-SCDMA适合在城市和城郊使用,在城市和城郊这两个不足均不影响实际使用。因在城市和城郊,车速一般都小于200km/h,城市和城郊人口密度高,因容量的原因,小区半径一般都在15km以内。而在农村及大区全覆盖时,用WCDMA FDD方式也是合适的,因此TDD和FDD模式是互为补充的。TDD模式是基于在无线信道时域里的周期地重复TDMA帧结构实现的。这个帧结构被再分为几个时隙。在TDD模式下,可以方便地实现上/下行链路间地灵活切换。这一模式的突出的优势是,在上/下行链路间的时隙分配可以被一个灵活的转换点改变,以满足不同的业务要求。这样,运用TD-SCDMA这一技术,通过灵活地改变上/下行链路的转换点就可以实现所有3G对称和非对称业务。合适的TD-SCDMA时域操作模式可自行解决所有对称和非对称业务以及任何混合业务的上/下行链路资源分配的问题。
        TD-SCDMA的无线传输方案综合了FDMA,TDMA和CDMA等基本传输方法。通过与联合检测相结合,它在传输容量方面表现非凡。通过引进智能天线,容量还可以进一步提高。智能天线凭借其定向性降低了小区间频率复用所产生的干扰,并通过更高的频率复用率来提供更高的话务量。基于高度的业务灵活性,TD-SCDMA无线网络可以通过无线网络控制器(RNC)连接到交换网络,如同三代移动通信中对电路和包交换业务所定义的那样。在最终的版本里,计划让TD-SCDMA无线网络与INTERNET直接相连。
        TD-SCDMA所呈现的先进的移动无线系统是针对所有无线环境下对称和非对称的3G业务所设计的,它运行在不成对的射频频谱上。TD-SCDMA传输方向的时域自适应资源分配可取得独立于对称业务负载关系的频谱分配的最佳利用率。因此,TD-SCDMA通过最佳自适应资源的分配和最佳频谱效率,可支持速率从8kbps到2Mbps的语音、互联网等所有的3G业务。
        根据ITU的要求和原邮电部的准备,我国于1998年6月底向国际电联提交了我国对IMT2000无线传输技术(RTT)的建议(TD-SCDMA)。2000年5月5日,国际电联正式公布了第三代移动通信标准,我国提交的TD-SCDMA已正式成为ITU第三代移动通信标准IMT 2000建议的一个组成部分。我国自主知识产权的TD-SCDMA、欧洲WCDMA和美国CDMA2000成为3G时代最主流的技术。
  • 什么是GSM?

    2008-4-22


    什么是GSM?
        GSM(Global System for Mobile Communications,全球移动通讯系统)俗称"全球通",由欧洲开发的数字移动电话网络标准,它的开发目的是让全球各地共同使用一个移动电话网络标准,让用户使用一部手机就能行遍全球。GSM系统包括 GSM 900:900MHz、GSM1800:1800MHz 及 GSM-1900、1900MHz等几个频段。
        GSM系统有几项重要特点:防盗拷能力佳、网络容量大、手机号码资源丰富、通话清晰、稳定性强不易受干扰、信息灵敏、通话死角少、手机耗电量低。
        
  • 软件回归测试及其实践(精--转)

    2008-4-18

    一、 概述 

    在软件生命周期中的任何一个阶段,只要软件发生了改变,就可能给该软件带来问题。软件的改变可能是源于发现了错误并做了修改,也有可能是因为在集成或维护阶段加入了新的模块。当软件中所含错误被发现时,如果错误跟踪与管理系统不够完善,就可能会遗漏对这些错误的修改;而开发者对错误理解的不够透彻,也可能导致所做的修改只修正了错误的外在表现,而没有修复错误本身,从而造成修改失败;修改还有可能产生副作用从而导致软件未被修改的部分产生新的问题,使本来工作正常的功能产生错误。同样,在有新代码加入软件的时候,除了新加入的代码中有可能含有错误外,新代码还有可能对原有的代码带来影响。因此,每当软件发生变化时,我们就必须重新测试现有的功能,以便确定修改是否达到了预期的目的,检查修改是否损害了原有的正常功能。同时,还需要补充新的测试用例来测试新的或被修改了的功能。为了验证修改的正确性及其影响就需要进行回归测试。 

    回归测试在软件生命周期中扮演着重要的角色,因忽视回归测试而造成严重后果的例子不计其数,导致阿里亚娜5型火箭发射失败的软件缺陷就是由于复用的代码没有经过充分的回归测试造成的。 

    回归测试作为软件生命周期的一个组成部分,在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。在渐进和快速迭代开发中,新版本的连续发布使回归测试进行的更加频繁,而在极端编程方法中,更是要求每天都进行若干次回归测试。因此,通过选择正确的回归测试策略来改进回归测试的效率和有效性是非常有意义的。 

    二、 回归测试策略 

    对于一个软件开发项目来说,项目的测试组在实施测试的过程中会将所开发的测试用例保存到“测试用例库”中,并对其进行维护和管理。当得到一个软件的基线版本时,用于基线版本测试的所有测试用例就形成了基线测试用例库。在需要进行回归测试的时候,就可以根据所选择的回归测试策略,从基线测试用例库中提取合适的测试用例组成回归测试包,通过运行回归测试包来实现回归测试。保存在基线测试用例库中的测试用例可能是自动测试脚本,也有可能是测试用例的手工实现过程。 

    回归测试需要时间、经费和人力来计划、实施和管理。为了在给定的预算和进度下,尽可能有效率和有效力地进行回归测试,需要对测试用例库进行维护并依据一定的策略选择相应的回归测试包。 

    1、测试用例库的维护 

    为了最大限度地满足客户的需要和适应应用的要求,软件在其生命周期中会频繁地被修改和不断推出新的版本,修改后的或者新版本的软件会添加一些新的功能或者在软件功能上产生某些变化。随着软件的改变,软件的功能和应用接口以及软件的实现发生了演变,测试用例库中的一些测试用例可能会失去针对性和有效性,而另一些测试用例可能会变得过时,还有一些测试用例将完全不能运行。为了保证测试用例库中测试用例的有效性,必须对测试用例库进行维护。同时,被修改的或新增添的软件功能,仅仅靠重新运行以前的测试用例并不足以揭示其中的问题,有必要追加新的测试用例来测试这些新的功能或特征。因此,测试用例库的维护工作还应包括开发新测试用例,这些新的测试用例用来测试软件的新特征或者覆盖现有测试用例无法覆盖的软件功能或特征。 

    测试用例的维护是一个不间断的过程,通常可以将软件开发的基线作为基准,维护的主要内容包括下述几个方面。 

    (1)、删除过时的测试用例 

    因为需求的改变等原因可能会使一个基线测试用例不再适合被测试系统,这些测试用例就会过时。例如,某个变量的界限发生了改变,原来针对边界值的测试就无法完成对新边界测试。所以,在软件的每次修改后都应进行相应的过时测试用例的删除。 

    (2)、改进不受控制的测试用例 

    随着软件项目的进展,测试用例库中的用例会不断增加,其中会出现一些对输入或运行状态十分敏感的测试用例。这些测试不容易重复且结果难以控制,会影响回归测试的效率,需要进行改进,使其达到可重复和可控制的要求。 

    (3)、删除冗余的测试用例 

    如果存在两个或者更多个测试用例针对一组相同的输入和输出进行测试,那么这些测试用例是冗余的。冗余测试用例的存在降低了回归测试的效率。所以需要定期的整理测试用例库,并将冗余的用例删除掉。 

    (4)、增添新的测试用例 

    如果某个程序段、构件或关键的接口在现有的测试中没有被测试,那么应该开发新测试用例重新对其进行测试。并将新开发的测试用例合并到基线测试包中。 

    通过对测试用例库的维护不仅改善了测试用例的可用性,而且也提高了测试库的可信性,同时还可以将一个基线测试用例库的效率和效用保持在一个较高的级别上。 

    2、回归测试包的选择 

    在软件生命周期中,即使一个得到良好维护的测试用例库也可能变得相当大,这使每次回归测试都重新运行完整的测试包变得不切实际。一个完全的回归测试包括每个基线测试用例,时间和成本约束可能阻碍运行这样一个测试,有时测试组不得不选择一个缩减的回归测试包来完成回归测试。 

    回归测试的价值在于它是一个能够检测到回归错误的受控实验。当测试组选择缩减的回归测试时,有可能删除了将揭示回归错误的测试用例,消除了发现回归错误的机会。然而,如果采用了代码相依性分析等安全的缩减技术,就可以决定哪些测试用例可以被删除而不会让回归测试的意图遭到破坏。 

    选择回归测试策略应该兼顾效率和有效性两个方面。常用的选择回归测试的方式包括: 

    (1)、再测试全部用例 

    选择基线测试用例库中的全部测试用例组成回归测试包,这是一种比较安全的方法,再测试全部用例具有最低的遗漏回归错误的风险,但测试成本最高。全部再测试几乎可以应用到任何情况下,基本上不需要进行分析和重新开发,但是,随着开发工作的进展,测试用例不断增多,重复原先所有的测试将带来很大的工作量,往往超出了我们的预算和进度。 

    (2)、基于风险选择测试 

    可以基于一定的风险标准来从基线测试用例库中选择回归测试包。首先运行最重要的、关键的和可疑的测试,而跳过那些非关键的、优先级别低的或者高稳定的测试用例,这些用例即便可能测试到缺陷,这些缺陷的严重性也仅有三级或四级。一般而言,测试从主要特征到次要特征。 

    (3)、基于操作剖面选择测试 

    如果基线测试用例库的测试用例是基于软件操作剖面开发的,测试用例的分布情况反映了系统的实际使用情况。回归测试所使用的测试用例个数可以由测试预算确定,回归测试可以优先选择那些针对最重要或最频繁使用功能的测试用例,释放和缓解最高级别的风险,有助于尽早发现那些对可靠性有最大影响的故障。这种方法可以在一个给定的预算下最有效的提高系统可靠性,但实施起来有一定的难度。 

    (4)、再测试修改的部分 

    当测试者对修改的局部化有足够的信心时,可以通过相依性分析识别软件的修改情况并分析修改的影响,将回归测试局限于被改变的模块和它的接口上。通常,一个回归错误一定涉及一个新的、修改的或删除的代码段。在允许的条件下,回归测试尽可能覆盖受到影响的部分。 

    再测试全部用例的策略是最安全的策略,但已经运行过许多次的回归测试不太可能揭示新的错误,而且很多时候,由于时间、人员、设备和经费的原因,不允许选择再测试全部用例的回归测试策略,此时,可以选择适当的策略进行缩减的回归测试。 

    3、回归测试的基本过程 

    有了测试用例库的维护方法和回归测试包的选择策略,回归测试可遵循下述基本过程进行: 

    (1). 识别出软件中被修改的部分; 

    (2). 从原基线测试用例库T中,排除所有不再适用的测试用例,确定那些对新的软件版本依然有效的测试用例,其结果是建立一个新的基线测试用例库T0。 

    (3). 依据一定的策略从T0中选择测试用例测试被修改的软件。 

    (4). 如果必要,生成新的测试用例集T1,用于测试T0无法充分测试的软件部分。 

    (5). 用T1执行修改后的软件。 

    第(2)和第(3)步测试验证修改是否破坏了现有的功能,第(4)和第(5)步测试验证 修改工作本身。 

    三、 回归测试实践 

    在实际工作中,回归测试需要反复进行,当测试者一次又一次地完成相同的测试时,这些回归测试将变得非常令人厌烦,而在大多数回归测试需要手工完成的时候尤其如此,因此,需要通过自动测试来实现重复的和一致的回归测试。通过测试自动化可以提高回归测试效率。为了支持多种回归测试策略,自动测试工具应该是通用的和灵活的,以便满足达到不同回归测试目标的要求。 

    在测试软件时,应用多种测试技术是常见的。当测试一个修改了的软件时,测试者也可能希望采用多于一种回归测试策略来增加对修改软件的信心。不同的测试者可能会依据自己的经验和判断选择不同的回归测试技术和策略。 

    回归测试并不减少对系统新功能和特征的测试需求,回归测试包应包括新功能和特征的测试。如果回归测试包不能达到所需的覆盖要求,必须补充新的测试用例使覆盖率达到规定的要求。 

    回归测试是重复性较多的活动,容易使测试者感到疲劳和厌倦,降低测试效率,在实际工作中可以采用一些策略减轻这些问题。例如,安排新的测试者完成手工回归测试,分配更有经验的测试者开发新的测试用例,编写和调试自动测试脚本,做一些探索性的或ad hoc测试。还可以在不影响测试目标的情况下,鼓励测试者创造性地执行测试用例,变化的输入、按键和配置能够有助于激励测试者又能揭示新的错误。 

    在组织回归测试时需要注意两点,首先是各测试阶段发生的修改一定要在本测试阶段内完成回归,以免将错误遗留到下一测试阶段。其次,回归测试期间应对该软件版本冻结,将回归测试发现的问题集中修改,集中回归。 

    在实际工作中,可以将回归测试与兼容性测试结合起来进行。在新的配置条件下运行旧的测试可以发现兼容性问题,而同时也可以揭示编码在回归方面的错误。 

    参考文献: 

    [1] Glenford J.Myers,计算机软件测试技巧,清华大学出版社,1985。 

    [2] Robert V. Binder,面向对象系统的测试,人民邮电出版社,2001。 

    [3] Rex Black, 测试流程管理,北京大学出版社,2001。
Open Toolbar