文章来自Findyou ,https://www.cnblogs.com/findyou/p/6480411.html

先直接上一幅图,有个框架概念,也方便读者直接查找阅读,下文还会出现详细介绍,例如我一开始就只是想看这张图。

前言

测试小伙伴在谈论软件测试分类,五花八门的分类,眼花缭乱。因为将各个维度划分的内容都整到一块了,在加上各自不同的见解与补充,各种冲突......

Findyou我经过多年测试总结基本定为4类测试(最多5类,自动化或者兼容性单独提出来):功能测试、性能测试、安全测试、特性测试、。化繁为简,转为自己理解的分类,避免死记硬背带来的理解不深入,遗漏测试范围。我的测试4类划分如下:

功能测试:关注功能正常(包含兼容性测试),除了下面分类都测;

性能测试:关注(比如前端性能、后端性能);

安全测试:关注传输、存储等安全;

特性测试:特性指平台差异(即部分兼容性测试),如PC端鼠标,键盘操作特性(Tab键等);如手机触屏操作,横竖屏,中断恢复(来电)等。

本文主要对现有软件分类进行梳理,请见文。

一、软件测试概念

A.1 经典定义

软件测试(Software Testing),在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

A.2 标准定义(IEEE)

软件测试是使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。

A.3 测试目的

软件测试的目的是发现问题,发现至今未发现的问题。检查系统是否满足需求。

Grenford J.Myers观点(1)测试是程序的执行过程,目的在于发现错误;
(2)一个好的测试用例在于能发现至今未发现的错误;
(3)一个成功的测试是发现了至今未发现的错误的测试;

A.4 测试的对象

程序、数据、文档。

A.5 软件错误占比

据业界著名的统计公司的统计表明,属于需求分析和软件设计错误的约占64%,属于程序编写错误的仅占36%。

A.6 其他基础知识

  • V模型

RAD(Rap Application Development,快速应用开发)模型是软件开发过程中的一个重要模型,由于其模型构图形似字母V,所以又称软件测试的V模型,V模型大体可以划分为以下几个不同的阶段步骤:需求分析、概要设计、详细设计、软件编码、单元测试、集成测试、系统测试、验收测试。

二、软件测试分类

B.1 wikipedia

测试级别:单元测试、集成测试、接口测试、系统测试、验收测试
测试方法:动态测试、静态测试;黑盒测试、白盒测试、灰盒测试。
测试类型:一共19种,不列举了。

如感兴趣,请Find见You传送门 https://en.wikipedia.org/wiki/Software_testing

B.2 综合整理分类

B.2.1 按阶段划分   //重要


√ 单元测试(Unit Testing)

单元测试是对软件组成单元进行测试。其目的是检验软件基本组成单位的正确性。测试的对象是软件设计的最小单位:模块。Findyou又称为模块测试

  • 测试阶段:编码后

  • 测试对象:最小模块

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

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

  • 测试方法:白盒测试

  • 测试内容:模块接口测试、局部数据结构测试、路径测试、错误处理测试、边界测试

√ 集成测试(Integration Testing)

集成测试也称联合测试、组装测试,将程序模块采用适当的集成策略组装起来,对系统的接口及集成后的功能进行正确性检测的测试工作。阿旺主要目的是检查软件单位之间的接口是否正确。

  • 测试阶段:一般单元测试之后进行

  • 测试对象:模块间的接口

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

  • 测试依据:单元测试的模块+概要设计文档

  • 测试方法:黑盒测试与白盒测试相结合

  • 测试内容:模块之间数据传输、模块之间功能冲突、模块组装功能正确性、全局数据结构、单模块缺陷对系统的影响

√ 系统测试(System Testing)

将软件系统看成是一个系统的测试。包括对功能、性能以及软件所运行的软硬件环境进行测试。时间大部分在系统测试执行阶段

  • 测试阶段:集成测试通过之后

  • 测试对象:整个系统(软、硬件)

  • 测试人员:黑盒测试工程师

  • 测试依据:需求规格说明文档

  • 测试方法:黑盒测试

  • 测试内容:功能、界面、可靠性、易用性、性能、兼容性、安全性等

√ 验收测试(Acceptance Testing)

验收测试是部署软件之前的最后一个测试操作。它是技术测试的最后一个阶段,也称为交付测试。阿旺总结验收测试的目的是确保软件准备就绪,按照项目合同、任务书、双方约定的验收依据文档,向软件购买都展示该软件系统满足原始需求。

  • 测试阶段:系统测试通过之后

  • 测试对象:整个系统(包括软硬件)。

  • 测试人员:主要是最终用户或者需求方。

  • 测试依据:用户需求、验收标准

  • 测试方法:黑盒测试

  • 测试内容:同系统测试(功能...各类文档等)

B.2.2、按是否查看代码划分  //重要


∑ 黑盒测试(Black-box Testing)

黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。

∑ 白盒测试(White-box Testing)

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的打开盒子,去研究里面的源代码和程序结果。

∑ 灰盒测试(Gray-Box Testing)

灰盒测试,是介于白盒测试与黑盒测试之间的一种测试,灰盒测试多用于集成测试阶段,不仅关注输出、输入的正确性,同时也关注程序内部的情况。

B.2.3、按是否执行程序划分 


£ 静态测试(Static testing)

静态方法是指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。对需求规格说明书、软件设计说明书、源程序做结构分析、流程图分析、符号执行来找错。阿旺分析如下

  • 检查项:代码风格和规则审核;程序设计和结构的审核;业务逻辑的审核;走查、审查与技术复审手册。

  • 静态质量:度量所依据的标准是ISO9126。在该标准中,软件的质量用以下几个方面来衡量,即功能性(Functionality)、可靠性(Reliability)、可用性(Usability)、有效性(Efficiency)、可维护性(Maintainability)、可移植性(Portability)。

£ 动态测试(Dynamic testing)

动态测试方法是指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性和健壮性等性能。这种方法由三部分组成:构造测试用例、执行程序、分析程序的输出结果。

B.2.4、按是否查看代码划分 //重要


∂ 手工测试(Manual testing)

手工测试就是由人去一个一个的输入用例,然后观察结果,和机器测试相对应,属于比较原始但是必须的一个步骤。阿旺总结优缺点:

  • 优点:自动化无法替代探索性测试、发散思维类无既定结果的测试。

  • 缺点:执行效率慢,量大易错。

∂ 自动化测试(Automation Testing)

就是在预设条件下运行系统或应用程序,评估运行结果,预先条件应包括正常条件和异常条件。简单说自动化测试是把以人为驱动的测试行为转化为机器执行的一种过程。

自动化测试比如功能测试自动化、性能测试自动化、安全测试自动化。

通常所说的自动化是指功能测试自动化。

Findyou看AI技术的兴起发展,类似可预见工作都有可能会被伪AI代替。

B.2.5、其他汇总


€ 冒烟测试(Smoke Testing) //重要

在《微软项目求生法则》一书第14章“构建过程”关于冒烟测试,就是开发人员在个人版本的软件上执行目前的冒烟测试项目,确定新的程序代码不出故障。

冒烟测试目的是确认软件基本功能正常,冒烟测试的执行者是版本编译人员。

现基本执行对象为测试人员,在正规测试一个新版本之前,投入较少的人力和时间验证基本功能,通过则测试准入。

€ 随机测试(Ad-hoc Testing)

随机测试主要是根据测试者的经验对软件进行功能和性能抽查。

根据测试说明书执行用例测试的重要补充手段,是保证测试覆盖完整性的有效方式和过程。

随机测试主要是对被测软件的一些重要功能进行复测,也包括测试那些当前的测试用例(TestCase)没有覆盖到的部分。

€ 安全测试(Security Testing)  //重要

安全测试是在IT软件产品的生命周期中,特别是产品开发基本完成到发布阶段,对产品进行检验以验证产品符合安全需求定义和产品质量标准的过程 。

Findyou觉现在对安全知识的普及,大家意识都提上来了。比如现在越来越多的不支持HTTP协议,转用HTTPS等。

€ 探索性测试(Exploratory testing)

探索性测试可以说是一种测试思维技术。它没有很多实际的测试方法、技术和工具,但是却是所有测试人员都应该掌握的一种测试思维方式。探索性强调测试人员的主观能动性,抛弃繁杂的测试计划和测试用例设计过程,强调在碰到问题时及时改变测试策略。

探索性测试自动化暂时无法代替。Findyou也无法被代替。

€ 回归测试(Regression Testing)

回归测试是指修改了旧代码后,重新进行测试以确认修改没有引入新的错误或导致其他代码产生错误。自动回归测试将大幅降低系统测试、维护升级等阶段的成本。

在整个软件测试过程中占有很大的工作量比重,软件开发的各个阶段都会进行多次回归测试。通过选择正确的回归测试策略来改进回归测试的效率和有效性是很有意义的。

€ α测试(Alpha Testing)  //重要

α测试是由一个用户在开发环境下进行的测试,也可以是公司内部的用户在模拟实际操作环境下进行的测试。α测试的目的是评价软件产品的FLURPS(即功能、局域化、可使用性、可靠性、性能和支持)。

大型通用软件,在正式发布前,通常需要执行Alpha和Beta测试。α测试不能由程序员或测试员完成。

€ β测试(Beta Testing)  //重要

Beta测试是一种验收测试。Beta测试由软件的最终用户们在一个或多个客房场所进行。

α测试与Beta测试的区别:Findyou

  • 测试的场所不同:Alpha测试是指把用户请到开发方的场所来测试,beta测试是指在一个或多个用户的场所进行的测试。

  • Alpha测试的环境是受开发方控制的,用户的数量相对比较少,时间比较集中。beta测试的环境是不受开发方控制的,用户数量相对比较多,时间不集中。

  • alpha测试先于beta测试执行。通用的软件产品需要较大规模的beta测试,测试周期比较长。sdf

总结:

测试种类过多,导致测试及非测试人员老是谈不到一个点,对此不作评论,希望此文对大家梳理分类有帮助,记住标记重要的部分。

如前言所说,我认为测试分4类(5类)足以覆盖:功能测试、安全测试、性能测试、特性测试、自动化测试。

软件测试的概念及详细分类的介绍相关推荐

  1. 虚拟化技术的分类及介绍

    虚拟化技术的分类及介绍 摘要 虚拟化是云计算系统中的一种基础技术,可以说当前一个云计算服务必定是构建在虚拟化的基础上的.本文首先介绍了不同抽象层次的虚拟化技术,之后对应用广泛的系统级虚拟化和操作系统级 ...

  2. 分类算法列一下有多少种?应用场景?分类算法介绍、常见分类算法优缺点、如何选择分类算法、分类算法评估

    分类算法 分类算法介绍 概念 分类算法 常见分类算法 NBS LR SVM算法 ID3算法 C4.5 算法 C5.0算法 KNN 算法 ANN 算法 选择分类算法 分类算法性能评估 分类算法介绍 概念 ...

  3. 软件测试基础——概念篇

    一.软件概念以及分类 软件的概念 软件就是指用以指挥计算机运行活动所使用的程序 软件的分类 软件可以分为系统软件和应用软件 系统软件 系统软件是指管理.控制和维护计算机及外部设备,提供用户与计算机之间 ...

  4. 纽扣电池的分类和介绍

    纽扣电池的分类和介绍 纽扣电池也是很常见的电池,个子小,型号多,通常一个电池能弄出好几个型号来,这个标准,那个标准,弄得一个东西好几个名.常常就有人拿着费了好大力气从手表里面卸下的纽扣电池,满电子市场 ...

  5. SQL Server基础知识概念要点详细讲解

    SQL Server基础知识概念要点详细讲解 目录 基础概念 1.网状模型数据库 2.层次模型数据库 3.关系模型数据库 知识点实例总结 基础概念 SQL语言中,between and表示包括两边参数 ...

  6. 多态的概念、对象上下转型、多态的应用、异常(异常概念、异常分类、java异常处理机制、try...catch...finally、throw和throws、自定义异常)

    多态的概念: 多态性是指同一个操作作用于某一类对象,可以有不同的解释,产生不同的执行结果. 多态存在的三个必要条件: ① 需要存在继承或实现关系 ② 同样的方法调用而执行不同的操作.运行不同代码(重写 ...

  7. delphi7存取配置文件与sqlserver数据库连接_SQL Server基础知识概念要点详细讲解

    SQL Server基础知识概念要点详细讲解 目录 基础概念 1.网状模型数据库 2.层次模型数据库 3.关系模型数据库 知识点实例总结 基础概念 SQL语言中,between and表示包括两边参数 ...

  8. 【王道考研计算机网络】—计算机网络的概念 组成 功能 分类

    [王道考研计算机网络]-计算机网络的概念 组成 功能 分类 本章思维导图如下 一.计算机网络的概念 计算机网络:是一个将分散的具有独立功能的计算机系统,通过通信设备与线路连接起来,由功能完善的软件实现 ...

  9. 情感分类模型介绍CNN、RNN、LSTM、栈式双向LSTM

    情感分类模型介绍CNN.RNN.LSTM.栈式双向LSTM 1.文本卷积神经网络(CNN) 卷积神经网络经常用来处理具有类似网格拓扑结构(grid-like topology)的数据.例如,图像可以视 ...

最新文章

  1. android jni 返回java类
  2. 在SAP CDS view上添加扩展字段后激活,背后的实现原理
  3. jieba分词并做分析
  4. mysql创建临时表 分页_Mysql 如何创建一张临时表
  5. 计算机软件服务板块,信息技术板块
  6. windows文件(.txt,.h,.cpp等等)中的中文在ubuntu下乱码的解决方法
  7. Java获取泛型类的实际类型的实例
  8. 苹果又发布一个机器学习框架,帮自家生态里的开发者降低AI门槛
  9. python是个什么东西刷爆朋友圈_几十行代码让你知道朋友圈都是什么样的朋友
  10. Rust: codewars的Sum by Factors
  11. 腾讯云服务器安装redis、mysql
  12. C# 添加windows右键菜单
  13. 网站支付宝登录授权具体实现
  14. 乐刻运动年陈文化中的那六个成语解析:日拱一卒,功不唐捐|筚路蓝缕 玉汝于成|有梦可依,未来可期
  15. 发现一php木马代码
  16. 深度至尊 GHOST XP SP3 纯净版 V4.0
  17. java实现添加微信好友_使用java生成微信随机加好友的链接
  18. mbit职业测试软件,MBTI职业性格测试(自动计算版)-
  19. Proximal Policy Optimization近端策略优化(PPO)
  20. 你那么年轻却窥觑整个世界,你那么浮躁却想要看透生活

热门文章

  1. 圣诞节静态HTML网页作业作品 大学生圣诞网页设计制作成品 简单DIV CSS布局网站
  2. 常用Hibernate 主键生成策略(徐瑞文)
  3. 8086指令的机器码编码格式
  4. ​数学家时枝正的玩具人生
  5. 春节档7天33亿 淘票票全力助推春节档
  6. 【金猿投融展】领创智信——智慧领创美好生活
  7. Instant的使用
  8. JS数据结构与算法 笔记
  9. 病历管理系统代码android,基于Android系统移动电子病历系统设计.doc
  10. 2019年适合穷人小生意的5个新兴项目