发布新日志

  • 读书笔记之测试计划

    晨之晓 发布于 2010-05-05 15:23:27

     论做什么工作,都是计划先行,然后按照所制定的计划去执行、跟踪和控制。软件测试也一样,先要制定测试计划,是做好整个测试工作的前提。所以在进行实际测试之前,应制定良好的、切实可行的、有效的测试计划。软件测试计划的目标是提供一个测试框架,不断收集产品特性信息,对测试的不确定性(测试范围、测试风险等)进行分析,将不确定性的内容慢慢转化为确定性的内容,该过程最终使得我们对测试的范围、用例数量、工作量、资源和时间等进行合理的估算,从而对测试策略、方法、人力、日程等做出决定或安排。

    1.测试计划的要点
           测试规划与软件开发活动同步进行,在需求分析时,就开始测试策划,确定测试需求、目标、资源等。测试计划可以按不同的测试阶段(集成测试、系统测试等)来组织,也可以为每个测试任务或目标(安全性、性能、可靠性等测试) 进行考虑。
    测试计划主要集中在测试目标、质量标准、测试策略、测试范围、测试用例设计方法、所需资源和日程安排等,其关键是制定有效的测试策略,界定清楚地测试范围,识别出测试中所存在的各种风险并找出风险回避、监控和管理的方法,针对不同的测试目标或阶段确定测试方法,对测试工作量及所需的资源、时间进行合理的估算。所有这些,都是为了两个根本目的:测试的质量和效率。

    2.制定测试策略
           制定测试策略主要分析测试的目标和质量指标、确定测试的对象和依据,测试的重点和所采用的方法,包括在规定的时间内哪些测试内容要完成,软件产品的特性或质量在哪些方面得到确认。测试策略可以分为:
    • 基于测试技术的测试策略,根据软件系统的技术构成和层次结构,着重考虑如何分层测试、选择哪些测试工具、如何将白盒测试和黑盒测试有机地结合起来等。
    • 基于测试方案的综合测试策略,根据测试的目标和范围,着重考虑如何更好地满足测试需求、如何让功能测试、适用性测试和兼容性测试等进行有机结合、如何充分利用测试资源、如何更有效地完成回归测试等。
    为了更好地制定好测试策略,要做到:
    • 全面细致地了解产品的项目信息:应用领域、测试范围、市场需求、产品特点、主要功能和技术架构;
    • 基于模块、功能、系统、版本、性能、配置和安装等各个因素对产品质量的影响,客观地、全面地展开测试计划;
    • 根据软件单元在系统结构的重要性差异和一旦发生故障将给客户造成的损失大小,来确定软件测试的等级、重点和先后次序;
    • 需要在测试用例数和测试覆盖率上进行权衡而获得一个平衡点,以便能使用尽可能少的有效测试用例去发现尽可能多的程序错误。测试不足意味着让用户承担隐藏错误带来的危险;同时反过来看,过度测试则又会浪费许多宝贵的资源或耽误软件产品的发布时间。

    3.确定测试范围
           测试主要依据 “产品设计规格说明书”、代码所发生的变化及其影响的区域,来确定哪些功能和特性要测试,哪些功能和特性不需要测试。在确定测试范围时,主要考虑的因素有:
    • 优先级最高的需求功能
    • 新增加的功能和编码改动较大的已有功能
    • 容易出现问题的部分功能
    • 过去测试不够充分的地方
    • 经常被用户使用的功能和配置(占20%)

    4.所需资源和日程安排
            为了合理、准确地安排日程,对测试工作量要进行正确的估计。除了对工作量的估计之外,还要正确评估参与该项目人员的培训时间、适应过程和工作能力等。由于涉及到不同的项目、不同的测试人员、不同的前期介入方式,要对每人每天能够完成的平均测试用例数目做出一个准确的估计确实很困难,但是可以根据以前一些项目测试的经验或历史积累下来的数据进行判断推理,并适当增加10%-20%的余量,估算结果就比较准确了。
          
            在估算的基础上,进行有效的、合理的资源安排。在不同的测试阶段人力资源的需求是不一样的,所以人力资源的计划要有一定的灵活性和动态性,形成有机的动态平衡,保证测试的进度和资源的使用的效率。

    5.编制测试计划的技巧
           要做好测试计划,测试设计人员要仔细阅读有关资料,包括用户需求规格说明书、设计文档等,全面熟悉系统,并建议注意以下方面:
    • 让所有合适的相关人员参与测试项目的计划制定,特别是在测试计划早期;
    • 测试所需的时间、人力及其它资源的预估,尽量做到客观、准确、留有余地;
    • 测试项目的输入、输出和质量标准,应与各方达成一致;
    • 建立变化处理的流程规则,识别出在整个测试阶段中哪些是内在的、不可避免的变化因素,加以控制。

    6.测试项目计划的评审
           测试项目的计划不可能一气呵成,而是要经过计划初期、起草、讨论、审查等不同阶段,才能将测试计划制定好。测试计划的评审是完成测试计划关键的一个环节,包括测试组织内部的自我评审、讨论和修改,然后交到评审会进行正式的评审,直至测试计划得到审批。

           测试计划的正式评审,项目中的每个人(产品经理、项目经理、开发工程师等)都应当参与。计划的审查是必不可少的,每一个参与者都可能根据其经验及专长提出问题或建议,弥补在测试范围、工作量、风险等各方面的不足,进一步完善测试计划。
  • 网上找到的关于bugzilla使用

    圣西罗 发布于 2007-06-29 10:50:24

    Bugzilla的使用

    1        用户登录及设置流程:

    打开浏览器,进入Bugzilla主页面。

    进入主页面后,点击【新建帐号】,进入注册页面。

    在注册页面中输入E-Mail真实姓名(为了统一,这里我们都使用计算机名),然后,点击【Create Account】,随后,你将收到一封包含初始密码的E-Mail

    在收到E-Mail之后,点击【登录】,在帐号栏输入注册时使用的E-Mail地址,在密码栏输入邮件里通知的初始密码,然后,点击【Login】。

    如忘记密码,在登陆页面中输入注册用户名,点击【Submit Request,根据收到的邮件进行重新设置密码。

    成功登录后,点击【Edit属性】->【帐号设置】,进行密码修改。

    点击【Edit属性】->【邮件设置】,进行邮件通知设置。

    点击【Edit属性】->【权限】,进行权限查询。

    注意:在登陆使用之后,一定要退出登陆,这不仅是一个好不好习惯的问题,在bugzilla中将成为一个隐患——当你没有退出登陆而关闭页面,当用同一台机器再次访问的时候,系统会以上次登陆的用户访问——小心你的权限被错误使用哦!

    2  BUG处理流程

         测试人员或开发人员发现bug后,判断属于哪个模块的问题,填写bug报告后,系统会自动通过Email通知项目组长或直接通知开发者。

         项目组长根据具体情况,重新reassigned分配给bug所属的开发者。

    ③ 开发者收到Email信息后,判断是否为自己的修改范围.
     1) 若不是,重新reassigned分配给项目组长或应该分配的开发者。
     2) 若是,进行处理,resolved并给出解决方法。(可创建补丁附件及补充说明)
    ④ 测试人员查询开发者已修改的bug,进行重新测试。(可创建test case附件)
     1) 经验证无误后,修改状态为VERIFIED。待整个产品发布后,修改为CLOSED
     2) 还有问题,REOPENED,状态重新变为“New",并发邮件通知。
    ⑤ 如果这个BUG一周内一直没被处理过。Bugzilla就会一直用email骚扰它的属主,直到采取行 动。管理员可以设定最迟采取行动的期限,比如说3天,系统默认为7天。


    3        Bug的提交过程

    要先进行查询

    ◎确认要提交的bug报告不会在原有纪录中存在,若已经存在,不要提交,若有什么建议,可在原有纪录中增加注释,告知其属主。

    确认你发现的Bug是否在最新的版本中所发生的。

     

    Ⅱ若Bug不存在,原谅自己的无情了,添加吧!!

    操作:

    点击【新建】—〉选择发现的bug所在的产品名称。

    在选择的产品bug提交页面中,选择或者输入bug信息。

    ◎模块:点“模块”两个字,可以查看关于这个产品的模块的详细信息。

    ◎平台、操作系统:可以根据发现bug的实际情况来选择,如果确定这个bug可以发生在所有的平台,选择all好了!

    ◎优先级:P1P5优先级逐渐减弱。

    ◎严重级:blockerenhancement严重程度降低。

      Blocker:阻碍了项目开发或者测试的继续进行。

      Critical:冲突,数据丢失和严重的内存泄漏等问题。

      Major:较大的功能缺陷。

      Minor:较小的功能缺陷。

      Trivial:拼写、对齐类的错误。

      Enhancement:需要改进的。

    ◎初始状态:开发人员的默认状态为“unconfirmed”(这个要由管理员设置,参见管理员操作指南),测试人员或者管理员此处为可选状态:unconfirmednew.

    Assigned to: 为空时默认为管理员指定的 owner, 也可手工制定。

    CC: 可为多人,需用""隔开。

    URL: bug的定位(可选)。

    ◎注释:是对bug的概述(必须填写)。

    Desription中要详细说明下列情况:
    1
    ) 发现问题的步骤

    2) 执行上述步骤后出现的情况
    3
    ) 期望应出现的正确结果

    ◎关键字:单击“关键字”三个字,会显示管理员已经设定的关键字,选择其一,便于以查询。注意:此处不可以随意添加,必须使用已经存在的关键字才好。另外,如果管理员没有创建关键字的话,那么此项缺省。

    ◎依赖:直接输入与当前bug有依赖关系的bug的编号。简单地说,比如说这里输入“3”,那么就是说当前提交的bug有依赖关系,不是由于3导致了当前bug,就是当前bug导致了bug3

    确认无误后,“commit”!

    提交之后,系统会提示:bug 已经提交。在此页面的下半部分,会再次显示刚才提交的bug的详细信息,你可以在这里进行修改,重新commit,也可以在此增加新的附件或是附加说明来进一步说明bug

    ◎投票:可以查看票数,只要点击显示这个bug的票数,也可以参加投票,【为这个bug投票】—〉在“票数”一栏中直接输入票数—〉【change my votes.

    需要说明的是:票数并不是任意的,管理员为每一个用户设置了可以投票的最大数目和每个用户为某个bug投票的最大数目。

    建议:一次只投一票,多投也没什么意义。

     

    Ⅲ 冲突

    当两个或几个人同时修改一个bug提交信息的时候,bugzilla会有弹出 Mid- air collision!提示,并且列出解决冲突的选择:◎提交修改,但是会导致覆盖别人所做的修改。

    ◎不改了,返回。

    建议选择返回,看看别人修改了什么,不同的话,添加一个附加说明来补充吧!!

    以上各项可能会因为权限的关系,有所缺省。

    4  对于Bug的不同处理情况

    4.1 Bug的属主 (owner) 处理问题,提出解决意见及方法。
    给出解决方法并填写附加说明(Additional Comments),还可创建附件(如:更改提交单)。
    填表提示:
     FIXED 描述的问题已经修改,
    bug已经修复并检查过,源文件已经检入CVS库。

    INVALID 描述的问题不是一个bug (输入错误后,通过此项来取消)
      WONTFIX 描述的问题将永远不会被修复。
      LATER 描述的问题将不会在产品的这个版本中解决。
      DUPLICATE 描述的问题是一个存在的bug的复件。
      WORKSFORME 所有要重新产生这个bug的企图是无效的。如果有更多的信息出现,请重新分配这个bug,而现在只把它归档。

     

    4.2 项目组长或开发者重新指定Bug的属主。
    bug不属于自己的范围,可置为 Assigned ,等待测试人员重新指定。
    bug不属于自己的范围,但知道谁应该负责,在
    Reassign bug to的输入框中直接输入被指定人的Email。  

    ③操作结果:此时bug状态又变为New,此bugowner变为被指定的人。

     

    4.3 测试人员确认开发人员报告的Bug是否存在.

    查询状态为“Unconfirmed"Bug,

    测试人员对开发人员提交的Bug进行确认,确认Bug存在。

    具体操作:选中“Confirm bug(change status to New)"后,进行commit.

    操作结果:状态变为“New".

     

    4.4 测试人员验证已修改的 Bug
    ① 测试人员查询开发者已修改的bug,即Status"Resolved", Resolution"Fixed".进行重新测试。(可创建test case附件)
    ② 经验证无误后,修改ResolutionVERIFIED。待整个产品发布后,修改为CLOSED
     若测试之后发现还有问题,REOPENED,状态重新变为“New",并发邮件通知。

     

    5、关于权限的说明

    ◎组内成员对bug具有查询的权利,但不能进行修改。

    Bugowner reporter 具有修改的权利。
    ◎ 具有特殊权限的用户具有修改的权利。

    6        查询

    6.1 登录Bugzilla缺陷跟踪系统后,点击查询(如上图),可以按照指定的一个或者多个查询条件进行查询。

    ◎摘要(Summary)下拉列表框选择查询规约。在其后的输入框中输入包含的信息,此信息的指定与提交bug时的注释信息相一致。

    产品(Product):选择所要查找的bugs所在的产品。

    模块(Component):选择bugs所在的模块。

    版本(Version):选择bugs版本。

    ◎注释(Comments):可在下拉列表框中选择将要输入的包含信息的规约,其后指定包含的信息。此信息的指定根据提交bugs时所填写的描述信息。

    URL: 指定关于bugs所在的URL

    ◎关键字(Keywords):指定包含或不包含该关键字的bugs。每个bug可以被指定关键字,bugs报告人或者管理员可以编辑关键字。

    状态(Status):选择bugs状态。

    处理(Resolution):选择bugs处理的结果。

    严重性(Severity):选择bugs的严重级别。

    优先级(Priority):选择bugs的优先级别。

    硬件(Platform):选择存在bugs程序运行的平台。

    ◎操作系统(OpSystem):选择存在bugs程序所运行的操作系统。

     

    6.2 邮箱和编号     

    邮件和编号

    任意:

    bug属主

    报告人

    抄送列表成员

    评论者

    任意:

    bug属主

    报告人

    抄送列表成员

    评论者


    邮件和编号查询方式

    在这一部分,我们可以通过复选框中的用户(bug属主、报告人、抄送列表成员以及评论者)E-mail地址和bug的编号进行查询。

    这部分的查询界面(如上图)有两列相同的复选框、下拉列表框及文本框。同一列的复选框可多选。文本框中可以输入多个E-mail地址,中间用“,”隔开。查询结果取多个复选框的并集。若同时指定两列查询选项,则查询结果取各自的交集。

    例如:

    要查询bug属主和报告人为wangxx@informedia.net.cnbugs,首先点选bug属主和报告人复选框,然后在下拉列表框中选择“是”,文本框中输入,点击Search显示查询结果。

    又如要查询bug属主为wangxx@informedia.net.cn且报告人为zoufg@informedia.net.cnbugs,则可以在第一列选项中设置bug属主,在第二列选项中设置报告人,点击Search显示查询结果。

    ◎至少有下述票数的bug:可查找指定的票数的bugs

    在这一部分的查询中,我们还可以直接输入编号进行查找,选择包含或排除,然后输入bug编号,即可按号查找。

     

    6.3  Bug变更

    在下述天数内修改的bugs:可查找在指定天数内修改过的bugs

    匹配下面任意条件的bugs:可选择发生过改变的条件,指定发生改变的时期(按照yyyy-mm-dd的格式)以及修改后的属性值。

     

    6.4 使用Boolean Chart高级查询

       

               

     

    Boolean chart 查询界面

     

    利用Boolean Chart高级查询可以实现以上所有的查询功能。

    例如:在第一个下拉列表框中选择“bug #”,第二个选择“等于”,第三个指定n(nbugID号,如2),点击Search,查询结果将列出ID号为nbug。点击Or,可追加查询选项及选项值,查询结果与上一查询结果取并集;点击And,则查询结果取交集。

    点击Add another Boolean Chart,可以添加新的Boolean Chart。这个键与And键几乎相同。只是前一个Boolean Chart查询的结果,作为下一个Boolean Chart查询的范围。

     

    6.5 指定查询结果的排序方式:

    Sort results by :可以指定查询结果的排列顺序。

     

    6.6 显示全部的BUG

    在列表框(如状态列表框),我们可以通过Ctrl+Click(左键单击)取消一个选项,去掉所有的查询选项,就可以显示所有的BUG了。

     

    6.7 查询结果页面显示:

    点击页面上的,可以显示查询结果中bugs的详细的相关信息。

    CSV:打开一个关于查询结果的.csv文件,事实上是一个excel表格形式。

    Change Columns :用来设置查询结果的显示项。

    ◎马上改几个Bug:可以对查询结果中所有或者部分bugs进行统一变更。

    ◎发邮件给Bug属主:发邮件给bug属主,邮箱地址用“,”隔开。

    ◎编辑这个查询:可以重新设置查询选项。

     

    我们还可以点击bugID,查看单个的BUG信息。

     

    View Bug Activity:查看此BUG的活动日志,即修改纪录。

    Format For Printing:相当于打印预览啦!

     

    6.8 预定义查询

    在查询页面底部黄色区域内有一个【预先定义的查询:我的bug 】选项,其中的查询结果是当前用户提交或指定给当前用户的bug

     

     

     

     

     

     

     

     

     

     

     

  • linux 下安装bugzilla

    baishi0502 发布于 2007-04-26 16:23:57

    安装bugzilla,要先获得一些软件的支持,可以通过网上下载获得。
    一:下载相关软件:
    1。ActivePerl-5.6.1(最好不要用最新版本,否则在安装相应模块时会有些小问题,这个版本我试过,可以用,)下载地址:http://www.activestate.com/store/download.aspx?prdGUID=81fbce82-6bd5-49bc-a915-08d58c2648ca,有三种格式,我选择的是.tar.gz。
    2。mysql : (rpm格式)下载地址:www.rpmfind.net或者www.mysql.org
       下载清单:MySQL-client-4.0.21-0.i386.rpm  MySQL-devel-4.0.21-0.i386.rpm  MySQL-server-   4.0.21-0.i386.rpm
    3。bugzilla (bugzilla-2.18rc2.tar.gz)
    4。web服务器,这里用apache (httpd-2.0.55.tar.gz)
    5。perlmodules(模块) 下载地址:www.cpan.org(可以直接用模块名搜索,也可以以其他方式)
    二:安装步骤。
    1。安装mysql。
    # cd /
    # mkdir mysql
    # cd mysql
    (将所需文件放在此目录下,可通过挂载光驱输入,也可利用scrt上传,至于scrt使用方法,不作讲述)
    # rpm -ivh MySQL-server-4.0.21-0.i386.rpm
    # rpm -ivh MySQL-client-4.0.21-0.i386.rpm
    # rpm -ivh MySQL-devel-4.0.21-0.i386.rpm
    2.安装apache
    # cd /
    # mkdir apache
    # cd apache
    (将安装文件放在此目录下)
    # tar zvxf http-2.2.0.tar.gz
    # ./configure
    # make
    # make insatll
    # vi /etc/httpd/conf/httpd.conf(修改ServerName这行后面部分为本机IP地址,如:
         ServerName 192.168.1.65:80)
    # /usr/sbin/apachectl start (启动acpache)
    3.安装bugzilla(在根目录下新建bugzilla目录)
    # cd bugzilla
    # tar zvxf bugzilla-2.18rc2.tar.gz
    # mv bugzilla-2.18rc2 /var/www/html/bugzilla(将bugzilla-2.18rc2改名放在apache默认安装目录下
    4.安装perl.(在根目录下新建perl目录)
    # cd perl
    # rpm -ivh ActivePerl-5.6.1.638-i686-linux.rpm
    5.安装perl模块
    (1)模块Appconfig
    # cd perl
    # tar zxvf Appconfig-1.56.tar.gz
    # cd Appconfig-1.56
    # perl Makefile.PL
    # make
    # makeinstall
    (2)安装CGI
    (3)TimeDate
    (4)DBI
    (5)DBD::mysql(此模块一定要在DBI之后安装)
    (6)Template-toolkit
    6.进入bugzilla目录,修改localconfig
    cd    /var/www/html/bugzilla
    ./checksetup.pl(检查模块的安装情况)
    vi    localconfig
    把$db_pass=’   ’;中填入一个数据库的密码(自己一定要记住,如这里输入xxx)
    7、 进入mysql 中创建我们自己的数据库
    #cd    /var/www/html/bugzilla
    Mysql>mysql –u root
    Mysql>create database bugs;
    Mysql>GRANT SELECT, INSERT, UPDATE, DELETE, INDEX, ALTER, CREATE, LOCK TABLES,
    CREATE TEMPORARY TABLES, DROP, REFERENCES ON bugs.* TO [email=bugs@localhost]bugs@localhost[/email]
    IDENTIFIED BY 'xxx';(此处填我们在上一步操作中的密码)
    mysql> FLUSH PRIVILEGES;
    mysql> quit;
    8、 输入管理员的邮箱、用户名、密码
    ./checksetup.pl
    9、 修改bugzilla的权限、属主和属组
    1、cd /var/www/html
    2、chmod 777 bugzilla
    3、chown –R apache.apache bugzilla
    10、 配置apache
    (1)、vi /etc/httpd/conf/httpd.conf
    (2)、去除这行的注释增加.pl:AddHandler cgi-scrīpt  .cgi  .pl
    (3)、在这行增加index.cgi   DirectoryIndex  index.cgi  index.html  index.html.var
    (4)、在未尾增加以下几行
    <Directory “/var/www/html/bugzilla”)
    Options +Indexes +ExecCGI
    AllowOverride Limit
    </Directory>
    (5)、进入bugzilla页面
    http://192.168.1.65/bugzilla
    (此安装经验,是总结了许多人的方法而成。)
  • 版本控制系统cvs的安装和配置

    sacri 发布于 2007-11-21 09:46:32

    cvs 是一个开源的版本控制系统。 我们可以用它来记录源文件的修改历史。
    例如,修改软件时可能会不知不觉混进一些 bug,而且可能过了很久你才会察觉到它们的存在。有了 cvs,你可以很容易地恢复旧版本,并从中看出到底是哪个修改导致了这个 bug。
    如果我们把曾经创建的每个文件都保存下来显然会浪费大量的磁盘空间。cvs的做法是把一个文件的所有版本保存在一个文件里,仅仅保存不同版本之间的差异。
    对于开发人员来说,两人之间很容易很容易互相覆盖文件。cvs用隔离不同的开发人员的方式解决了这个问题,每个开发人员在自己的目录工作,等完成之后由cvs合并。
    cvs 最初由 Dick Grune 在 1986 年 12 月以 shell 脚本的形式发布在 comp.sources.unix 的新闻组第 6 卷里。虽然当前的 cvs 中没什么代码来自于这些 shell 脚本,但许多 cvs 的冲突解决算法是从它们来的。
    1989 年 4 月,Brian Berliner 设计了 cvs 并编写了代码。之后 Jeff Polk 帮助 Brian 设计了 cvs 模块和销售商分支支持。
    我们可以免费从网上下载到cvs
    网址: http://www.cvshome.org/
    1、基本安装
    以下以UNIX平台为例。
    http://ccvs.cvshome.org/servlets/ProjectDownloadList下载最新的cvs安装包到本地后:
        %gunzip cvs-1.11.2.tar.gz
        %tar xvf cvs-1.11.2.tar
        %cd cvs-1.11.2
        %./configure (可以用./configure --help看看,根据自己的环境添加相应的参数)
        %make
        %su -      (以正确的用户来安装)
    %make install
    2、CVS Server端的配置
     安装完CVS(假设cvs安装在/usr/local/bin)后:
    (1)启动CVS服务
        %vi /etc/services 
      pserver 2402/tcp #cvs pserver port   (确认这一行存在。)
        %vi /etc/inetd.conf
        在文件末尾加入:
      pserver stream tcp     nowait  root    /usr/local/bin/cvs cvs --allow-root=/your/path/for/cvs/repsitory pserver
      注意这是一行。
      然后重新启动inetd进程(一般要root用户权限):
      %ps -ef | grep inetd  找出inetd的pid
        %su -
      %kill -HUP pid
      %inetd

    (2)建立cvsadm用户和组(使cvsadm用户属于cvsadm组,用于对cvs进行管理)
      在cvsadm用户的.cshrc(ksh,sh对应的文件为.profile)文件中设置环境变量$PATH变量中加入/usr/local/bin,并置$CVSROOT为: 
      :pserver:cvsadm@192.168.4.33:/your/path/for/cvs/repository
      其中192.168.4.33为CVS服务器的IP地址。
    (3)生成CVS环境
      确认/your/path/for/cvs/repsitory目录存在,且cvsadm有可写权限。以cvsadm登录Unix,运行%cvs login ,系统会提示输入密码,登录成功后,执行:%cvs init
      (注: 此时可能会提示.cvspass文件不存在,手工touch .cvspass文件后,重新运行cvs login和cvs init 即可)
    (4)配置cvs环境
      验证方式:
      缺省情况下可以操作系统系统帐号的验证方式和cvs passwd验证方式以及rhost方式均有效,但从安全角度出发,建议只采用cvs passwd 的验证方式。因为这种方式下的cvs用户是不能直接telnet到cvs server主机上,只能通过cvs client进入cvs server主机对cvs进行存取。
      禁用系统帐号验证的方法如下:
      %vi $CVSROOT/CVSROOT/config
      加入:  SystemAuth=no   即可
      CVS口令文件:
      缺省情况下cvs passwd 验证方式所需的passwd文件(位于$CVSROOT/CVSROOT目录下)不存在,需自己创建
      文件格式如下:
      cvsadm:adfWS~!#$@S->:cvsadm
      user1::osuser1
      user2::osuser2
      user3::osuser1
      注:passwd文件的格式是:
      以“:”为分隔,分为三部分:
       第一部分是cvs帐号名(与系统帐号无关,也可与系统帐号名相同)
       第二部分(可选项)是加密串,每个系统用户的加密串缺省是在/etc/shadow中,如果cvs帐号不是操作系统的帐号,shadow中是不会有cvs帐号的加密串的,这时就必须手工为cvs帐号生成加密串,可以将其他系统帐号的密码修改成想要的密码(此时shadow文件的加密串跟着改变),在取得加密串后改回去。当第二部分置空时,该帐号以任何口令均可登入cvs server
       第三部分(可选项)是一个操作系统帐号, 如果登陆成功, cvs用户就以此系统帐号的身份存取cvs中的源代码,这里的系统帐号是cvs权限控制的关键, 这个系统帐号有什么权限, 以此帐号身份存取cvs的cvs用户就有相同的权限.。注意: 考虑到cvs用户是以某个系统帐号的身份运行的, 此系统帐号应当对repository下的相应目录有写的权限, 这样就存在直接进入目录对文件进行修改的可能, 而这是cvs操作所不允许的,为了避免这种误操作, 建议在产生此系统帐号时使其shell为/bin/false, 并且不设置此帐号的密码,这样可以禁止直接以此系统帐号telnet或者ftp进入CVS Server。
      另外,passwd文件中的用户不能重名,否则只有第一个有效。
    3、CVS Client端的配置
    (1)Unix环境下:
      CVS服务器正确安装置后,就可以设置Client端来操作了。
      设置方法是:
      在用户的环境变量设置$CVSROOT变量,以a用户为例:
      %setenv CVSROOT :pserver:a@192.168.4.33:/your/path/for/cvs/repository
      %cvs login  系统将提示输入CVS口令
      口令认证通过后,就可以进行CVS的操作了。
    (2)Windows环境下:
      在http://www.wincvs.org下载最新wincvs软件并安装。
      设置环境CVSROOT变量:
          运行wincvs,从界面菜单处,选择admin --> preference --> General -->设置CVSROOT为::pserver:a@192.168.4.33:/disk1/repository
          其中的a为用户的CVS帐号,@后面是CVS服务器的IP地址。
          当cvs server的端口不是缺省的2401时,需要在
      admin --> preference --> Ports -->设置For "pserver"(passwd) port为定义的值。

数据统计

  • 访问量: 6673
  • 日志数: 12
  • 建立时间: 2007-11-20
  • 更新时间: 2007-12-20

RSS订阅

Open Toolbar