SCM软件配置管理
作者:凌俣Linty 发布时间:[ 2017/5/15 10:51:03 ] 推荐标签:软件测试管理 配置管理
· 系统集成工程师 SIO: System Integration Engineer
系统集成员负责生成和管理项目的内部和外部发布版本,其具体职责为以下几项:
集成修改;
构建系统;
完成对版本的日常维护;
建立外部发布版本。
· 软件开发工程师 DEV: Software Engineer
· 软件测试工程师 QA: QA Engineer / Tester
制定配置管理流程
配置管理实施的一个重要阶段,主要目的是根据项目开发的需要,制定相应的配置管理流程,以更好地支持开发,主要活动包括:
· 定制并行开发策略。合理的并行开发策略应该具有以下特点:协调项目的复杂性和需求,统一创建分支类型和元数据,为开发过程中的变更集成制定有效的规范,适时反映开发过程中方法和需求的变化。
· 发布版本管理。软件开发过程中的一个关键活动是提取工件的相关版本,以形成软件系统的阶段版本或发布版本,一般将其称为稳定基线。一个稳定基线代表新开发活动的开始,而一系列定制良好的活动之后又会产生一个新的稳定基线。有效地利用此项功能,在项目开发过程中可以至始至终管理、跟踪部件版本间的关联。
软件配置管理 in CMMI
能力成熟度集成模型(Capability Maturity Model Integration, CMMI)是由美国卡耐基·梅隆大学的软件工程研究所组织开发,并于2002年发布的一种规范、实用的途径来管理软件过程的模型。CMMI通过指导软件开发人员的活动来改进软件过程,以达到软件过程可复用性、可定量管理、可有效控制的目的。
软件配置管理是CMMI可重复级的一个关键过程域(Key Process Area,KPA),其目的是在整个项目的软件生命周期中,保持软件产品的完整性和可追踪性,这包含了对改变的控制和所有能影响到改变的软件因素的管理。作为过程实现、过程优化的一部分,配置管理是实现软件过程的基本保证,它还是基于重用的软件开发的管理手段,所以成为软件过程管理的核心。CMMI模型清晰地描述了SCM,并说明了SCM 的目的和所要达到的目标,具体描述了某级成熟度下软件过程在该方面所应达到的一组目标和实现这些目标的一组关键实践(Key Pradice)。这些关键实践被划分为5类,分别为完成该组目标所需的承诺、执行能力、执行的活动、度量分析以及验证.使企业在实施软件配置管理时能知道到底要做什么,团队的配置管理现状如何评估,在哪些方面还可以进行改进等问题能得到具体的答案。
在CMMI中,对包括软件配置管理在内的配置管理工作,从如下角度进行了划分:
· 建立基线
首先,识别配置项;接着,建立配置管理系统,用来存放配置项;厚,通过评审或测试后,由配置项组成基线,作为未来开发的基础。
· 建立并控制变更
要追踪变更请求,这包括新功能、功能增强,也包括缺陷。要评估它们,分配给合适的人去处理它们,还要检查以确保它们确实被处理了。要控制对配置项的变更,如果要改它,需要合适的人同意。改好后,要适当检查,才能入库。
· 建立完整性
首先,要对配置管理活动做足够的记录。比如,对配置项的修订历史,对变更请求的状态转换过程,对不同基线的差异,等等;其次,要进行配置审计。确定配置项的内容是否合适,并出现在合适的地方,确定基线的内容正确。
· 制度化已管理过程
在一个软件研发项目中做配置管理,首先要建立配置管理计划,然后确保有足够的资源,包括工具、环境,也包括人员。在配置管理系统运转过程中,要适当监控。
· 制度化已定义过程
要形成可以指导现在和未来多个软件研发项目的配置管理过程规范。这样的规范不是一成不变的。要手机相关的信息、数据和反馈。并基于此进行软件配置管理的持续的改进。
配置管理的实践
版本控制
古老做法:文件夹目录共享,建立公共存储区
现代做法一:文件加锁、修改、提交更新、解锁
现代做法二:并行修改。由版本控制工具记录每个人修改前的版本和修改后的版本,然后再合并。
即使只有一个程序员:程序员需要备份、回滚源代码、分支代码。
多个程序员:多个程序员可能需要修改同一份源代码、需要等待测试团队的测试等。
测试人员:需要统一需求文档、测试用例、测试计划等文档。
代码构建
构建:编译、链接和打安装包用来测试和发布的过程。
及早和经常的集成,持续集成 Continuous Integration,必须充分借助于自动化工具的程度。
构建的日志必须记录和保存
每日构建:每天将新的源代码进行编译,打包并通过冒烟测试。
持续集成
系统集成:简称集成,System Integration,其基本的使命,是把产品的各个部分捏合在一起,并且保证产品作为整体是可以转的。并且运转没有问题。
集成不一定发生在各个模块都开发完以后,而开始于设计阶段。
作为改进,集成可以逐步进行。每完成一个模块,加入到整体环境中来,发现问题并解决。
并行开发
版本标签:在当前分支通过标签的方式整体记录版本。
版本分支:通过分支产生并行的版本进行新功能开发或者长期持续维护
适当隔离与适当共享
管理文档
文档和源代码:源代码是人编写出来,给机器运行;文档是给人阅读。
文档必须带有版本号和作者
对修改有简单的描述,版本需要有终状态
趋势:Wiki 来源于夏威夷语(wee kee wee kee),中文是“快点快点”的意思。修改和展示都是基于网络的,在浏览器中完成。
跟踪缺陷
软件资产的改动会不可避免的产生缺陷,或者潜在的bug。
通过缺陷跟踪系统,以及bug的状态转换,使得bug得以修复。
分析统计缺陷相关数据,尤其注意漏测率。
管理变更
比缺陷更广阔的的话题,是变更请求。
功能增强。
在瀑布模型中管理变更
主流工具
· Borland StarTeam
StarTeam是Borland公司的配置管理工具,是收费工具。
通过连接多个应用程序生命周期管理 (ALM) 库,优化您的软件开发生命周期 (SDLC)。通过跟踪对源代码、缺陷和功能的变更,获取对团队、项目和工具的控制。
StarTeam 的软件配置管理功能可用于在整个 软件开发生命周期SDLC 中管理和跟踪源代码变更,包括变更请求、缺陷、任务、需求用户案例和讨论。它提供了跨各种工具和存储库的更改。StarTeam 的软件配置管理功能同时适用于集中和异地软件开发团队,同时还可在您的所有软件资产中保持可见性和可追溯性,可用作您的单一事实来源。
· IBM Rational ClearCase
Rational ClearCase 作为一款功能强大的软件配置管理( SCM )工具,在国内已经得到许多企业用户的认可并被广泛采纳。
IBM Rational ClearCase 通过自动化、集成和佳经验简化了变更过程。ClearCase 帮助您更好地管理变更和资源,控制开发过程中发展演化的一切内容,包括需求、设计模型、源代码、变更请求以及测试脚本等。
· VSS (Microsoft Visual SourceSafe)
VSS 的全称为 Visual SourceSafe 。作为 Microsoft Visual Studio 的一名成员,它主要任务是负责项目文件的管理,几乎可以适用任何软件项目。管理软件开发中各个不同版本的源代码和文档,占用空间小并且方便各个版本代码和文档的获取,对开发小组中对源代码的访问进行有效的协调。
· TFS (Microsoft Team Foundation Server)
TFS作为VSS的替代者,具有十分强大的功能。
1、面向整个团队的协作工具
Team Foundation Server 提供了一系列可与您的现有 IDE 或编辑器结合使用的协作工具,以便您的团队可以有效地处理各种形态和规模的软件项目。
2、面向敏捷团队的工具
看板、Scrum、仪表板
根据自身情况敏捷处理。通过积压工作和可自定义的看板,捕获和跟踪工作情况,并确定工作优先级。 工作项直接链接到代码以确保透明性,并可用于生成丰富的仪表板,方便您轻松生成报告。
3、持续集成
生成、验证、部署
使用持续集成 (CI) 生成尽早捕获质量问题,此类生成可以在代码发生变化后自动编译和测试您的应用程序。 使用持续交付自动部署应用程序或网站,这些应用程序或网站通过测试或对发布管道进行建模以匹配您现有的发布流程。
· CVS (Concurrent Versions System)
CVS是一个C/S系统,是一个常用的代码版本控制软件。主要在开源软件管理中使用。与它相类似的代码版本控制软件有subversion。多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS版本控制系统是一种GNU软件包,主要用于在多人开发环境下的源码的维护
· SVN (Subversion)
Subversion是一个自由,开源的版本控制系统。在Subversion管理下,文件和目录可以超越时空。Subversion将文件存放在中心版本库里。这个版本库很像一个普通的文件服务器,不同的是,它可以记录每一次文件和目录的修改情况。这样可以籍此将数据恢复到以前的版本,并可以查看数据的更改细节。正因为如此,许多人将版本控制系统当作一种神奇的“时间机器”。
· Git
Git是一款免费、开源的分布式版本控制系统,用于敏捷高效地处理任何或小或大的项目。
Git的读音为/g?t/。
Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理。
Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。
Torvalds 开始着手开发 Git 是为了作为一种过渡方案来替代 BitKeeper,后者之前一直是 Linux 内核开发人员在全球使用的主要源代码工具。开放源码社区中的有些人觉得 BitKeeper 的许可证并不适合开放源码社区的工作,因此 Torvalds 决定着手研究许可证更为灵活的版本控制系统。尽管初 Git 的开发是为了辅助 Linux 内核开发的过程,但是我们已经发现在很多其他自由软件项目中也使用了 Git。
SVN的搭建和使用
SVN的搭建
Windows操作系统搭建,只需要安装VisualSVN server变完成了服务端的搭建。
1、下载VisualSVN Server (注意操作系统是32位或64位)
2、双击安装,全部默认并且下一步,后选择“Standard Edition”(标准版)
3、安装完以后启动VisualSVN Server Manager
4、创建新的代码库, Create New Repository
5、创建新的用户, Create User, 基本的用户权限是读写权限。
客户端使用TortoiseSVN将文件签出进行使用。
1、下载TortoiseSVN
2、双击安装,全部下一步,直至完成。
3、在任意地方新建SVN文件夹,建议在D:根目录
4、双击进入SVN文件夹,右键选择“TortoiseSVN”->"Repo-Browser" 或者 “SVN Checkout”
5、选择SVN COmmit提交。
SVN的使用
· SVN Checkout
· Add
· Delete
· Rename
· Revert
· Check for modifications
· SVN Update
· SVN Commit
· Show log
· Branch/tag
· Get lock
· Release lock
· Clean up
· SVN的高级实践
· 冲突的解决
· 分支的合并
SVN和Git
本文内容不用于商业目的,如涉及知识产权问题,请权利人联系SPASVO小编(021-61079698-8054),我们将立即处理,马上删除。
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11热门文章
常见的移动App Bug??崩溃的测试用例设计如何用Jmeter做压力测试QC使用说明APP压力测试入门教程移动app测试中的主要问题jenkins+testng+ant+webdriver持续集成测试使用JMeter进行HTTP负载测试Selenium 2.0 WebDriver 使用指南