软件测试(一)

软件测试(一)

总所周知,软件测试是也是一门技术活,相对于Web开发而言,软件测试则相对来说,对于代码要求并没有那么高。

不过这并不能说明做软件测试并不需要技术,恰恰相反,软件测试工作严谨,和软件开发一样需要对工作抱有高度的精力,更甚要用更多的耐心和观察力。

能够在成千上万条码海中去寻找出那一部分出现BUG、错误、内容不正确、需求不达标的功能。这往往需要着更高的精力。

软件开发,一般情况下是会划分出3种模型,分别为:瀑布型、快速原型模型、螺旋模型。

软件测试和软件开发模式有着密不可分的联系,作为一个合格且出色的软件测试人员,要充分的理解软件开发模式。从而在其中发挥自己的价值。

瀑布模型:(如图)

是所有其他模型的一个基础模型。占有模型中重要地位。

软件测试人员往往会在实现功能上进行切入,然后开始对软件进行BUG测试。

软件测试(一)

快速原型模型:(如图)

软件测试(一)

螺旋模型:(如图)

软件测试(一)

三模型优点及其缺点:

各个模型优点、缺点
模型名称优点缺点
瀑布模型
  • 开发的各个阶段比较清晰
  • 强调早期计划需求调查
  • 适合需求稳定的产品开发  
  • 依赖早期的需求调查,不适应需求变化
  • 单一流程不可逆
  • 风险往往后期显露,失去趁早纠正机会
  • 问题在项目后期暴露
  • 前期未发现的错误会传递并扩散,到后期可能导致项目失败
快速原型模型
  • 克服瀑布模型的缺点
  • 更好地满足用户需求并减少由于软件需求不明带来的开发风险
  • 适合预先不能定义需求的软件系统开发  
  • 不适合大型系统开发
  • 前提有一个展示性的产品原型
  • 可能会限制开发人员的创新
螺旋模型
  • 很大程度上是一种风险驱动的方法体系
  • 每个开发之前经常发生的循环之前,都必须首先进行风险评估  
  • 采需要具有相当丰富的风险评估经验和专门知识
  • 如果未能及时标识风险,势必造成重大损失
  • 过多迭代次数会增加开发成本,延迟提交时间

测试模型:

软件测试和软件工程息息相关,软件测试是软件工程组成中不可或缺的一部分。

在软件工程、项目管理、质量管理得到规范化应用的企业,软件测试也会进行的比较顺利,软件测试发挥的价值也更大。

随着测试过程的管理和发展,常见的模型分为三种:V模型、W模型、H模型。

V模型:

优点:

测试V模型包含底层测试、高层测试:

底层测试:检验源代码质量的测试,如:单元测试;

高层测试:检验整个系统的需要,如:系统测试;

V模型清楚标识出了软件的多个开发阶段。

采用自顶向下逐步求精的方式,当所有阶段都完成之后,软件开发过程也随之结束。

缺点:

最大的缺点就是它自身的顺序问题。一般在软件开发前期,软件测试没有切入,到后期的时候,错误就已经很多,导致时间不够,甚至无法发现,往往无从修改。

返工量非常大,灵活性比较低

软件测试(一)

W模型:

优点:

软件开发和软件测试同步,测试不仅仅是程序,还包括:需求、概要设计。

更早地接入测试,可以在开发初期发现却行,降低成本进行修改。

便于控制项目过程。

缺点:

软件开发和软件测试互相依赖,保持一前一后的关系,无法支持迭代、自发性、和需求变更调整。

很多产品项目,在执行过程中不产生文档,W模型无法适用。

技术含量太高,对于小型公司要求很高,很难实践。

软件测试(一)

H模型:

优点:

揭示了软件测试除测试执行外,还有很多工作。

软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。

软件测试活动可以尽早准别、尽早执行,具有很强灵活性。

可以根据测物不同而分层次,分阶段,分成次序执行,也可以被迭代。

缺点:

管理学要求高。

技能要求高。

测试就绪点分析困难。

对整个项目组的人员要求非常高。

软件测试(一)

软件测试分类:

软件测试(一)

单元测试:

又称模块测试,针对软件设置中的最小单位——程序模块,对程序中某个特定、指定的模块进行单独的、精准的测试,能够更精准的找出在这个模块中的错误BUG。

集成测试:

又称组装测试,通常在单元测试的基础上进行有序的、递增的测试。简单来说,就是将很多个单元、模块合并在一起,进行一个较大、较多的单元测试。

系统测试:

将整个软件系统看为一个整体进行测试,包括对功能、性能、软件运行的软硬件环境进行测试。

软件测试分类:(黑盒、白盒、灰盒)

软件测试一般分为三种测试方法:黑盒测试、白盒测试、灰盒测试。

黑盒测试:

又称数据驱动测试,完全不考虑代码内部结构和内部特性,更加注重测试软件的功能需求,只关心数据输入和输出。

白盒测试:

与黑盒测试相反,白盒测试则会去注重内部结构和内部特性。一般情况而言,白盒测试要求较高,需要有一定程序代码知识含量的技术人员从业。

灰盒测试:

灰盒测试介于两者之间,只会介入一小部分源代码进行查看。

验收测试:(常见)

α测试:内侧版本

β测试:公测版本

相关推荐