从软件测试看挨踢项目求生法则

发表于:2014-01-08来源:博客园作者:张传波点击数: 标签:软件测试
从软件测试看挨踢项目求生法则。直到最后几天,测试工程师们才能见到软件的“庐山真面目”,但是不见不知道一见吓一跳,软件的问题巨多,甚至很多功能没有实现,然则距离“项目死期”(交付日)已经没有几天了!难道测试仅仅是项目后期的事情?曾经何时作为程序员的我是看不

  摘要:

  直到最后几天,测试工程师们才能见到软件的“庐山真面目”,但是不见不知道一见吓一跳,软件的问题巨多,甚至很多功能没有实现,然则距离“项目死期”(交付日)已经没有几天了!难道测试仅仅是项目后期的事情?曾经何时作为程序员的我是看不起测试的,不少程序员也不屑于去做测试这个职位,难道测试工程师真的比程序员低人一等?

  说明:

  这是“挨踢项目求生法则”系列文章,之前已经为大家分享了战略篇、团队建设篇、需求篇、设计篇、编码篇,这篇是测试篇。

  什么叫挨踢项目?

  IT项目,特别是软件开发项目,都属于“挨踢”项目的范畴。挨踢项目的几大特点:

  1.需求不确定。

  2.技术不确定。

  3.工期限死。

  4.预算限死

  两大不确定和两大限死,你想不“挨踢”都难!

  测试之囧

  我曾经招聘了一名美女测试,面试的时候我问:为什么离开原来的公司?

  美女测试答曰:原来公司测试流程不规范,给一页纸的需求就要我来测试,我希望到更规范的公司工作。

  我听了后表示淡定,其实这位美女测试运气算比较好的了,很多公司的测试工作场景是这样的:

  测试是没有书面化的需求的,对需求或者软件有不少不懂和困惑的地方,你可以找项目经理或某程序员寻求答案,但得到的回答是:这个你不用管,那个你也不用管,你这样测就可以了!

  程序员 VS 测试工程师 谁更重要?

  下面做个调查:

  1)如果你是程序员,请回答这个问题:让你转职做测试,你愿意吗?(假设工资不变。)

  估计100%会回答:不愿意!

  2)如果你是测试,请回答这个问题:让你转职做程序员,你愿意吗?(也假设工资不变)

  估计部分测试会回答:愿意!

  如果你的回答是“愿意”,请继续回答这个问题:你觉得你能做程序员吗?

  绝大部分测试是不会写程序的,所以这个问题的回答就会变成:不能:(

  当然你会说有测试懂开发的!确实是有这样的情况,但这些懂开发的测试之所以懂开发,是因为他们最开始是做程序员的,后来发现自己不太喜欢技术,所以才转做测试滴。

  俺从高中的时候就写代码了,非常喜欢做程序员。刚大学毕业想到北京某建筑结构软件公司做程序员,但发现人家要求是精通C++。很不好意思,我精通的是Basic,所以我退而求其次,那我应聘测试吧,希望通过测试这个跳板将来转做程序员!我心目中已经将程序员和测试工程师的重要性排了位置了,刚开始工作的几年我心里面是“鄙视”测试的,后来发现自己这个想法很有问题,特别是自己成为项目经理和公司管理者后。

  如果你来做一个选择,你觉得程序员更重要,还是测试工程师呢?

  我兼任测试主管的一个项目

  我是项目经理,项目组中配有测试工程师,当时并不觉得自己兼任测试主管,后来总结一下才发现原来我干了很多测试应该干的活!

  我做的几个测试的活有:

  1)我每天检查程序员们开发的东西有没有偏离需求方向。

  2)我对测试工程师给出很多指导,让他能规划出符合项目需求及技术特点的测试方案。

  3)我会让开发也参与测试,让开发之间交叉测试,这样增加了测试的人手,保证了测试的充分度。另外一个好处就是让程序员从测试的角度思考问题,提升程序员的编程素养。

  4)测试并不是后期才做的,我们当时每周六都要加班,这天干的事情就是测试和修复缺陷

  这个项目工期是3个月,我们居然提前两周搞定!

  测试的工作其实相当重要,帮助整个项目小组始终在正确的方向上工作,减少返工和犯错。我当时能做以上的工作,一方面是我具备了权力(我是项目经理),另外一方面是因为我具备了做好测试工作的几方面的技能。

  作为项目经理的我,因为正好满足下面你将要看到的技能要求,所以我才能完成上述的4个测试工作。下面我们来看看测试工程师应该具备什么技能?

  测试工程师应该具备怎样的技能?

  废话不说,请看图:

  图1:测试人员应该具备的技能

  不少测试只懂“测试理论和方法”,对业务一知半解,对“IT基础架构知识”、“数据库知识”、“开发知识”、“软件设计知识”的认知几乎为零。如果作为测试的你掌握的知识这么少,你能有多大的能量呢?你能在项目中干多少活呢?这样你就不能怪程序员歧视你,也不能怪所谓的公司不重视测试。

  当然这个图列的要求好像太多了,如果我满足这些要求,我干嘛还做测试这个岗位呢?你说的太好了!不要急,后续为你慢慢拆解……

  软件公司真的不重视测试吗?

  有些公司配置的测试人员很少,有些项目测试时间不够就直接给客户用,美名其曰:给客户测试!

  某公司老板的想法更加牛逼,他认为公司根本就不应该配备测试这个岗位,因为如果存在测试的岗位,会降低程序员的工作质量!(程序员会因为有人在后面测试,工作质量会更低)

  项目出现了严重缺陷,管理者第一反应是测试质量不过关!但我们可怜的测试往往是在被缩减的时间,去内完成不可能完成的测试任务,质量又如何保证呢?

  测试阶段所爆发的问题,其实80%的原因并不在测试本身,而是前期的工作没有做好。要改善这些问题,需要包括测试人员在内的全体成员一起努力!

  其实很多公司并不是不重视测试,所有老板都希望软件能赚钱、项目能验收,那么一定的质量要求是必须的,测试就是保证质量的一个重要手段。下面为你分享一些求生法则,希望对你能有一些帮助。

  法则1:测试必须具备“基本技能要求”和“进阶技能要求”

  先举两个测试人员因为不具备相应的技能而导致问题的例子。

原文转自:http://www.cnblogs.com/umlonline/p/3485631.html