文章目录

  • 1 软件测试分类
    • 1.1 按开发阶段
      • 单元测试
      • 集成测试
      • 确认测试
      • 系统测试
      • 验收测试
    • 1.2 按测试技术
      • 黑盒测试
      • 白盒测试
      • 灰盒测试
    • 1.3 按代码运行
      • 静态测试
      • 动态测试
    • 1.4 按软件特性
      • 功能测试
      • 性能测试
      • 安全性测试
    • 1.5 其他测试类型
      • 回归测试
      • 冒烟测试
      • 随机测试
      • 猴子测试
  • 2 软件测试原则

1 软件测试分类

  • 按开发阶段: 单元测试、集成测试、系统测试、确认测试、验证测试
  • 按测试技术: 黑盒测试、白盒测试、灰盒测试
  • 按代码运行: 静态测试、动态测试
  • 按软件特性: 功能测试、性能测试、安全性测试
  • 其他测试类型: 回归测试、冒烟测试、随机测试、猴子测试
  • 按测试运行主体: 手工测试(功能测试)、自动化测试(利用工具软件,或者编写代码的方式,测试被测的软件系统)
单元测试 集成测试 系统测试 确认测试 验收测试
测试技术 黑盒、白盒 黑盒、白盒、灰盒 黑盒、白盒 黑盒、白盒 黑盒、白盒
代码运行 动态、静态 动态、静态 动态、静态 动态、静态 动态、静态
软件特性 功能、性能、安全 功能、性能、安全 功能、性能、安全 功能、性能、安全 功能、性能、安全
其他测试 回归测试 冒烟测试 随机测试、猴子测试

1.1 按开发阶段

单元测试

单元测试又称模块测试,是针对软件设计的最小单位——程序模块进行正确性检验的测试工作。其目的在于检查每个程序模块单元能否正确实现详细设计说明中的模块功能、性能、接口和设计约束等要求,发现各个模块内部可能存在的各种错误。单元测试需要从程序的内部结构出发设计测试用例。多个模块可以平行地独立进行单元测试。

集成测试

集成测试也叫组装测试。通常在单元测试的基础上,将所有的程序模块进行有序的、递增的测试。集成测试是检验程序单元或部件接口关系,逐步集成为符合概要设计要求的程序部件或整个系统。它是一个持续不断的过程。

确认测试

确认测试也叫有效性测试,又称冒烟测试。是在模拟环境下,验证软件的所有功能和性能及其他特性是否与用户的预期要求一致。通过了确认测试之后的软件,才具备了进入系统测试阶段的资质。一般不作为正式的测试环节。

系统测试

系统测试是在真实的系统运行的环境下,检查完整的程序系统能否和系统(包括硬件、外设、网络和系统软件、支持平台等)正确配置、连结,并且最终满足用户的所有需求。

  • 特性:
    全面的:系统所有功能的测试;模拟所有的软件用户的操作。
    全方位的:和硬件系统的联系;和系统软件的联系;和其它软件的关系。

验收测试

验收测试是软件产品检验的最后一个环节。一般是供求双方之间进行。按照项目任务书或合同、供需双方约定的验收依据文档进行的对整个系统的测试与评审,决定是否接收或拒收系统。

  • 一般有三种验收测试的主体:
    α测试:软件的开发商自己进行的交付前的测试。
    β测试:软件的需求方。
    γ测试:第三方的软件测试(外包)。

1.2 按测试技术

黑盒测试

通过软件的外部表现来发现其缺陷和错误。黑盒测试法是把测试对象看成一个黑盒子,完全不考虑程序内部结构和处理结果。黑盒测试是在程序界面处进行测试,它只是检查程序是否按照需求规格说明书的规定正常实现。

白盒测试

通过对程序内部结构的分析、检测来寻找问题。白盒测试可以把程序看成是装在一个透明的盒子里,检查是否所有的结构及路径都是正确的,检查软件内部动作是否按照设计说明的规定正常进行。白盒测试又称结构测试。

灰盒测试

介于白盒测试与黑盒测试之间的测试。灰盒测试关注输出对于输入的正确性;同时也关注内部表现,但这种关注不像白盒测试那样详细、完整,只是通过一些表征型的现象、事件、标志来判断内部的运行状态。

1.3 按代码运行

静态测试

静态测试是指不实际运行被测对象,而只是静态地检查程序代码、界面或文档中可能存在错误地过程。

  • 代码测试:主要测试代码是否符合相应的标准和规范
  • 界面测试:主要测试软件的实际界面与需求中的说明是否相符
  • 文档测试:主要测试用户手册和需求说明是否真正符合用户的实际需求

动态测试

动态测试是指实际运行被测对象,输入相应的测试数据,检查实际输出结果和预期结果是否相符的过程。

所以我们判断一个测试属于动态测试还是静态测试唯一的标准就是看是否运行程序。

1.4 按软件特性

功能测试

是黑盒测试的一方面,它检查实际软件的功能是否符合用户需求

  • 逻辑功能测试
  • 界面测试
  • 易用性测试
  • 安装/卸载测试
  • 兼容性测试

性能测试

  • 功能的另一个指标,主要关注软件中的某一功能在指定的时间、空间条件下,是否使用正常
    软件的性能包括很多方面,主要有 时间性能空间性能 两种

安全性测试

  • 验证安装在系统内的保护机制能否在实际应用中对系统 进行保护,使之不被菲菲入侵,不受各种因素的干扰。

1.5 其他测试类型

回归测试

是指对软件的新版本测试时,重复执行之前某一个重要版本的所有测试用例。

  • 目的:
    1)验证之前版本产生的所有缺陷已全部被修复。
    2)确认修复这些缺陷没有引发新的缺陷。

冒烟测试

是指在对一个新版本进行系统大规模的测试之前,先验证一下软件的基本功能是否实现,是否具备可测性。也叫可测性测试。

随机测试

是指测试人员基于经验和直觉的测试,发现一些边缘性的错误。

猴子测试

把自己当成不懂产品的笨蛋或者小动物,随便乱点,没有任何的主观意识和想法参与进来,让一些意想不到的操作造成错误的结果。


2 软件测试原则

  • 所有测试的标准都是建立在用户需求之上。
  • 软件测试必须基于“质量第一”的思想去开展各项工作,当时间和质量冲突时,时间要服从质量。
  • 事先定义好产品的质量标准,只有有了质量标准,才能根据测试的结果,对产品的质量进行分析和评估。
  • 软件项目一启动,软件测试也就是开始,而不是等程序开发完成,才开始测试。
  • 穷举测试是不可能的。
  • 第三方进行测试会更客观,更有效。
  • 软件测试计划是做好软件测试工作的前提。
  • 测试用例是设计出来的,不是写出来的,所以要根据测试的目的,采用相应的方法去设计测试用例,从而提高测试的效率,更多地发现错误,提高程序的可靠性。
  • 对发现错误较多的程序段,应进行更深入的测试。一般来说,一段程序中已发现的错误数越多,其中存在的错误概率也就越大。
  • 重视文档,妥善保存一切测试过程文档(测试计划、测试用例、测试报告等)。
  • 应当把“尽早和不断地测试”作为测试人员的座右铭。
  • 回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见。
  • 测试应从“小规模”逐渐转到“大规模”。
  • 不可将测试用例置之度外,排除随意性。
  • 必须彻底检查每一个测试结果。
  • 一定要注意测试中的错误集中发生现象,这和程序员的编程水平和习惯有很大关系。
  • 对测试错误结果一定要有一个确认的过程。

软件测试(3)测试分类、原则相关推荐

  1. (笔试题)测试分类开发流程测试原则

    测试分类(笔试题) 测试分类: 按阶段划分 代码是否执行 程序运行划分 其他 按阶段划分: 单元测试:单个功能的测试(例:增删改查 分页 上传 下载 ) 集成测试:功能模块的测试(多个功能点进行总结在 ...

  2. 软件测试(四)测试分类

    测试金字塔:从上到下:ui层->业务逻辑层->数据处理层 从下到上,投入产出比越来越小? (1)越往上定位问题越困难 (2)越往上层,测试效率越低 测试分类 按照开发阶段划分: 单元测试: ...

  3. 6-5 软件测试与测试优先的编程

    本节目标: 本节大纲: 1.软件测试 软件测试是提高软件质量的主要手段,能够确定软件是否达到可用级别,评估系统的某一侧面的质量特性. 测试的目标是证明软件存在错误,但再好的测试也无法证明系统不存在错误 ...

  4. 软件测试阶段划分以及测试分类

    软件测试基本理论 一.软件开发阶段的划分 1.需求分析--需求规格说明书 2.概要设计--概要设计说明书 3.详细设计--详细设计说明书 4.编码 二.软件测试阶段 1.单元测试 (1)依据:详细设计 ...

  5. 测试环境和测试分类的介绍

    测试流程*** 我们一般在项目进行开立项会(产品经理 项目经理 开发人员 测试人员)的时候进行参与,讨论需求并提出建议,在立项会中制定需求文档,由UI设计原型图,开发根据需求进行编码,我们测试会根据需 ...

  6. python调试和测试有什么区别和联系_软件测试和测试开发到底有什么区别跟联系?...

    对于没有进入IT领域的同学而言,软件测试并不陌生,但如果听到测试开发,他们一定会感到十分困惑,这究竟是测试还是开发呢? 按照字面意思理解,大家或许会觉得测试开发是指既能开发产品又能测试产品的" ...

  7. 软件测试python测试步骤_软件测试员必备基础:3分钟带你入门自动化测试!

    目前自动化测试并不属于新鲜的事物,或者说自动化测试的各种方法论已经层出不穷,但是,能够明白自动化测试并很好落地实施的团队还不是非常多,我们接下来用通俗的方式来介绍自动化测试-- 首先我们从招聘岗位需求 ...

  8. 软件测试的测试内容有那些

    软件测试主要工作内容是验证(verification)和确认(validation),下面分别给出其概念: 验证(verification)是保证软件正确地实现了一些特定功能的一系列活动, 即保证软件 ...

  9. 软件测试之第一章 软件测试和测试环境

    第一章 软件测试和测试环境 一. 软件的含义和分类 1 软件的含义 软件是程序.数据和文档的集合. 程序:编程语言:C.C++.Java.php 等. 数据:使用文件或数据库来存储数据. 文档:安装说 ...

  10. 测试分类方法(含常见面试题)

    目录 一.测试分类依据 1.按开发阶段分 2.按测试实施组织分 3.按测试执行方式分 4.按是否查看代码分 5.按是否手动执行 6.按测试对象分 7.按测试地域分 二.常见面试题 1.谈一下白盒测试和 ...

最新文章

  1. 计算机组成微程序设计,计算机组成原理微程序设计.doc
  2. 插值算法C实现(一元全区间)
  3. JavaScript精简代码 非一般的写法(转载)
  4. 调用Excel或Oracle数据,数据加载,selenium等使用实例
  5. 2021年安徽高考英语口试成绩查询,2021高考英语口语考试成绩
  6. Bitmap的内存占用
  7. 关于OC中的block自己的一些理解(二)
  8. rhel5 给grub 加密,亲测!
  9. python threading.loca讲解
  10. 严肃贴:内幕 手机行业
  11. nginx+php+mysql环境
  12. pythonmkdir语法错误_Python mkdir一个有难度的问题
  13. 左手用R右手Python系列14——日期与时间处理
  14. 7000条短信接口!福利赠送!
  15. hadoop 学习心得
  16. matlab中bp神经网络梯度怎么调精度,如何提高BP神经网络模型的预测精度?
  17. 设计一个Triangle类继承自GeometricObject类
  18. 约束满足问题(CSPs)和规划问题(Planning)区别
  19. Ubantu18.04环境下编译android源码
  20. 通过无线AP轻松突破内网准入控制

热门文章

  1. EXCEL篇及命名空间说明
  2. 如何在Docker中安装MySQL数据库
  3. 2.4G wifi 的频道/信道 20M 40M的概念,区别
  4. Oracle 创建序列及查询序列是否存在
  5. 十四.2重力,重力加速度,重力加速度运动
  6. 【文献学习】Multipath Rayleigh and Rician Fading Channel Simulation Using MATLAB
  7. AS作业三仿微信APP实现对有recycleView的页面进行点击跳转设计
  8. Netty序列化协议Protocol buff
  9. 男女相处的150条忠告
  10. SSL加密详解(看这一篇就懂了)