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

发表于:2014-01-08来源:博客园作者:张传波点击数: 标签:软件测试
我觉得比较合理和比较符合现实的比例也就是 4-6:1。我们就是按这样来配置的,但仍然会出现测试人数不够的情况,那是不是需要招聘更多测试呢? 如果已

  我觉得比较合理和比较符合现实的比例也就是 4-6:1。我们就是按这样来配置的,但仍然会出现测试人数不够的情况,那是不是需要招聘更多测试呢?

  如果已经做到法则6,测试的工作已经前置,那么到正式测试阶段,测试工作量峰值将会下降不少,但仍然是不够人数做测试的,这个时候本法则“人人都是测试”就适用了!

  测试要实现做好测试方案,到正式测试阶段,将测试方案中的工作分派给开发,让开发也带上测试的帽子进行测试,记住基本原则就是不要让开发测自己负责的模块就行了。

  法则8:测试设计的难度不亚于软件设计

  我将测试方案及工作的规划,称之为“测试设计”。

  如果测试只懂业务是很难胜任测试工作的,请看以下案例。

  案例:某技术要求高的系统

  该系统有几个技术难点和测试难点:

  1)B/S架构,但界面的易操作性要求很高,写了很多JS脚本。系统需要在IE6、7、8上能正常运行。

  2)系统需要部署在网络负载平衡的环境上。

  3)系统有很多Windows Service服务,要定时生成很多数据。

  4)系统需要满足一定的并发访问量要求。

  如果不具备“图1 测试人员需要具备的技能”中的“进阶技能要求”和“高级技能要求”,你将会对这些测试难点素手无策。

  当时我们的测试没有这么厉害,我相信很多项目的测试也不会这样厉害,而很多项目其实是有很多技术要求和测试难点的,那我们该怎样办?

  记住“法则7 人人都是测试”,项目经理或项目的技术大牛就应该承担起测试设计的工作,但要注意要带上测试一起来做,训练测试逐步掌握这些技能。

  法则9:不需要写面面俱到的测试用例

  曾经见过某领导对测试的要求很“苛刻”,他要求测试无论事无大小必须写出面面俱到的测试用例。比方说一个登陆系统的功能,如果按照该领导的要求,要将所有测试数据都写清楚,那么写出来的测试用例至少需要10页以上的A4纸。

  这是一个比较极端的真实案例,稍微没有那么极端的情况是,要求所有的需求都需要对应有文档化的测试用例。

  在软件开发工作当中,其实有些工作是属于“常识性”的,你闭着眼睛也会做的,这些内容就没有必要文档化。

  比方说我让你写一个吃饭说明,你会这样写吗?

  1)用一只手拿起筷子;

  2)用另外一只手捧起碗;

  3)用筷子将碗中的饭扒到嘴中,记得要张大口噢;

  ……

  你看了上面这段描述,不知道吐血了没有?

  我们只需要对比较复杂的、容易出错的、有难度的地方,写出相应的测试用例,测试用例的描述在于描述清楚测试思路,不需要事无大小都写下来。

  当条件成熟的时候,公司可以逐步建立测试用例库,对常见的情况建立测试指南,让所有的测试人员去学习和参考,项目中遇到类似的情况就可以直接参照用例库了,不需要再写一次测试用例。

  法则10:测试也是开发,开发也是测试

  当我是一个人写程序的时候,我就是按照“法则10”来干的;当我和另外一位程序员负责一个软件的时候,那三年时间我们基本上也是按照“法则10”来干的。

  当我做的项目的人数是几个人以上后,这个“法则10”就很难实施了,不是我不想实施,而是因为各种客观条件并且我的领导不同意。

  我的观点是:一名优秀的测试同时也应该是一名优秀的开发,一名优秀的开发同时也应该是一名优秀的测试!

  但目前常见的现状是:

  1)能做好测试的优秀开发有,但数量不多;更多的是没有测试意识,代码质量很差的程序员。

  2)测试大部分是不懂开发的,我们认为优秀的测试往往也是不懂开发。

  我曾经想尝试这样的管理模式:

  1)开发必须每年有一段时间换岗做测试工作。

  2)测试也需要每年有一段时间换岗做开发工作。

  3)干脆就不招聘测试,只招聘开发,但要求该岗位也要负责测试工作。

  第1)点很难实现,因为开发基本不愿意去做测试。

  第2)点基本无可能,因为测试编码基本功通常为零,而且很多测试是因为不喜欢编码才做测试的,悲剧!

  对于第3)点,我承认,我是在“痴心妄想”!

  现实可行的做法可能是这样的:

  1)让有培养潜质的开发带上测试的帽子,负责某些项目的测试工作。该方法能提升开发的编程素养,也可以培养综合性人才。

  2)让具备条件的测试在某项中带上程序员的帽子,让他写代码。

  我一直没有能在我管理的公司中尝试这样的管理模式,但我相信这样的管理方法一定会极大的提升公司的生产力和战斗力,看你敢不敢和能不能去尝试了?

  小结:

  要改善测试工作首先要从思想上重新定位:

  1)测试并不是一个低技术含量的工作,相反,测试工作重要性和难度并不亚于软件设计。

  2)测试并不是项目后期才开展的工作,而是从头到尾都需要的工作,是保证项目始终在正确轨道上的重要工作。

  如果你是测试工程师,提升你的水平,发挥你更大的能量,这是你的当务之急。想别人和公司重视你,是靠你自己的实力去争取的!

  如果你是项目管理者,你要注意的是:

  1)项目管理者最优先要做的事情就是保证大家都在做正确的事情,你要从测试的角度从项目一开始就进行监控。

  2)给测试工程师权力和成长机会,帮助他们成长,让测试工程师分担你更多的工作。

  3)测试其实是一种帽子,其实谁都可以戴,要善于安排测试人力资源。

  如果你是程序员,你需要多从测试的角度来检验自己的工作,你的工作目标就是不让测试工程师测出任何缺陷,将测试工程师“废掉”!

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