软件代码与测试缺陷的管理.ppt
《软件代码与测试缺陷的管理.ppt》由会员分享,可在线阅读,更多相关《软件代码与测试缺陷的管理.ppt(71页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、软件代码与测试缺陷的管理软件代码与测试缺陷的管理 计算机软件培训讲座讲座内容讲座内容一、软件代码的管理一、软件代码的管理二、代码的审查规范二、代码的审查规范三、软件项目的测试三、软件项目的测试四、软件的缺陷管理四、软件的缺陷管理一、源代码的管理一、源代码的管理1.1 软件源代码管理工具软件源代码管理工具n目前主要的源代码管理是:目前主要的源代码管理是:CVS、VSSnCVS(Cuncurrent Versions System)是是基基于于 TCP/IP 协协议议的的版版本本控控制制工工具具,也也是是 Open source 界界最最重重要要的的开开发发工工具具之之一一。CVS 保保存存了了对
2、对项项目目源源码码每每一一次改动的记录和注释。次改动的记录和注释。n在在任任何何时时候候,你你都都可可以以找找到到仓仓库库中中任任何何文文件件的的任任何何版版本本。它它容容许许几几个个人人同同时时工工作作在在同同一一个个文文件件,在在他他们们提提交交文文件件时时来来合合并并他他们们所所做做的的修修改改。在在修修改改冲冲突突时时会会发发出出警警告告来来通通知知用用户户,确确定定将将此此文文件件的的更更新新版版本本放放入入仓仓库库内内,发发生生的的冲冲突由某人解决。突由某人解决。nVSS(Visual SourceSafe)是是微微软软的的源源代代码码管管理理工工具具,与与CVS功功能能基基本本相
3、相似,用法上略有不同。在此以似,用法上略有不同。在此以CVS为例介绍。为例介绍。1.2 基于基于CVS的并行开发流程的并行开发流程n你你把把你你的的所所有有代代码码导导入入(import)CVS,然然后后其其他他人人可可以以检检出出(check out)源码树的一个工作拷贝。)源码树的一个工作拷贝。n每每个个人人都都工工作作在在自自己己的的本本地地计计算算机机中中,当当有有一一个个新新的的功功能能出出现现时时,他他们们必必须须更更新新(update)他他们们的的本本地地拷拷贝贝来来保保持持和和当当前前版版本本同同步步。他他们们会会提提交交(commit)他们改变的文件到仓库中来生成新的版本。)
4、他们改变的文件到仓库中来生成新的版本。n在在提提交交时时出出现现的的问问题题CVS都都会会产产生生警警告告,然然后后你你必必须须仔仔细细检检查查出出问问题题的的文文件件来来手手工工解解决决冲冲突突。在在文文件件中中,改改动动的的部部分分会会在在前前面面以以 符符号号显显示示,并并且且列列出出两两个个版版本本的的不不同同之之处处。仅仅删删除除旧旧版版(或或修修改改使使它它能能够够工工作作),再再次次提提交文件,一旦交文件,一旦CVS没有警告返回上一步,继续工作。没有警告返回上一步,继续工作。1.3 CVS操作操作内内 容容说说 明明CVS基本概念基本概念实用实用CVS时的常用概念时的常用概念CV
5、S记录文件记录文件记录用户对记录用户对CVS的所有操作的所有操作配置配置介绍如何配置介绍如何配置CVS客户端客户端登录登录登录到系统中的登录到系统中的CVS服务器服务器文件上传文件上传上传上传CVS服务器上没有的服务器上没有的module到服务器上到服务器上文件下载文件下载将服务器上的文件下载到本地将服务器上的文件下载到本地编辑文件编辑文件编辑本地文件编辑本地文件提交修改文件到服务端提交修改文件到服务端编辑本地文件编辑本地文件比较文件比较文件比较文件的异同比较文件的异同更新本地文件更新本地文件将服务端文件更新到本地将服务端文件更新到本地合并文件合并文件合并不同分支(版本)的文件合并不同分支(版
6、本)的文件添加文件添加文件上传上传CVS服务器上没有的文件到服务器上服务器上没有的文件到服务器上删除文件删除文件删除删除CVS服务器上的文件服务器上的文件创建标签创建标签为文件创建标签为文件创建标签分支分支实现软件产品分支的操作实现软件产品分支的操作查看版本历史查看版本历史查看查看CVS服务器上文件的历史纪录或者当前状态服务器上文件的历史纪录或者当前状态1.4 CVS的基本概念的基本概念nrepository仓库:仓库:用用于于存存放放版版本本控控制制下下的的所所有有目目录录和和所所有有各各种种版版本本的的文文件件;CVS会会完完成成对对repository的查询和更新。的查询和更新。数数据据
7、如如何何存存放放在在repository中中:随随着着CVS版版本本的的不不同同,存存放放结结构构会会发发生生变化,一般情况下用户无需了解数据到底是如何存放的。变化,一般情况下用户无需了解数据到底是如何存放的。nModul:一个目录层。一个软件工程通常作为单个的模块存放在库中。:一个目录层。一个软件工程通常作为单个的模块存放在库中。ncheckout:描述将某个模块从库中首次导出。描述将某个模块从库中首次导出。nCommit:将你对文件的修改提交到库中。(相当于将你对文件的修改提交到库中。(相当于VSS中的中的checkin)nTimestamp:CVS自动给文件添加的日期标志,自动给文件添加
8、的日期标志,格式形如:格式形如:Fir Dec 20 06:18:48nrevision:文文件件的的版版本本。形形如如1.1,1.2.1,一一般般1.1是是该该文文件件的的第第一一个个revision,后面的一个将自动增加最右面的一个整数。,后面的一个将自动增加最右面的一个整数。1.4 CVS的基本概念的基本概念nbranch:分分支支是是出出于于软软件件版版本本的的稳稳定定性性和和开开发发的的延延续续性性考考虑虑的的,当当我我们们在在原原来来的的版版本本基基础础上上需需要要创创建建另另外外一一个个版版本本(项项目目)时时,可可创创建建一一个个分分支支,分分支支跟跟主主版版本本可可独独立立开
9、开发发,又又可可以以相相互互合合并并。一一般般是是有有个个发发布布版版v1.0,在在开开发发v1.2的的基基础础上上,同同时时又又在在修修改改v1.0,这这时时就就可可以以创创建建分分支支,不不同同分分支支也也可可以互相合并。以互相合并。ntag:tag顾顾名名思思义义就就是是做做个个标标签签,如如张张三三的的文文件件,他他就就可可以以做做个个标标签签为为张张三三以以表表明明是是他他的的文文件件。Tag只只是是在在文文件件上上做做了了一一个个标标签签,并并没没有有创创建建不不同同的的文文件件。通通常常不不需需要要对对某某一一个个孤孤立立的的文文件件作作tag,而而是是对对所所有有文文件件同同时
10、时作作一一个个tag,以以后后用用户户可可以以仅仅向向特特定定tag的的文文件件提提交交或或者者checkout。另另外外一一个个作作用用是是在在发发布布软软件件的的时时候候表表示示哪哪些些文文件件及及其其哪哪个个版版本本是是可可用用的的;各各文文件件不不同同revision可可以以包包括括在在一一个个tag中中。如如果果命命名名一一个个已已存存在在的的tag,,默默认认将将不不会会覆盖原来的。覆盖原来的。nconflict:完完全全是是纯纯文文本本的的冲冲突突,不不包包含含逻逻辑辑上上的的矛矛盾盾。冲冲突突的的产产生生是是在在多多人人对对同同一一文文件件的的修修改改的的时时候候,不不同同的的
11、人人对对此此文文件件的的同同一一地地方方做做了了修修改改,这这个个时时候候CVS以以文文本本的的形形式式给给出出了了冲冲突突的的地地方方,至至于于如如何何处处理理,CVS给给出出引引导,最终靠用户决定如何解决。导,最终靠用户决定如何解决。1.5 CVS中的指示符含义中的指示符含义nU file 形如形如“U file”的行表示文件已被更新为源代码树仓库中最新版本。这一操作的行表示文件已被更新为源代码树仓库中最新版本。这一操作适用于本地工作目录中不存在但源代码树仓库中却存在的文件;或是本地适用于本地工作目录中不存在但源代码树仓库中却存在的文件;或是本地工作目录中没有修改但却不是源代码树仓库中最新
12、版本的文件。工作目录中没有修改但却不是源代码树仓库中最新版本的文件。nP file 与与“U file”类类似似,但但cvs服服务务器器只只是是提提供供一一个个补补丁丁而而不不是是整整个个文文件件。两两种种操操作的结果是相同的。作的结果是相同的。nA file “A file”表示文件已经被添加到个人的工作拷贝中,但是还未提交到源代码表示文件已经被添加到个人的工作拷贝中,但是还未提交到源代码树仓库中。如果从本地工作目录中删除,将丢失文件。这个指示符提醒你树仓库中。如果从本地工作目录中删除,将丢失文件。这个指示符提醒你对添加的文件进行提交。对添加的文件进行提交。nR file “R file”表
13、表示示文文件件已已经经从从个个人人的的工工作作拷拷贝贝中中删删除除,但但是是还还未未提提交交删删除除操操作作,所所以以该该文文件件还还没没有有从从源源代代码码树树仓仓库库中中删删除除。这这个个指指示示符符提提醒醒你你对对删删除除的的文文件进行提交。件进行提交。1.5 CVS中的指示符含义中的指示符含义nM file “M file”表示文件已经在工作目录中被修改。表示文件已经在工作目录中被修改。M能能够够表表示示你你所所修修改改文文件件的的两两种种情情况况:一一是是源源代代码码树树仓仓库库中中的的文文件件没没有有被被修修改改,还还保保持持在在你你最最后后一一次次更更新新时时的的状状态态;或或是
14、是源源代代码码树树仓仓库库中中的的文文件件已经被修改,但是可以与你本地工作目录上的文件无冲突地成功合并。已经被修改,但是可以与你本地工作目录上的文件无冲突地成功合并。nC file “C file”表表示示合合并并本本地地修修改改和和源源代代码码树树修修改改时时有有冲冲突突发发生生。file(本本地地工工作作目目录录上上的的备备份份)现现在在是是试试图图合合并并两两个个版版本本的的结结果果;未未修修改改的的文文件件备备份份被被标标记记为为.#file.revison,也也保保存存在在本本地地的的工工作作目目录录上上,这这个个版版本本是是你你所所修修改改文文件件的的初初始始版版本本。(在在有有些
15、些系系统统中中,以以.#开开头头的的文文件件如如果果有有一一段段时时间间没没有有被被访访问问的的话话会会被被自自动动清清除除。所所以以假假如如你你想想保保存存初初始始文文件件的的备备份份,最最好好的的办办法就是重命名)。法就是重命名)。n?file “?file”表表示示file仅仅存存在在于于本本地地工工作作目目录录中中,不不与与源源代代码码树树仓仓库库中中的的任任何文件相对应,不受何文件相对应,不受cvs的控制。的控制。1.6 CVS中的配置中的配置1.7 CVS中的上传中的上传(Import)1.8 CVS中的下载中的下载(CheckOut)1.9 CVS中的提交中的提交(CheckIn
16、)1.10 CVS中的文件比较中的文件比较二、代码的审查规范二、代码的审查规范2.1 代码审查规范:代码审查规范:岗位与职责岗位与职责 n 代码提交人代码提交人(1)完成阶段性的编码工作。完成阶段性的编码工作。(2)预提交代码必须是在当前最新的环境下完成。预提交代码必须是在当前最新的环境下完成。(3)预提交代码必须符合公司编码规范。预提交代码必须符合公司编码规范。(4)预提交代码必须确保编译通过。预提交代码必须确保编译通过。(5)必须在自己的个人建造版本上进行测试,保证测试用例全部通过。必须在自己的个人建造版本上进行测试,保证测试用例全部通过。(6)保证保证CheckIn操作的正确性,不能遗漏
17、文件或其他错误操作。操作的正确性,不能遗漏文件或其他错误操作。2.1 代码审查规范:代码审查规范:岗位与职责岗位与职责 n 代码审查人代码审查人(review)(1)负责对代码做负责对代码做Code Review。(2)保证预提交代码的质量和功能正确性。保证预提交代码的质量和功能正确性。(3)指导监督新员工前三次指导监督新员工前三次CheckIn操作,保证新员工操作,保证新员工CheckIn操作的操作的正确性正确性,CheckIn mail发送的正确性。发送的正确性。(4)需要提前确定项目模块的负责人,需要提前确定项目模块的负责人,code review必须有模块负责人必须有模块负责人参加。参
18、加。2.2 代码审查规范:代码审查规范:CheckIn nCheckIn的含义的含义 对对数数据据库库中中现现有有的的程程序序代代码码进进行行修修改改(包包括括修修改改,添添加加,删删除除等等操操作作),要把自己的修改提交到数据库的操作,我们称之为要把自己的修改提交到数据库的操作,我们称之为CheckIn。nCheckIn操作的步骤操作的步骤(1)若若在在本本地地目目录录新新增增(删删除除)文文件件,第第一一时时间间在在Wincvs(或或SourceSafe,暂暂以以Wincvs说明说明)上上Add selected(Remove selected)。)。(2)编写代码,修改其他文件。编写代码
19、,修改其他文件。(3)Update和和merge新的代码。新的代码。(4)运行编译检查运行编译检查,并确保全部编译通过。并确保全部编译通过。(5)进行测试,保证测试用例全部通过。进行测试,保证测试用例全部通过。(6)代代码码审审查查(Code Review):必必须须找找相相应应的的code review负负责责人人做做代代码码审审查查工作,工作,code reviewer可借助代码风格整理工具检查代码风格。可借助代码风格整理工具检查代码风格。(7)ChecekIn代码,代码,commit提交。提交。(8)填写发送填写发送CheckIn mail,通知所有开发人员本次,通知所有开发人员本次Ch
20、eckIn的内容、意义。的内容、意义。(9)新新员员工工的的前前三三次次CheckIn都都要要在在review人人员员的的监监督督下下操操作作,避避免免出出现现不不必必要要的错误。的错误。2.2 代码审查规范代码审查规范nCheckIn mail发送发送 在在CVS执执行行CheckIn操操作作之之后后,要要登登录录“软软件件工工程程管管理理系系统统”,进进入入相应的页面填写相应的页面填写CheckIn mail。具体步骤如下:。具体步骤如下:(1)进进入入软软件件工工程程管管理理系系统统后后系系统统会会自自动动提提示示有有代代码码Checkin,确确认认要要填填写写(有时可以多次有时可以多次
21、Checkin后再统一发后再统一发Email,这时可以暂时不用填写,这时可以暂时不用填写)。(2)选择选择CheckIn代码或文档所属的项目和任务。代码或文档所属的项目和任务。(3)选择或填写选择或填写Checkin的类型,添加代码、或修复的类型,添加代码、或修复BUG等。等。(4)进入进入CheckIn mail的页面,按照其规定格式填写即可。的页面,按照其规定格式填写即可。(5)填填写写完完毕毕后后,点点击击“提提交交CheckIn记记录录”,系系统统会会自自动动将将此此CheckIn记记录的内容录的内容email给相关人员。给相关人员。2.2 代码审查规范代码审查规范nCheckIn 的
22、重要性的重要性(1)将将自自己己修修改改的的代代码码保保存存到到服服务务器器的的数数据据库库上上,这这样样可可以以保保证证数数据据不不会会丢丢失。失。(2)更更新新了了数数据据库库,可可以以使使其其他他人人获获取取自自己己修修改改后后的的程程序序代代码码,保保证证了了工工作作上的协调一致。上的协调一致。(3)软软件件项项目目的的所所有有源源代代码码、测测试试代代码码、说说明明文文档档等等,就就是是由由这这一一次次次次的的CheckIn构构建建起起来来的的。每每一一个个CheckIn,都都清清楚楚的的显显示示着着大大家家的的工工作作情情况,工作内容和结果。况,工作内容和结果。2.2 代码审查规范
23、代码审查规范nCheckIn 的注意事项的注意事项(1)任任何何人人在在修修改改代代码码后后,都都要要经经过过Code Review,才才能能够够CheckIn代代码码,这这样样可可以以保保证证代代码码的的质质量量。千千万万不不要要存存在在侥侥幸幸心心理理,认认为为自自己己的的改改动动无无关关紧紧要要,没没有有经经过过别别人人Code Review,就就CheckIn。要要知知道道,每每一一个个细细小小的的错错误误,都都有有可可能能造造成成不不可可预预期期的的严严重重后后果果。一一次次错错误误的的修修改改,可可能能会会把把源源代代码树放倒,将影响到所有人的正常工作。码树放倒,将影响到所有人的正
24、常工作。(2)修修改改后后的的代代码码,要要尽尽快快CheckIn,不不可可拖拖得得时时间间太太长长。当当自自己己checkin之之前前,别别人人又又有有CheckIn时时,需需要要重重新新获获取取服服务务器器上上的的代代码码(UpDate),如如果果有有冲突需进行冲突需进行merge,然后重新做,然后重新做checkin前的检查,避免产生错误。前的检查,避免产生错误。(3)不允许在源代码冻结时或者系统夜间做自动测试或自动备份时不允许在源代码冻结时或者系统夜间做自动测试或自动备份时CheckIn。(4)每每次次CheckIn之之后后必必须须及及时时填填写写CheckIn mail。要要让让别别
25、人人知知道道自自己己都都做做了了什么事情,这也是考核评定的重要组成部分。什么事情,这也是考核评定的重要组成部分。(5)CheckIn记记录录不不允允许许是是修修复复Bug的的工工作作,必必须须先先有有Bug号号,才才有有BugFix(BUG修复修复)记录。发现的记录。发现的Bug必须录入到必须录入到Bug系统。系统。2.3 代码审查准则代码审查准则Code Review的目的的目的n凡事知其然还要知其所以然,我们首先需要知道什么是凡事知其然还要知其所以然,我们首先需要知道什么是Code Review和我和我们使用它的目的是什么。们使用它的目的是什么。nCode Review是一种用来确认方案设
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 代码 测试 缺陷 管理
限制150内