首先,测试是一种先于计算机,尤其是计算机软件,就存在的历史悠久的活动。木匠把一个部件和另一个部件组装到一起的时候会检查是否结实,师傅教学生之后会考察一下理解了没有,这些都是测试活动。计算机软件测试跟这些古来已有的测试活动,在实质上并没有什么特别的,硬要说有什么不同的话,也不过是测试对象罢了。
所以,测试活动存在的必要性、普遍性好像不是个问题,就像吃饭穿衣一样不值得一问。但是,好像从来没有一个行业里面会专门分出来一个测试职业呢?为什么计算机行业就这么特别?
让我们以一个软件创业项目为例,来试着理解一下为什么需要测试这个职业或者QA这个角色吧。
项目初创期,三两个人儿,挤在某个狭小的空间里,没日没夜忙活几个月,觉得差不多就上线发布了。这个时候整个系统往往都很简单,每个人脑子里都能完全理解,遇到不清楚的地方抬头问一下,“那谁,这个地儿怎么弄的”,三两句话说清楚了。这个时候要做测试吗?我猜肯定有不做的,我还猜这样儿的都没有然后了。我们要看的肯定是成功者,不会这么不靠谱,所以写完代码之后,多少要验证一下是不是跑得通的。只不过上线前还是上线后,就不好说了。话说回来,反正一开始也没几个用户,谁在乎你的服务挂不挂呢?再说就算挂了,也影响不到几个人,莫怕。
赶上好时候,项目上线之后还挺受欢迎,用户量蹭蹭上涨,风投啊、创投啊,甭管你找她、她找你,竟然拿到投资啦!公司也扩张到十数人甚至数十人了,当初的创业帮也都挂上CxO头衔了。研发团队也小有规模了,新招一批RD开始分工负责不同模块,早来俩月的指导晚来俩月的。遇到不懂的问题需要找