当前位置: 首页 > news >正文

【软件测试】软件测试的相关概念(面试常考)

目录

什么是软件测试

软件测试和软件开发的区别

软件测试与调试的区别

一个优秀的软件测试人员所具备的素质

什么是需求

测试用例的概念

什么是BUG

软件开发的生命周期

开发模型

瀑布模型

螺旋模型

增量模型,迭代模型

敏捷开发模型 

测试模型

V模型

W模型(双V模型)


什么是软件测试

软件测试就是验证软件的功能是否满足用户的需求,通俗的讲就是找BUG,找软件的缺陷

软件测试的特点:软件测试只是一个样本实验,具有不可穷尽性

软件测试和软件开发的区别

本质不同

  • 软件测试:软件测试是验证软件功能是否满足用户的需求
  • 软件开发:软件开发是将用户的需求采用编码的方式制作成软件(小程序,网站等) 

深度广度不同 

  • 软件测试:技能要求比较广泛(业务能力,测试手段和工具的使用,用户模型分析和理解等),但技能要求专业度不高
  • 软件开发:技能要求的专业度高,但技能要求不广泛(如C++开发,Java开发等会一个即可)

软件测试与调试的区别

一. 目的区别

  • 软件测试:是验证软件是否实现了用户的需求
  • 软件调试:是软件开发人员验证软件是否实现了他想让软件实现的功能

二. 角色区别

  • 软件测试:是由开发人员(白盒测试)和测试人员共同完成的
  • 软件调试:仅仅由开发人员完成

三. 阶段区别

  • 软件测试:贯穿了整个软件开发的生命周期(需求,计划,设计,编码,测试,运行维护)
  • 软件调试:仅仅是在开发阶段

一个优秀的软件测试人员所具备的素质

  • 综合能力:沟通能力,编程能力,学习能力,文字描述能力
  • 自动化开发能力:开发自动化脚本和工具的能力
  • 编写测试用例的能力:能够设计出高效的发现缺陷和保证产品质量的优秀测试用例
  • 具有探索性思维,发散思维,对软件测试有浓厚的兴趣并且对工作有责任感和压力

什么是需求

需求就是用户的期望或者满足合同(文档,标准,规范)所需要的条件或者权限

需求包含了两个方面:

  1. 用户需求:一般比较粗略的概括
  2. 软件需求:从用户需求转化而来,是用户需求的细化和具体实现细节

说明:软件需求是测试人员进行测试工作的基本依据

软件测试人员如何深入了解需求?

  1. 从需求分析阶段就开始介入了解需求
  2. 站在用户的角度

测试用例的概念

测试用例就是向被测试系统发起的一组集合,包含测试环境,测试数据,测试步骤,预期结果

示例 

  

设计测试用例的必要性

  • 衡量需求覆盖率
  • 可以复用
  • 具有借鉴意义
  • 可以用于回归测试
  • 防止遗漏测试的需求 

什么是BUG

当且仅当程序规格说明书(软件需求)存在并合理,如果软件功能和软件需求不符合,就说是软件错误(BUG)

当软件需求不存在,用户需求存在并合理,软件功能和用户功能不符合,就说是软件错误

软件开发的生命周期

开发模型

瀑布模型

  

特点:阶段性强,每一个阶段比较独立,看重前期的需求分析和后期的测试阶段

缺点:测试在编码后才开始介入,导致前期的问题到后期才发现,失去错误补救机会

螺旋模型

螺旋模型适合项目庞大,前期风险大,不是很明确的项目 

特点:强调每一个迭代的测试质量和风险分析,抗风险能力很强

缺点:风险管控人力物力投入多,成本较大 

增量模型,迭代模型

比如同一个系统四个模块A,B ,C,D要花两周开发完

  • 增量模型:第一周开发A,B模块,第二周开发C,D模块
  • 迭代模型:第一周开发A,B,C,D的基础功能模块,第二周开发A,B,C,D的其他功能模块

特点:抗风险能力强

说明:通常开发将两个模型结合使用,在迭代的基础上使用增量

敏捷开发模型 

特点:轻文档,轻流程,重目标,重产出,拥抱变化(用户可以随时更改需求)

敏捷开发有很多方式,scrum是比较流行的一种

scrum里的角色

scrum由产品经理(product owner),项目经理(scrum master),研发团队(team)组成

  • PO:将用户需求转化为user story
  • SM:管理整个团队,负责召开各种会议,协调项目,为研发团队服务
  • Team:由各种技能的人员组成,通过紧密协同,完成每一次迭代的目标,交付产品

scrum的基本流程

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

测试模型

V模型

  

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

缺点:瀑布模型的变种,编码后才进行测试,前期的错误后期才发现,会失去错误及时补救机会

W模型(双V模型)

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

缺点:每一个阶段都是串行的过程,一个阶段完了之后就会进行下一个阶段

V模型和W模型都不支持敏捷开发

相关文章:

  • 极光推送厂商通道(小米、华为)对接/问题排查
  • c#开发和学习(基础)
  • java agent简介
  • redis源码实践手册
  • 时间复杂度和空间复杂度❀数据结构
  • Mybatis知识总结二
  • SpringBoot之基础Web开发
  • 作为BAT大厂面试官,谈谈大厂技术面试
  • 半盖半露设计、等大设计——PCB代工厂的常见设计
  • 多线程之三(【多线程案例】单例模式+阻塞式队列+定时器+线程池)
  • PMP每日一练 | 考试不迷路-9.23(包含敏捷+多选)
  • C++ STL学习
  • 【365天深度学习训练营】第四周 猴痘病识别
  • MySQL(四)基于日志的备份与恢复
  • 【Vue五分钟】 vue练习题、面试题解答
  • Javascript编码规范
  • k8s如何管理Pod
  • nginx 负载服务器优化
  • Python十分钟制作属于你自己的个性logo
  • Terraform入门 - 3. 变更基础设施
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 那些被忽略的 JavaScript 数组方法细节
  • 小程序 setData 学问多
  • 阿里云重庆大学大数据训练营落地分享
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • # C++之functional库用法整理
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • (13):Silverlight 2 数据与通信之WebRequest
  • (动手学习深度学习)第13章 计算机视觉---图像增广与微调
  • (离散数学)逻辑连接词
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (已解决)什么是vue导航守卫
  • .FileZilla的使用和主动模式被动模式介绍
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .NET 动态调用WebService + WSE + UsernameToken
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .net的socket示例
  • 。Net下Windows服务程序开发疑惑
  • @javax.ws.rs Webservice注解
  • [ CTF ] WriteUp-2022年春秋杯网络安全联赛-冬季赛
  • []利用定点式具实现:文件读取,完成不同进制之间的
  • [AIGC] 如何建立和优化你的工作流?
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案
  • [E单调栈] lc2487. 从链表中移除节点(单调栈+递归+反转链表+多思路)
  • [Flutter]打包IPA
  • [Java安全入门]三.CC1链
  • [LeetBook]【学习日记】获取子字符串 + 颠倒子字符串顺序
  • [LeetCode]—Longest Palindromic Substring 最长回文子串
  • [LeetCode周赛复盘] 第 310 场周赛20220911
  • [Mac软件]Boxy SVG 4.20.0 矢量图形编辑器
  • [R] data.frame() creates list?
  • [SetContextPropertiesRule]{Context} Setting property 'source'
  • [Step By Step]SAP HANA创建属性视图(Attribute View)