谈到测试,首先第一个问题肯定要聊聊软件生命周期(Software Life Cycle Model)。
软件生命周期,顾名思义,是一个软件从产生到结束的过程,当然这个说法并不准确。因为软件产生之前的构思,也包括在里面。而且对于一个软件来说,如何定义结束是一个困难的事情。
软件生命周期,将软件的开发(生产?)划分为几个阶段,或者称为软件开发流程。其中最常见的一种模型,是:
需求 设计 编码 测试
当然这里面有很多漏洞,比如你会说:怎么没有***?或者测试怎么会是最后一步?,或者现在流行TDD(测试驱动开发)。但是我要说的是,这个模型是所有其它模型的基础。感谢一下Royce,如果不是他提出这个模型,可能今天我们在软件生产过程中会更加不知所措。这个模型就是常见的或者常提到的“瀑布模型”(Waterfall Model)。
关于这个模型的缺点不在这赘述了,它的优点只有一个,就是给软件生产过程提供了一个并不是很完整的依据。比如设计是在有需求之后做的,而编码完成后需要测试,等等。当然今天很多企业并没有这样做。
而当你理解了瀑布模型后,你会发现,其他更为高级,先进的模型,比如瀑布之后的一个迭代模型,变的很容易了。
还有两个不得不提的,和软件生命周期有关的名词:RUP和XP,在这里也简单的介绍一下。 RUP(Rational统一软件过程)是一个范围更广的概念,它的软件生命周期是一种很复杂的迭代,当然它还包括一些其它的东西。而XP则显得更为灵活。 关于软件生命周期,讲得差不多了。下面该讲讲测试和软件生命周期的关系了。如果你还没被上面一大堆东西搞昏头的话,你会告诉我其实上面已经说到了,测试是软件生命周期的一部分,或者说,测试是软件开发过程中的一部分。
了解这一点非常,非常重要。