欢迎对质量和测试感兴趣的同行参与!

发布新日志

  • 关于一些配置库的自动备份脚本总结

    2008-10-24 15:53:32

    脚本比较简单,但是可以满足基本要求:

    CVS备份:

    echo off
    @CVS代码配置库备份
    cd F:\backup
    f:
    md cvs_date:~0,10%
    cd cvs_date:~0,10%
    xcopy E:\AI_PROJECT\* /s /e
    if errorlevel 1 (
    echo 备份失败
    ) ELSE (
    echo 备份完成
    )
    @echo on

    VSS备份:

    @echo off
    @新业务部VSS配置库备份
    set SsPath=E:\Application\VSS\win32\
    set BakPath=F:\backup\VSS
    set iniPath=\\10.8.16.24\vss\nbd
    "%SsPath%ssarc.exe" -d- -s"%iniPath%" -i-Y -yadmin,admin
    -o@"%BakPath%Backup_(%DATE%).txt " "%BakPath%Backup_(%DATE%).ssa" $/
    if errorlevel 1 (
    echo 备份失败
    ) ELSE (
    echo 备份完成
    )
    @echo on

    TD备份:

    echo off
    @新业务部TD配置库备份
    cd c:\TD_Dir
    set PrePath=C:\TD_Dir\NBD
    set BackPath=C:\TDBACKUP
    cd C:\TDBACKUP
    md TD_%date:~0,10%
    cd TD_%date:~0,10%
    xcopy %PrePath%\* /s /e
    if errorlevel 1 (
    echo 备份失败
    ) ELSE (
    echo 备份完成
    )
    @echo on

     

     

  • BI系统的生命周期策划及管理办法

    2008-08-05 09:50:00

    何谓BI,英文全称为business intelligence(商务智能)。

       整个系统生命周期是以项目规划作为起点的,这个阶段需要做的是:评估组织本身是否具备实施商业智能的条件,确定系统的规模和范围,规划各种资源并启动项日。

      第二步是进行企业需求定义。一个商业智能项目的成功不是取决于技术,而是取决于它是否将重心放在实际的商业过程上,是否能够为商业决策提供支持。系统的设计者应该了解企业的需求并将这些需求转化为系统需求。

      完成了企业需求定义后,接下来要做的是技术方案设计,数据设计以及分析应用设计,这三者在一定程度上可以并行。

      技术方案设计将建立一个技术框架,从而将各种技术进行整合。通常它会列出一系列的商业智能相关产品,通过一定的标准,对这些产品进行评估,做出最后的选择。

      数据设计包括多维模型设计,物理设计以及数据加载。先将企业需求转化成多维模型,再根据多维模型设计物理模型。在进行物理模型设计时通常要考虑聚集,索引,分区等策略,以满足工作效率的要求。最后是数据抽取、转换、加载(ETL),建立实际的数据仓库。

      分析应用设计和开发将根据企业用户数据分析方面的需要,设计一系列功能模块,提供查询与报表,OLOP分析,即席分析以及数据挖掘等工具,使用户能够方便的访问到所需的数据,并进行相应的处理。

      当以上三项完成之后,就可以进入发布阶段,将系统提交用户使用。同时要提供必要的支持与培训

      维护阶段包括对系统进行小的调整,对出现的错误的及时更正,对用户的培训,以及其他保障系统正常运行的各项工作,并为未来系统升级做准备。

      项目规划与管理

      项目规划与管理包括可行性评价,项目范围划定,效益评价,人员配置,制定项目计划的等。

      可行性评价:同其他信息系统一样,商业智能系统建设之前需要进行可行性评价。主要从5个方面进行:

      (1)项目是否有一个强有力的发起者

      这个发起者必须对商业智能将对企业带来的潜在影响有清晰的认识,并对该项目充满信心。他必须在企业中有足够的影响力和说服力,能为系统建设提供良好的环境。

      (2)企业是否具有一个强烈而迫切的驱动力

      这种驱动可以是来自企业外部的(如竞争因素),也可以是来自内部的(如解决并购中出现的跨企业绩效分析)。商业智能项目不应该只是锦上添花,而更应是雪中送炭。应该用它来解决企业所面临的棘手问题。

      (3)技术、数据、资源上是否可行

      三者之中,数据因素最为关键。我们是否能从现实的业务系统中搜集数据,决定了商业智能系统的成败。

      (4) IT部门与企业的关系是否融洽

      技术人员是否明白并且尊重企业业务人员的工作;企业业务人员是否理解并且尊重技术人员的工作?如果不能做到彼此尊重、理解、并互相配合,项目进行过程中必定会遇到相当的障碍。

    (5)企业当前的决策方式

      企业领导者是习惯于根据事实和数据做出决策,还是靠直觉和经验作决策?一个习惯于数字的企业更容易接受商业智能的概念。当然,如果企业还不具备这一点,那么,正是利用这个项目改变人们思维和决策方式的很好机会。

      从以上5个方面展开可行性分析,明确企业所处状况,评价建设商业智能系统的条件是否成熟。在这5方面中,强有力的发起者最为关键,它决定了项目是否可以实施。

      项目范围划定

      确定项目可行后,接下来应划定项目范围。这就需要在有用性和可管理性两方面做出权衡,把注意力集中在那些迫切需要解决的问题上。首次实施商业智能项目即将不同地区、不同业务系统、不同用户以及不同的分析需求包含进来,容易造成项目失控。

      效益评价

      估计商业智能项目能够为企业带来的收益和增加的成本。收益包括财务收益,收入或利润增加等显性收益以及其他隐性收益:成本包括硬件/软件的购置成本,系统维护成本等。商业智能系统的运营成本不会因为系统的成熟而大幅降低,而是会保持在一定水平上。

      人员配置

      商业智能项目的顺利推进,需要一个由业务人员以及IT技术人员共同组成的团队。通常角色包括:

      (1)发起人:他是商业智能系统的最终用户,同时也是项目最有力的支持者。

      (2)企业领导:代表企业业务部门与项目经理就具体事宜进行沟通

      (3)企业用户:系统的最终使用者。

      (4)业务系统分析师:发现企业业务需求并把这些需求转化成技术框架需求,

      数据需求以及分析应用需求

      (5)业务主题专家:熟悉业务系统数据的含义、用途,知道数据在哪里容易

      出现不一致。这些知识在构建数据模型和分析可能应用的过程中非常重要。
  • 推荐几个最安全可靠的美国网赚方法

    2008-07-31 21:45:49

    最近网赚之风盛行,其成熟的技术和不菲的利益确实具有很大的诱惑力。许多人尽管跃跃欲试,却常怯步于繁琐的注册程序、全英文的界面或是质疑这一赚钱方式的安全性。其实根据长时间的观察,网赚在如今已经成为一个成熟的产业,特别是在美国click-view-earn经营模式已经十分的普遍了。第一步往往是最难迈出的,其实只要做一点小小的尝试,就会发现网赚是一件轻松简单的工作,它不能让你迅速致富,但能让你像堆雪球一样从网络上白白捞取一笔可观的零花钱,可谓聚沙成塔。
       我推荐的方法尤其适合那些每天都有固定的上网时间,也不会吝啬花费一个多小时用来点击网页的朋友们,比如办公室一族和学生。我不能保证你能通过网赚获得每个月的生活费,但根据我的经验,通过下面这些方法,你每个月至少可以赚个十来美金,而这些钱,正是用你以往浪费在网络上的垃圾时间换来的,何乐不为呢?
      
       基于广告的网赚方案
       在美国的广告网站赚钱,其原理简单而易懂,就是通过注册-浏览-佣金这样一个简单的流程来达到网赚的目的。一般来说,鼠标的一次点击可以给你带来1~1.5美分的收益,若每天在一个网站进行十次点击,你就能获得0.1美元。不要小看这笔微薄的收入,试想一下如果你注册5个网站,而平均每个点击十次,十天以后你就有5美元了,如果是每天20次、30次……毋庸置疑,这种累积效应是十分巨大的,最关键的是,这种赚钱方式是完全不需要成本的,不花一分钱,每个月从老美那里白拿这么一笔零花钱,绝对是一件令人愉快的事!而发展下线则是使你扩大收益的一种方法,大多数的美网都支持下线回扣,我推荐的几个网站都有极好的下线回扣率,有的是1:1,有的甚至是1:1.5。也就是说,当你发展的一个下线赚了1美元时,你也会获得1美元乃至1.5美元的回扣。当然这种上下线的关系是互不影响的,上线并不能获得下线的佣金,回扣是网站给你的。由此看来,在这样的网站做“小兼职”,收益还是比较可观的(不要相信所谓月进3000这样的网赚广告,某些网站可能是不安全的,靠网赚也确实赚不到这么多,我认识的最厉害的网赚者也只能月进100多美元)。不过毕竟不是赚大钱,切莫贪小失大哦。
      
       在你准备去美国的网站上捞一把之前请先做一件事,就是去申请一个Paypal的账号,经常在网上购物的朋友一定很熟悉它了,其实就是“贝宝”的支付系统,像我们常用的支付宝一样,它是保证你能收到美元佣金的账户。一般的美网都是使用paypal支付的,所以是必不可少的。
      
       Paypal的注册地址 https://www.paypal.com/us/cgi-bin/webscr?cmd=_registration-run
      
       选择居住地:中国(全球范围) 。选择语言习惯设定:中文(简体)。如果这个时候跳入英文页面,就再在英文页面选择语言习惯设定:中文(简体)就回到了中文页面,然后选择个人账户 立即注册,按照提示认真填写资料就可以了。主要币种的选择是美元。信箱一定要写你的真实的信箱, PayPal账户和你的信箱是一样的。注册完,如果没有双币(可以存美元和人民币)银行卡可以先不用认证 ,没有认证的PayPal账户每月提现限额为500美元,所以开始不会影响我们使用.
        
          作为中国用户,您只能通过以下4种方式把Paypal中的美元提取或变现:
          1)申请 PayPal 支票提取款项
          2)将帐户内的款项转入美国或香港的你的银行同姓名港币或美元存折帐户内(非纯银行卡帐户,也不能是它们在国内的分支银行存折户);
          3)电汇Paypal帐户中的资金到你国内银行的双币(人民币+美元)帐户中;详情见这里
          4)把帐户内的美元卖给其他中间商或个人(比如卖给易派国际)
       由于我们进行网赚并不会过手较大的数额,所以一般建议你不需要进行认证,而提现可以选择支票方式,每次需要手续费5美元,缺点是时间比较长。
      
       现在你有了自己的Paypal账户,你可以在EBAY进行网上交易,更重要的是你可以开始收取佣金了。下面就推荐几个经过测试安全可靠的美国网赚网站,它们的信誉都很有保障,且赚钱的速度也是同类网站中比较快的。
       1、DailyClicks
       说DailyClicks很好是因为它创办早,信誉好。而且上面的广告很多,基本上每天都能点击三四十条,相当的厚道。它的起提现金额也很人性化的,可能是同类网站中最低的,只有2.5美元,也就是说只要你赚了2.5美元(一般来说需要20天左右)就可以将它转到你的Paypal账户里去了。
       注册地址:http://www.DailyClicks.biz/?r=njglman
      
       进入后点击上方的register注册,填写用户名和密码,Paypal账户就填刚注册PP时用的邮箱地址,国家要选China Worldwide,其他的美国网站也是这样的注册方式。有的网站会要求你选择几个intrests,随便选即可。其它信息不用修改,点击register就完成注册了!
       之后要login,登陆后点击上面的 View Ads就正式开始赚钱了!点击一条广告就会挑出一个窗口,上面会显示倒计时,一般是20~30秒,这期间你完全可以不去理它,等计时结束就会显示Done或美元的图标,这就表示你已经成果地赚到了几美分。凡是看过的广告都会被划掉,这一点是很方便的。下面你就知道该如何继续进行你的网赚之旅了。
       当你要取得佣金时,点击上面的member-stats,点击下面你的佣金旁的cashout,填入你自己的PP账户,这笔钱就会很快到你的名下了,积累一段时间就申请支票,然后在家里喜滋滋地等着收美元吧~
       
       2、Daddybux
       很多广告都是1.5美分/条,不过数量相对较少,回扣率也很高。起提金为8.9美元。
       注册地址:http://www.daddybux.com/?r=njglman
      
      
       以上的四个网站绝对的安全,赚钱也是相对较快的,如果你有不错的人脉,发展你的朋友、同学来共同致富,那你的月收入就很可观了。每天上网的时候拿出一点时间来赚美元,这样的馅饼是确实存在的,用你的一点小劳力来换取老美的剩余价值,只要你去做了,它就一定会回报你的。
  • 关于maven工具的配置和使用

    2008-07-09 17:44:26

    关于maven的配置和使用,网上有很多资料可供参考,这里是将我的使用心得以及配置中遇到的问题和疑惑整理了一下,希望对大家有所帮助。

    1maven的配置

    1)maven的配置必须建立在jdk1.4版本基础上,即必须先配置jdk环境。

    2)maven无须安装,从网上下载后,直接解压到本地就可以了。

    3)maven配置完毕后,用maven -version命令来检测是否安装成功。

    2mavensettings.xml修改

    1)、在<localrespository>...</localrespository>标签中设置本地的版本库路径,例如<localrespository>d:/repo</localrespository>

    本地版本库用来存放你从远端版本库中下载的jar包。路径可以是空的文件夹,必须要存在。如果不设置,那么maven默认为.m2/respository的路径。

    2)、如果机器能够上网,那么无须配置代理,如果须代理上网的话,必须配置<proxy>..</proxy>,例如:

        <proxy>
          <id>optional</id>
          <active>true</active>
          <protocol>http</protocol>
          <username></username>
          <password></password>
          <host></host>
          <port></port>
         nonProxyHosts>local.net,some.host.com</nonProxyHosts>
        </proxy>

    3)、如果需要从局域网内访问本地服务器上的版本库,那么可以设置<mirror>…</mirror>,例如

       <mirror>

          <id>planetmirror.com</id>

          <name>test</name>

          <url>…. </url>

          <mirrorOf>central</mirrorOf>

        </mirror>

    注意<url>…. </url>里填写你服务器的访问地址,这里地址可以用apache或者tomcat来做为你的中心版本库的应用。

    <mirrorOf>central</mirrorOf>中必须写成central

    3maven的使用

    1)、建立项目框架

    Maven archetype:generate

    根据你的需求选择不同的选项,建立项目框架,比如默认值15表示建立纯JAR项目,18表示建立WEB项目。每个选项涉及到的JAR包都会不一样,建立成功后,maven会自动将你所需的JAR包和依赖文件按照maven 的格式下载到你的本地版本库中,本地版本库路径就是你刚才设的<localrespository>...</localrespository>

    项目groupId 输入你组织得结构

    Archename 输入你的项目名

    版本号你可以默认,也可以按照公司的规定来定

    包结构名根据公司规定来定

    注意:maven生成的项目框架只是比较粗略的,开发人员开需自己去完善,不过记住千万不能删除原有的框架中的东西。

    项目建立成功后,会发现在该项目下生成pom.xml文件。

    2)、常用命令

    2.1Maven compile(编译)

    2.2Maven test(测试)

    2.3Maven package(打包)

    注意:以上命令必须在项目下运行,打包命令会自动帮你运行编译和测试,没有问题后,方才帮你打包。打包的路径放在target文件夹下。

    2.4Maven site(生成网站)

    该命令的好处在于你配置的东西可以在该网站上一目了然的显示出来。

    2.5Maven eclipse:eclipse(生成eclipse能够认识的格式)

    如果你想让eclipse开发工具能够认可你的项目框架,必须使用该命令来转换,运行该命令后,会在该项目下自动生成.project.classpath两个文件。

    该命令的还有一个好处在于,你配置了dependence后,可以通过该命令来下载jar包。

    3)、修改pom.xml

    该文件是专门管理项目的,与远程服务器沟通主要是通过该文件的配置。

    3.1dependence的配置

    你刚建立的项目,只包含一个junitjar包,如果你想增加新的jar包,只能通过<dependence>..</dependence>标签里添加,然后用maven eclipse:eclipse命令帮你下载。Dependence的输写格式见下:

             <dependency>

          <groupId>javax.activation</groupId>

          <artifactId>activation</artifactId>

          <version>1.1</version>

    </dependency>

    注意格式必须符合maven的包结构关系才能正确下载。如果不是很清楚,可以到远端版本库参考。

    此外,上述方法是手动添加法,你可以通过eclipse上的maven插件来自动添加。

    如果远程版本库都没有的jar包,只能自己从网上下载后,按照maven的包结构格式,手动添加到本地的中心版本库里。

    3.2、项目组织的配置

       <organization>

                  <name>公司名称</name>

                  <url>公司网址</url>

           </organization>

    3.3、项目组成员的配置

           <developers>

                  <developer>

                         <id>3000</id>

                         <name>name</name>

                         <email>…</email>

                         <url>….</url>

                         <organization>….</organization>

                         <organizationUrl>….</organizationUrl>

                         <roles>

                                <role>……</role>

                         </roles>

                         <timezone>-6</timezone>

                  </developer>

       </developers>

    3.4、持续集成管理的配置

    <ciManagement>

                  <system>continuum</system>

                  <url>http://服务器IP:8081/continuum</url>

                  <notifiers>

                         <notifier>

                                <type>mail</type>

                                <sendOnError>true</sendOnError>

                                <sendOnFailure>true</sendOnFailure>

                                <sendOnSuccess>false</sendOnSuccess>

                                <sendOnWarning>false</sendOnWarning>

                                <configuration>

                                       <address>。。。。。。</address>

                                </configuration>

                         </notifier>

                  </notifiers>

           </ciManagement>

    配置持续集成管理的方法是下载apache-continuum-1.1软件,然后无需配置直接运行bin\windows-x86-32\run.bat命令,启动成功后,输入http://服务器IP:8081/continuum地址,输入用户名和密码就可以。

    配置持续集成管理的好处在于能够按照你的计划帮你从版本控制工具中checkout来编译和打包。该功能必须与<scm>…..</scm>标签配合起来使用。

    3.5、版本控制工具的配置

    我们用的是CVS

       <scm>

                  <connection>

                         scm:cvs:pserver:username@服务器IP:/版本库文件夹:项目名

                  </connection>

           </scm>

    3.6、本地版本库伺服器的配置

    我们采用artifactory软件工具,好处在于当开发人员无法从本地中心版本库中取得所需的jar包时,maven会自动向artifactory来请求jar包,从而杜绝本地中心版本库不全造成的开发人员无法获得资源的弊端。本地中心版本库的配置在前面的settings.xml<mirror>...</mirror>中配置。参照前面。

     

    artifactory下载后,无需配置直接运行bin文件夹下的artifactory.bat,正常启动后,在IE浏览器中输入http://服务器地址:port/artifactory,输入adminpassword后,成功登陆后就可以了。

    注意:artifactory必须安装在能够上网的机器上,如果需要设置代理上网的话,必须在/etc/artifactory.config.xml增加代理配置,例如:

        <proxies>

            <proxy>

                <key>unused-proxy</key>

                <host>代理IP</host>

                <port>端口号</port>

                <username>用户名</username>

                <password>密码</password>

                <domain>你服务器的名称</domain>

            </proxy>

    </proxies>

     

    以上配置完毕后,在pom.xml中加入如下的配置,这样本地再向中心版本库请求jar包时,无法获得时,maven 会自动向artifactory请求。

    •     <repositories>
              
      <repository>
                  
      <id>artifactory</id>
                  
      <name>your local artifactory</name>
                  
      <url>http://localhost:8081/artifactory/repo</url>
              </
      repository>
          </
      repositories>

          
      <pluginRepositories>
              
      <pluginRepository>
                  
      <id>artifactory</id>
                  
      <name>your local artifactory</name>
                  
      <url 查看(1370) 评论(0) 收藏 分享 管理

    • BUG等级划分标准

      2008-01-24 10:48:31

      1.1         A

      描述:

      1.       系统崩溃,如应用程序死掉、应用程序异常退出、通讯意外中断或系统进入死循环

      2.       基本功能无法实现或遗漏,如某一应用程序启动不了或关键功能无法运行,关键数据错失较多

      3.       性能问题,如操作实时失败、数据库读写效率低

      4.       无法正常安装

      5.       升级脚本错误,使升级失败

      6.       内存使用错误,如内存泄漏、内存溢出、数组越界等

      7.       进程资源不能释放

       

      1.2        B

      描述:

      1.       基本功能存在部分问题或次要功能无法实现或遗漏

      2.       程序抛出异常信息没有处理,如空指针、通讯异常等

      3.       安装后文件不全、文件错误造成基本功能无法实现

      4.       不符合面向对象的设计思想,程序结构紊乱,模块内聚性差,模块间耦合程度高

      5.       前后台版本不兼容

       

      1.3        C

      描述:

      1.       次要功能存在部分问题

      2.       界面存在明显缺陷,设计不友好、不完善

      3.       安装时的小问题 ,或者安装后文件不全、文件错误造成次要功能无法实现

      4.       不符合软件编程规范

    • 如何建立有效的测试环境

      2008-01-22 18:06:52

      1、选择目前普及的系统平台和硬件配置,从而符合软件运行的最低要求

      2、编写配置计划、确定软件配置项,比如代码、文档和软件

      3、营造相对简单、独立的测试环境

      4、建立无毒的测试环境

      5、建立测试数据库

      6、选择恰当的测试工具

      7、建立缺陷跟踪系统

      8、建立版本库

       

    • 嵌入式系统测试方案

      2008-01-22 17:51:08

       

       

                                           

      XX项目测试方案

       

      1.  目的

       

      XX设备功能进行全面测试和检验,以验证该产品是否满足设计及用户要求。

       

       

      2. 范围

       

      用于对XX设备进行测试和检验。

       

      3. 测试设备

       

      测试仪表Sunset E10

      PC

      待测XX设备

      -48V直流电源

      随机Console软件

           超级终端程序

       

      4. 测试方法及验收标准

       

      1.       指示灯显示

      系统状态指示灯应能正确显示系统状态,包括AISLOSRAILOF,Code ERROR.

      2.       Firmware升级

      使用超级终端(9600/8/1/None)通过Console端口对XX系统进行Firmware升级。

      3.       RESET

      使用Console软件进行系统软件复位功能测试。

      4.       时钟同步模式

      使用Console软件对内同步、线路恢复两种时钟同步模式进行设置,并用仪表予以验证。

      5.       PCM方式

      使用Console软件对PCM31 CRC/NoCRC几种模式进行设置,并用仪表验证。

      6.       远程登录以及远程操作

      使用Console软件对远程设备进行登录及相关网管操作的测试(包括多台设备的级连进行远程登录测试)。

      7.       用户安全测试

      使用Console软件对用户名称与ID、密码进行修改验证。

      8.       老化试验

      不少于24小时不间断Ping测试,系统应能正常工作。

      9.       振动试验

      多次剧烈振动后,系统应能正常工作。

      10.    倒换功能   

      系统具备倒换功能的开启与关闭,并能进行自动和手动倒换。

      11.    带内E1端口环回以及复位(包括本端以及远端环回),使用Console软件对E1端口设置环回测试并验证。

      12.    E1告警切换功能

      E1告警时能及时切换到另一条E1,网管也同样支持这一功能;并具备自动上告功能。

      13.    LAN接口功能测试

      使用Console软件设置相应的时隙,对2XX设备使用命令Ping测试,应无数据包丢失现象。

      14.    告警事件记录

      E1告警及倒换设置应有相应事件

      15       操作日志功能

      设备进行操作后应具有相应的日志产生,包括告警日志,写操作日志,倒换日志等。

       

       

       

       

       

       

       

       

      编制人:

       

      日期:

       

       

       

    • 嵌入式系统测试计划

      2008-01-22 17:49:53

       

      测试计划

       

       

      1 测试目的

       

      适用于XXX设备功能方面的全面测试,以验证产品是否符合设计要求。

       

      2 测试目标

       

       21目标

       

            此测试计划覆盖了XXX接入服务器在系统中的功能测试,此文件作为测试XXX接入服务器的基准及对以后测试用例的编写提供参考。

       

            测试中发现的BUG将写入测试缺陷报表中,并写明缺陷发生的前提条件及执行条件,以便开发人员及时追踪原因,最后把发现的BUG交给相应开发人员做相应的修改,最终达到软件功能的完美移交用户安全使用。

       

      22 非目标

       

           此测试计划不覆盖任何硬件质量的测试,所以硬件工程师在提交设备之前应做好全面的硬件测试,避免在软件测试中发现异常的现象,以致影响软件测试的质量及进度。

       

      3 测试需求

       

      31 软件需求

       

      Microsoft/Windows XP操作系统

      Console 设备操作软件

      Console View 网管操作软件

       

      32 硬件需求

       

         SD 528接入服务器

         RS232串口线

         E1线

         PC

      Sunset E10 仪表

       

      4 测试环境

       

          

      5 测试项目

       

           XXX接入服务器的功能验证。

       

        51 测试功能选项:

       

      l         通过串口登陆和管理;

      l         本地和远程的登陆和管理

      l         任意时隙的设置及释放;

      l         两路系统时钟设置,自动系统时钟切换功能;

      l         PCM31CRC/NOCRC可设置;

      l         查询和产生各种类型事件,包括系统事件,告警事件等;

      l         带内E1端口的本地和远端环回功能;

      l         设备状态信息可以查询;

      l         友好的用户操作管理界面;

      l         TFTP方式进行程序的upload功能;

      l         其它时隙可设的远程登陆和管理;

      l         E1线告警切换功能;

      l         告警状态的自动上告功能;

      l         系统倒换功能的开启及关闭,

      l         Link状态软件可读,

      l         带内通信速率小于16kbps

      l         带内通信采用41bit的带宽,

      l         LAN口能进行人工开断并且状态能查询,

      l         设备应具有日志功能。

       

        52 测试过程

       

         测试准备(资料产品熟悉)     2

      测试计划编写                 1

      搭建测试环境                 1

      测试用例编写                 2

      测试用例执行和完善           3

      测试报告                     1

      测试结果追踪                  

      测试总结                     1

      最终文档:测试计划、测试用例、中试报告、测试总结报告。

    • 万峰精典语录

      2008-01-22 12:35:28

      万峰语录精选--太搞笑

      1. 听众:万老师,我不是上海人。
      万峰:甭管你是什么地方人,总是中国人民共和国。你就是台湾的,也是中国一

      分。


      2.听众:万峰你除了会劝人离婚还……(电话被掐断)
      万峰:要提意见,这儿不合适。(狂怒)这位李先生到底有没有听前面的节目?

      果不是他们夫妻关系不好我能劝人离婚吗?你耳朵长毛啦?


      3. 听众:万老师,我认识一个男人,他有前列腺炎。其实我也知道这不难治……
      (被打
      断)
         万峰:谁说的?我告诉你前列腺炎不好治。好,你说下去。


      4. 听众:万老师,我怀疑我的老公跟我嫂子有关系。
      万峰:你有证据吗?
      听众:没有,他们不肯承认。
      万峰:好了,别说了。你忍一忍,再去找找证据。


      5.听众:万老师,我跟前夫离婚原因是因为他花心。后来为了孩子,我找了一个老

      的男人结婚,但是二十年我们从来没有夫妻生活。现在我前夫回来找我,想要重新

      我好,我该怎么办?
      万峰:这位妇女,你心思又活络了是吗?
      听众:是的。但是我觉得现在再跟我前夫好,很对不起我现在的丈夫。
      万峰:那我给你出个馊主意,你就去跟你前夫说,跟你复婚是不可能的,那个行。

      住,一定要悄悄的,别让别人知道。去吧。


      6.听众:万老师我跟我丈夫在一起五年了,我们感情很好。
      万峰:感情好打电话给我干什么?
      听众:呃……我跟他没有夫妻生活。
      万峰:啊?这怎么可以呢?是你不想还是你不能?
      听众:医生说我不能。我丈夫比我大20多岁。
      万峰:好了,别说了,那你到底想问我什么。
      听众:我丈夫跟我承认在外面有别的女人。
      万峰:姑娘,你怎么又给我抖一包袱?你一下子说清楚好不好?我们俩说相声呢?


      6. 万峰:欢迎收听《相伴到黎明》,我们在上海为您播出节目,如果您有任何情
      感、
      婚姻、家庭和性方面的问题,请您随时播打我们的热线电话62780792,上海的区号

      0571 …


      7. 万峰:很多朋友发短信到我们的互动平台上询问,万峰的头发是假的吧,来,
      看我
      给你提溜看看(特写),你看,要是假的早就下来了不是。


      8. 听众:我18岁,认识一个男人,三个月前跟他上了床,前几天他告诉我他已结
      婚。
      万峰:姑娘,我告诉你他就是一臭流氓。你们怎么认识的?
      听众:是我同学介绍的。
      万峰:我敢保证介绍的人根本就知道他已经结婚。他们就是一流氓团伙!


      9. 听众:其实我知道自己要怎么做,我就是想听你说出来。
      万峰:干嘛老要从万峰嘴巴里听到?万峰嘴里有金牙么?告诉你们,万峰嘴里只有

      牙,没有金牙。


      10. 听众:我陪她到店里做头发。
      万峰:哪个她?说清楚。
      听众:就是我同事。
      万峰:哦,就是你陪情人做头发,好,你说下去。
      听众:后来没想到我老婆进来了,我老婆回家就把窗户砸了。
      万峰:你老婆砸了谁家的窗户?
      听众:我们自己家的。
      万峰:那你老婆真够愚蠢的。

      11.听众:我老公…怎么说呢 …(欲言又止)
      万峰:直接点说。
      听众:他喜欢打牌。
      万峰:哦,就是好赌。这会是一个好人么?一个优秀的公产党员能这样么?


      12.听众:万老师,我是结过婚的,但是我在外面又爱上一个女人。我现在不想要

      了,但她缠着我,我甩不掉。
      万峰:这话怎么听着那么熟,跟三个礼拜之前的一个电话一样啊。上回也是你这混

      打来的吧。
      听众:……


      13. 听众:万老师,我今天要跟你讨论的是孩子的性教育问题。
      万峰:很好啊,你有这个意识我和高兴。你孩子几岁?
      听众:我女儿 8岁。
      万峰:……
      听众:今天她问我她是怎么来的。
      万峰:那你就告诉她,爸爸妈妈相亲相爱,然后就有了你。
      听众:……我不是这么说的,我现在有些后悔说得太清楚了。
      万峰:那你是怎么说的,没关系,你说,我倒好奇了,这位女士,你到底是怎么说
      的?
      听众:我就说你爸爸妈妈小便的地方碰在一起,然后有了你。
      万峰:(怒)你说这个干嘛呢?!孩子又不爱听!


      14. 万峰:林女士吗?你好,是林女士吗?
      听众:(激动地)我是林女士,是我吗?接通我了吗?
      万峰:这位听众您别激动,慢慢说,现在是接通了您的电话,您怎么说?
      听众:(颤抖地)真的接通我的电话了,你好万老师,欢迎来到我们节目。
      万峰:……


      15. 听众:万峰是吗?
      万峰:我是,您怎么说。
      听众:万峰,我今天打电话进来就是想说,你说话的方式太不尊重别人了。(被掐
      断)
      万峰:(干笑)你觉得我不尊重你,你还打电话进来干嘛呢?啊?欺骗我们导播!


      16.听众:万老师,我跟我丈夫结婚两个月。
      万峰:啊?那祝你新婚快乐。
      听众:呃,谢谢。可是我想说的是,他经常发脾气打我。
      万峰:我说你们这些小年轻啊,你叫我说你什么好,好了,不说啦,甭问了,我说

      别人又该骂我了。(啪 挂断)


      17.听众:万老师,我老婆有外遇很多年了,现在越来越过分,已经发展到在我面
      前……
      万峰:等等……我又听不懂啦,你说的在你面前是什么意思?
      听众:就是把人带到我面前,当着我的面。
      万峰:我说,你是不是怕老婆啊?
      听众:没有,我不是怕她。
      万峰:啊?你不怕她?那你那什么她!


      18.一个妈妈打进电话
      母:万老师,我女儿要嫁人了,对方年纪比她大,我实在不能接受,现在女儿不听

      的了,我该怎么办?
      万:您女儿怎么认识的人家?现在婚姻自主了,你管她做什么!
      母:不是的啊,我女儿太单纯了呀,前段时间她骨折了,上楼我也背不动她,我找

      舅舅她说不要,说有个同事背她,可能背发背发背出感情来了。。。
      万:那现在你女儿喜欢人家你做父母的只好提醒她,啊,你说是不是,你急也没
      用啊.
      母:我就是不给他们结婚,我把户口本康特(藏起来)。。。
      万:不对不对,你这样不对的,小孩的婚姻她自己愿意父母没权去管的。。(被打


      母:(哭腔)那我女儿跟他了肯定要吃苦的呀,我女儿肯定不是自愿的呀,她是
      黄花大闺女呀,是这只老头子花她的呀。。。
      万:花不花这个。。吃苦头了她就会知道了呀!人家爱结就结了,你管的着嘛
      你!(掐断)


      19. 一个第三者打来的
      女:万老师,我今年27岁了,(简述:认识个男人比她大8岁,是个有老婆的人
      了,目
      前是在香港,到内地出差的时候才好上了,好了半年:注意是半年。然后东窗事发

      知道了,原配要死要活,她又很怕闹出人命,现在就跟那男人说要么就离婚,要么

      结束。男人答应他会跟老婆离婚)但是他跟那女人说希望她跟他去深圳先同居。
      万:又是个第三者。。。你这个人啊糊涂不糊涂啊,你有没有脑子啊,呃?! 半
      年你
      就这么相信人家了吗?他说你就信啊?这种男人明显他离婚是办不下来了,你还跟

      人家,你不是公然支持人家包二奶么!!


      20. 一个女大学生
      女:万老师,我是个在校大学生,快实习了,我邻居介绍了个男的给我,我妈妈
      也好象满同意的,所以我们准备结婚了。
      万:你才几岁啊,虽然现在在校学生可以结婚了,但是你也不用那么着急啊,你
      认识人家多久了??
      女:快半年了,我觉得我们两挺合适的,很合的来。。。
      万:才半年你就看清楚人家了?我又要说我的蛤蟆理论了,外面的世界你不看看,

      在就那么着急,你是不是想提前过性生活呀你!唉,随你吧,我也不说什么了。。


      21.一个离婚又结婚又要离婚的女人
      女:万老师,我和二婚的男人结婚了,他有两个儿子,我也是二婚,我没有子女。
      我们最近合开了个公司,他们家很防着我,现在经济权都是他在管,我一点也没插
      手,但是他们还是怀疑我,我现在觉得没意思想离婚了。。。
      万:你们在一起多久了?
      女:有半年了吧。。
      万:哎呀!又是半年,半年真是个过不去的坎啊!》。。。。


      22.一个男人
      男:万老师,我女朋友原来和我关系很好,后来他跟别人跑了。。
      万:跑了?她怎么个跑法??!(不就跑了,那你要人家怎么跑)
      男:你听我说,她和别人好了,现在又回来找我,我不想接受她,不想跟她好了。
      万:那就好啊,跟她说清楚,
      男:问题是她闹自杀,要从22楼往下跳,我只好先答应她稳住她。
      万:她要跳22 楼也好66也好,让她去跳呀,跳了你没责任的呀,你别理她,呃,
      没事
      的。
      男:哦。。。。

      23.又一个被外遇的女人
      女: 我老公跟我结婚8年了,好不容易有了孩子,孩子两岁,但是他觉得我工作
      忙,脾气不好,也不怎么有时间照顾家里。现在外面有女人了,要跟我离。。
      万:那就离吧,怎么你离了他还不能活了怎么地。。
      女:可是我离了他我就不知道怎么办了,我叫他给我机会他也不愿意,外面的女人

      我温柔。。。
      万:(十分激动)什么叫你不知道,你是1906年的妇女嘛,百年前就说妇女平等
      了,你还活在古代么!?


      24. 一个男人的声音?!
      男:我最近谈了个朋友,但是我不敢带回家介绍给父母。。
      万:这有什么!大大方方的把女朋友带回家么,这都什么年代了。
      男:可是我的朋友是个男的 -_-b
      万:呃?!那你是男的女的?
      男:。。。。我是男的。
      万:你是同性恋咯。现在同性恋已经是普遍接受的事情,可能父母还会有偏见,
      勇敢点带给他们看吧
      男:可是我怕他们会。。
      万:我们先进段广告!
      男:你先不要进广告(真有意思的人)
      万:呃?!不进广告,不进广告我就挂了我~。。。。。


      25. 听众:万老师我现在有个难题。我二十多岁了,现在想谈个对象。
      万峰:那很好啊,有什么问题?
      听众:问题是我觉得我的职业影响了我的爱情。
      万峰:姑娘你是做什么的?
      听众:我在殡仪馆工作。
      万峰:(怒了)殡仪馆怎么了?殡仪馆还不是我们人人要去的地方!

      26.  听众:万老师,我爸爸今年54岁,和我妈离婚了,找了个19岁的女朋友。
      万峰:呃,等一下。姑娘你今年几岁?
      听众:我18岁。
      万峰:我说你爸爸是不是有点糊涂啊。
      听众:是的,我觉得他很糊涂,而且这个女的是理发店工作的,我觉得她已经骗
      了我
      爸爸很多钱了。
      万峰:你赶紧劝劝你爸爸呀。
      听众:劝了没用,他不听,还骂我是嫉妒那女的。
      万峰:那你就告诉爷爷奶奶。
      听众:也说了,也没用。我爸说我奶奶是神经病。我现在不知道该怎么办。
      万峰:(为难)那这样吧,你去告诉你妈。


      27. 听众:万老师,我今年已经48岁了。我跟我丈夫也都是再婚,中间经过了很多

      难才
      在一起。但是他现在又跟别人好上了。我们前一段时间离婚了。
      万峰:那你现在想怎样?
      听众:我想跟他复婚。因为我是这样想的,既然我也已经失去他了,还不如拖住
      他,

      也不让他跟别的女人好。
      万峰:这样吧,我介绍你去读一本书,是万峰最近在读的。XXX出版社出版的《XX

      姻现状报告》。现在万峰再也不劝人去心理咨询啦,因为老有人说万峰给心理咨询


      方打广告。其实万峰从来没有收过红包。 (Embedded image moved to file:
      pic18443.gif)吐血



      28.听众:我老婆不能怀孕,我在外面又找了个女孩,现在她怀孕了。我老婆很爱
      我,也很理解我,我们感情很好,后来她劝我离开那个女的,但那个女的已经怀孕
      7个
      月了,现在让我丢弃老婆我舍不得,让我丢弃那个女的,又太对不起她,而且她对

      也特别好。现在我不知道该怎么办,特别苦恼。

        万峰:我看你一点也不苦恼嘛,嘻嘻哈哈的。你苦恼什么呀?你不是34岁了
      吗?你应该向国家民政部申请啊,建议能娶两个老婆,修改婚姻法。你的叙述多么

      松,从头到尾,多么愉快。你觉得你的思想斗争激烈吗?你很不要脸啊!不臭骂你

      骂谁啊。你叫我怎么说你呢?你叫我说你什么呢,你不是15岁,你都34岁啦。你没

      老婆治病,却直奔主题了。你是来和我探讨问题的?我觉得我没有和你探讨的必
      要,谁有耐心谁和你探讨去!道德的沦丧!我为什么这么愤怒?你一点基本的道德

      理都没有!一点愧疚感都没有!你还有一点最低限度的道德感吗?你不是厚颜无耻

      什么?自个儿反省去吧。


      29.听众:考试之后我老是梦遗,是不是对肾不好啊?有什么补药可以吃的吗?
       万峰:什么叫老是梦遗啊?一个男孩子一个月遗七八次是正常的,你再怎么遗也

      能一个月31天都梦遗啊,又不是水龙头,说有就有的。


      30.某女向万峰诉说家事:你好,万峰老师啊,我爸我妈在14年前离婚
      了、、、、、、我爸欠别人债逃走了。
        万峰:你爸爸是离婚以前欠的债还是离婚以后欠的债?这个债务归谁呢?
        某女:离婚以后欠的债
        万峰:对啊,离婚以后欠的债,那你想跟我说什么呢?
        某女:那你听我说嘛!!!
        万峰:、、、、、、
        某女:@#@%&×%#@!
        万峰:你的意思是他逃这个债务是不是?那你想跟我说什么呢?
        某女:那,那我先说,你不要紧张、不要急激动。
        万峰:我紧张什么?又不是我还债!!!


      31. 一女士说自己的男朋友嫌贫爱富说她没钱,且该男友准备去追求其他有钱对
      象。这位女士十分气愤想对其予以接露。
        万峰:这样的无耻之徒是有的,而且社会上还不只他一个。这是他的生活观念
      啊,就像狗要吃屎,你不能说:狗,你不能吃屎,你要吃馒头、你要吃肉包
      子、、、、、、
         (听的时候正在吃包子,差点吐出来×&%#)


      32. 万峰:您好
        某男:喂你好,万峰节目是吧!
        万峰:我是万峰。
        某男:唉你好我听你这个节目经常听的哦,今天打电话过来试一下
        万峰:怎么说?
        某男:这个男性避孕除了避孕套之外还有没有其他地避孕措施?
        万峰:没有其他的!!正在研究。外国正在研究一种小塞子,赛到你的阴囊里

      去,把输精管阻断使精液阻断。
        某男:这个还没有、、、(被打断)
        万峰:好不讨论了好吧,你有什么事情?讨论什么??你也不是科学家我也不

      科学家,咱们两个纸上谈兵!!!


      33.某男:(声音沙哑的说)我有个事情要咨询。
        万峰:你有什么事情,啊?
        某男:我今年24了,就是心理有点自闭的那种。
        万峰:对不起,你要是心里有问题你去看心理医生好不好。
        某男:这样啊。
        万峰:你凭什么有什么自闭啊?你闭什么?
        某男:我就是经常会哭啊&×%¥@#
        万峰:???你是男性还是女性啊,你《红楼梦》看多啦?跟林黛玉学得?经

      爱哭?为什么要哭?24岁的大小伙子一不高兴就“哇哇哇哇”的哭,那你看医生去
      啊,俺不是心理咨询,俺也不是心理学家,俺也不是医生,万峰的这个节目不是谈

      节目,也不是倾诉节目、、、、、、
        (那究竟是什么节目???)

      (Embedded image moved to file: pic28296.gif)无视(Embedded image moved to
      file: pic12673.gif)无视

      34.一位听众发短信问:万峰啊,我被一条狗给蹭掉一点点皮,本来觉得没什么大
      不了
      的,可是听说现在狂犬病很厉害,所以心里慌兮兮的,我有必要去打针吗?

        万峰:你干嘛不去问医生啊?什么叫蹭破一点点皮,什么叫被狗蹭破一点点
      皮?它拿什么曾你的?它拿腿?拿屁股?拿身子?嗯?




      35.有一次一位外地男青年打电话过去:
       万峰:你好!
       某男:哎我一直很崇拜你的,一直听你广播,好像你是个,哎真的,哎真的我很

      拜你的,你好像是万能的,我觉得你是万能的。
       万峰:唉不对不对不对,不是万能的啊!那有万能的~
       某男:真的,我觉得你是万能的!!!!!




      36. 万峰:喂?
        男:喂~,你~你好,我是万峰!
        万峰:???(疑惑无辜状)¥@#&×什么?
        男:呃,呃不好意思我很紧张~
        万峰:紧张什么,我才是万峰(竟敢冒名顶替),有什么事,请说!
        男:哦,是这样的,%&¥@是是,不好意思我实在是太紧张了
        万峰:······
    • SVN的使用心得

      2008-01-22 12:26:08

      陆续使用了一年多的SVN版本控制工具,经历了从一个新手逐渐走向成熟的过程,体会颇多,其中也不乏发生很多愚蠢的错误,现将得失和经验总结出来,供大家参考!

      首先学习是一个循序渐进的过程,不要指望一口吃成胖子。当初,我接受公司建立SVN环境的任务时,几乎对SVN一窍不通,也没有人教,只能通过网络和借鉴别人的经验来慢慢的摸索和学习。

      其次要根据学习资料中的例子,自己动手反复练习,学会两种服务方式,多种环境的配置,不要只局限于单一的svnserve服务配置。

      在建立SVN环境的前期,应了解公司目前的软硬件环境和领导的意图,如果领导的意思只是建立一个共享库,那我觉得没必要使用SVN,用简单的VSS、FTP、共享文件夹就可以。同时必须强调的是,要注意各种安装软件的版本问题,比如说SVN客户端程序、服务器程序和apache的版本要尽量选择较新的版本,我在配置过程中就遇到过类似问题,由于apache和服务器程序的版本不兼容,造成IE浏览器无法读取版本库。另外,在建立前,必须理清版本库的框架以及权限分配,你可以在纸上画出框架和权限草稿,经相关人员讨论确认之后,再合并到正式的配置文档中备案。

      在SVN所需软件都安装完毕测试通过后,我们就可以配置SVN服务器了,具体的配置方法,这里不再详述,网上有很多。我这里想说的是,权限配置无需太复杂,分支不要太多,用户名和密码尽量与公司内部其它系统的用户名和密码统一,权限配置文件中需增加一定的注释,以利于维护和提高效率。权限配置文件的编写规范一定要遵守SVN的要求,否则会报错。此外,SVN只认UTF-8格式的字符集,故如果报错的话,可先将配置文件转化成UTF-8的格式再尝试。

      SVN服务器配置完毕,开启服务,这里推荐使用svnservice第三方工具和apache服务方式,这样可以避免系统因死机或重起带来的服务中端问题,这里要指出的是svnserve和apache服务方式都支持外网访问,通俗的说在家里也可以访问公司的服务器,需要注意的是前者必须安装SVN客户端,后者只须访问IE浏览器,此外,前者访问协议是svn://域名/版本库名,而后者可以通过IP地址进行访问,http://192.168.1.96/版本库名。,当然SVN的访问协议类型有好几种方式。

      SVN服务开启数量不宜过多,因为每开启一个都占用一个端口,所以尽量只建立一个服务路径,将所有版本库置于该路径下,就可以避免此类问题。

      SVN服务开启成功后,我们就可以第一次初始化导入版本库的框架了,通过GUI界面和命令均可,我在导入的过程中经常遇到错误,要么导不进去,要么只能导入一部分,检查错误发现基本上是权限配置文件的问题,修改就可以避免。在框架导入成功后,如果需要增加新的框架那如何办呢?这里不建议使用Import和提前修改配置文件。建议先将框架提交到服务器后,在修改配置文件。

      初始化导入完毕后,我们就可以checkout了,增加和删除文档请尽量使用SVN自带的add 和 delete功能,而不要使用windows的delete。至于原因我想使用svn自带的功能,会在它的.svn文件夹里留下记录,这样操作不容易出错。

      SVN环境建立成功了,接下来就是如何管理了。为了有效管理和杜绝垃圾文件,部门级别文档,由部门经理予以审核上传;项目文档由PM审核上传;公司级别文档,由公司文档控制中心审核上传,具体每一步操作必须填写相应的信息,包括操作时间、操作人、操作动作、操作内容等等,SVN里message的输入具有一定的记忆存储功能,可以减少些许录入的时间。

      我们都知道SVN具有强大的二次开发功能,具有热备份功能,可以实现自动备份,支持shell编程,这里我基本上没有多少发言权,高手很多,我目前也是在学习阶段,只是帮助公司建立了很简单的完全备份和增量备份的制度以及脚本,基本上实现在linux环境下自动备份的要求。

      我们在使用SVN的过程中要注意以下几点:

      1、尽量避免用SVN自带的Repo-browser,尤其对于新手来说,因为在该浏览器上做的任何操作都会直接造成服务器的变动。

      2、不要随意添加删除框架,如果非要添加,需通知配置人员添加,完毕后须通知相关人员update.

      3、公司内部使用SVN的每个人,养成早上打开电脑第一件事就是SVN update,然后再commit

      4、配置人员在配置完毕后,需编写正规的配置文档,并给员工培训SVN的使用。

      5、配置人员在熟悉基本的使用方法后,应实施邮件自动通知的功能。

      时间仓促,暂且就写这么多,文笔不好,请大家原谅!如有错误请大家多提宝贵意见!谢谢!

       

       

    • 测试用例设计规范

      2008-01-22 10:09:51

      测试用例设计规范

      1、引言
      测试设计遵循与软件设计相同的工程原则。好的软件设计包含几个对测试设计进行精心描述的阶段。这些阶段是:
      测试策略
      测试计划
      测试描述
      测试过程
      上述四个测试设计阶段适用于从单元测试到系统测试各个层面的测试。
      测试设计由软件设计说明所驱动。单元测试用于验证模块单元实现了模块设计中定义的规格。一个完整的单元测试说明应该包含正面测试(Positive Testing)和负面的测试(Negative Testing)。正面测试验证程序应该执行的工作,负面测试验证程序不应该执行的工作。
      设计富有创造性的测试用例是测试设计的关键。本文档介绍了测试说明的一般设计过程,描述了一些结构化程序设计单元测试中采用的用例设计技术,同时也增加了面向对象编程中对类进行单元测试所采用的测试用例设计技术,这些可作为软件测试人员的参考阅读资料。

      2 设计单元测试说明
      一旦模块单元设计完毕,下一个开发阶段就是设计单元测试。值得注意的是,如果在书写代码之前设计测试,测试设计就会显得更加灵活。一旦代码完成,对软件的测试可能会倾向于测试该段代码在做什么(这根本不是真正的测试),而不是测试其应该做什么。单元测试说明实际上由一系列单元测试用例组成,每个测试用例应该包含4 个关键元素:
      被测单元模块初始状态声明,即测试用例的开始状态(仅适用于被测单元维持了调用间状态的情况);
      被测单元的输入,包含由被测单元读入的任何外部数据值;
      该测试用例实际测试的代码,用被测单元的功能和测试用例设计中使用的分析来说明,如:单元中哪一个决策条件被测试;
      测试用例的期望输出结果,测试用例的期望输出结果总是应该在测试进行之前在测试说明中定义。
      以下描述进行测试用例设计,书写测试说明的7步通用过程。

      2.1 测试用例设计步骤
      2.1.1 步骤1:首先使被测单元运行
      任何单元测试说明的第一个测试用例应该是以一种可能的简单方法执行被测单元。看到被测单元第一个测试用例的运行成功可以增强人的自信心。如果不能正确执行,最好选择一个尽可能简单的输入对被测单元进行测试/调试。
      这个阶段适合的技术有:
      模块设计导出的测试
      对等区间划分
      2.1.2 步骤2:正面测试(Positive Testing)
      正面测试的测试用例用于验证被测单元能够执行应该完成的工作。测试设计者应该查阅相关的设计说明;每个测试用例应该测试模块设计说明中一项或多项陈述。如果涉及多个设计说明,最好使测试用例的序列对应一个模块单元的主设计说明。
      适合的技术:
      设计说明导出的测试
      对等区间划分
      状态转换测试
      2.1.3 步骤3:负面测试(Negative Testing)
      负面测试用于验证软件不执行其不应该完成的工作。这一步骤主要依赖于错误猜测,需要依靠测试设计者的经验判断可能出现问题的位置。
      适合的技术有:
      错误猜测
      边界值分析
      内部边界值测试
      状态转换测试
      2.1.4 步骤4:设计需求中其它测试特性用例设计
      如果需要,应该针对性能、余量、安全需要、保密需求等设计测试用例。
      在有安全保密需求的情况下,重视安全保密分析和验证是方便的。针对安全保密问题的测试用例应该在测试说明中进行标注。同时应该加入更多的测试用例测试所有的保密和安全冒险问题。
      适合的技术:
      设计说明导出的测试

      2.1.5 步骤5:覆盖率测试用例设计
      应该或已有测试用例所达到的代码覆盖率。应该增加更多的测试用例到单元测试说明中以达到特定测试的覆盖率目标。一旦覆盖测试设计好,就可以构造测试过程和执行测试。覆盖率测试一般要求语句覆盖率和判断覆盖率。
      适合的技术:
      分支测试
      条件测试
      数据定义-使用测试
      状态转换测试

      2.1.6 步骤6:测试执行
      使用上述5 个步骤设计的测试说明在大多少情况下可以实现一个比较完整的单元测试。
      到这一步,就可以使用测试说明构造实际的测试过程和用于执行测试的测试过程。该测试过程可能是特定测试工具的一个测试脚本。
      测试过程的执行可以查出模块单元的错误,然后进行修复和重新测试。在测试过程中的动态分析可以产生代码覆盖率测量值,以指示覆盖目标已经达到。因此需要在测试设计说明中需要增加一个完善代码覆盖率的步骤。
      2.1.7 步骤7:完善代码覆盖
      由于模块单元的设计文档规范不一,测试设计中可能引入人为的错误,测试执行后,复杂的决策条件、循环和分支的覆盖率目标可能并没有达到,这时需要进行分析找出原因,导致一些重要执行路径没有被覆盖的可能原因有:
      不可行路径或条件 ―― 应该标注测试说明证明该路径或条件没有测试的原因。
      不可到达或冗余代码 ―― 正确处理方法是删除这种代码。这种分析容易出错,特别是使用防卫式程序设计技术(Defensive Programming Techniques)时,如有疑义,这些防卫性程序代码就不要删除。
      测试用例不足 ―― 应该重新提炼测试用例,设计更多的测试用例添加到测试说明
      中以覆盖没有执行过的路径
      理想情况下,覆盖完善阶段应该在不阅读实际代码的情况下进行。然而,实际上,为达到覆盖率目标,看一下实际代码也是需要的。覆盖完善步骤的重要程度相对小一些。最有效的测试来自于分析和说明,而不是来自于试验,依赖覆盖完善步骤补充一份不好的测试设计。

      适合的技术:
      分支测试
      条件测试
      设计定义――试验测试
      状态转换测试

      2.2 用例设计的一般原则
      注意到前面产生测试说明步骤可以用下面的方法完成:
      通常应该避免依赖先前测试用例的输出,测试用例的执行序列早期发现的错误可能导致其他的错误而减少测试执行时实际测试的代码量;
      测试用例设计过程中,包括作为试验执行这些测试用例时,常常可以在软件构建前就发现BUG。还有可能在测试设计阶段比测试执行阶段发现更多的BUG
      在整个单元测试设计中,主要的输入应该是被测单元的设计文档。在某些情况下,
      需要将试验实际代码作为测试设计过程的输入,测试设计者必须意识到不是在测试代码本身。从代码构建出来的测试说明只能证明代码执行代码完成的工作,而不是代码应该完成的工作

      3、测试用例设计技术
      广义地分为两类:
      黑盒测试:使用单元接口和功能描述,不需了解被测单元的内部结构
      白盒测试:使用被测单元内部如何工作的信息
      灰盒测试:借助于源代码和测试工具等手段,通过黑盒和白盒测试相结合的方法进行测试的技术。

      测试设计最重要的因素是经验和常识。测试设计者不应该让某种测试技术阻碍经验和常识的运用。


      白盒测试用例设计:使用程序设计的控制结构导出测试用例。
      采用白盒测试的目的主要是:


      保证一个模块中的所有独立路径至少被执行一次;
      对所有的逻辑值均需要测试真、假两个分支;
      在上下边界及可操作范围内运行所有循环;
      检查内部数据结构以确保其有效性。


      黑盒测试用例设计:使用详细设计导出测试用例。

      采用黑盒测试的目的主要是:


      检查功能是否实现或遗漏;
      检查人机界户是否错误;
      数据结构或外部数据库访问错误;
      性能等其它特性要求是否满足;
      初始化盒终止错误。

      3.1 软件设计说明导出的测试

      测试用例通过根据相关的软件设计说明文档进行设计。每个测试用例测试设计说明中一项或多项陈述。通常为被测单元设计说明的一系列陈述建立一系列对应的设计用例。
      1:考虑下面计算实数平方根的函数的设计说明:
      输入:实数
      输出:实数
      处理:当输入0或大于0时,返回输入数的平方根;当输入小于0时,显示:“Square root
      error - illegal negative input"
      ,并返回0;库函数Print_Line用于显示出错信息。
      设计说明有3个陈述,可以2个测试用例来对应。
      Test Case 1
      :输入4,返回2 //执行第一个陈述
      Test Case 2
      :输入-10,返回0,显示“Square root error - illegal negative input”//对应第二个和第三个陈述设计说明导出的测试用例提供了与被测单元设计说明陈述序列很好的对应关系,增强了测试说明的可读性和可维护性。但有软件设计说明导出测试是正面的测试用例设计技术。软件设计说明导出的测试应该用负面测试用例进行补充,以提供一个完整的单元测试说明。
      设计说明导出的测试设计技术还可用于安全分析、保密分析、软件冒险分析和其他给单元设计的其他补充文档。

      32 基本路径测试
      基本路径测试是一种白盒测试技术。测试用例设计者导出一个过程设计的逻辑复杂性测度,并使用改测度作为指南来定义执行路径的基本集,从该基本集导出的测试用例保证对程序中的每一条执行语句至少执行一次。
      基本路径测试的方法步骤如下:
      3.2.1 画出控制流图
      C/C++语句中的控制语句表示如下:
      图中的每一个圆称为流图的节点,代表一条或多条语句。流图中的箭头称为边或连接,代表控制流。
      任何过程设计都要被翻译成控制流图。如下面的C 函数:
      void Sort(int iRecordNum,int iType)
      0 {
      1 int x=0;
      2 int y=0;
      3 while (iRecordNum--)
      4 {
      5  if(0= =iType)
      6    x=y+2;
      7  else
      8    if(1= =iType)
      9      x=y+10;
      10   else
      11     x=y+20;
      12  }
      13 }

      画出其对应的控制流图如下:

Open Toolbar