软件测试理论(一)

  • 软件测试目的

1)确保软件质量

2)减少质量问题给企业及用户带来隐患

  • 测试分类

1)安装测试

2)构建测试

3)白盒测试

4)黑盒测试

5)性能测试

6)迁移测试

……

  • 单元测试

1、定义:开发人员针对程序模块(软件设计的最小单位)来进行正确性检验的测试;

2、单元测试是和开发最接近的一种测试;

3、单元测试是粒度最小的软件测试

  • 过程化编程:单个程序、函数、过程
  • 对象化编程:方法、基类、抽象类、派生类

4、子系统只有通过单元测试之后才能集成到大系统中

白盒测试

定义:指测试人员可直接访问内部数据结果、算法及其代码实现的测试

常见的方法:

  • 接口测试
  • 代码覆盖率测试
  • 缺陷注入测试方法

“单元测试”和“白盒测试”区别

1、测试目的不同

“白盒测试”是测试程序的整体逻辑

“单元测试”是测试程序中一个独立的模块

2、执行人员不同

“白盒测试”一般是由专门的白盒测试人员完成

“单元测试”一般是由程序员自己完成

功能测试(黑盒测试)

1、定义:通过黑盒模式发现代码集成后存在的功能问题的测试(关注的重点是系统的功能;可以自动或手动执行测试用例)

2、与“单元测试”的区别:粒度不同

3、单元测试关注的是最小代码片段

4、功能测试关注的是一个完整的业务功能

性能测试

1、关注重点:验证软件的非功能性需求的测试

2、相应测试项:吞吐率、稳定性、可靠性

3、主要手段:通过自动化的方法模拟真实用户并发访问的场景

4、最终目的:1、验证系统的性能指标或发现其性能瓶颈;2、从根本上保证用户体验和长远利益

手工测试特点

优点:

  • 方便灵活
  • 首次投入成本低
  • 人员素质要求低

缺点:

  • 效率低
  • 重复开销大
  • 难以模拟复杂的使用场景,如:并发或连续事务

自动化测试特点

优点:

  • 效率高,提供很强的生产力
  • 重复活动开销小
  • 基本可以模拟任何复杂的使用场景
  • 弱化了软件测试人员个体差异的影响

缺点:

  • 首次投入成本高
  • 变更成本大
  • 人员素质要求高

自动化 vs 手动测试

  • 形成良好互补,2/8原则
  • 创造性的工作交付人来做,重复性工作交付机器来做
  • 大项目适合自动化测试,小项目适合手工测试

针对小规模项目分析:

  • 小规模测试基本上手动和自动都可以适用
  • 在很小规模的时候,手工在成本上有很大的优势
  • 随着回归次数增加,手工成本基本线性增加,自动化则成本趋于稳定

大规模项目分析:

  • 软件项目随着规模增大,很容易产生滚雪球效应
  • 手工测试很快遇到天花板,无论是成本还是可操作性都会出现障碍,投入成本增幅远高于开发成本增幅
  • 自动化将成为主流,基本成本的增长和开发的成本投入幅度相当

note:自动化脚本的开发工作并不是越早越好,而是应该基于稳定的测试环境和测试计划。

参考借鉴原地址:http://www.cnblogs.com/beer/p/4805146.html

 

原文地址:https://www.cnblogs.com/sunshine-blog/p/8243186.html