测试进阶篇之测试方法的分类(一)

一、 按开发阶段分类

1. 单元测试

  1. 概念:对软件组成单元进行测试,其目的是检验软件基本组成单位的正确性。

  2. 测试阶段:编码前(TDD,Test-Driven-Develop 测试驱动开发)或编码后

  3. 测试对象:最小模块

  4. 测试人员:白盒测试工程师或开发工程师

  5. 测试依据:代码和注释+详细设计文档

  6. 测试方法:白盒测试

  7. 测试内容:单元接口测试(按照接口设计文档,参数,输出),局部数据结构测试(局部变量),边界测试,路径测试(if else,switch),错误处理测试(throws,try catch)

  8. 单元测试方法 —— Junit

    1. 在 pom.xml 文件中加入依赖

      <dependency>
          <groupId>junit</groupId>
          <artifactId>junit</artifactId>
          <version>4.11</version>
          <scope>test</scope>
      </dependency>
      
    2. 在 file-settings-Pluguins 搜索Junit并进行安装

    3. 开始做单元测试 —— 选中要进行单元测试的类的类名,Ctrl+Shift+T,生成单元测试类

    4. 在单元测试的类前面+ignore,则其后面的类不会运行

    5. Before 测试前的一些配置工作,After 测试后的一些清理工作

2. 集成测试

  1. 概念:将程序模块采用适当的继承策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。主要目的是检查软件单位之间的接口是否正确
  2. 测试阶段:一般在单元测试之后进行
  3. 测试对象:模块间的接口
  4. 测试人员:白盒测试工程师或开发工程师
  5. 测试依据:单元测试的模块+概要设计文档
  6. 测试方法:黑盒测试+白盒测试
  7. 测试内容:模块之间数据传输(输入输出,参数)、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

3. 系统测试

  1. 概念:对被测试软件应用系统进行全面的、系统的测试
  2. 测试阶段:集成测试通过之后
  3. 测试对象:整个系统(软、硬件)
  4. 测试人员:黑盒测试工程师
  5. 测试依据:需求规格说明文档
  6. 测试方法:黑盒测试
  7. 测试内容:功能、界面、可靠性、易用性、性能、可移植性、兼容性、安全性等
  8. 测试方法:
回归测试
概念:用于检验修改了旧代码后,重新进行测试确认修改是否因引入新的错误或导致其他代码产生错误
适用时期:当系统引入新代码(出现新功能,修改了 BUG)的时候,进行回归测
冒烟测试
概念:主要针对完成一个新版本的开发后,对该版本最基本的功能进行测试,保证基本的功能和流程能正常进行
适用时期:在正式测试之前对系统的主要流程和核心功能进行测试(准入原则)
自动化测试
概念:以人为驱动的测试行为转化为机器执行的一种过程的测试方法
适用时期:迭代频繁,长期进行迭代开发的软件产品,使用自动化测试

4. 验收测试

  1. 概念:验收测试不仅对系统进行全面测验,验收文档(开发文档、软件设计文档、需求分析文档、功能使用文档、用户使用手册)
  2. 测试阶段:系统(确认)测试完成之后
  3. 测试对象:整个系统的所有软硬件设备
  4. 测试人员:用户
  5. 测试依据:是否满足用户的要求
  6. 测试方法:纯黑盒测试
  7. 测试内容:功能、界面、可靠性、易用性、性能、可移植性、兼容性、安全性等

二、 按测试实施组织分类

1. α测试

  1. 邀请用户或者公司内非测试和非开发人员到开发现场进行测试;
  2. 时间比较集中,在开发现场可以较好地沟通产品的问题;
  3. 比较容易使用开发坏境的影响。

2. β测试

  1. 由测试员负责创建环境,选择数据,并决定要研究的功能、特性或任务
  2. 用户在实际使用环境下进行测试,测试的结果更接近于实际使用情况的反馈;
  3. α测试优先于β测试。

3. 第三方测试

  1. 第三方测试由非开发人员或用户进行测试,其目的是为了保证测试工作的客观性
  2. 主要包括需求分析审查、设计审查、代码审查、单元测试、功能测试、性能测试、可恢复性测试、资源消耗测试、并发测试、健壮性测试、安全测试、安装配置测试、可移植性测试、文档测试以及最终的验收测试

4. α 测试和 β测试的区别

1.测试人员不同

α 测试:公司内部(除泵项目的研发人员和测试人员)的人员
β 测试:用户

2.环境不同

α 测试:研发环境和预发布环境(测试环境-预发布环境-生产环境)
β 测试:用户环境

3.先后顺序

α测试优先于β测试。

4.时间

α测试时间短,β测试时间长

三、 按是否执行测试用例

1. 静态测试

  1. 不运行被测试软件或程序,而是根据需求规格说明书,软件设计文档,程序设计文档等结合程序(代码),静态审查代码、界面或是文档可能存在的错误
  2. 代码:主要测试代码是否与相应的标准和规范符合
  3. 界面:主要测试软件的实际界面与需求中的说明是否相符
  4. 文档:主要测试用户手册和需求说明是否满足用户的实际需求

2. 动态测试

  1. 通过运行被测程序,检查运行结果和预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
  2. 黑盒测试有可能是动态测试(运行程序,看输入输出),也有可能是静态测试(不运行,只看界面)
  3. 白盒测试有可能是动态测试(运行程序并分析代码结构),也有可能是静态测试(不运行程序,只静态察看代码)
  4. 动态测试有可能是黑盒测试(运行,只看输入输出),也有可能是白盒测试 (运行并分析代码结构)
  5. 静态测试有可能是黑盒测试(不运行,只察看界面),也有可能是白盒测试(不运行,只察看代码)

四、按是否查看代码

1. 黑盒测试

  1. 黑盒测试不关注程序内部的具体实现,只关注功能的输入和输出是否满足需求

  2. 系统测试、验收测试属于黑盒测试

  3. 黑盒测试设计测试用例的方法有哪些?

    等价类,边界类,因果图,错误猜测法,正交法,场景法
    
  4. 详细操作方法详见:软件测试之黑盒测试方法介绍及测试用例练习

2. 白盒测试

  1. 白盒测试在测试的时候关注功能内部程序的实现逻辑、结构、语法等

  2. 单元测试属于白盒测试

  3. 白盒测试的方法

    逻辑覆盖测试
    语句覆盖:要保证被测方法的每句语句都被执行到
    判定覆盖:保证被测方法的每个判定语句的真假分支都被执行到   
    条件覆盖:保证被测方法的每个条件的可能值都被执行到
    判定-条件覆盖:保证被测方法的每个条件的可能取值至少出现一次,且每个判断的可能性也至少出现一次
    条件组合覆盖:每个判定中条件结果的所有可能组合至少出现一次   
    路径覆盖法:代码中涉及到路径的语法(if elseswitch)的语句都要执行到
    基本路径测试 :基本路径测试法又称独立路径测试,是在程序控制流图的基础上, 通过分析控制结构的环路复杂性,导出基本可执行路径集合,从而设计出相应的测试用例的方法。
    
    if(a > b && a < c) {
        reture a;
    } else if(e > h || d > g) {
        reture d;
    } else {
        reture 0;
    }
    

3. 灰盒测试

  1. 介于白盒和黑盒之间的测试
  2. 集成测试属于灰盒测试
  3. 灰盒测试不仅关注测试输入、预期输出的正确性,同时也关注程序内部逻辑的情况。灰盒测试达不到白盒测试实施地详细、完整,但又比黑盒测试更关注程序的内部逻辑,常常是通过一些表征性的现象、事件、标志来判断内部的运行状态。
  4. 测试任务
    寻找Bug;避免软件开发过程中的缺陷;衡量软件的品质;关注用户的需求。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值