配置管理
一、配置管理的概念:
配置管理是通过对在软件生命周期的不同的时间点上的软件配置进行标识,并对这些被标识的软件配置项的更改进行系统控制,从而达到保证软件产品的完整性和可溯性的过程。
二、配置管理是对软件整个生命周期进行管理。
配置管理是对配置项进行标示,并进行增删改查等操作。
配置管理的目的:是保证软件产品的完整性,一致性和可回溯性。
三、配置项的内容:合同类文档 、计划类文档、工程类文档、程序代码 、第三方程序代码 、 工具 、用户文档 、运行环境
四、测试工程师用到SVN:获取需求最新版本、获取被测的程序,代码的最新版本、对测试文档进行配置管理
五、常用的配置管理工具:
VSS:微软出品,小规模开发,性能较差
SVN:目前流行,Collbe.net出品,权限管理和分支合并出色
GIT:Linux伴生,linux系统表现好,windows系统表现弱
术语:配置
配置项(文档,代码,工具等等,和软件相关的一切内容)
基线(由CCB 控制)
版本和版本标识(xx.yy.zz.pp—>主版本号.次版本号.维护版本号.补丁版本号)
测试用到的配置管理的功能
===========================================================
一、visualSVN-server:服务端
——创建仓库(配置库):
1)打开visualSVN SERVER
2)选中Repositoriers,右键
3)选择 create new repository
4)输入仓库名称,使用默认的配置直接下一步
5)最后create,然后finish
——创建用户:
1.选择Users目录
2.鼠标在右边右键,create user
3.输入用户的账号和密码,要记住,后面客户端操作的时候要用。
——赋予用户权限:
1.选择刚才创建的仓库,然后右键
2.选择属性(properties)
3.点击add按钮
4.选择我们刚才新建的用户,点击确定即可。
Repository Name: 43test
Repository URL: https://SKY-20190124DCI/svn/43test
Configured repository permissions:- Everyone (Read / Write)
二、tortoiseSVN:客户端
不要装在有中文的路径,不要装太深的路径。
1.提交文件到仓库有两种方法:
导入(import):不能重复连续导入。选择要导入的目录或则文件,右键找svn的弹出框,然后选择import,输入用户密码即可。
首先要(checkout)仓库到本地路径下,然后将要添加的文件放入本地仓库,然后选择这些文件,右键点svn-》添加(add),然后再次右键选择svn commit,填写提交信息,点击确定。
添加一个文件:先add再commit
修改一个文件:直接修改这个文件,然后保存退出后commit
删除一个文件:先删除这个文件,然后commit,记得打上勾勾。
2、修改svn缓存的账号信息:在空白的地方,右键-》setting,找到save data-》点击author data 的clear all即可清理账号缓存的信息,当你再次提交的时候就会让你输入新的账号和密码了。
3、从本地删除一个文件,并提交到服务器(仓库)。
4、如果是误操作删除了一些文件,想从服务器上恢复到本地,可以使用svn up。
7、冲突产生的原理,要求记忆并且要能用自己的语言描述冲突产生的过程(能画出流程图)
=============================================================
解决冲突(重点内容)
1、解决冲突有两种办法:
简单粗暴:把冲突的相关文件全部删除掉(如果需要备份的话就先备份再删除),然后更新到最新版本,然后再修改再提交。
严谨但是麻烦:先删除掉其他的冲突文件,保留冲突的原始文件(就一个文件),然后打开这个文件进行编辑,把里面冲突的内容该删除的删除,然后编辑成不冲突的内容文件,再提交。
=============================================================
Revision Graph:查看当前项目或文件的修订历史图示 如果项目比较大型的话,一般会建多个分支,和多个里程碑。可以看到项目的全貌(查看版本的分支情况。)
Diff with previous version:比较该文档和上一个版本中的差异部分。
Show log:显示当前文件(夹)的所有修改历史。
SVN支持文件以及文件夹独立的版本追溯
Revert to this revision(文件内容回到历史版本,可以提交。)——版本回溯(慎用)
update to revision:回到历史的某个版本(需要输入具体的版本号,文件内容回到历史版本,不可以提交。)
repo-browser:查看当前工作区的路径。
clean up:清理当前的工作区(常用于工作区有损坏或则文件缓存问题。)
8、设置文件锁,选择某个文件,右键-》海龟-》properties(属性)-》new-》needs lock-》locking required-》ok,然后你会看到这个文件的属性多了一个 lock,然后再提交上去,ok这个文件就已经设置了文件锁了。
那么想修改这个文件必须要先get lock,然后在修改,在提交,并且一旦提交之后就不能重复修改了,必须再次get lock、release lock可以释放文件锁。
1.小A提供仓库地址
2.小A创建一个新的账号(给小B用的)
3.小A将创建的新账号加到 小A的仓库里
4.小A将仓库地址,以及新的账号密码提供给小B
5.小B checkout小A的仓库,并且输入小A提供的账号密码
6.小A对加锁的文件进行get lock,并修改文件保存退出,但不提交。
7.小B也对加锁的文件进行get lock,看下效果如何?
190503——配置管理二
1.svn提交一个文件到服务器,只需要commit就可以了
2.git提交一个文件到服务器,先commit到本地缓存区,然后再push到服务器。
git服务器地址(首页):https://github.com
1.在github.com上注册一个git账号,需要在邮箱里验证下。
2.让github.com的仓库管理员把你的账号添加到这个仓库里(也需要在邮箱里接受一下),这样你才有权限去操作这个仓库。
3.clone一个你需要参与的项目的仓库到你本地
4.然后再clone的后本地目录里,右键git bash here,打开一会输入命令的窗口,分别输入如下两句:
git config --global user.name "pkzhbin1"
git config --global user.email "3473809948@qq.com"
https://github.com/pkzhbin1/origin.git
username:要输入你的git的账号
email:要输入你的git注册时的邮箱
https://github.com/pkzhbin1/origin.git
从服务器更新最新版本到本地:使用右键->git gui base进入命令行->git pull origin master
如果更新过程中遇到一些奇怪的操作界面,按如下输入退出文件编辑:
Esc——>输入冒号:——>输入q——>输入!——>敲回车
新添加一个文件:
5.在你的本地仓库目录里,新建一个文件夹,再在这个新建的文件夹里再新建一个文件。
6.然后右键——》git gui here——》先点击扫描(RESCAN)——》再点击stage Changed——》输入提交信息,点击commit——》push到远程服务器上。
修改一个文件:
1.找到你要修改的文件,然后打开后修改里面的内容,保存退出。
2.在git gui here界面,先扫描(rescan)——》stage changed——》输入commit信息,点击commit——》push
删除一个文件:
直接在本地目录删除这个文件,然后再git gui here界面,先扫描(rescan)——》stage changed——》输入commit信息,点击commit——》push
如果误删除了一个文件,怎么恢复?
git reset HEAD xiaohui/18.txt
git checkout xiaohui/18.txt
如果我们不知道之前删除了哪些文件或则文件夹,可以用如下命令查看到:
git status
查询版本历史信息:
1.我们想了解本地目录的一个历史信息。
2.可以在git gui->repository->visualize master's history
回到过去某个版本:
1.比如我们想回到之前刚提交zhangbin.txt文件的版本(文件内容是空的时候)。
2.首先查找那个时候的版本SHA值,查看历史记录:
拷贝这个SHA值,然后再git base里输入
git reset --hard 7115201f582b4cf7cd9d3aa218e4400b068a969f
比较一个文件或则目录的某个版本之间的变化:
Git diff a8b780d5d78406d9602275471dfe0cc66fd1370e 8b17993a0fddbb1cd34ed8623184b01722fe5010 zhangbin42qi/zhangbin.txt
帮助手册:
https://git-scm.com/book/zh/v2/%E8%B5%B7%E6%AD%A5-%E5%85%B3%E4%BA%8E%E7%89%88%E6%9C%AC%E6%8E%A7%E5%88%B6
1.配置项的标识包括下列哪两个方面 AC
A.配置项名称 B.配置项位置 C.配置项版本标识 D.配置管理工具
2.下列哪一项不属于版本号的组成部分 D
A.主版本号 B.次版本号 C.补丁版本号 D.外部版本号
3.变更控制主要关注的是( ) B
A.阻止变更 B.标识变更,提出变更,管理变更
C.管理CCB D.客户的想法
4.项目的基线发生变更应该经过( )授权执行的. D
A.项目管理者 B.质量保证人员 C.配置管理人员 D.CCB
5.为了更好的管理变更,需要定义项目基线,关于基线的描述,正确的是( )B
A不可以变化的 B可以变化,但是必须通过基线变更控制流程处理
C.所有的项目必须定义基线 D.基线发生变更时,必须修改需求
6.配置审计的作用是保证配置项的( )、( )和( )以及符合计划。 ABC
A.完整性 B.一致性 C.可跟踪性 D.安全性
7.在项目进行过程中,2个项目成员使用不同版本的设计说明书,这时项目经理首先应该检查( )C
A.信息管理系统 B.人员花名册 C.配置管理系统 D.客户关系系统
8.配置管理 是用于() A
A.整体变更控制 B.项目计划执行 C.项目计划制定 D.风险定量分析
9.软件配置管理是一组用户在软件( )管理变化的活动 C
A.交付使用后 B.开发过程中 C.整个生命周期内 D.测试过程中
10.以下哪些可以用作缺陷管理工具()ABD
A.bugzilla B.mantis C.testlink D.禅道
11.为了避免由于两个开发人员同时修改同一文件所造成的问题所采用的测略是
A.文件检入 B.文件检出 C.锁定文件 D.文件拷贝
12.变更控制委员会的职责AB
A.评估和拟准对配置项的变更 B.确保拟准后的更改的实施
C.建立和管理配置库 D.管理配置库的访问权限
13.配置管理工程师的职责有哪些ABCD
A.保证产品的一致性、完整性、可追溯性 B.维护配置库
C,变更控制 D.发布管理
14.下列哪些属于软件缺陷( )BCD
A.测试人员主观认为不合理的地方
B.软件未达到产品说明书标明的功能
C.软件出现了产品说明书指明不会出现的错误
D.软件功能超出产品说明书指明范围
15.每个阶段注入的缺陷在( )阶段就被发现和清除是最佳选择。 C
A.需求 B.前面 C.本 D.后续
16.测试工程师可能用到的配置管理的功能有以下哪些?ABC
A.获取需求最新版本 B.获取被测的程序
C.对测试文档进行配置管理 D.配置管理库的定时清理
17.以下哪些是使用配置管理工具来管理源代码所产生的好处?ABCD
A.代码受控,不丢失
B.可以在特定的里程碑或者时间点及时建立基线
C.分支代码变化可以合并入主线
D.源代码管理具备回溯能力,可跟踪所有的变化
18.在SVN版本库浏览器中,用户有读写权限,则可以进行以下( )操作。ABCD
A.Delete B.Rename C.checkout D.export
19.SVN的工作模式,属于( )模式?B
A.串行 B.并行 C.串并行 D.迭代
20.在空白处,单击右键,选择"Tortoise SVN",再选择( )就可以进入SVN版本库浏览器。A
A.Repo-browser B.Create repository here C.Settings D.Import
21.缺陷管理的目的有AC
A.保证缺陷得到有效的跟踪和解决 B.发现开发人员的错误
C.获取正确的bug信息,用作缺陷分析和产品度量D.检验测试人员的工作质量