在软件测试这个行业也有些年头了,从刚入行的时候的懵懵懂懂,到现在的略有小成,也算是对行业有了些自己的认识。
  本着help each other and learn from each other的精神,在此分享一下自己多年来的一些心得,为初步入坑以及想要入坑的朋友们提供一些思路。
  Here we go!
  经常在测试行业的相关论坛上,看到过有朋友问,面试的时候会遇到这样的问题,如何测试一个笔,如何测试一个杯子,如何测试一个页面,上面有两个输入框及一个submit按钮,诸如此类的问题,要求写上30条左右的测试用例来覆盖。针对这些问题,答复还不少,洋洋洒洒50+的用例随处可见。但是,在我看过的这些回答中,人们往往会漏掉一个核心问题,那是需求到底是什么?
  诸如类似上面的问题,我们可以看到让测试一个笔,一个杯子,一个页面等等,你可以说这个是需求,但是这个需求完善么?你知道要测试的是钢笔,毛笔,铅笔,还是纸杯,玻璃杯或者保温杯。在题目中统统没有提到,那么基于这样一个模糊的需求,写出来的测试用例,结果往往南辕北辙。
  对于输出一份覆盖全面的用例来说,大体上可以分为两个大阶段。一个是需求分析,另一个是测试分析。如本次的标题一样,先说说需求分析。
  首先,什么是需求?他可以是一个产品,可以是产品上的一个功能,可以是任何东西。在面对一个需求到来后,对于我们来说,第一个要搞清楚的事情是,需求到底是什么?
  拿上面的例子来进行说明,比如说原始需求是让你测试一个杯子,那么你是不是先要搞明白,是个什么样子的杯子,纸杯,玻璃杯还是不锈钢杯子。不同的杯子,形状不一样,材料不一样,等等这些差异性,会决定你整个测试设计的大致方向是否正确。当你明白了这些基础的东西,那么你才能继续下去。
  现在,假设我们经过初步剖析后的需求是,测试一个纸杯子,圆柱体,不带把,外表有图案。至此,我们可以通过第一个岔路口,沿着正确的方向,继续前行。
  既然已经明白了具体的需求,那么我们下一个碰到的岔路口,是需求的使用/应用场景是什么?杯子可以用来当做盛放液体的器皿,也能用来放置固体的杂物,不同的使用方法,同样还是会引领我们到不同的方向。所以当务之急,是要明确一下使用场景。
  比如说,本次的杯子是用来当做饮用的器皿,偶尔还会用来放置物体。通过这些信息的了解,我们已经明确了杯子的使用场景,目前获得了不少的信息,但是还是不够的,需要我们继续前行。
  很快,来到了第三个岔路口,用户的使用习惯或者说用户会怎么使用它。比如说这个杯子是不是一次性的,能不能加热或者冷冻,客户使用频率怎么样,会不会盛放腐蚀性的物质等等。这些信息都会造成我们终的测试重点的选取,会决定我们的用例覆盖程度。
  通过了第三个岔路口,那么我们可以汇总一下当前获取的信息,一个纸杯子,不带把,圆柱体,外表带花纹,主要用来当做饮用的器皿,偶尔也会用来放置一下固态物体,不能用来盛放腐蚀性物质,可以多次反复使用,但是不能长时间使用,换句话说是我们当今使用的一次性纸杯。至此,初步的需求分析已经可以告一段落了。但是未来的路还很长,离我们的重点还很远,加油吧,骚年,擦亮眼睛,拿起罗盘,向着胜利的远方前进吧!

  需求的分析,是一门技术,也是一门艺术,怎么样能够快速准确的进行这项活动,有着不少的套路,有各种专业的路子,也有各种野路子。不管什么路,适合自己的才是好的,软件测试本身是一个与时俱进的行业,信息爆炸的时代,不少新的方法,心得概念层出不穷。及时学习总结,才不会让自己落后,才能在这个行业生存下去。