模型
V模型是软件测试中最广为人知的模型,尽管许多有实践经验的测试人员仍然不熟悉V模型或其他模型。
V型已经存在了很长时间,与瀑布开发模型有一些共同的特点,因此也像瀑布模型一样受到批评和质疑。
V模型中的过程从左到右,叙述了基本的开发过程和测试行为。
V模型的价值在于它清楚地标记了测试过程中的不同等级,并清楚地叙述了测试阶段与开发过程中各个阶段之间的相应关系。
局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才可以发现。
测试工作在编码完成后才开始做好,不符合软件测试的“3早”原则。
W模型
V型的局限性在于早期测试没有明确说明,不能体现尽快、持续的软件测试的原则。
在V模型中增加软件各开发阶段应同步进行的测试,演化为W模型(如下图)。
在模型中不难看出,开发是“V”,测试是与此并行的“V”。
根据“及早地和不断地做好软件测试”的原则,在软件的需求和设计阶段的测试活动应遵循IEEE1012-1998《软件验证与确认(V&V)》的原则。
W模型由Evolutif公司提出,相对来说于V模型,W模型更科学。
W模型是V模型的发展,注重的是测试伴随着着整个软件开发周期,而且测试的对象不仅仅是程序,需求、功能和设计同样要测试。
测试与开发是同步进行的,进而有利于及早地发现问题。
比如在做好需求分析,SRS评审,SRS基线化后,系统测试计划,方案,用例也设计结束,然后是概要设计与集成测试设计,详细设计与单元测试设计,直到编码完成后,做好代码审查,继续执行UT,IT,ST。
W模型:用户需求(用户需求V&V、验收测试设计与评审)→→需求分析(需求V&V、系统测试设计与评审)→→概要设计(概要设计V&V、集成测试设计与评审)→→详细设计(详细设计V&V、单元测试设计与评审)→→编码实现(单元测试)→→模块集成(集成测试)→→实施(系统测试)→→交付(验收测试)。
W模型也有局限性。
W模型和V模型将软件开发视为一系列串行活动,如需求、设计和编码,不能支持迭代、自发性和变更调整。
X模型
X模型也是对V模型的改进。
X模型提出对单个程序片段进行分离编码和测试,然后根据频繁的交接和集成最终合成为可执行程序。
X模型的左边叙述的是针对单独程序片段所做好的相互分离的编码和测试,此后将做好频繁的交接,根据集成最终成为可执行的程序,然后再对这些可执行程序做好测试。
己根据集成测试的成品可以做好封装并提交给用户,也可以作为更大规模和范围内集成的一部分。
多条并行曲线表示变化可以发生在各个部分。
由图中可见,X模型还定位了探索性测试,这是不做好事先计划的特殊类型的测试,这一方式往往能帮助有经验的测试人员在测试计划之外发现更多的软件错误。
但这样可能对测试造成人力、物力和财力的浪费,对测试员的熟练程度要求比较高。
H模型
在H模型中,软件测试过程活动完全独立,围绕整个产品周期,与其他流程并发。
当测试点准备好时,可以从测试准备阶段到测试执行阶段。
软件测试可以及早的做好,并且可以根据被测物的不同而分层次做好。
这个示意图演示了在整个生产周期中某个层次上的一次测试“微循环”。
图中标注的其它流程可以是任意的开发流程,例如设计流程或是编码流程。
换句话说,只需测试条件成熟了,测试准备活动完成了,测试执行活动就可以做好了。
H模型揭示了一个原理:软件测试是一个独立的流程,围绕产品整个生命周期,与其他流程并发地做好。
H模型指出软件测试要及早准备,及早执行。
不同的测试活动可以是按照某个次序先后做好的,但也可能是反复的,只需某个测试达到准备就绪点,测试执行活动就可以开展。
总结
1.软件测试过程模型-V模型
是软件开发瀑布模型的变种,主要反映了测试活动与分析与设计的关系;
局限性:把测试作为编码之后的最后一个活动,需求分析等前期产生的错误直到后期的验收测试才可以发现。
2.软件测试过程模型-W模型
在V模型的基础上,增加开发阶段的同步测试,形成W模型;测试与开发同步进行,有利用及早的发现问题;
局限性:仍把开发活动看成是从需求开始到编码结束的串行活动,只有上一阶段完成后,才可以开始下一阶段的活动,不能支持迭代,自发性及其变更调整。
3.软件测试过程模型-H模型
在H模型中,软件测试过程活动完全独立,围绕于整个产品的周期,与其他流程并发地做好,某个测试点准备就绪时,就可以从测试准备阶段做好到测试执行阶段;软件测试可以做好及早的做好;软件测试可以根据被测物的不同而分层次做好。
测试模型使用
各种模型的优点在实际工作中应灵活运用,
V模型:注重了在整个软件项目开发中需要经历的若干个测试等级,并与每一个开发等级对应;忽略了测试的对象不应该仅仅包括程序,没有明确指出对需求、设计的测试;
W模型:补充了V模型中忽略的内容,注重了测试计划等工作的先行和对系统需求和系统设计的测试;与V模型相同,没有对软件测试的流程做好说明;
H模型:注重测试是独立的,只需测试准备完成,就可以执行测试。
看了这篇内容后,坚信以下两件事,也会对你的自我提升有一定的帮助:
1、点赞,让更多人能看到,同时你的认可也会鼓励我创作更多优质内容。
2、要让自己变得更强:想想,假如你是要在测试这个行业长期做下去,你的工作经验和测试技术是绝对不够的,你需要提升,你需要丰富你的技术栈!还等什么!
最后点击领取:【可能给你带来帮助的教程】
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)