《如何管理你的软件测试工作》发言实录
作者:网络转载 发布时间:[ 2012/7/11 13:53:03 ] 推荐标签:
三曰地。兵法指地者,远近、险易、死生也。这些是非常重要的,你要思考地长远,你是谁?你能应该你的竞争对手吗?你该攻击它哪儿?
四曰将。将者智、信、仁、勇、严也。当你有了这几个特点的时候,你成为了一个能领军的大将。在你的公司里有没有这样的大将?有和没有都是问题。如果有幸你的公司里有这样的上将,何愁不能兴旺!你的周围有没有这样的大将,你作为一个主管,有没有辅助你的人,所有事都需要自己做。这种情况,你如何处理?
当你看到这四点的时候,实际上陆陆续续看清一条。然后你才知道什么呢?法。法者曲制、官道、主用也,也是规矩。当前四点看清楚了,才谈到你应该如何做。做事儿的先后顺序是什么?道、天、地、将、法。当我们讨论后面所有工作的时候,先要结合这五各方面来谈。
如果你想实施敏捷,你能依靠谁?听说过这个故事吗?鸡和猪的故事,敏捷里一直在讲。有鸡和猪说,咱们一块儿创业去吧,猪说,好啊。那我们做什么生意呢?鸡想了想,我们做火腿鸡蛋三明治吧。猪想了想,不对啊。你只用献出不重要的一部分,而我却要打上自己的性命!敏捷里有一个观点,记住可以听听鸡的建议,但是一定要跟猪合作。如果这些你都搞定了,你明白了谁对你重要,你可以开始尝试一下敏捷了。
现在流行的是Scrum,测试过程中,先让你的PO把需要做的,也是产品需求全部罗列出来,通过估算计划确定你每个迭代周期的量,这些都确定了,通过战略例会跟踪你的相关计划,4-6周为一个迭代周期,每一个迭代周期都要发布可见的产品。但是,敏捷到现在还是争争吵吵,为什么?对人的要求,对目标的要求,对客户的要求,你的自组织团队对你的要求等等一系列。为什么西方做得好?在西方参与敏捷项的人都是30岁,35岁以上的人,这些人可以对自己负责。所以,由于我能对自己负责,所以我能对项目负责,我知道什么该干,什么不该干,我知道承诺以后的后果,我非常关注我个人的荣誉。比如说我很担心我这次发挥不好,讲不好,所以会好好准备PPT,类似这样的。国内呢?可能22岁,23岁,25岁,大学刚毕业不久的人。领导一鼓励他,你行的,我行,为什么完不成?一系列开始运作起来了。当承诺和结果不匹配的时候,始终不匹配的时候,你的敏捷有可能失败。所以,自组织非常重要。你适合不适合自己判断?如果你适合,可以开始敏捷了,解决其他的问题。刚才给大家介绍的是中型团队。
后,如果你是一个资源相对充足的大型团队,恭喜你,你可以做很多的事情。你第一个要明确你企业的文化、目标。迪斯尼给人们提供好的娱乐方式,我们想要一个有意义的环境,一个使家庭团聚的地方。通用,永远推崇三个传统,即坚持诚信、注重业绩、渴望变革。摩根大通银行的企业文化是危机之中自有良机,你应该能感觉到这个公司不会排斥风险。微软的薪资标准也排在全美前10,因为微软坚持只要的人。谷歌非常重要的一个信条是网络也讲民主,所以它退出了中国。你的企业文化是什么?首先你要分析你的企业文化,让它和你的质量相关。团队的做事理念是第一个要明确的,只有当你有了目标才可以做后面的事情。
你的产品是业务型的还是互联网型的,跟质量关联相差非常大。比如谷歌这种互联网公司它的特点是什么?从质量角度来说,升级更新是无成本的。我可以依赖大量的用户测试,也可以进行快速迭代、快速反馈,我可以进行少量的AB测试达到全覆盖。比如说谷歌有一个功能想上线,但是我没有经过大量的覆盖我怎么做?可以做一个开关,只允许万分之一,或者百分之一,或者千万分之一的人使用,开10分钟做测试。这是互联网产品的特点。微软产品型产品的特点是什么?对发布质量非常关注。因为软件到用户手里后维护升级成本很高,所以它对初次发布质量很关注。所以你首先要明确你的产品、你的公司是什么特点?两种方法,两种理念,搞错了全完了。
大型团队还要思考一件事情。针对大公司,你要关注一点,是否有标准的软件测试培训体系支撑,人太多了,方法不一样,如果没有经过一个统一的训练,做出来的东西是千差万别的。在这一块,我会给大家介绍一个ISTOB,全程是国际软件测试资质委员会,这个是它的资质体系,分为三个级别:基础级、高级、专家级。大量的测试技能在基础级都讲了。基础级如果认真学完,你可以做不同的测试工程师,它的优势在什么?它的优势在标准,全球一致,这样我给北京中心做一场培训,给航空中心做一场培训,给上海中心做一场培训,如果你的讲师不一样,讲的都不一样。我用我的理念讲,他用他的理念讲,但是如果存在一个标准的话,这个不存在了。高级分为三个模块,专家级分为四个模块。为了维护这个,它有专业的术语表,是每个名词怎么解释,这个是ISQB。
当你是一个大型团队,我建议你可以推进持续集成。Martin Fowler认为持续集成是软件开发实践,每天至少集成一次,也意味着每天可能发生多次集成,每次集成都是自动化的,当你Buld一次,自动进行了安全检查等,这些都检查完了,运行一系列的单元测试率,然后集成到整个系统,整个系统编译,编译完了做部署,部署完了以后整个的自动化回归,这些可能在当时进行,也可能在晚上进行。总之,每天都在做测试、做集成。再往前推一步是什么?持续交付,交付是什么意思?我所有真实的产品已经上传到服务器,只是客户看不到,我只有一个开关,这个开关一开,大家能用了,我开关关了,大家用不到,换句话说,你每次生产的东西,编译好的代码,实时的上传到生产服务器,面对客户只是他们看不到,持续交付。具体交还是不交,是运维人员说了算,跟你开发没有关系,我愿意交交了,点几个勾,确定,产品上架,你要保证你的产品都是可以使用的。
如果你是大型的团队,你可能有一个选择,是CMMI,或者敏捷。比如大多数人都选敏捷了,CMMI不讲了。我不给大家讲CMMI和敏捷,我送大家一句话《孙子兵法》中有一句话,叫:“将能而君不御者胜”。那将不能怎么办?将不能,君要御才能胜?君也不能呢?如果你的团队里没有那么多的能人,没有那么多自觉的人,达不到自组织,停留到这儿应该是一个安全地带,这儿可能是一个高风险区域。大型团队,质量是有成本的,我建议大家是做一个实用主义者,谋定而后盾,目标决定过程,过程决定质量。
我的发言到这儿。

sales@spasvo.com