软件测试基础知识总结(超详细整理)

基础篇

1. 什么是软件测试?

软件测试(Software Testing)的经典定义是:在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。简单来讲就是:软件测试人员验证软件是否满足用户的需求;

2. 软件测试的目的

  • 提高软件的质量,其一方面是确认软件做了你所期望的事情,另一方面是确认软件以正确的方式来做了这个事件;
  • 提供信息,比如提供给开发人员或程序经理的反馈信息,为风险评估所准备的信息;
  • 软件测试不仅是在测试软件产品的本身,而且还包括软件开发的过程,如果一个软件产品开发完成之后发现了很多问题,这说明此软件开发过程很可能是有缺陷的。因此软件测试的第三个目的是保证整个软件开发过程是高质量的;

3. 软件测试与软件开发的区别? 

(1) 技能要求专业度 

  • 软件开发:技能的要求专业度高,技能要求不广泛;要熟悉C/C++,Java,python,PHP等语言,以及相关框架Spring,Spring Boot等,构建工具maven,Gradle等;
  • 软件测试:技能要求比较广泛,但是专业度不高;

        【测试接口】soupUl, postman , jmeter

        【性能测试】loadrunner,jmeter

        【自动化测试脚本】Python,java,unittest,TestNg,Charles,fiddler,appium

(2) 软件测试和软件调试

目的不同:

软件测试就是验证软件是否实现了它应该实现的功能(需求);

软件调试的目的是软件开发人员验证软件是否实现了他(开发人员的角度)想让软件实现的功能;

角色不同:

测试是由开发人员(白盒测试)和测试人员共同完成;

调试是由开发人员完成;

阶段不同:

测试现在贯穿了整个软件开发的生命周期;     需求一>计划一> 设计一>编码一>测试一>运维

调试是在开发阶段;

同时,在这我为大家准备了一份软件测试视频教程(含面试、接口、自动化、性能测试等),就在下方,需要的可以直接去观看,也可以直接【点击文末小卡片免费领取资料文档】

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

软件测试工程师大忌!盲目自学软件测试真的会毁终生,能救一个是一个......

概念篇

1. 什么是需求?

用户的期望和满足合同(文档,规则,标准)的规定所需要的条件和权限;

软件需求是用户需求转换而来的,它是用户需求的细化,是用户需求的具体实现细节和规范;

用户需求比较粗略,直接实现会有困难,因为没有细节,所以需要软件需求把用户需求细节实现和规范,把用户需求变成一个具体的可实现的过程文档;

2. 需求是软件测试的依据

验证需求,保证需求正确可实现,细化需求,从需求中提炼出一个一个的测试项;

以用户登陆为例,阐述下整个过程:

软件测试人员如何深入了解需求? 答:从用户需求分析阶段就开始介入了解需求,站在用户的角度;

3. 测试用例

测试用例(Test Case)是指对一项特定的软件产品进行测试任务的描述,体现测试方案、方法、技术和策略。其内容包括测试目标、测试环境、输入数据、测试步骤、预期结果、测试脚本等,最终形成文档。简单地认为,测试用例是为某个特殊目标而编制的一组测试输入、执行条件以及预期结果,用于核实是否满足某个特定软件需求;

测试点:用正确(已经注册)的手机号和密码登陆网易邮箱界面,登陆成功

测试用例

测试环境:  Chrome版本99.0.4844.51   PC端 Windows系统
测试数据:  用户名: 134****2311   密码: *******
测试步骤:   1、 在浏览器打开邮箱URL: https://mail. 163.com/?msg= authfail#return
                  2、输入用户名和密码
                  3、点击登陆
预期结果: (操作完测试步骤后的结果)登陆成功

测试用例告诉我们测什么,怎么测 

优点: 衡量需求的覆盖率(测试用例和需求对比); 复用性,借鉴意义; 可以用于回归测试; 防止遗漏测试需求;

4. 什么是BUG?

当且仅当,程序规格说明书(软件需求)存在并且合理,如果软件功能和软件规格说明书不相符合,我们就说是软件错误;当软件需求不存在,用户需求存在并且合理,软件功能和用户功能不相合,就说明是软件错误;软件测试的阶段:  整个软件开发的生命周期,需求阶段介入  验证需求的合理性和正确性;

5. 开发模型(5个模型)

软件开发的生命周期 : 需求分析一计划一 设计一 开发一 测试一 运行维护

(1)瀑布模型

特点 : 阶段性强,每一个阶段比较独立; 看重前期的需求分析和后期的测试
缺点 : 测试在编码后才开始介入,导致前期的问题后期才发现,会失去错误补救的机会 

(2) 螺旋模型

适合于项目庞大,风险大,不是很明确项目
特点:强调每一个迭代的测试质量和风险分析
缺点:风险管控人力物力投入很多,成本比较大 

(3)增量模型,迭代模型

同一个系统的四个模块 A  B  C  D  两周
增量模型:第一周开发A B功能模块,第二周开发C D功能模块
迭代模型:第一周先开发A B C D的基础功能,第二周再在第一周的基础之上完全其它的功能
特点:抗击风险能力强;

(4)敏捷模型

个体与交互重于过程和工具;可用的软件重于完备的文档;客户协作重于合同谈判;响应变化重于遵循计划

特点:轻文档,轻流程,重目标,重产出

角色:

  • PO:product owner,把用户需求转化成user story
  • SM:scrum master项目经理,管理整个团队,负责敏捷流程顺利实施,各种会议
  • ST:scrum team各种技能的人组成,开发,测试UI

scrum流程:

  • 发布计划会议:产品经理收集需求形成userstory ,讲解,排出本迭代需要进行开发的userstory形成sprint backlog
  • 迭代计划会议:分析用户故事,把userstory分解- 个个的任务, 分配开发人员,制定开发计划
  • 每日站会:昨天干了什么,遇到的问题,今天的计划
  • 产品演示会议:甲方,用户演示产品,PO把不足的地方收集成user story,下一次迭代改进
  • 回顾计划会议:回顾整个迭代过程,把不足的地方找出,在下一次迭代过程中改进,优化迭代流程

6. 测试模型

(1)V模型

特点: 每一个阶段独立性强;左边每一个阶段都是右边测试阶段的依据;和右边阶段每一个测试阶段一一对应;

缺点:编码后才进行测试;前期的错误后期才会被发现,会失去错误即使补救的机会;

(2)W模型——双V模型

特点: 每一阶段独立性强;测试一开始就介入;可以保证前期的问题及时发现和纠正;测试和开发并行。

缺点:每一阶段都是串行的过程;一个阶段完了之后就进行下一个阶段;不支持敏捷(拥抱变化)开发

7. 软件测试的生命周期(软件测试流程)

需求分析——测试计划——测试设计/开发——测试执行——测试报告

需求分析:分析需求,验证需求的正确性、合理性;细化需求,根据需求去提炼测试点

测试计划:确定测试范围、目的、目标、测试人员、测试工具、时间、测试环境

测试设计/开发:开发测试用例

测试执行:开发人员已经提交了代码,执行测试,提交BUG

测试报告:对本次迭代的测试情况进行分析和总结;写了多少测试用例执行了多少;发现了多少BUG,修改了多少,剩余多少BUG没有解决;方案;测试的覆盖率

8. 如何描述一个BUG

(1)测试版本(代码提交版本号)

(2)测试环境:因为在不同测试环境问题出现的情况也不一样

(3)测试步骤:测试数据和执行测试的详细步骤,方便为开发人员复现问题

(4)实际结果

(5)预期结果(需求期望的结果)

(6)BUG产生时的log日志,错误截图等附件

9. BUG的级别

(1)崩溃

系统崩溃,不能运行,死循环,数据库死锁,资源分配不均,黑屏,闪退,阻塞。

线上(用户使用的环境)出现崩溃级别的BUG:回到上一个可稳定运行的历史版本

(2)严重

服务器可以用,但是不稳定,继续使用会产生严重的错误;一级菜单错误,数据库插入数据错误,威胁到用户的安全等

(3)一般

系统可以稳定的运行,次要的功能没有实现,提示语不完整,弹出框没有关闭按钮,不影响用户的使用

(4)建议(次要)

建议性的,提示信息重叠(看不清楚),界面排版不符合用户使用习惯,颜色不符合软件使用场景

10. BUG的生命周期 


问题:发现一个BUG,开发人员修改了,通知测试人员验证,但是测试人员又复现了这个BUG,是哪些可能的原因引起的?

答:测试环境不一样;开发人员理解不到位,没有修改成功;代码在开发人员修改之后未进行远程提交代码,测试人员用旧版本(有问题的代码)进行测试

11. 测试人员因为一个BUG和开发人员发生冲突,该怎么做?

(1) 检查自己的BUG描述,是否描述清楚

(2)可以从用户的角度考虑,说服开发人员

(3)BUG定级要有理有据,符合公司规范

(4)测试人员要不断提升自己的专业技能和业务水平(权威性)

(5)找产品经理去讨论问题的解决方案

总结

PS:这里分享一套软件测试的自学教程合集。对于在测试行业发展的小伙伴们来说应该会很有帮助。除了基础入门的资源,博主也收集不少进阶自动化的资源,从理论到实战,知行合一才能真正的掌握。全套内容已经打包到网盘,内容总量接近500个G。【点击文末小卡片免费领取】

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【论文翻译】Learning Deep Features for Discriminative Localization

原文:Learning Deep Features for Discriminative Localization 摘要 在这项工作中,我们重新审视了文献[13]中提出的全局平均池化层,并阐明了它如何明确地使卷积神经网络具有出色的定位能力,尽管该网络是在图像级标签上进行训练的…

我的隐私计算学习——隐私集合求交(2)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成。 前篇可见:我的隐私计算学习——隐私集合求交(1) (三)PSI应用场景问题 ​在目前的实际应用中,衍生出一些新…

【操作系统和计网从入门到深入】(三)进程控制

前言 这个专栏其实是博主在复习操作系统和计算机网络时候的笔记,所以如果是博主比较熟悉的知识点,博主可能就直接跳过了,但是所有重要的知识点,在这个专栏里面都会提到!而且我也一定会保证这个专栏知识点的完整性&…

【大数据-Hadoop】从入门到源码编译-概念篇

【大数据-Hadoop】从入门到源码编译-概念篇 Hadoop与大数据生态(一)Hadoop是什么?(二)Hadoop组成1. HDFS1.1 NameNode(nn)1.2 DataNode(dn)1.3 Secondary NameNode&#…

如雨后春笋般层出不穷的人工智能,究竟可以为我们的生活带来些什么?

似乎是从chatgpt爆火以后,各种各样的和AI、人工智能有关的产品层出不穷,似乎只有带有人工智能,才能体现一个产品的功能之强大,才能在众多产品中具有一定的竞争力,那么这样的现象会给我们的生活带来什么影响呢&#xff…

如何用scratch画正多边形

各边相等,各角也相等的多边形叫做正多边形。 正多边形的外接圆的圆心叫做正多边形的中心。 正多边形的外接圆的半径叫做正多边形的半径。 中心到圆内接正多边形各边的距离叫做边心距。 正多边形各边所对的外接圆的圆心角都相等,这个圆心角叫做正多边…

各行各业模板ppt模板打包下载

下载地址 https://download.csdn.net/download/douluo998/88624912 超多ppt模板 136-高级古风PPT 135-高端艺术PPT 134-高端A4竖版PPT 133-露营活动PPT 132-雷锋主题PPT 131-退休欢送会PPT 130-转正述职报告PPT 129-谷雨PPT 128-课堂互动游戏PPT 127-读书分享PPT -2023-07-22 1…

多线程 (上) - 学习笔记

前置知识 什么是线程和进程? 进程: 是程序的一次执行,一个在内存中运行的应用程序。每个进程都有自己独立的一块内存空间,一个进程可以有多个线程,比如在Windows系统中,一个运行的xx.exe就是一个进程。 线程: 进程中的一个执行流&#xff0…

计算机操作系统原理分析期末复习

一、理解与识记 三种基本的OS类型及各自的特点: 批处理系统(内存同时存放几个作业。优点:资源利用率高、作业吞吐量大、系统开销小;缺点:用户无交互性、作业平均周转时间长)、分时系统(时间片技…

后端项目全局异常处理-使用RuntimeException自定义异常异常分类简单举例

接上篇:后端项目操作数据库-中枢组件Service调用Mapper 自定义异常: 手动抛出异常,为了后续统一捕获,需要异常自定义; 如:当使用抛出异常的方式表示“操作失败”时,为了后续统一捕获&#xff0c…

信息过载的反思

在今天微信、短视频、图文不停的密集的信息轰炸之下,你“察觉”到你的精力不济没有?你时常会觉得耳鸣、目涩,注意力无法集中;你懒于记忆,甚至爱人的手机号都想不起来,习惯于用移动电话找人名,不…

Docker - Android源码编译与烧写

创建源代码 并挂载到win目录 docker run -v /mnt/f/android8.0:/data/android8.0 -it --name android8.0 49a981f2b85f /bin/bash 使用 docker update 命令动态调整内存限制: 重新运行一个容器 docker run -m 512m my_container 修改运行中容器 显示运行中容器 d…

使用飞书自定义机器人发送消息

使用飞书机器人可以很方便的获取自动化任务的反馈: 在群里创建一个机器人: 记住下面的 webhook地址,这个是标识机器人的唯一ID,比如它的webhook地址是:"https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx-a…

【1.计算机组成与体系结构】流水线技术

目录 1.流水线的定义2.相关参数计算2.1 流水线计算公式2.2 流水线的吞吐率2.3 流水线加速比计算 3.超标量流水线 1.流水线的定义 流水线是指在程序执行时多条指令重叠进行操作的一种准并行处理实现技术。各种部件同时处理是针对不同指令而言的,它们可同时为多条指令…

STM32——超声波传感器

需求: 使用超声波测距,当手离传感器距离小于 5cm 时, LED1 点亮,否则保持不亮状态 接线: 定时器配置: 使用 TIM2 ,只用作计数功能,不用作定时。 将 PSC 配置为 71 ,…

笔记 - 现代嵌入式芯片封装识读

0.引用: 配图、资料并非一处采集,我不太容易找到图片的原始链接。这里的图片仅作示例,无商业用途。如果涉及侵权,请随时联系。谢谢! PCB封装欣赏了解之旅(下篇)—— 常用集成电路_ufqfpn封装…

什么是Z-Wave,技术特点,各国支持的频段

1.1 背景 Z-Wave是一种无线通信的协议,主要应用于智能家居网络,而其Z-Wave联盟主要是推动家庭自动化领域采用Z-Wave协议,其联盟成员都是智能家居领域非常有名的厂商,基本上覆盖了全球。 2.1 技术特点 低功耗、高可…

『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略

『App自动化测试之Appium应用篇』| 元素定位工具Appium-Inspector从简介、安装、配置到使用的完整攻略 1 Appium-Inspector简介2 Appium Desktop中的Appium-Inspector3 安装Appium-Inspector4 Appium-Inspector网页版5 Appium-Inspector界面说明5.1 Appium Server配置5.2 Selec…

飞致云与上海吉谛达成战略合作,获得Gitea企业版中国大陆地区独家代理权

2023年12月13日,中国领先的开源软件提供商FIT2CLOUD飞致云宣布与上海吉谛科技有限公司(以下简称为上海吉谛)正式达成战略合作,FIT2CLOUD飞致云获得上海吉谛旗下代码托管平台Gitea企业版中国大陆地区独家代理权。 Gitea项目&…

使用 Pnpm 和 Vite 构建 Vue 项目

文章目录 本地 Node 环境安装 Pnpm 包管理工具使用 Vite 创建 Vite 官网:https://cn.vitejs.dev/ 本地 Node 环境 首先,确保已经安装了 Node.js 和 npm。可以在命令行中运行 node -v 和 npm -v 来检查它们是否已经正确安装: 安装 Node.js 通…