1、概述
经过2004年,整个测试团队初见雏型,测试流程逐步规范化,逐步建立起来了一套较为有序的流程。在接下来的2005年,首要的目的是要解决目前手动化测试的效率低下问题,现在测试流程中,大部分的开发与测试的交流采用手工文档和E-mail流转方式。例如,开发人员每天提交代码是由开发人员整理之后打包,然后作为附件e-mail给测试人员,测试人员收到代码配置好之后,每天测试出现的BUG做成一张复杂的Excel表格e-mail给开发;开发将问题修改好之后,又将Excel表格填写完整e-mail给开发。整个过程浪费了大量的时间成本和人力成本。所以,为了更高效率的为公司的相关开发提供支持,需要有相应的平台系统提供支持。
进行软件配置管理的目的:
一、权限控制(Access Control)
权限控制对SCM工具来说至关重要。一方面,既然是团队开发,就可能需要限制某些成员的权限;特别是大项目往往牵扯到子项目外包,到最后联调阶段会涉及到很多不同的单位,更需要权限管理。另一方面,权限控制也减小了误操作的可能性,间接提高了SCM工具的可用性(Usability)。
现有的SCM工具,在权限控制方面差异很大,也说明了大家都在探索更有效的权限控制的方法。透过不同权限控制方法的差异,我们不难看到其共性:其核心概念是行为(Action)、行为主体、行为客体。
行为主体:即用户(User)。用户组(User Group)并不是行为主体,但它的引入大大方便了权限管理。
行为客体:即项目和项目成员(Member)。不管从SCM工具的开发者还是使用者的角度,项目和项目成员都是不同的行为客体。
行为:即由主体施加在客体之上的特定操作,签入和签出是再典型不过的例子。
三个核心概念搞清之后,就可以讨论权限的概念了。
权限是这样一个四元向量:(主体,客体,行为,布尔值)。即,“主体在客体上施加某种行为是否被获准”。
由此看来,权限控制的基本工作就是负责维护主体集合、客体集合、行为集合、权限向量集合。其中,行为集合是固定不变的(在SCM工具开发之时已确定),其它三种集合都是动态变化的。
二、版本控制(Version Control)
SCM工具记录项目和文件的修改轨迹,跟踪修改信息,使软件开发工作以基线(Baseline)渐进方式完成,从而避免了软件开发不受控制的局面,使开发状态变得有序。
SCM工具可以对同一文件的不同版本进行差异比较,可以恢复个别文件或整个项目的早期版本,使用户方便地得到升级和维护必需的程序和文档。
SCM工具内部对版本的标识,采用了版本号(Version Number)方式,但对用户提供了多种途径来标识版本,被广泛应用的有版本号、标签(Label)和时间戳(Time Stamp)。多样灵活的标识手段,为用户提供了方便。
三、增强的版本控制(Enhanced Version Control)
快照(Snapshot)和分支(Branch)以基本的版本控制功能为基础,使版本控制的功能又更进一步增强。
快照是比版本高一级的概念,它是项目中多个文件各自的当前版本的集合。快照使恢复项目的早期版本变得方便,它还支持批量签入(Check in)、批量签出(Check out)和批量加标签(Label)等操作。总之,快照是版本控制的一种增强,使版本控制更加方便高效。
分支允许用户创建独立的开发路径,我们认为分支的典型用途有二。第一,分支和合并(Merge)一起,是支持并行开发(Concurrent Development)的有力支持。第二,分支支持多版本开发,这对发布后的维护尤其有用。比如客户报告有打印bug,小组可能从某个还未引入打印bug的项目版本引出一个分支,最终分布ā一个bug修订版。分支是版本控制的另一种增强。
版本控制和增强的版本控制是SCM工具其它功能的基础。
四、变更管理(Change Management)
SCM工具提供有效的问题跟踪(Defect Tracking)和系统变更请求(System Change Requests (SCRs))管理。通过对软件生命周期各阶段所有的问题和变更请求进行跟踪记录,来支持团队成员报告(Report)、抓取(Capture)和跟踪(Track)与软件变更相关的问题,以此了解谁改变了什么,为什么改变。
变更管理有效地支持了不同开发人员之间,以及客户和开发人员之间的交流,避免了无序和各自为政的状态。
五、独立的工作空间(Independent Workspaces)
开发团队成员需要在开发项目上协同、并发地工作,这样可以大大提高软件开发的效率。沙箱(Sandbox)为并行开发提供了独立的工作空间,在有的SCM工具中也称为工作目录(Working Folder)。
使用沙箱(Sandbox),开发人员能够将所有必要的项目文件拷贝到私有的一个树型目录,修改在这些副本上进行。一旦对修改感到满意,就可以将修改合并(Merge)到开发主线(Main Line)上去;当然,如果该文件只有该成员一人修改,只需将修改过的文件签入(Check In)到主项目中即可。
“并发和共享是同一事物的不同方面”,并发的私有工作空间共享同一套主项目(Mater Project)文件,因此有必要让所有团队成员拥有得知项目当前状态的能力。SCM工具提供刷新(Refresh)操作,某位团队成员可以使其他团队成员在主项目文件上所做的变更,在自己沙箱的图形用户界面上反应出来。
六、报告(Report)
为保证项目按时完成,项目经理必须监控开发进程并对发生的问题迅速做出反应。报告功能使项目经理能够随时了解项目进展情况;通过图形化的报告,开发的瓶颈可以一目了然地被发现;标准的报告提供常用的项目信息,定制报告功能保证了拥有适合自己需求的信息。
七、过程自动化(Process Automation)
SCM工具使用事件触发机制(Event Trigger),即让一个事件触发另一个事件产生行为,来实现过程自动化。比如,让“增加项目成员”操作自动触发“产生功能描述表(Form)”操作,开发人员填制该文件的功能描述表,规范开发过程。
过程自动化不仅可以缩短复杂任务的时间,提高了生产率,而且还规范了团队开发的过程,减少了混乱。
八、管理项目的整个生命周期
从开发、测试、发布到发布后的维护,SCM工具的使命“始于项目开发之初,终于产品淘汰之时”。SCM工具应预先提供典型的开发模式的模板,以减少用户的劳动;另一方面,也应支持用户自定义生命周期模式,以适应特殊开发需要。
九、与主流开发环境的集成
将版本控制功能与主流集成开发环境(IDE)集成,极大地方便了软件开发过程。从集成开发环境的角度看,版本控制是其一项新功能;从SCM工具的角度看,集成开发环境充当了沙箱的角色。
网站测试工具购买的目的:
另外由于现在测试处于初级阶段,基本上是手动测试,很少用到工具进行全方位的测试,测试的质量无法做到完整的保障,鉴于网站测试的特殊性,希望能增加一些链接完整性树状测试工具和网页压力测试工具。
网站是盛大的门户,特别是计费平台和电子商务,这些系统的测试更需要专业的工具来进行保障。为了让盛大产品的质量更加过硬,特提出“2005测试和软件工程预算”供中心领导审阅。
2、项目预算
2.1、软件配置管理工具
购买软件配置管理的必要性:
1、整个技术保障中心的软件开发亟待规范化,现有流程比较内耗,会浪费比较多的时间,并且发挥不了最大的效率。
2、现有的代码基本上在开发员手中,不利于集中管理,安全性差,也不利于开发与测试之间的交流。
3、软件配置管理基本上是一种一劳永逸的工具,一次性装配完成之后,就可以长期使用。除非公司人员扩张人员增加,增加一点license即可。
系统购买的目标:
提升开发和测试之间沟通的效率,规范软件开发的流程,节省人员和时间浪费。并且保证代码的安全性和历史版本的随时可查阅性。代码永远是公司的财富,保护好代码就保护了公司的财富,才能创造更多的财富。
系统选型:
根据部门内部对不同产品的试用情况,初步决定使用Borland StarTeam,StarTeam具有配置管理、变更管理和需求管理集成的优势,并且开发员比较对StarTeam的操作方法较为熟悉,更加容易上手。
初步预算:
软件投资:软件配置管理工具StarTeam
初步预算License费用:由于使用人群为软件开发部、电子商务部、计费平台部、质量控制部、网络安全部等,建议采用floating license比较划算,不需要按照人头付费,只需要按照一定比例付费即可,以上各部门总人数在60人左右,使用floating license大约在不少于16个license即可。每个license大约5200美金,16个即是大约83.2万人民币。
总计采购和实施费用:83.2万RMB
硬件投资:2台服务器,可以用现存的
人力资源投入:2人
项目实施周期:2-3个月
备注:美金换算成人民币价格需要乘以十,原因是缴纳增值税和关税。
2.2、测试工具
购买测试工具的必要性:
1、现在的测试基本上靠手工点击测试,这样做的弊端就是覆盖面不够大,并且不可能测试到一个比较深层次的隐性的问题,例如死链、负载不够等等。这些问题一旦发生,将对公司的网站乃至机密文件造成致命的影响。安全性始终是公司的重头,所以运用测试工具对公司所做的网站进行相关的功能测试和压力测试是非常必要的。
2、可以避免人为操作带来的副作用。
系统购买目标:
使用功能测试工具来协助测试人员提高测试的覆盖面,使用性能测试工具对网站的负载能力进行耐压测试。使得经过测试的网站,不仅尽可能找到更多的潜在的问题,最重要的是防范于未然,避免网站上线后产生无法换回的损失。
初步预算:
软件投资:功能测试工具,例如:SilkTest International;性能测试工具,例如:SilkPerformerV。
License费用:功能测试工具以现在3位测试人员为计算基础,配备的License至少2个以上,以每个License 17000美金计算,总共需要51万左右;性能测试工具,针对我们公司网站的特征,建议配备一个同时能测试承受500负载的License,14万美金,总共需要140万RMB
总计采购和实施费用:191万RMB(经过长期的市场调查)
硬件投资:1台服务器,可以用现存的
人力资源投入:3人
项目实施周期:2-3个月
备注:美金换算成人民币价格需要乘以十,原因是缴纳增值税和关税。
2.3、人员专业培训
测试人员培训的必要性:
现在本部门测试工程师水平亟待提高,大家对网站测试的相关经验并不太多,测试是一个非常需要技巧的工作,花少量的资金,可以大幅提升人员的工作效率,小投入大收益。对公司来说,最值得投资的应该就是员工。
培训目标:
希望能通过一些专业的培训,让测试队伍的整体素质得到提升,在处理测试业务的时候能够更加得心应手,明显提升测试效率。
可以参加的相关测试培训包括:软件配置管理、自动化测试相关的测试培训。
初步预算:按照每个测试人员1万元的测试培训费用计算,总共4人,总共需要4万元。
人力资源投入:4人
项目实施周期:1年
项目名称 | 数量 | 软件预算 | 硬件预算 | 投入人力 | 预计周期 | 小计 |
软件配置管理:StarTeam服务器concurrent license | 16个 | RMB83.2万 | 无 | 3人 | 2-3个月 | RMB83.2万元 |
功能测试测试工具: SilkTest International | 2个 | RMB51万 | 无 | 3人 | 2-3个月 | RMB51万 |
压力测试测试工具:SilkPerformerV | 1个500连接 | RMB140万 | 无 | 3人 | 2-3个月 | RMB140万元 |
测试人员培训 | 4人 | RMB4万 | 无 | 4人 | 1年 | RMB4万元 |
总计: |
| RMB278.2万元 |
3、总结