< a href="https://github.com/%E5%B0%8F%E7%9A%AE%E6%B5%A9"> Fork me on GitHub

测试过程

<!doctype html>

测试过程

测试过程

软件生命周期

是软件的产生直到报废的生命周期

定义与规划、需求分析、系统设计、软件编程、软件测试、软件运维等阶段

软件开发模型

用来描述和表示一个复杂的开发过程

软件开发模型分为瀑布模型、快速原型模型、螺旋模型

瀑布模型

瀑布模型是线性模型的一种,是所有其他模型的一个基础

瀑布模型严格定义了各个开发阶段的输入和输出,打不到要求的输出,下一阶段的公做就不展开

测试的切入点是,开发完成之后,必须留给测试足够时间给测试人员,否则会导致测试不充分,导致很多问题到项目的后期才体现出来

优点:

  1. 明确化分软件生命周期的各个环节
  2. 强调早期软件计划,需求分析比较重要。
  3. 清晰的工作流程,便于分工协作。
  4. 适合需求稳定的产品开发
  5. 每个阶段都有一个检查点

缺点:

  1. 线性的开发流程,存在巨大的风险
  2. 依赖于早期的需求调查,不适应需求的变化,单一流程不可逆
  3. 风险在后期可能才会暴露,且无法纠正,导致项目的失败
  4. 无法应对客户随时可能改变需求的要求

改良

沿用瀑布模型的线性思想,细化各个阶段,在某些重要关注的阶段之间掺入迭代的思想

问题的定义及规划

确定软件开发目的可行性,指定开发计划

需求分析

在确定开发可行性正确下,对软件所需功能进行详细分析,明确客户需求,输出原型图

软件设计

概要设计:架构的实现,表述各模块接口和数据传递等事务

详细设计:对表述的各模块深入分析,要求达到代码级别,将程序具体实现描述出来,以及数据库设计

软件编码

按照详细的模块功能表,编程人员编写出计算机可运行代码

快速原型模型

在开发真实系统出来,先构造一个圆形,在该原型的基础上逐渐完成整个系统开发的开发工作

开发原型,让用户对原型评价,逐步调整

在原型的基础上开发出用户满意的软件

优点:

克服瀑布模型的缺点,适合预先不能确切定义需求的软件开发。适合开发小型的、灵活性高的系统

缺点:

不适合大型系统的开发,前提要有一个展示的原型作为参考,因此一定程度上可能会限制只开发的创新

螺旋模型

将开发分为螺旋周期,每个螺旋周期和瀑布模型相符,坐标轴的四个想先表示四个活动

螺旋模型的核心是不需要正在刚开始就把所有事情搞清楚,先定义最主要功能,实现它,然后听取客户的意见

制定计划:确定软件目标,选定实施方案,弄清楚项目开发的限制条件

风险分析:分析评估所选方案,弄清楚项目开发的限制条件

实施工程:实施软件开发和验证

客户评估:评价开发工作,提出修正意见,指定下一步计划

螺旋模型相似与一种风险驱动的方法体系,因为在每一阶段都会进行风险评估

优点:

引入其他模型不具备的风险分析,使得软件遇见风险时可以停止,减少损失

要求每个迭代阶段都需要构建原型,进行软件测试,以减小项目开发风险

整个过程都有较高灵活性,开发过程的任意阶段自由应对变化

缺点:

需要测试人员有丰富的风险评估经验和专业才能及时标识风险,减少软件缺陷损失,过多的评审迭代,造成开发成本压力

敏捷开发模型

  1. 技术团队与业务专家之间的紧密协作和面对面沟通;
  2. 频繁交付新的软件版本
  3. 紧凑的团队组织
  4. 更好适应需求变化的代码编写方式与团队管理

软件是在逐步的改进增减的过程中,最终达到用户满意度

敏捷开发就是迭代+增量

敏捷开发对于自动化测试的要求较高,开发人员注重开发,测试人员注重测试过程

敏捷开发需要测试人员更好的掌握自动化技术

增量和全量

全量:完整的版本包、

增量:在某一个全量的版本包上更新的内容包,增量的基础是全量包

软件测试模型

v模型

本身是软件开发中瀑布模型的变种,他反映测试活动与分析和设计的关系

v模型标明了测试过程中本身存在的不同阶段,从左到右,描述了开发过程间的阶段对应关系

v模型示意图

1577108465655

v模型中的过程从左到右,描述了基本的开发过程和测试行为

v模型的价值在于他非常明确地标注测试过程中存在的不同级别,并且清楚的描述了这些测试阶段和开发过程期间各个阶段对应关系

局限性:把测试作为编码之后的最后一个活动,需求分析等等前期产生的错误直到后期的验收才能发现

v模型的优点:

v模型既包含了底层测试又包含了高层测试:

底层测试,如单元测试

高层测试,系统测试

v模型清晰的标出了软件开发的各个阶段

v模型自顶向下逐步求精的方式把整个开发过程分为不同阶段,每个阶段的工作都很明确,因此便于控制开发过程,当所有的阶段都完成后,该软件开发过程也随之结束

v模型的缺点:

缺点也是显而易见,正是它自身的顺序性导致,只有到了测试阶段,才开始执行测试流程。但有写错误直到这时才被发现,甚至无法发现

另外,在实际的开发过程中,在需求阶段很难把用户的需求完全明确下来,因此当需求变更时将会导致阶段反复

W模型

在软件开发过程中,开发一个v,测试一个v,组合而来的w,所以W模型也称双v模型

测试伴随着整个软件开发周期,并且成测试对象不仅仅是程序,需求和设计阶段同样需要测试

开发和测试的协调工作图,绿色为开发V,橙色为测试V

W模型的优点

  1. 测试伴随着整个软件开发生命周期,测试对象不仅仅是程序,需求和概要同样需要测试
  2. 更早介入测试,可以更好的发现需求设计中的缺陷,修复成本也更低
  3. 同样分阶段工作,便于控制项目过程

W模型缺点

  1. 依赖于软件开发和测试的前后线性关系,还是无法解决需求变更调整的问题。也就是无法支持迭代,自发性和需求变更调整
  2. 对于有些项目,在执行过程中根本不产生文档,那么W模型也基本无法使用
  3. W模型的技术复杂度较高,对于需求设计和测试人员要求较高,实践起来,门槛较高。

一般只有大型企业使用W模型

H模型

H模型将活动完全独立出来,形成一个完全独立的流程,同时将测试执行也清晰的表现出来。

H模型的测试流程

测试准备:所有测试执行活动的准备,判断是否测试的就绪点。

测试就绪点:测试准入准则,即是否可以开始执行测试的条件。

测试执行:具体的执行测试的程序

 

 

 

按测试职位分类

白盒测试:测试主体就是软件的底层

 

 

 

 

 

插庄

posted @ 2019-12-23 23:01  赌徒!  阅读(153)  评论(0编辑  收藏  举报