当前位置: 首页 > news >正文

测试的分类

1 按照开发阶段(软件开发周期)

  1. 单元测试是对软件的组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位——模块,故又称为模块测试。
  2. 集成测试是将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试。集成测试主要目的是检查软件单元之间的接口是否正确。
  3. 系统测试就是将已通过集成测试的软件系统与计算机硬件、外设、数据库、网络等其他元素结合在一起,在实际运行环境下,进行一系列的系统测试工作。包括对功能、性能及软件所运行的软硬件环境进行测试。
  4. 回归测试是指修改了旧代码后,重新进行测试以确认没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。
  5. 冒烟测试的对象是每一个新编译的需要正式测试的软件版本,对主干流程进行测试,目的是确认软件基本功能正常,可以进行后续的正式测试工作。冒烟测试的执行者是版本编译人员。一般在开发人员开发完毕后,测试人员会先进行冒烟测试,保证基本功能正常,不阻碍后续的测试。
  6. 验收测试是部署软件之前的最后一个测试操作,它是技术测试的最后一个阶段,也称为交付测试。验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买者展示该软件系统满足原始需求。

2 按是否运行划分

  • 静态测试是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。根据需求规格说明书、软件设计说明书、源程序结构分析、流程图分析、符号执行来找错。
    静态测试最常用的技术就是评审,主要有同行评审和阶段评审。
  • 动态测试是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。
    大多数软件测试工作都属于动态测试。

3 按是否手工划分

  • 手工测试是指由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。
    优点: 自动化无法替代探索性测试、发散思维结果的测试。
    缺点: 执行效率慢,当工作量大时,容易出错。
  • 自动化测试是指在预设条件下运行系统或应用程序,评估运行结果。简单来说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程,比如功能测试自动化、性能测试自动化、安全测试自动化。
    自动化测试按照测试对象划分,还可分为接口测试、UI测试等等。

4 按是否查看代码划分

  1. 黑盒测试:称为数据驱动测试,把测试对象当做看不见的黑盒,在完全不考虑程序内部结构和处理过程的情况下,测试者仅依据程序功能的需求规范考虑,确定测试用例和推断测试结果的正确性,它是站在使用软件或程序的角度,从输入数据与输出数据的对应关系出发进行的测试。
  2. 白盒测试:又称为结构测试或逻辑驱动测试,是一种按照程序内部逻辑结构和编码结构,设计测试数据并完成测试的一种测试方法。
  3. 灰盒测试:灰盒测试就是介于白盒测试和黑盒测试的一种测试,是基于程序运行时的外部表现又结合内部逻辑结构来设计用例,执行程序并采集路径执行信息和外部用户接口结果的测试技术。

5 按照测试对象进行划分

  1. 功能角度
  2. 用户体验角度
  3. 兼容性角度
  4. 安全性角度
  5. 性能角度
http://www.lryc.cn/news/70435.html

相关文章:

  • 【5.21】六、自动化测试—持续集成测试
  • 【C++】 排列与组合算法详解(进阶篇)
  • Godot引擎 4.0 文档 - 循序渐进教程 - 监听玩家输入
  • Docker笔记9 | Docker中网络功能知识梳理和了解
  • 生态系统模型:SolVES、DNDC、CMIP6、GEE林业、APSIM、InVEST、无人机遥感、ArcGIS Pro模型等
  • 常见分布函数。
  • 【网络安全】红队攻防之基础免杀
  • CTF入门指南
  • C:入门级积累(4)
  • 基于DBSCAN密度聚类的风电-负荷场景削减方法
  • 服务(第二十七篇)squid-传统、穿透、反向代理
  • golang yaml 解析问题
  • setContentHuggingPriority和setContentCompressionResistancePriority的使用
  • java springboot yml文件配置 多环境yml
  • DMBOK知识梳理for CDGA/CDGP——第一章数据管理(附常考知识点)
  • 065:cesium设置带有箭头的线材质(material-9)
  • Java常用API
  • 【C++ 学习 ⑥】- C++ 动态内存管理详解
  • 【5.21】六、自动化测试—常见技术
  • JavaScript中的事件循环机制,包括事件循环的原理、宏任务和微任务、事件队列和调用栈、以及如何优化事件循环
  • 【华为OD机试c++】解压报文【2023 B卷 |200分】
  • JS中Array的forEach、map、filter方法区别?
  • Java的Arrays类的sort()方法(41)
  • Redis安装及其配置文件修改
  • VSOMEIP3抓包数据
  • 基于PyQt5的图形化界面开发——Windows内存资源监视助手[附带编译exe教程]
  • Linus Torvalds发布了第一个Linux内核6.4候选版本
  • 由浅入深Dubbo核心源码剖析环境介绍
  • Java 远程连接 SQLite 数据库
  • 网安面试题大全(附答案)