系统定义 维护
------\------------------------------/------------
需求分析 ..... 系统测试
\ /
概要设计 ..... 集成测试
\ /
详细设计 ... 单元测试
\ /
编码
与需求分析对应的是系统测试。因为需求分析的工作是分解用户的功能和性能需求并规格化,所以系统测试的工作主要就是测试这些功能和性能指标是否都在软件中正确实现。
该测试把软件作为一个黑盒,针对每个需求规格组织各种输入并根据软件输出来判断该需求规格是否正确实现,因此系统测试属于黑盒测试。与概要设计对应的是集成 测试。因为概要设计的工作主要是根据功能把大的系统进行模块分解,所以集成测试的工作主要是,把各模块逐步集成在一起,来测试数据是否能够在各模块间正确 流动,以及各模块能否正确同步。因为这种测试依赖于软件的架构但又不关心每个函数的实现细节,所以该测试又常称为灰盒测试。与详细设计对应的是单元测试。 它主要是详细设计中的每个功能单元(通常是函数或过程)进行逻辑覆盖测试,因此这种测试属于白盒测试。与从需求到设计、统测试,于是就形成了一个V字形的 结构。
与在瀑布模型中描述的一样,这些测试活动也是顺序进行的,并遵循一定的输入和输出规则(具体的测试在以后的章节中会详细描述),但是这些阶段也同样可以重叠和反复。
瀑布模型的优点是清楚地标识出了软件开发的阶段。它采用自顶向下逐步求精的方式把整个开发过程分成不同的阶段,每个阶段的工作都很明确,因此便于控制开发过程。当所有的阶段都完成之后,该软件的开发过程也随之结束。
瀑布模型的缺点正是它自身的顺序性所导致的。实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此,当需求变更时将会导致阶段反复,而且都要重复需求、设计、编码、测试等过程。
实际的开发过程中,用得较多的就是瀑布/V模型,只是可以根据实际需要进行阶段合并与裁减。
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/