其实如果小时候在大厂矿呆过,应该知道会有质检处、检验处之类的一个单位,其实这是测试。

  打个比方说,王二造了个东西,随便什么东西,为了好比划我们不妨说是一个板凳。王二造这个板凳出来当然是给人坐的,那么造出来以后卖出去之前,王二肯定要坐一坐,坐着没问题才会拿出去卖。这里的坐一坐是测试工作。可能觉得这个测试工作也未免太简单了。没错,是非常简单,这是因为板凳的功能非常简单。测试的工作量是与需求量直接相关的。

  我们假设说王二的板凳卖得不错,广销村内外,顾客渐渐多起来。顾客一多,有一些特殊的需求出现,比如老姚家的儿子需要一个高一点的,小三的弟弟需要一个矮一点儿的,有人需要能防水的,有人需要能当跳跳鼠用的。一开始王二来一个需求做一个凳子,顾客上门来坐一坐,觉得合适买走了。后来王二慢慢觉得麻烦,设计了一个高低可调防水还能拆出弹簧腿来跳跳鼠的板凳,一次性满足所有要求。由于并不知道哪把椅子是卖给哪一个人的这四样要求,所以需要保证每把椅子都能满足这三件事情,于是测试量增加了,王二雇了一个小弟专门坐板凳。测试工作分拆的一个重要原因是批量生产和标准化需求。

  小弟工作得力,王二的销路打开得也好,产品越做越大。顾客陆陆续续反馈回各种各样的需求,王二一股脑的照单全收,包括可以自由变形成三条腿两条腿一条腿九条腿,按一个按钮可以当体重计,按另一个按钮可以变成座便器还能自动计算这次大便重量并一键发送到微博等等共计6万多条。这可把小弟累坏了,事儿多不说,因为一个板凳要做六万多次,也坐不了一个,工作效率大大下降,有时候坐到一半不记得刚才发到微博到底成功了没有只好再大便一次但憋不出来了等等,非常残忍。还好小弟是个机灵人,苦日子没过两天,它造了一个木牛流马替他坐凳子,木牛流马干这事儿又快又好,每坐一次还会记下来这次坐得到底舒不舒服,小弟每每睡懒觉,过来检查一下木牛流马的小日记本可以了。测试工作用例化、自动化是被规模化的测试工作驱使。

  隔壁老麻家的花藤子看王二的东西卖得不错,于是想仿制,但他没那么高的技术,也照顾不来那么大的客户群,于是他精心挑了一批客户对症下药,精选了一部分相对可行的功能。东西造好了,没有测试,也不知道该怎么测。他雇了一个小妹,让她搞定。

  小妹起初也一头雾水,做板凳是会,可是这乱七八糟功能的一个板凳,如何坐起?思前想后,她从小弟那儿偷来了木牛流马的小日记本誊抄了一遍。仔细分析一遍之后,认为只要坐起中20次可以了,这样虽然他们没有木牛流马,也可以坐完上百个板凳。拿去给麻花藤子看,他也很满意。功能大致类似的产品,或者同一产品的不同版本之间,测试用例重用是很常见的。

  不久,麻花藤子被发现了,他很快对外观、形状做了大规模的改进,避免吃官司。但纯粹为了外观形状的改进没有增加新功能却可能破坏老的功能,为此,小妹把旧的测试用例拿来在新的板凳上重新坐了一遍,合格之后的产品才推出去卖。回归测试是避免新的改动破坏原有功能的重要测试。

  后来小弟和小妹恋爱了结婚了,俩人一合计,都分别辞职然后开了一家坐板凳公司,专门负责坐板凳。他们也雇了很多人,设计了很多更新更好的测试用例,还针对产品需求的不同,设计在哪些时间段坐哪些测试用例,不坐那些测试用例,把这个叫做测试方案。测试完还把坐板凳的结果定时给王二和麻花藤子看,告诉他们那些地方需要改进,在质量出现波动的时候还予以提醒等等,生意蒸蒸日上。测试的主要工作有,针对产品进行测试方案设计,其中包含测试用例和测试计划,对测试的单项结果予以反馈和跟进,对测试的统计结果进行汇总并客观反馈。这是一项可以外包的工作。