软件测试

 

什么是软件测试?

1.软件测试就是一种用来促进检测软件的正确性、完整性、安全性和质量的过程。

2.换句话说也就是程序员将一个程序写好之后交给软件测试的人员,软件测试的人员就是去测试程序员所写程序的bug(漏洞),然后再跟程序员交流修复好那个bug。

测试原则

1.任何软件都不是完美的,都需要进行测试,都会存在bug。

2.测试都应该尽早介入。

3.杀虫剂现象,测试用例不能使用多次,否则程序会自动出现免疫情况。

系统测试分类

1.功能测试(主体功能是否可用)

2.兼容性测试(不同环境下是否可用)例:安卓和苹果

3.安全测试(是否只能是授权用户提供功能使用)

4.性能测试(当前软件消耗的资源 它的产出能力)

常见系统测试方法

1.按测试对象进行分类

  1.1 白盒测试(看源码)

  1.2 黑盒测试(不看源码)

  1.3 灰盒测试()

2.按测试对象是否执行分类

  2.1 静态测试 

  2.2 动态测试

3.按测试手段进行分类

  3.1 手工测试

  3.2 自动化测试

软件开发过程模型

1.瀑布型模型

1.1 是线性模型的一种,是所有其他模型的基础

1.2测试切入点

测试阶段处于软件后期实现后,必须在代码完成后留有足够的时间给测试,

导致测试时间不够充分,很多问题到项目后期才暴露出来。

优点:

1.开发的各个阶段比较清晰

2.适合发展需求稳定的产品

3.适用于小型公司

缺点:

1.过于依赖于早期的需求计划

2.单一流程不可逆

3.问题往往在项目后期才会显露

2.快速原型模型

2.1 创建一个快速原型,实现用户与系统的交互,抓准系统的核心,逐步调整原型使其满足用户需求。

2.2 在第一步的基础上开发出令人满意的软件

优点:

1.克服瀑布模型的缺点,更好的满足用户的需求

缺点:

1.不适合大型系统的开发(适合 开发小型的、灵活性高的系统)

3.螺旋模型

 3.1 螺旋模型分为几个周期,每一个周期都是一个小型的瀑布模型

螺旋模型沿着螺旋线旋转,分为了四个方面的活动,分别是

制定计划

风险分析

实施开发

客户评估

优点:

1.螺旋模型很大程度上是一种风险驱动的方法体系。都必须进行风险评估。

缺点:

1.采用螺旋模型需要具有相当丰富的风险评估经验和专门知识,在风险较大的项目开发中

如果未能标识风险,势必造成重大损失,过多迭代会增加开发的成本。

测试模型

1.V模型

需求分析:用户的需求、业务需求。

概要设计:系统架构、模块划分、模块与模块之间的接口。

详细设计:模块内部实现的逻辑和方法。

编码:实现上面的设计。

单元测试:(类、函数、组件)

集成测试:多模块连接测试

系统测试:系统主体进行测试

验收测试:检测产品是否符合最终用户的需求

优点;

1.V模型清楚的标识出软件开发的阶段

2.测试V模型即包含了底层测试又包含了高层测试

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

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

缺点:

1.1  V模型一大缺点正是它自身的顺序性所导致的。到了测试阶段,程 序已经完成,错误已经产生,

很多前期的错误一直到测试阶段才 发现,甚至无法发现,往往无从修改了。 

1.2 灵活性比较低。

2.W模型

优点:

 测试伴随着整个开发过程,更早的介入测试,可以发现开发初期的很多缺陷,可以降低开发的成本,便于控制项目的过程。

缺点:使用起来技术复杂度很高,对需求和设计的测试难度较高,实践起来很难。

3.H模型

优点:

比较灵活

缺点:

 对于整个项目组的人员要求非常,也就意味着成本比较高, 适用于比较有钱的大公司。

原文地址:https://www.cnblogs.com/zxy6/p/13071383.html