软件测试基础知识整理(详细版)

news2024/11/19 13:33:21

一、软件测试概述

1、软件缺陷
软件缺陷:又称之为“Bug”。即计算机软件或程序中存在的某种破坏正常运行能力的问题、错误,或者隐藏的功能缺陷。

缺陷的表现形式:

软件没有实现产品规格说明书所要求的功能模块;
软件中出现了产品规格说明指明不应该出现的错误;
软件实现了产品规格说明中没有提到的功能需求;
软件没有实现虽然产品规格说明没有明确提及但应该实现的目标;
软件难以理解、不易使用、运行缓慢、用户体验不友好;
产生软件缺陷的原因:

需求不清晰;
系统结构较为复杂;
对程序逻辑路径或者数据范围考虑不全面;
确保设计时间的精准同步;
存在系统性、可靠性的隐患问题;
系统运行环境的复杂;
通信端口较多时影响系统的安全性、适用性;
设计技术系统兼容的问题;
缺陷的属性:

缺陷标识:标识唯一;
缺陷类型:缺陷种类;
缺陷严重程度:指因缺陷引起的故障对软件产品的影响程度;
缺陷优先级:指缺陷必须被修复的紧急程度;
缺陷状态:通过一个跟踪修复过程的进展情况;
缺陷起源:缺陷引起的故障或事件第一次被检测到的阶段;
缺陷来源:引起缺陷的原因;
缺陷根源:反正错误的根本因素;
2、软件测试的定义及原则
定义:软件测试是为了发现错误而执行程序或系统的过程。

原则:

测试显示Bug的存在:
穷举测试不可能;
尽早地进行测试;
缺陷群:(二八定律:约80%的问题被发现在20%的模块中);
杀虫剂悖论;
测试是上下文相关的;
有无谬误;
软件测试是有风险的行为;

二、软件测试过程与策略

1、软件测试策略概述
软件测试策略是软件工程过程的一个软件测试的模板,也就是把特定的测试用例方法放置进去的一系列步骤:

软件测试包含的特征:

测试从模块层开始,然后扩大延伸到整个基于计算机的系统集合中;
不同的测试技术适用于不同的时间点;
测试由开发人员及独立的测试组来管理的;
测试和调试时不同的活动,但是调试必须能够适应任何测试策略;
软件测试充分性准则:

对任何软件都存在有限的充分测试集合;
若果一个软件系统在一个测试数据集合上的测试是充分的,那么再多测试一些数据也应该是充分的;
即使对软件所有成分都进行了充分测试,也并不表名整个软件的测试已经充分;
即使对软件系统整体的测试是充分的,也并不意味着软件系统中各个成分都已经充分的得到了测试;
软件测试的充分性与软件的需求和软件的实现都相关;
软件越复杂,需要的测试数据就越多;
测试的越多,进一步测试所能得到的充分性增长就越少;

2、软件测试的分类
软件开发阶段划分:

1)、单元测试:
指对软件中的最小可测试单元进行检查和验证,单元测试需要从软件的内部结构出发设计测试用例。多个模块可以独立地进行测试。

2)、集成测试:
组装测试/联合测试:将所有模块按照设计要求组装成子系统或者系统进行集成测试。

3)、系统测试:
将已经确认的软件、计算机硬件、外设、网络等其他元素结合在一起,进行信息系统的各种组装测试 和确认测试,系统测试是针对整个产品的测试。

4)、验收测试:
交付测试:确保软件准备就绪。

测试技术划分:

1)、白盒测试:
结构性测试/透明盒测试/逻辑驱动测试/基于代码的测试:

2)、黑盒测试:
功能测试:通过测试每个功能是否都能正常使用。(输入数据/输出数据)

3)、灰盒测试:
介于白盒测试和黑盒测试之间的一种测试方法:不仅关注输出、输入的正确性,同时也关注程序内部的情况。

被测试软件是否实际运行划分:

1)、静态测试:
指不运行被测程序本身,仅通过分析或检查源程序的语法、结构、过程、接口等来检查程序的正确性。

对于代码测试:主要测试代码是否符合相应的标准和规范;
对于界面测试:主要测试软件的实际界面与需求中的说明是否相符;
对于文档测试:主要测试用户和需求说明是否符合用户的实际需求;
2)、动态方法:
指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性等性能。

测试实施组织划分:

1)、开发方测试:
验证测试/α测试

2)、用户测试:
β测试

3)、第三方测试

测试类型划分:

1)、功能测试:
主要针对产品需求说明书对软件进行测试,验证软件功能是否符合需求,包括对原定功能的检验以及测试软件是否存在冗余功能、遗漏功能。

2)、界面测试:
主要对系统的界面进行测试,测试用户界面是否友好,软件是否方便易用、系统设计是否合理、界面位置是否正确等问题。

3)、性能测试:
主要测试系统的性能是否满足用户需求,即在特定的运行条件下验证系统的能力状态。性能测试主要是通过自动化的测试工具模拟正常、峰值、异常负载状况、对系统的各项性能指标进行测试。

4)、强度测试:
迫使系统在异常的资源配置下运行。目的是找出因资源不足或者资源争用而导致的错误。

5)、压力测试:
主要是在超负荷环境中,检验系统是否能够正常运行。

6)、安全测试:
测试系统防止非法入侵的能力。

7)、兼容性测试:
测试软件产品在不同的平台、不同的工具软件或者相同工具软件不同的版本下的兼容性。

8)、安装测试:
主要校验软件是否可以正确安装、安装文件的各项设置是否有效、安装后是否影响整个计算机系统、卸载软件时是否可以卸载干净、卸载软件之后是否影响整个计算机系统。

9)、文档测试:
主要检查内部或外部文档的清晰性和准确性。

3、软件测试过程模型
3.1、V模型

在这里插入图片描述
3.2、W模型

在这里插入图片描述
3.3、H模型

在这里插入图片描述
3.4、X模型

在这里插入图片描述
4、测试用例的定义和特征
4.1、测试用例的特征
1、测试用例具有代表性:测试用例能够代表并覆盖各种合法的和非法的、合理的和不合理、边界的和越界的以及极限的输入数据、操作和环境设置等。

2、测试结果是可判定的:测试执行结果的正确性是可以判定的,每一个测试用例都应有明确的期望结果,否则将难以判断系统是否正常运行。

3、测试结果可以再现:对同样的测试用例,系统的执行结果应当是相同的。

4.2、测试用例设计原则
使用成数的测试用例设计方法来进行设计;
保证测试用例数据的正确性和操作的正确性;
确保测试用例具有一定的代表性;
每个测试用例应该针对单一的测试项;
保证测试结果是可以判定并且可以再现的;
保证测试用例描述准确、清晰、具体;
测试用例设计应满足项目的时间、人员和资金要求;
4.3、测试用例模板
4.3.1、测试用例的基本要素

在这里插入图片描述
4.3.2、功能测试用例

在这里插入图片描述
4.3.3、性能测试用例
1、预期性能测试用例

2、用户并发性能测试用例


3、大数据量性能测试用例

在这里插入图片描述
4、疲劳强度测试用例

在这里插入图片描述
5、负载测试用例


4.3.3、兼容性测试用例

在这里插入图片描述

三、黑盒测试

1、等价类划分法
1、有效等价类划分:有效等价类指对于程序规格说明来讲,是合理的、有意义的输入数据构成的集合。有效等价类数据集包含:终端用户输入的命令、与最终用户交互的系统提示、接收相关的用户文件的名称、提供初始化值和边界值、提供格式化输出数据的命令、在图形模式提供的数据、失败时回显的数据等。

2、无效等价类划分:无效等价类指对于软件规格说明来讲,是不合理的、没有意义的输入数据集合。

3、等价类划分的方法

按区间划分
按数值划分
按数值集合划分
按限制条件或规划划分
按处理方式划分
4、等价类划分的原则

在输入条件规定的取值范围或值的个数的情况下,可以确定一个有效等价类和两个无效等价类;
在规定了输入数据的一组值中(假定有n个值),可以确定n个有效等价类和一个无效等价类;
在规定输入数据必须遵守的规则的情况下,可以确定一个有效等价类和若干个无效等价类;
在输入条件规定了输入值的集合或规定了“必须如何”的条件下,可以确定一个有效等价类和一个无效等价类;
在确定已划分的等价类中各元素在程序处理中的方式不同的情况下,则应该将等价类进一步地划分为更小的等价类;
5、弱一般等价类测试:通过使用一个测试用例中的每个等价类(区间)的一个变量实现

6、强一般等价类测试:基于多缺陷假设

7、弱健壮等价类测试:

8、强健壮等价类测试:

9、单元实践

2、边界值法
2.1、边界值分析
边界值分析法就是对输入或输出的边界值进行测试的一种黑盒测试方法。边界值分析的基本思想是使用在最小值、略高于最小值、正常值、略低于最大值、最大值处取变量值。

2.2、健壮性分析

2.3、最坏情况测试

2.4、单元实践

2.5、随机测试

2.6、边界值测试的指导方针

3、决策表法
3.1、决策表

3.2、实例

3.3、指导方针

4、因果图法
因果图是一种利用图解法分析输入的各种组合情况,从而设计测试用例的方法。适用于检查程序输入条件的各种组合的情况。

5、场景法
6、正交实验法


最后

如果你想学习自动化测试,那么下面这套视频应该会帮到你很多

如何逼自己1个月学完自动化测试,学完即就业,小白也能信手拈来,拿走不谢,允许白嫖....

最后我这里给你们分享一下我所积累和整理的一些文档和学习资料,有需要直接领取就可以了!


以上内容,对于软件测试的朋友来说应该是最全面最完整的备战仓库了,为了更好地整理每个模块,我也参考了很多网上的优质博文和项目,力求不漏掉每一个知识点,很多朋友靠着这些内容进行复习,拿到了BATJ等大厂的offer,这个仓库也已经帮助了很多的软件测试的学习者,希望也能帮助到你。

​​

​​​​

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1105670.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++对象模型(16)-- 构造函数语义学:临时对象

临时对象是栈上的没有名字的对象,它在源码中是不可见的,是编译器偷偷摸摸在背后干的。 比如下面的代码就会产生临时对象: int i 1;// 这里的 i 会产生临时对象,这里的临时对象是在系统中产生,代码中看不见的 // 首先…

Deep Joint Demosaicking and Denoising

Abstract 去马赛克和去噪是数字成像流程的关键第一阶段,但它们也是一个严重不适定的问题,从单个噪声测量中推断出每个像素的三个颜色值。早期的方法依赖于手工制作的滤波器或先验,并且在硬情况下(例如摩尔纹或薄边缘)…

Bootstrap的导航栏设计相关知识

Bootstrap的导航栏设计相关知识 目录 01-基础知识02-最基本的导航栏设计例子03-带下拉菜单的导航04-在导航栏中添加表单元素05-固定导航栏的位置(如固定到顶部和底部)06-设计导航栏的颜色和文本颜色 01-基础知识 导航栏是网页设计中不可缺少的部分,它是整个网站的…

ABB变频器使用PROFINET IO通信模块时的激活方法

ABB变频器使用PROFINET IO通信模块时的激活方法 ABB传动通讯总线适配器的激活(ACS380): 首先,如下图所示,要采购并安装PROFINET IO总线通信模块(我这里支持3种通信协议,大家在实际使用时,用到哪种就购买哪种即可), 如下图所示,进入参数设置, 如下图所示,进入“完…

如何使用Python抓取PDF文件并自动下载到本地

目录 一、导入必要的库 二、发送HTTP请求并获取PDF文件内容 三、将PDF文件内容写入到本地文件中 四、完整代码示例 五、注意事项 六、错误处理和异常处理 七、进一步优化 总结 在Python中,抓取PDF文件并自动下载到本地需要使用几个不同的库。首先&#xff0…

EV SSL数字证书贵吗

EVSSL证书通常适用于具有高需求的网站和企业,特别是涉及在线交易、金融服务、电子商务平台等需要建立用户信任的场景。大型企业、金融机构、电子商务平台等可以受益于使用EV证书来提升品牌形象和安全性。 申请EVSSL证书(Extended Validation SSL certifi…

复制粘贴(二):操作剪贴板 navigator.clipboard

使用 navigator.clipboard 可以随时获取剪贴板对象&#xff08;也就是说&#xff0c;在 copy/paste 事件外也可以用&#xff09; 但是&#xff0c;此操作必须用户允许&#xff1a; readText readText() 获取剪贴板中的文本内容 <!DOCTYPE html> <html><head&…

java: 错误: 无效的源发行版:17

原因分析&#xff1a; 这个错误表明你的Java开发环境不支持Java 17的源发行版。这可能是因为你的JDK&#xff08;Java Development Kit&#xff09;版本过低&#xff0c;不支持Java 17的特性。 以下是解决此问题的一些步骤&#xff1a; 检查你的JDK版本&#xff1a;在命令行…

java影院管理信息系统设计参考学习

系统设计&#xff1a; 1.1功能结构 为了更好的去理清本系统整体思路&#xff0c;对该系统以结构图的形式表达出来&#xff0c;设计实现该影院系统的功能结构图如下所示&#xff1a; 图1-1 系统总体结构图 1.2数据库设计 1.2.1数据库E/R图 ER图是由实体及其关系构成的图&…

易点易动设备管理系统帮助生产企业提升设备维修效率

在现代制造业中&#xff0c;设备的正常运行对于生产企业的成功至关重要。然而&#xff0c;设备故障和维修工作常常成为生产过程中的瓶颈&#xff0c;影响生产效率和利润。为了解决这个问题&#xff0c;许多企业采用了现代化的设备管理系统&#xff0c;其中易点易动设备管理系统…

智能管家“贾维斯”走进现实?AI Agent或成2023科技领域新风向标

漫威粉们想必都知道《钢铁侠》系列电影中&#xff0c;有一个不可或缺的角色——贾维斯。但就算是没有看过任何一部大电影的路人&#xff0c;只要通过一个词就可以了解“贾维斯”是一个什么样的角色——智能管家。 作为托尼斯塔克的助手&#xff0c;贾维斯的存在让主人的生活更…

分享40个Python游戏源代码总有一个是你想要的

下载链接&#xff1a;https://pan.baidu.com/s/1bwj2GQM1CbO1x2EIC-ZF6g?pwd8888 提取码&#xff1a;8888 项目名称&#xff1a; Chinese Chess Xiangqi 中国象棋 Python Python 图形化麻将游戏 (带蒙特卡洛AI) python做的一个足球小游戏 python做的坦克大战游戏 py…

【R】数据相关性的可视化

一千零一技|相关性分析及其可视化&#xff1a;copy&paste&#xff0c;搞定 .libPaths(c("/bioinfo/home/software/miniconda3/envs/R4.0/lib/R/library")) #data("mtcars") library("PerformanceAnalytics") # pdf("test.pdf") #…

前端开发调试技巧:如何在Component下选中当前插件并且查看当前插件信息

在react开发项目中&#xff0c;在Component下选中组件&#xff0c;然后在控制台输$r 按回车键即可输出该组件信息。例如 $r.props输出该组件的props参数。例子详情见如下截图

使用canvas实现图片轮播抽奖效果,轮播速度由慢到快,然后再到慢

整体的效果就是中间的那张图片会连续不断地切换&#xff0c;我部署到github上面了&#xff0c;可以点击链接试一试&#xff1a;canvas在线抽奖系统效果 附上源代码&#xff1a; <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-…

【C++那些事儿】初识C++ 命名空间,C++中的输入输出以及缺省函数

君兮_的个人主页 即使走的再远&#xff0c;也勿忘启程时的初心 C/C 游戏开发 Hello,米娜桑们&#xff0c;这里是君兮_&#xff0c;数据结构和算法初阶更新完毕&#xff0c;我们继续来扩充我们的知识面&#xff0c;今天我们从认识C开始来带大家学习C&#xff0c;我之前看过一套…

半导体测试方法主要有哪几种?

外观检测&#xff1a;对半导体外观质量的评估&#xff0c;包括检查芯片的平整度、颜色、镜面度等。 电性能测试&#xff1a;测量半导体的电导率、电阻率、电流和电压特性等&#xff0c;以评估其电性能。 温度测试&#xff1a;用于测量半导体在不同温度下的电性能表现&#xf…

软件测试过程中如何有效的开展接口自动化测试

一.简介 接口自动化测试是指使用自动化测试工具和脚本对软件系统中的接口进行测试的过程。其目的是在软件开发过程中&#xff0c;通过对接口的自动化测试来提高测试效率和测试质量&#xff0c;减少人工测试的工作量和测试成本&#xff0c;并且能够快速发现和修复接口错误&…

37 WEB漏洞-反序列化之PHPJAVA全解(上)

目录 PHP反序列化演示案例&#xff1a;先搞一把PHP反序列化热身题稳住-无类问题-本地在撸一把CTF反序列化小真题压压惊-无类执行-实例最后顶一把网鼎杯2020青龙大真题舒服下-有类魔术方法触发-实例 https://www.cnblogs.com/zhengna/p/15661109.html 代码在线测试平台&#xff…

相机镜头选择与机器视觉控制

相机镜头选择与机器视觉控制 在机器视觉领域&#xff0c;除了图像处理和算法&#xff0c;还需要关注硬件方面的选型和控制。相机镜头的选择是其中重要的一部分&#xff0c;需要考虑像素大小、镜头焦距等因素以满足项目需求。此外&#xff0c;编程技能也包括相机的调用和使用&a…