一看二做三总结
分类: C/C++
2011-11-15 14:59:53
写了代码就有bug,所以必须要有相应的测试。相信几乎所有程序员的第一个程序都是“hello world”。这个小程序也要测试的。编写完成后,运行。如果打印出“hello world”,测试成功;否则,测试失败。
有人可能会说:哪里有测试,我编写完就执行了。
这是因为测试人员与用户都是你。假设你是要给你女朋友炫一下你会编程,那么你(测试人员)肯定要先自己执行下是否正确(系统测试),然后才会让你女朋友(用户)看(验收测试)。
1.2 软件测试的生命周期原则上讲,软件测试时要贯穿于软件开发的整个生命周期的。对应于软件开发的各个周期,都有相应的软件测试周期。下图是软件开发与软件测试的对应关系:
其中的蓝色箭头是时间线,这也是一个软件开发的基本流程。编码完成并不是软件开发的结束,后面还有大量的测试要做。
看着好像有点晕,我们再看下面的图。软件开发中的每一阶段都需要有相应的通过准则或验收标准,这就是软件测试分阶段的原因。明确了这一点,也就明确了软件测试各个阶段的设计目标与范围。
需求分析是对用户需求的明确与分解,因此对应的测试为验收测试。只有通过用户的测试,才能说明软件完成了用户的需求。
单元测试是测试的最底层,也对应着软件开发的最底层:编码。他的主要目的是测试函数级别或者类的级别上是否达到了设计要求。
中间的两层实际开发中不一定是都存在的,经常会合起来构成详细设计与系统测试。
由于存在着这种各个阶段的依赖关系,我们不能等软件完成了才开始设计测试方法,而是同时进行。在开发的每个阶段,必须要先确定验收准则。否则我们如何知道设计的目标是什么呢?
见下图:
其中比较特别的是单元测试,它是唯一与编码同步进行的测试。它的作用就像是盖房子时的铅垂线,工人砌墙过程中要不断的用铅垂线来保证每块砖都是齐的,否则等盖好了再发现不齐,就只能拆墙了。