Answers:
V模型是Waterfall模型的扩展,因此不要期望它有很大的不同。
基本上,您从左到右遵循V模型,就像在瀑布模型中一样。在Waterfall中,您可以进行需求,设计,实现,验证以及最终维护。在V模型中,您以相同的方式执行需求,设计,实现,验证和维护:两种情况下的步骤相同。
Waterfall的主要区别在于其呈现方式和对测试的强调。
将流表示为V形有助于区分编码之前的所有内容(需求,体系结构和设计)和编码之后的所有内容(本质上是测试)。尽管测试只是Waterfall中五个步骤之一,但实际上似乎只是V模型中过程的一半。
您所问的图表有点复杂。它试图显示的是,例如,系统设计步骤不仅可以引出瀑布模型所建议的系统设计文档,还可以引出系统测试设计,这将在以后帮助编写系统测试。该图只是更加强调了测试。最后,进行系统测试设计有助于体系结构设计(无论系统测试设计如何,进行体系结构设计都是很尴尬的)。
在互联网上搜索其他解释时,我不可避免地引用了Bhakti Satalkar的以下文章:
瀑布模型和V模型之间的主要区别在于,在瀑布模型中,测试活动是在开发活动结束后进行的。另一方面,在V模型中,测试活动从第一阶段本身开始。换句话说,瀑布模型是一个连续的过程,而V模型是一个同时的过程。与使用瀑布模型制作的软件相比,使用V模型制作的软件中的缺陷数量更少。这是由于存在这样的事实,即存在在V模型中同时执行的测试活动。因此,在确定用户要求时使用瀑布模型。如果用户的需求不确定并且不断变化,则V模型是更好的选择。
这种解释具有误导性。仅当您用任何敏捷方法替换引号中的“ V型”时,这都是正确的。
与文章所述不同,在V模型中,测试是在编码后完成的;例如,请参阅Wikipedia:
对V模型的普遍实践批评是,当开发的早期阶段已经超支但实施日期仍是固定的时,它会导致测试在开发结束时被压缩到狭窄的窗口中。
尽管在V模型中,系统测试设计遵循系统设计而无需等待产品实现完成,但这并不意味着测试本身是在编码之前执行的。作者将V模型与敏捷方法(例如极限编程(XP)中的测试驱动开发(TDD))相混淆。
Representing the flow as V-shape helps making the difference between everything which comes prior to coding (requirements, architecture and design) and everything which follows coding (essentially testing). While tests are just one of five steps in Waterfall, it looks like practically half of the process in V-model.
=钉牢了!谢谢
V