Fork me on GitHub

【测试理论-02】软件生命周期和测试模型详解

一、软件生命周期

1、问题定义
确定好要解决的问题是什么(what),通过对客户的访问调查,系统分析员扼要的写出关于问题性质、工程目标和工程规模的书面报告,经过讨论和必要的修改之后这份报告应该得到客户的确认。
2、可行性研究
确定该问题是否存在一个可以解决的方案。这个阶段的任务不是具体解决问题,而是研究问题的范围,套索这个问题是否值得去解决,是否有可行的解决办法。可行性研究的结果是客户做出是否继续进行这项工程的决定的重要依据,一般来说,只有投资可能取得较大的效益的那些工程项目才值得继续进行下去。
3、需求分析
深入具体的了解用户的需求,在所开发的系统要做什么这个问题上和用户想法完全一致。明确目标系统必须做什么,确定目标系统必须具备哪些功能。通常用数据流图、数据字典和简要的算法表示系统的逻辑模型。用《规格说明书》记录对目标系统的需求。
4、概要设计(总体设计)
概括的说,应该怎样实现目标系统,设计出实现目标系统的几种可能方案,设计程序的体系结构,也就是确定程序由哪些模块组成以及模块之间的关系。
5、详细设计
实现系统的具体工作,编写详细规格说明,程序员可以根据它们写出实际的程序代码。详细设计也称模块设计,在这个阶段将详细的设计每个模块,确定实现模块功能所需的算法和数据结构。
6、编码和单元测试(编码占全部开发工作量的10%-20%)
7、综合测试(测试占全部开发工作量的40%-50%)
分为集成测试和验收测试。
8、软件维护
通过各种必要的维护活动使系统持久的满足用户的需求。主要分为 改正性维护、适应性维护、完善性维护、预防性维护。

二、软件测试模型

1. 瀑布模型
2. V模型
3. W模型
4. H模型
5. X模型

1、瀑布模型:

测试的切入点

  测试阶段处于软件实现后,必须在代码完成后留出足够的时间给测试活动,否则将导致测试不充分,很多问题到项目后期才暴露

瀑布模型优点

  a、开发的各个阶段比较清晰

  b、强调早期计划及需求调查

  c、适合需求稳定的产品开发

瀑布模型缺点

   a、依赖于早期的需求调查,不适应需求的变化

  b、单一流程不可逆

  c、风险往往延至后期才显露,失去及早纠正的机会

  d、问题在项目后期才开始暴露

  e、前面未发现的错误会传递并扩散到后面的阶段,可能导致项目失败

2、V模型

​ 揭示了开发过程与测试过程中各阶段的对应关系

缺点和不足:(测试工作开展的太晚)

​ 1).v模型仅仅把测试过程作为在需求分析,系统设计及编码之后的一个阶段,忽视了测试对需求分析、系统设计的验证

​ 2).需求的满足情况一直到后期的验收测试才被验证

​ 3).没有体现出“尽早地和不断的进行软件测试”的原则

3、W模型

​ 由两个v字型模型组成,分别代表测试与开发过程,明确表示出了测试与开发的并行关系

优点:
​ 1).测试的活动与开发同步进行

​ 2).测试对象不仅仅是程序,包括需求和设计

​ 3).尽早发现软件缺陷可降低软件开发的成本

缺点:
​ 在w模型中,需求、设计、编码等活动被视为串行的,这样就无法支持灵活的迭代

4、H模型​

 1).H模型将测试活动完全独立出来,形成了一个完全独立的流程,将测试准备活动和测试执行活动清晰的体现出来

​ 2).H模型揭示了一个原理:软件测试是一个独立的流程!

​ 3).H模型指出软件测试要尽早准备,尽早执行;只要某个测试点达到准备就绪点,测试执行活动就可以开展,并且不同的测试活动可按照某个次序先后进行,也可以反复进行。

5、X模型

​ x模型也是对V模型的改进,X模型提出针对单独的程序片段进行相互分离的编码和测试,此后通过频繁的交接,通过集成最终合成为可执行程序

​ x模型还定位了探索性测试,这是不进行事先计划的特殊类型的测试,这一方式往往能够帮助有经验的测试人员在测试计划之外发现更多的软件错误

 

 
 
posted @ 2022-04-06 22:08  橘子偏爱橙子  阅读(163)  评论(0编辑  收藏  举报