软件测试人必须清楚的测试基础知识详解

news2024/11/18 22:39:33

一、软件测试概述

1、软件缺陷

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

缺陷的表现形式:

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

产生软件缺陷的原因:

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

缺陷的属性:

  1. 缺陷标识:标识唯一;
  2. 缺陷类型:缺陷种类;
  3. 缺陷严重程度:指因缺陷引起的故障对软件产品的影响程度;
  4. 缺陷优先级:指缺陷必须被修复的紧急程度;
  5. 缺陷状态:通过一个跟踪修复过程的进展情况;
  6. 缺陷起源:缺陷引起的故障或事件第一次被检测到的阶段;
  7. 缺陷来源:引起缺陷的原因;
  8. 缺陷根源:反正错误的根本因素;

2、软件测试的定义及原则

定义:软件测试是为了发现错误而执行程序或系统的过程。

原则:

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

同时,我也准备了一份软件测试视频教程(含接口、自动化、性能等),需要的可以直接在下方观看,或者直接关注VX公众号:互联网杂货铺,免费领取

软件测试视频教程观看处:

字节大佬教你逼自己如何在15天内掌握自动化测试(接口自动化/APP自动化/Web自动化/性能测试),内含项目实战

二、软件测试过程与策略

1、软件测试策略概述

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

软件测试包含的特征:

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

软件测试充分性准则:

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

2、软件测试的分类

软件开发阶段划分:

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

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

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

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

测试技术划分:

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

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

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

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

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

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

2)动态方法
指通过运行被测程序,检查运行结果与预期结果的差异,并分析运行效率、正确性、健壮性等性能。

测试实施组织划分:

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

2)用户测试
β测试

3)第三方测试

测试类型划分:

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

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

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

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

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

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

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

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

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

3、软件测试过程模型

3.1V模型


3.2W模型


3.3H模型


3.4X模型


4、测试用例的定义和特征

4.1测试用例的特征

1、测试用例具有代表性:测试用例能够代表并覆盖各种合法的和非法的、合理的和不合理、边界的和越界的以及极限的输入数据、操作和环境设置等。

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

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

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

4.3.1测试用例的基本要素

4.3.2功能测试用例

4.3.3性能测试用例

1、预期性能测试用例


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


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


4、疲劳强度测试用例


5、负载测试用例

4.3.4兼容性测试用例

三、黑盒测试

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、正交实验法

四 、总结

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。如需要软件测试学习资料,关注公众号(互联网杂货铺),后台回复1,整理不易,给个关注点个赞吧,谢谢各位大佬!

☑ 240集-零基础到精通全套视频课程
☑ [课件+源码]-完整配套的教程
☑ 18套-测试实战项目源码
☑ 37套-测试工具软件包
☑ 268道-真实面试题
☑ 200个模板-面试简历模板、测试方案模板、软件测试报告模板、测试分析模版、测试计划模板、性能测试报告、性能测试报告、性能测试脚本用例模板(信息完整)

这些资料,对于做【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你!凡事要趁早,特别是技术行业,一定要提升技术功底。

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

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

相关文章

基于Flume+Kafka+Hbase+Flink+FineBI的实时综合案例(三)离线分析

文章目录 08:离线分析:Hbase表设计及构建09:离线分析:Kafka消费者构建10:离线分析:Hbase连接构建11:离线分析:Rowkey的构建12:离线分析:Put数据列构建13&…

Spring自动装配源码分析

写在前面:阅读spring源码需要读者对Java反射和动态代理有一定了解。关于这部分内容,可以参考这篇博客:Spring源码分析准备工作及java知识补充 一、Spring依赖注入的方式 关于spring的依赖注入,可以参考官方文档:Spring…

注意力屏蔽(Attention Masking)在Transformer中的作用 【gpt学习记录】

填充遮挡(Padding Masking): 未来遮挡(Future Masking):

近地面无人机植被定量遥感与生理参数反演

目录 专题一 近十年近地面无人机植被遥感文献分析、传感器选择、观测方式及质量控制要点 专题二 辐射度量与地物反射特性 专题三 无人机遥感影像辐射与几何处理 专题四 光在植被叶片与冠层中的辐射传输机理及平面模型应用 专题五 植被覆盖度与叶面积指数遥感估算 更多应用…

sylar高性能服务器-日志(P7-P8)代码解析

文章目录 p71.TabFormatItem2.init函数,对于{}内容的解析3.Util.h4.CmakeLists5.优化日志输出-流式输出 p81.优化日志输出-格式化输出2.日志管理器3.单例模型设计 测试(无调试步骤) P7P8两节视频新增内容不多,主要看下优化日志输出使用的宏函数。本次记录…

python获取网口列表(获取网络接口列表、网口表)socket.if_nameindex()

文章目录 获取网口列表测试 获取网口列表 以下python代码将打印系统中所有存在的网络接口列表: import socketdef print_interfaces_list():# 打印所有的网络接口列表available_interfaces socket.if_nameindex()# 转换成字典形式 {if_index: if_name}available_…

6个视频剪辑必备的素材网站,免费下载。

视频剪辑必备的视频资源、音效素材、BGM,这6个网站全部免费下载,赶紧收藏起来吧! 1、菜鸟图库 https://www.sucai999.com/video.html?vNTYxMjky 菜鸟图库网素材非常丰富,网站主要还是以设计类素材为主,高清视频素材…

TSINGSEE青犀智慧广场智能监控解决方案,助力广场监控数字化转型

前期和大家说过世界最大的城市公园——合肥市骆岗公园的监控方案,大家都很感兴趣,后台还有粉丝留言想看看广场类场景的智能方案,今天小编就和大家聊一聊。 广场视频监控方案大体和公园场景类似,但由于广场比公园更加空旷&#xf…

centos 里面的service自启动app.jar,出现两个java进程,app是同一个端口

当使用jps -lv查看java虚拟机进程 app.jar启动后,居然出现两个启动进程,而且他们的端口都一样,同一端口,是不允许启动两个相同app的。 使用进程ps查看进程工具 #ps -aux 参数说明: a: 显示跟当前终端关联的所有进…

到2026年,超过80%企业将使用生成式AI

10月12日,全球著名信息咨询调查机构Gartner在官网,公布了一项调查数据,到2026年,超过80%的企业将使用生成式AI API,或部署生成式AI的应用程序。而2023年这一比例还不到5%。 Gartner副总裁兼高级分析师 Arun Chandrase…

【约束布局】ConstraintLayout配合Guideline解决两个子控件其中一个被挤出屏幕的问题

一、需求 屏幕横向显示文本框A和图标B,A在B的左侧,B紧贴在A的右边显示,文本框A的字数不确定,文本框A的字数足够多时,换行显示,并且保证图标B一直在文本框A的右侧,且不被挤出屏幕。 二、问题 本来…

Java Object转String方式

Map<String,Object> map new HashMap<>(); map.put("a1","a"); map.put("a2",""); map.put("a3",1); map.put("a4",null);一、强制转换 value "a"或""可以进行强制转换String…

众佰诚:新手开抖音小店申请流程是什么

抖音小店为抖音平台上的商家提供了一个全新的销售渠道&#xff0c;让更多创业者能够轻松实现线上销售。如果你是一位希望在抖音上开展电商业务的新手&#xff0c;下面将为你详细介绍如何申请开通抖音小店。 一、准备工作 首先&#xff0c;你需要准备好以下材料&#xff1a; 营业…

数学术语之源——代数——(子空间的)直和(direct sum)

1. 关于(子空间的)直和(direct sum)的较正式定义 令 为向量空间 的子空间,若 且 是独立的&#xff0c;则称 是子空间 的直和(direct sum), 记为 &#xff0c; 这种表示在同一个基的前提下是唯一的。 一个直观几何类比理解(个人愚见)&#xff1a;如果我将向量空间V 看…

计算机基础——内存

文章目录 内存一、内存条、总线、DMA二、内存管理1、为什么要有逻辑地址2、逻辑地址和物理地址如何映射3、分页时间和空间优化4、程序内部的内存管理-分段 三、内存相关的系统调用1、用户态和内核态 四、Java内存 内存 提示&#xff1a;这里可以添加本文要记录的大概内容&…

JS+Jquery用法

1. 当存在多个select时&#xff0c;想要获取每一个select的选中的值(使用变量赋值的方法). var Metric "";$(#Metric).change(function () {Metric $(this).children("option:selected").val();console.log("Metric:" Metric);}); 2. 在页面…

海外代理IP与VPN有何区别?哪个更好?

当谈到网络安全和IP变更时&#xff0c;人们会想到VPN和IP代理服务器。很多人很困惑&#xff0c;它们之间有什么区别&#xff0c;应该选择哪一个呢&#xff1f;这取决于您的需求来决定哪一个更好。 一、什么是VPN与IP代理&#xff1f; VPN 是虚拟专用网络 (Virtual Private Net…

ACP.项目管理.5种复盘会议

复盘要怎么做的有水准&#xff0c;让领导满意&#xff0c;方式方法很重要。今天给你们安利5种复盘方法&#xff0c;保准你省事&#xff0c;领导还满意。 一、KPT复盘法 7月份年中一直在做和复盘相关的事&#xff0c;像公司的OKR复盘、年中战略规划&#xff0c;不过日常很多生…

Hadoop 安装教程 (Mac m1/m2版)

安装JDK1.8 这里最好是安装1.8版本的jdk 1. 进入官网Java Downloads | Oracle Hong Kong SAR, PRC,下滑到中间区域找到JDK8 2.选择mac os,下载ARM64 DMG Installer对应版本 注&#xff1a;这里下载需要注册oracle账号&#xff0c;不过很简单&#xff0c;只需要提供邮箱即可&…

【C++】模板进阶 -- 详解

一、非类型模板参数 模板参数 分类类型形参与非类型形参。 类型形参&#xff0c;即出现在模板参数列表中&#xff0c;跟在 class 或者 typename 之类的参数类型名称。 非类型形参&#xff0c;就是用一个常量作为类&#xff08;函数&#xff09;模板的一个参数&#xff0c;在类…