SLM(Source Library Tree),源代码管理工具,负责管理软件开发过程中各个程序员的源码,各个程序员负责写自己的模块,每天将完成的代码Check-in到一个中央服务器的SLM树中,这个SLM树由预先定义好的脚本在固定的时间开始编译,通常这个过程需要好几个小时,所以微软内部根据各个项目组的情况有各自的规定:比如开发员必须在下班前(比如下午6:00)之前将当天修改的代码Check-in进去,这样SLM才开始编译。
第二天,QA组的各个测试员从服务器上下载前一天的一个Build开始测试,将测试的情况及时的反映到另外一个工具软件中:RAID(Raid is a tool for entering, tracking, analyzing, and reporting product defects during development and maintenance.).这个工具负责管理产品的BUG情况,每个BUG包含很多属性:比如状态(活动的、解决的、关闭的)、严重级、优先级、哪个区域、哪个版本出现的、发现者、要将这个BUG赋给哪一个开发员等等一系列属性。还可以根据这个工具查询哪个开发员当天的BUG活动的、解决的数量,哪个测试员的BUG质量数目等等一些基本的产品质量情况,这样项目经理可以很容易的掌握该项目的具体进展情况。如果在项目的开发中期,发现的BUG数目比解决的BUG数目持续的多(意味着该产品的活着的BUG越来越多),可能意味着这个项目出现了问题,决策者可以迅速的作出相应的决策,及时的纠正产品开发中出现的失误(微软曾经有很多产品因为这样的因素被Cancel了)。还有项目经理可以根据这个工具,及时的掌握、了解每个测试员和开发员的工作状态,这一点很重要。有很多人曾经说过:Microsoft凭借着SLM和RAID打败了无数的竞争对手,通过我在微软的经历,我看这话一点也不假。这两个工具确实是非常杰出的工具,微软将它们使用到了十分艺术的程度上,对微软的成功起着非常重要的作用。更难能可贵的是,目前这些工具在功能上还在不断的进行改进、升级,使得微软的工程师们工作起来更加如虎添翼、虎虎生风,这样的企业哪有不成功的道理?
在测试过程中,也不是随便的对软件产品毫无目的的瞎使用、乱使用,微软也有一套十分先进的方法和工具支撑着测试的每个方面:比如ATCM( Access Test Case Management),一种基于Test Case(测试用例)的测试管理工具就承担着这方面的工作。
微软也许正是靠着“程序员的聪明和测试员的勤奋”构建起软件帝国的大厦、谱写着软件事业的辉煌。