我和ChatGPT pair 整理的测试类型清单-程序员宅基地

技术标签: 测试策略  软件测试  chatgpt  

本文首发于「BY林子」,转载请参考版权声明


不管是专业测试人员还是软件行业其他角色,几乎很少有人能分清楚各种软件测试类型,比如最近看到有人说:

“功能测试等同于手动测试”
“功能测试也叫黑盒测试或者数据驱动测试”
……

的确,测试类型的概念没有标准化的定义,而且在不同的语境下还会有不同的含义,因此,大家都混淆各种概念也是很正常的。但是,尽量搞清楚这些类型,对于我们更好地理解和实践软件测试还是很有帮助的。

于是,通过我对ChatGPT进行提问,对它回答不清晰或者不准确的内容通过进一步提问澄清,最终我和ChatGPT pair 整理了这份软件测试类型清单。

01 按照测试验证的内容分类

根据测试验证的内容是系统的功能需求,还是非功能需求,可以分为功能测试和非功能测试,而非功能测试还可以细分为不同的测试类型。

1.1 按测试内容分类的测试类型

1. 功能测试:
功能测试主要验证软件系统的功能是否符合用户需求和规格说明书的要求。

2. 性能测试:
性能测试主要用于测试软件系统的性能,包括响应时间、吞吐量、负载能力等方面。通过这种测试类型,可以找出系统的性能瓶颈,以及在不同负载条件下的表现。

3. 可靠性测试:
可靠性测试主要用于测试软件系统的稳定性和可靠性,通常会通过模拟各种异常情况来测试系统的鲁棒性,以及对异常情况的处理能力。

4. 兼容性测试:
兼容性测试主要用于测试软件系统在不同硬件和软件环境下的兼容性,通常会测试系统在不同操作系统、浏览器、设备和网络环境下的表现,以确保系统能够在各种环境下正常工作。

5. 安全测试:
安全测试通常会测试系统的漏洞、安全性能、访问控制等方面,以确保系统能够抵御各种安全攻击和威胁。

6. 可用性测试:
可用性测试主要用于测试软件系统的易用性和用户体验。通常会测试系统的界面、操作流程、反应速度等方面,以确保系统能够提供用户友好的使用体验,并满足用户的需求。

7. 容量测试:
容量测试主要用于测试系统在高负载情况下的容量和扩展性能,可以确定系统能够承受的最大负载,并确定系统需要进行哪些优化和调整,以达到满足业务需求的性能要求。

8. 可维护性测试:
可维护性测试主要用于测试软件系统的可维护性和可扩展性,可以确定系统的易维护性,以及系统在未来的扩展和修改方面的可行性和成本。

9. 可移植性测试:
可移植性测试主要用于测试软件系统在不同平台和环境下的可移植性和兼容性,可以确定系统能够在不同的操作系统、硬件平台和开发工具中正确地运行和展现。

10. 国际化测试:
国际化测试主要用于测试软件系统在不同语言和文化环境下的本地化和国际化能力,可以确定系统是否能够正确地处理不同的语言和字符集,以及在不同地区和文化背景下的正确表现。

11. 本地化测试:
本地化测试主要测试软件在特定的语言、文化和地区设置下的功能和表现,以确保软件在该特定地区的用户能够正常使用,并且能够满足该地区的语言、文化和习惯等方面的需求。本地化测试通常需要对软件进行翻译、本地化调整、格式调整等处理。

12. 易用性测试:
易用性测试主要用于测试软件系统的易用性和用户体验,可以确定系统的用户友好性,以及系统是否能够在不同的用户群体中满足用户的需求和期望。

1.2 易混淆测试类型

1. 可用性测试与易用性测试:

可用性测试和易用性测试是相关但不同的测试类型。虽然它们都关注软件系统的用户体验,但它们的重点和方法不同。

可用性测试主要关注系统在各种情况下是否可用。这包括测试系统的可靠性、可访问性、易学性、效率和容错性等方面。可用性测试通常通过场景测试、用户测试和技术测试等方法来评估系统的可用性。

而易用性测试主要关注系统的用户友好性和易学性,以及用户的满意度和使用体验。易用性测试通常通过用户研究、人机交互测试和用户调查等方法来评估系统的易用性。

2. 可移植性测试与兼容性测试:

可移植性测试是测试软件在不同平台和环境下的可移植性和可用性,主要关注的是软件的可移植性,即能否在不同平台和环境下正常运行和使用。而兼容性测试是测试软件在不同硬件和软件环境下的兼容性,主要关注的是软件的兼容性,即能否在不同的操作系统、浏览器、设备和网络环境下正常工作。

可以将两者视为相互补充的测试类型,因为软件的可移植性和兼容性都是非常重要的质量属性。虽然它们有一些相似之处,但是在测试的具体实现上,可移植性测试通常更注重跨平台的测试,而兼容性测试则更注重跨环境的测试。

02 按测试粒度分类

2.1 按测试粒度分类的测试类型

单元测试: 测试软件的最小单元——代码中的单个函数或方法,以确保其行为符合预期,通常在开发阶段由开发人员自行编写和运行。

集成测试: 测试多个模块组合成的集成软件系统,以确保模块之间的接口和交互符合预期。集成测试可以分为顶部向下和底部向上两种方式。

系统测试: 测试整个软件系统,包括所有集成的模块和组件,以确保软件的功能、性能、可靠性、兼容性、安全性等方面符合用户需求和规格说明书的要求。系统测试通常由专门的测试人员进行。

2.2 ChatGPT的原分类

ChatGPT是将测试类型按照不同的测试阶段分为:单元测试、集成测试、系统测试和验收测试,但现在测试的阶段已经不是很明显,各种测试可能并行,我不太喜欢按阶段来分,于是启发ChatGPT改成按照测试粒度分为单元测试、集成测试和系统测试。

而验收测试则跟冒烟测试和回归测试放到了一个维度,根据测试目的不同来划分。

2.3 易混淆测试类型

1. 系统测试与系统级集成测试:

系统测试主要用于测试整个软件系统是否符合需求和规格说明书,测试人员会对整个软件系统进行测试,包括系统的功能、性能、可靠性、兼容性和安全性等方面的测试,以验证软件系统是否符合需求和规格说明书。

而系统级集成测试是集成测试的一种,它主要用于测试不同子系统之间的集成和协作能力,以及集成后系统的功能和性能等方面是否符合需求。测试人员会针对整个系统的集成进行测试,主要是验证不同子系统之间的接口和交互是否正确,并且系统能够按照预期的方式运行。

因此,系统测试和系统级集成测试都是针对整个软件系统进行测试的,但它们的测试重点和测试目的是不同的。系统测试主要关注整个软件系统是否符合需求和规格说明书,而系统级集成测试主要关注不同子系统之间的集成和协作能力是否符合需求。

2. 系统测试与端到端测试:

系统测试和端到端测试都是按照测试粒度的不同维度来分类的,但是涵盖的范围是有些不同的。

系统测试通常是从整体的角度来测试系统的可靠性、稳定性、性能等方面的质量属性,常常会涉及多个模块和组件的集成测试,例如在测试一个大型系统时,系统测试可能会包含多个模块的集成测试,以及整个系统的端到端测试。

而端到端测试则更加关注整个系统在用户场景下的完整性,即从用户使用的角度出发,测试系统是否能够正确地完成预期的业务流程和交互功能,涵盖的测试范围通常会比系统测试更广泛,包括前端、后端、数据库、接口等多个方面。端到端测试通常也被称为业务流程测试或场景测试。

因此,可以认为端到端测试是系统测试中的一个子集,它更加注重系统在用户场景下的完整性和正确性。

03 按照对系统内部的了解程度分类

ChatGPT给的分类维度是测试方法,个人觉得不是特别合适,进一步澄清为:是按照测试人员在测试过程中了解系统的内部工作原理和结构的程度来划分的。

黑盒测试: 测试人员不了解系统内部的实现细节,只关注系统的输入和输出,根据系统规格说明或者其他文档编写测试用例,验证系统是否符合需求和规格。这种测试方法模拟了系统用户的行为,通常关注的是系统的功能性和非功能性需求。

白盒测试: 测试人员了解系统的内部工作原理和结构,根据系统设计和代码逻辑编写测试用例,验证系统的正确性和可靠性。这种测试方法侧重于测试代码实现的正确性和系统内部结构的合理性。

灰盒测试: 测试人员了解部分系统的内部工作原理和结构,但是不完全了解系统的全部实现细节。这种测试方法介于黑盒测试和白盒测试之间,既关注系统的功能和需求,也关注代码实现的正确性和内部结构的合理性。测试人员通常会结合系统规格说明和代码实现来编写测试用例。

注:这里的测试人员应该确切地说是开展测试的人员。

04 按照测试目的分类

冒烟测试: 也称为构建验证测试,用于验证软件系统的主要功能是否正常工作。通常在每次代码构建完成后进行,以尽早发现潜在的问题,避免在后续测试中浪费时间和资源。

回归测试: 用于验证新的软件功能或修复缺陷后,之前的功能是否受到影响。通常在每次代码变更后进行,以确保之前的功能没有被破坏或产生副作用。

验收测试: 也称为用户验收测试,是在软件交付给用户之前进行的最后一轮测试,以确保软件系统符合用户需求和预期的质量标准。

05 按照测试对象分类

前端测试: 主要测试网站或应用程序的前端界面,包括页面布局、交互、响应速度、可访问性、可用性等方面。

后端测试: 主要测试应用程序的后端功能和逻辑,包括数据处理、算法、业务逻辑等方面。

数据库测试: 主要测试数据库的性能、可靠性、安全性等方面,包括对数据表结构、数据完整性、数据类型等方面的测试。

接口测试: 主要测试应用程序与其他系统或服务之间的接口,包括对输入参数、输出结果、数据格式、传输协议等方面的测试。

06 按照测试手段分类

手动测试
自动化测试

07 按照测试执行的方式分类

按照测试执行的方式,也就是是否要基于测试用例(脚本)来进行测试,可以分为脚本化测试和探索式测试。

脚本化测试: ChatGPT认为脚本化测试就是自动化测试,其实脚本化测试是指基于测试用例进行的测试,包括自动化和手动测试。

探索式测试: 不需要事先设计测试用例,它是一种软件测试风格,强调独立测试人员的个人自由和职责,为了持续优化其工作的价值,将测试相关学习、测试设计、测试执行和测试结果分析作为相互支持的活动,在整个项目过程中并行地执行。

08 写在最后

虽然我进行了少量修改和调整,还是有保留绝大部分原话,希望ChatGPT的车轱辘话没把大家绕晕。

不同的测试类型可以针对不同的需求和问题,有助于制定更加有效的测试计划和策略。同时,掌握不同的测试类型可以提高测试能力和测试思维,让测试工作更加专业和高效。

但是,也没必要过度去抠各种测试类型的细节,测试策略的制定需要系统性地考虑。全面了解各种测试类型的划分方式,基于测试象限和测试金字塔的指导,结合项目和系统特点来制定适合的策略。

最后,这是一份不全的测试类型清单,也不一定完全准确,欢迎大家留言补充。

09 推荐阅读


本文首发于「BY林子」,转载请参考版权声明

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/bingyulin/article/details/129946151

智能推荐

主流开发语言和开发环境介绍-程序员宅基地

文章浏览阅读4.8k次,点赞6次,收藏10次。常见的一种应用情形是,使用python快速生成程序的原型(有时甚至是程序的最终界面),然后对其中有特别要求的部分,用更合适的语言改写,比如3D游戏中的图形渲染模块,速度要求非常高,就可以用C++重写。否则,随着代码量和复杂度的增加,C++的优势将会越来越明显。PHP 是一种 HTML 内嵌式的语言,是一种在服务器端执行的嵌入HTML文档的脚本语言,语言的风格有类似于C语言,被广泛的运用。《魔兽世界》等几乎所有的网络游戏,百度搜索引擎,我们所用的大多数软件都是用C++写的(硬件也有很多用到C++的)。

[51单片机]学电开发板-一块值得拥有的学习利器_51开发板初学版能用电池供电吗-程序员宅基地

文章浏览阅读152次。前两天从我兄弟那里得到了一款穿了“衣服”的51开发板,说真的,能把开发板做成这样,真的是很用心,很细心。今天,借此契机,把之前想做而没做完的事情做好吧,在论坛和公众号一起为大家分享关于51单片机的开发经验与心得,虽然没有大佬们做的那么细致,但是我也有一些自己在开发中遇到的问题,BUG或者研发中的启发,都可以与大家分享,因为,研发就是互相学习,互相进步的一个过程,在这个圈子里,不仅有制作出来产品的成就,还有和大佬们畅谈和学习的快乐,好了,言归正传吧,开启我们的基于学电开发板的51单片机开发之旅。_51开发板初学版能用电池供电吗

Caused by: org.postgresql.util.PSQLException: 错误: 语法错误 在 “order“ 或附近的 位置:345_idea 报org.postgresql.util.psqlexception: :-程序员宅基地

文章浏览阅读2k次。此错误一般是由于postgres的数据库表字段名定义与关键字重名导致的错误;Missing the data source name: ‘null‘_idea 报org.postgresql.util.psqlexception: :

2021年有哪些能用的活体人物虚拟主播_免费虚拟角色男性主持人主播-程序员宅基地

文章浏览阅读1.6k次。新的一年刚刚开始,小编花费几天时间体验一把当前最前沿国内科技公司开发的虚拟人物产品。 还是先介绍一下什么是虚拟主播: 主播是一个比较抽象的概念,实际上可以理解成一个人物形象,它可以实现基本活人动作:眨眼摇头点头张口说话等。它不一定非要是在电视或者直播间的主持人。当前看来主要有卡通人物或者真实人物形象。而用途就比较广泛。例如:银行业务介绍工作人员,教育行业虚拟老师,电视媒体主持人,智能汽车虚拟助手,公共出行介绍导游,数字城市和智慧社区指引者。他们这些岗位中有一些是比较枯燥,内容单一而具有专业性,是完全可以由当_免费虚拟角色男性主持人主播

深度学习计算框架综述(十三)HVX 计算优化实践—Hexagon DSP简介_网络模型推理hvx cdsp-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏15次。本节,我们主要介绍一下HexagonDSP的架构:_网络模型推理hvx cdsp

js获取文本高度和屏幕高度_js计算文字高度-程序员宅基地

文章浏览阅读4.8k次,点赞2次,收藏2次。网页可见区域宽: document.body.clientWidth 网页可见区域高: document.body.clientHeight 网页可见区域宽: document.body.offsetWidth (包括边线的宽) 网页可见区域高: document.body.offsetHeight (包括边线的高) 网页正文全文宽: document.body.scrollWidth ..._js计算文字高度

随便推点

计算机网络最基础论文题目,计算机网络专业论文题目-程序员宅基地

文章浏览阅读252次。计算机网络专业论文题目介绍:此栏目为关于论文题目和计算机和网络的例文,免费给你研究计算机网络论文题目提供相关参考文献资料。摘 要:从目前来看,高职院校教育要进行一个突破性的发展,改革的重要一步就是进行校企之间的合作模式,校企之间的合作已经成为一个趋势,是我国教育改革。摘 要:近年来,中等职业学校教育水平有了很大的发展,培养了大批实践操作能力强的应用型人才。而顶岗实训则是中职教育很重要的环节,提供给..._关于网络基础知识的论文题目

Linux内核学习:EXT4 INode在磁盘上的读写-程序员宅基地

文章浏览阅读3.2k次,点赞2次,收藏8次。目录1 关于Ext4系统的一些概念1.1 Inode与Data Block1.2 关于上述概念的规律2 查找Inode在磁盘的位置2.1 关于Inode操作的数据结构2.2 Ext4在磁盘上Inode分配的策略分析2.3.1目录的Inode分配策略2.3.2文件的inode分配策略2.3 Inode分配情况2.3.1 磁盘块上的Inode分配3 ex..._ext4 inode

自动化测试实践总结-程序员宅基地

文章浏览阅读2.7k次,点赞6次,收藏22次。  引言  内容已经有了,但是标题想了很久,最终还是决定用这个。简单清楚明了——总结一场失败的自动化测试案例。  文笔欠佳,如有阅读不适,请见谅!  自动化测试  如今,软件测试行业里,人人都在讲自动化测试,人人都在做自动化测试。如果谁说自己不会自动化测试,都不好意思去面试。现在各大公司招聘信息都是必须会自动化测试,一部分公司招人只招测试开发。甚至有些大头公司都不分测试与开发两个..._自动化测试实践

同一局域网下自己能ping通别人,别人ping不通自己_局域网我可以ping a,a ping不了我-程序员宅基地

文章浏览阅读6.8k次,点赞2次,收藏2次。更改自己本地的网络状况为如下图所示:_局域网我可以ping a,a ping不了我

全网最全最细的PLSQL下载、安装、配置、使用指南、问题解答,相关问题已汇总-程序员宅基地

文章浏览阅读2.6w次,点赞92次,收藏401次。双击之后,这里选择安装目录,你安装目录选的哪里,这里就填哪里。后面点下去就可以,弄好之后重新打开PLSQL,就已经是中文界面了。对没有语言包的PLSQL可以直接在软件里面调,有语言包的下载Chinese语言安装包。我下载的是有语言包的,但是怎么配置,我看了其它博主的教学,也不难,找到地方就行。大家都有自己熟悉的快捷键设置,只要不冲突就行,其它快捷键可自行摸索。这个感觉还是有必要的,每次登录都不需要再输口令了,勾选带口令存储。就我个人而言,全屏模式挺友好的,原始界面看着太小,使用起来会眼花。........._plsql下载

OpenGL之纹理过滤的四种方式_opengl 纹理滤波-程序员宅基地

文章浏览阅读8.3k次。I.纹理过滤:当三维空间里面的多边形经过坐标变换、投影、光栅化等过程,变成二维屏幕上的一组象素的时候,对每个象素需要到相应纹理图像中进行采样,这个过程就称为纹理过滤。II.纹理过滤通常分为2种情况:a) 纹理被缩小 GL_TEXTURE_MIN_FILTER 比如说一个8 x 8的纹理贴到一个平行于xy平面的正方形上,最后该正方形在屏幕上只占4 x 4的象素矩阵,这种情况下一个象素对应着多个纹理单元。b) 纹理被_opengl 纹理滤波