软件测试基础知识总结

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快  

基础篇

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)找产品经理去讨论问题的解决方案

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

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

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

「微服务」持续测试如何做?

如今,软件开发对于速度和灵活性的持续追求,催生了各种超越传统界限的方法和实践。而作为现代 DevOps 实践的基石,持续测试的出现与发展,正好满足了加速软件交付的需求。下面,我将和您探讨持续测试的最新发展&#xff0…

智能家居10G雷达感应开关模块,飞睿智能uA级别低功耗、超高灵敏度,瞬间响应快

在当今科技飞速发展的时代,智能家居已经逐渐成为人们生活中不可或缺的一部分。从智能灯光控制到智能家电的联动,每一个细节都在为我们的生活带来便利和舒适。而在众多智能家居产品中,10G 雷达感应开关模块以其独特的优势,正逐渐成…

中国大学慕课视频资源分析

右键查看视频信息 关注点在 urls 这个参数,仔细分析就会发现其实是由若干个.ts拓展名和一个.m3u8拓展名的视频文件,每一个.ts视频文件的时长在10秒钟左右。 中国大学MOOC将课程的视频文件拆分成若干个这样的.ts片段,并且用.m3u8记录这些片段…

T4--侯豆病毒识别

导入需要使用的包包括 from tensorflow import keras from tensorflow.keras import layers,models import os, PIL, pathlib #加载文件使用的 import matplotlib.pyplot as plt import tensorflow as tfdata_dir "第四周"data_dir pathlib.Path(da…

Chromium HTML5 新的 Input 类型tel对应c++

一、Input 类型: tel <!DOCTYPE html> <html> <head> <meta charset"utf-8"> <title>test</title> </head> <body><form action"demo-form.php">电话号码: <input type"tel" name…

Python批量查找包含多个关键词的PDF文件

在信息爆炸的时代&#xff0c;数据管理变得愈发重要。U盘作为一种便携式存储设备&#xff0c;常常承载着我们大量的个人和工作数据。然而&#xff0c;随着文件数量的增加&#xff0c;在U盘中快速找到特定文件常常成为一个令人头疼的难题。我们通常可以采用everything来快速查找…

宿舍人走自动断电系统控制的重点

石家庄光大远通电气有限公司学生公寓人走断电人来自动送电系统是一种智能化的用电管理系统&#xff0c;旨在提高高校宿舍的用电安全性和管理效率。这种系统通常具有以下功能和特点&#xff1a; 1. 人走断电功能&#xff1a;系统能够通过感知技术检测宿舍内是否有人员活动。当检…

Maple MapleSim 2024.2 新版本发布

Maple 2024.2 Maple 2024.2 是 Maple 2024 版本的维护更新&#xff0c;在多个方面对 Maple 2024 进行了修正和改进&#xff0c;包括&#xff1a; 可以将工作表标签页打开在新的窗口中 嵌入式组件列表增加了新的功能 GUI 组件面板图标更新 可滚动矩阵的改进 修正包含非英文字…

centos7之LVS-DR模式传统部署

介绍 优缺点以及适用场景 优点&#xff1a;能负载更多的Realserver减轻LB的压力,性能高于tun模式。 缺点&#xff1a;不支持端口转发(VIP:80必须代理RIP:80),Realserver和LVS需要在同一网段下。 适用&#xff1a;适用于大多数公司&#xff0c;也是大多数公司用的最多的模式。…

Springboot 整合 Java DL4J 实现文本分类系统

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/literature?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;…

【探索新视界】体验ONLYOFFICE:打破传统,开启文档编辑与协作新篇章

文章目录 每日一句正能量引言ONLYOFFICE 产品简介功能与特点1. 兼容性2. 实时协作3. 评论和修订4. 模板库5. 数据分析工具6. 跨平台支持7. 安全性和隐私 体验与测评1. 用户界面2. 性能测试3. 协作体验4. 移动办公5. 客户支持 邀请用户使用如何开始 ONLYOFFICE 项目介绍。关于 O…

学Linux的第五天

目录 命令解释器-shell-负责解析用户输入的命令 分类&#xff1a; type --查看命令是内置命令、外置命名、alias命令 注意 Linux 中的特殊符号 拓展 命令别名aliasalias 别名原命令 - 参数 常用的别名untar&#xff0c;wget,getpass,ping,speed,ipe,c 删除别名unalias…

谷歌被俄罗斯罚款2,500,000,000,000,000,000,000,000,000,000,000,000美元

是的&#xff01;小鹿没有写错&#xff01;你们也没有看错&#xff01; 谷歌被俄罗斯法院判决罚款$2,500,000,000,000,000,000,000,000,000,000,000,000&#xff08;注意不是卢布&#xff0c;是美元&#xff09;&#xff0c;也就是2.5万亿万亿万亿亿&#xff0c;共计36位数的罚…

Spring Cloud Sleuth(Micrometer Tracing +Zipkin)

分布式链路追踪 分布式链路追踪技术要解决的问题&#xff0c;分布式链路追踪&#xff08;Distributed Tracing&#xff09;&#xff0c;就是将一次分布式请求还原成调用链路&#xff0c;进行日志记录&#xff0c;性能监控并将一次分布式请求的调用情况集中展示。比如各个服务节…

Vision - 开源视觉分割算法框架 Grounded SAM2 配置与推理 教程 (1)

欢迎关注我的CSDN&#xff1a;https://spike.blog.csdn.net/ 本文地址&#xff1a;https://spike.blog.csdn.net/article/details/143388189 免责声明&#xff1a;本文来源于个人知识与公开资料&#xff0c;仅用于学术交流&#xff0c;欢迎讨论&#xff0c;不支持转载。 Ground…

百度如何打造AI原生研发新范式?

&#x1f449;点击即可下载《百度AI原生研发新范式实践》资料 2024年10月23-25日&#xff0c;2024 NJSD技术盛典暨第十届NJSD软件开发者大会、第八届IAS互联网架构大会在南京召开。本届大会邀请了工业界和学术界的专家&#xff0c;优秀的工程师和产品经理&#xff0c;以及其它行…

初认识构建工具

初认识构建工具Webpack & Vite 目录 前言webpack 使用步骤配置文件 _entry_output✨_loader_babel_plugin_source map 开发服务器 前言 不同于node中编写代码&#xff0c;在html、css、js中不能放心使用模块化规范&#xff0c;主要是浏览器兼容性问题&#xff0c;以及…

数据结构 ——— 向上调整建堆和向下调整建堆的区别

目录 前言 向下调整算法&#xff08;默认小堆&#xff09; 利用向下调整算法对数组建堆 向上调整建堆和向下调整建堆的区别​编辑 向下调整建堆的时间复杂度&#xff1a; 向上调整建堆的时间复杂度&#xff1a; 结论 前言 在上一章讲解到了利用向上调整算法对数组进行…

分享几款开源好用的图片在线编辑,适合做快速应用嵌入

图片生成器是指一种工具或软件&#xff0c;用于自动生成图片或图像内容&#xff0c;通常依据用户设定的参数或模板进行操作。这种工具能够帮助用户快速创建视觉效果丰富的图像&#xff0c;而无需具备专业的设计技能。 在数字化时代&#xff0c;图片编辑已经成为日常工作和生活的…

我为何要用wordpress搭建一个自己的独立博客

我在csdn有一个博客&#xff0c;这个博客是之前学习编程时建立的。 博客有哪些好处呢&#xff1f; 1&#xff0c;可以写自己的遇到的问题和如何解决的步骤 2&#xff0c;心得体会&#xff0c;经验&#xff0c;和踩坑 3&#xff0c;可以转载别人的好的技术知识 4&#xff0c;宝贵…