转载自博主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模型

     </li>
    

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]维基百科 https://en.wikipedia.org/wiki/Software_testing

    [2]百度百科

    http://baike.baidu.com/item/%E8%BD%AF%E4%BB%B6%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E9%AA%8C%E6%94%B6%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E7%99%BD%E7%9B%92%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E7%81%B0%E7%9B%92%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E8%87%AA%E5%8A%A8%E5%8C%96%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E9%9A%8F%E6%9C%BA%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E6%8E%A2%E7%B4%A2%E6%80%A7%E6%B5%8B%E8%AF%95

    http://baike.baidu.com/item/%E5%9B%9E%E5%BD%92%E6%B5%8B%E8%AF%95


    转载说明

    本文为原创文章,如需转载,请在开篇显著位置注明作者Findyou和出处(这最先发在我自己玩的订阅号)。

软件测试概念及分类整理汇总相关推荐

  1. 小小串联电阻,大大的作用。常见串联电阻情况分类整理汇总

    大家好,我是记得诚. 在很多电路中都会串联小阻值的电阻,别小看它们,其实作用很大. 1.SPI信号线 SPI信号上串联电阻,一般是几十欧姆左右,一般有如下几个作用: 1)阻抗匹配.因为信号源的阻抗很低 ...

  2. 面试官吐槽:“软件测试员就是不行!”网友:我能把你面哭了!——软件测试笔试面试题目完全汇总

    软件测试笔试面试题目完全汇总 软件缺陷: 1)软件未实现产品说明书要求的功能 2)软件出现了产品说明书指明不应该出现的错误 3)软件实现了产品说明书未提到的功能 4)软件未实现产品说明书虽未明确提及但 ...

  3. (转载)安全漏洞概念及分类

    http://pan.baidu.com/s/1kT9LT4r 安全漏洞概念及分类 本文是一个安全漏洞相关的科普,介绍安全漏洞的概念认识,漏洞在几个维度上的分类及实 例展示. 安全漏洞及相关的概念 本 ...

  4. 三菱socket通信实例_三菱自动化产品相关知识整理汇总

    先从应用最广泛的PLC产品来说下:小型机:FX3S.FX3G.FX3U.FX5U   中型机:L系列 大型机:Q系列.R系列 Q是比较老的产品,也是现在大型机里面应用比较普遍的产品,在Q之后开发出性价 ...

  5. 2019年文章精选,分类整理,顺带聊几句时间观念

    写在前面 首先,祝大家新年快乐,在国人的情结里,现在才是真正的年底,估计现在好多朋友已经陆续回家过节去了,祝回家的路顺风.过年回去就好好陪伴家人,不要看一些毒瘤号写的,过年时间弯道超越别人,趁着假期学 ...

  6. ui设计移动端字体适配_超全面的移动端UI 设计规范整理汇总

    很多新人在开始做移动端UI设计的时候,往往对界面的一些尺寸规范不是十分清楚,很多时候都是凭借自己的感觉和经验去绘制界面,心里并没有一个清晰的概念,导致做出来的页面总是不那么尽如人意.本文整理汇总了一些 ...

  7. 前端面试题整理汇总(一)

    前端面试题整理汇总(一) 优才网 关于前端面试题,优优之前推荐过,如下,点击即可查看: 5个经典的前端面试问题 2016年十家知名公司前端面试经验总结 前端面试会问哪些问题? 前端开发面试题汇总[HT ...

  8. 2013应届毕业生各大IT公司待遇整理汇总篇(转)

    不管是应届毕业生还是职场中人,在找工作时都必然会对待遇十分关注,而通常都是面试到最后几轮才知道公司给出的待遇.如果我们事先就了解大概行情,那么就会在面试之前进行比较,筛选出几个心仪的公司,这样才能集中 ...

  9. Android开源项目分类整理

    Android开源项目分类整理 字数1492 分类整理平时收集的项目,便于查找. Android 架构 Mosby A Model-View-Presenter library for modern ...

最新文章

  1. R语言ggplot2可视化配置多个子图中的相同分组使用相同的填充色实战
  2. Python列表和元祖
  3. 我是如何在面试别人Spring事务时“套路”对方的
  4. 如何使用用window.open()
  5. webservice 实现与his系统对接_[Share] EDI 及其他常见系统对接技术
  6. File类与FileInfo类
  7. 数据操纵:SELECT, INSERT, UPDATE, DELETE
  8. Expression Blend实例中文教程(12) - 样式和模板快速入门Style,Template
  9. 动态生成 fastCall(易语言 调用WKE浏览器)
  10. matlab拟合曲线教程,【Matlab】matlab如何使用拟合工具?matlab如何拟合曲线?matlab拟合工具cftool如何使用?...
  11. mysql-connector-java-8.0.26.jar MySQLJDBC下载
  12. 狐狸找兔子(java 版)
  13. 先决条件(一)问题定义和需求分析
  14. java简单冒泡排序代码,跳槽大厂必看!
  15. Delphi: RTTI与ini配置文件
  16. 老毛子固件路由器挂载usb摄像头
  17. Lake Shore低温温度传感器—DT-670 硅二极管
  18. Matlab使用入门及应用
  19. 关于INS-30131
  20. 完全平方数(C语言)

热门文章

  1. IT高管和易筋经的故事
  2. 大数据测试-数据质量模型
  3. 移动硬盘显示请将磁盘插入驱动器的解决方法
  4. 扩增子16S/ITS/18S微生物多样性课程更新-机器学习随机森林分析
  5. PPT模板免费下载--好用的下载网站推荐
  6. linux服务器压缩日志定时脚本
  7. 关于MyIE2中博客园页面自动跳转的问题回答
  8. Inventor 2014 API 新功能 (9) Autodesk材质库(下)
  9. 易点易动设备管理系统,让设备管理迈入智能化时代
  10. 2016年终总结工作汇报PPT模板