赵本山、宋丹丹的小品《钟点工》:把大象放进冰箱总共分几步?”答:“三步,第一步把冰箱门打开;第二步把大象放进去,第三步把冰箱门带上”。
把这样的一个故事用程序如何实现?这样的一个程序,如何进行测试?
面向对象的开发方法:大象、冰箱两个实体对象,执行“装”操作。具体的实现过程不做详述,面向对象解决这一过程。
做哪些测试?如何测试?
很多人第一反应会是:开玩笑呢的吧,大象怎么能装冰箱,有那么大的冰箱吗?
还有些人的反应会是:太残忍了吧,要想把大象装进冰箱,那不得把大象肢解了,然后再装进冰箱。
其实,没人定义题中的大象,也许只是个模型;同时也没有人定义冰箱,也许是个类似冰库的大冰箱;也许。。。。。。总之考虑的都是不可能的事实,为什么会这样?我们在以我们的视解、知识来理解用户的需要。
正如那句话对系统需求的调侃:你在实现的是你理解的需求,或是你的需求,还是在实现真正提出这个需求的人?
--可以定义为需求测试,一种静态的测试方法。
打开冰箱-->把大象装进冰箱-->如果冰箱和大象匹配,大象成功装进冰箱-->关上冰箱门
-->如果冰箱和大象不匹配,调整冰箱或大象,直至匹配,成功将大象装进冰箱-->关上冰箱门
--可以定义为系统测试或集成测试,一种在模拟实际运作过程过行的测试。
还有哪些测试呢?功能测试,最基的测试,对大象的测试,对冰箱的测试。
既然是面向对象,那么,就要对对象自身的属性和方法就行测试,通过分析对象属性确认可以使用的数据,使用不同的数据对对象自身是否存在进行正确判断,使用对象的方法调用数据对对象的表现进行判断。所有的这些测试都是基于对象本身,不涉及业务逻辑,是基于对象的功能测试。
功能、集成、系统。。。。。。
从简单到复杂,从杂乱无章到条理有序总是一个循序渐进的过程。
----------------------------------------------------------------------------------------------------------------------
曾用这样的一个小故事来作为面试题,一是用来考察应试者对面向对象概念的理解,另一方面考察应试者的测试思路和测试方法。