软件测试基本概念

软件测试基本概念_第1张图片

⭐️前言⭐️

本篇文章开始,博主带领大家走入新篇章——软件测试,使得自己慢慢掌握测试开发的技能,能使得自己在职场竞争中更具竞争力。

博客主页: 【如风暖阳】
精品Java专栏【JavaSE】、【备战蓝桥】、【JavaEE初阶】、【MySQL】、【数据结构】
欢迎点赞 收藏留言评论 私信必回哟

本文由 【如风暖阳】 原创,首发于 CSDN

博主将持续更新学习记录收获,友友们有任何问题可以在评论区留言

博客中涉及源码及博主日常练习代码均已上传码云(gitee)、GitHub


请添加图片描述

内容导读

  • 1.什么是软件测试?
  • 2.调试和测试的区别
  • 3.软件测试的常见名称解释
    • 3.1 需求
    • 3.2 bug
    • 3.3 测试用例
  • 4.软件的生命周期
  • 5.开发模型
    • 5.1 瀑布模型
    • 5.2 螺旋模型
    • 5.3 增量模型和迭代模型
    • 5.4 敏捷模型
  • 6.测试模型
    • 6.1 V模型
    • 6.2 W模型

1.什么是软件测试?

最常见的理解是:软件测试就是找BUG,发现缺陷。

就像我们在刚买来一部手机或者一台电视的时候,会进行一遍检查,看看能不能正常使用,就是在“测试”。

软件测试就是验证软件产品特性是否满足用户的需求

2.调试和测试的区别

调试和测试共有以下三点的不同:

  • 1.目的不同
    • 调试:为了发现并解决软件中的缺陷
    • 测试:为了发现软件中的缺陷
  • 2.参与的角色不同
    • 调试:开发人员
    • 测试:测试人员、开发人员
  • 3.执行阶段不同
    • 调试:编码阶段
    • 测试:贯穿于软件的整个生命周期

3.软件测试的常见名称解释

3.1 需求

需求就是指满足用户期望或正式规定文档(合同、标准、规范)所具有的条件和权能,包含用户需求软件需求

用户需求就是指甲方提出的需求,该需求一般比较简略。

软件需求或者叫功能需求,会详细描述开发人员必须实现的软件功能。

公司在进行软件开发的时候,会把用户需求转化为软件需求,因为用户需求存在市场可行性和技术可行性的问题,并不一定能够实现,所以需要产品经理主刀,与其他人员共同,根据用户需求来制定软件需求,来详细的描述必须实现的软件功能,让开发人员和测试人员进一步开展工作。

软件需求是测试人员进行测试工作的基本依据(用户需求并不能直接作为测试或开发人员的基本依据,因为用户需求不一定合理、正确,需要进行用户需求的提取和分析,将其转化为软件需求,再作为进一步工作的依据)

3.2 bug

历史上的第一个BUG
1945年9月的某天,在一间老式建筑里,从窗外飞进来一只飞蛾,此时Hopper正埋头工作在一台名为Mark II的计算机前,并没有注意到这只即将造就历史事件的飞蛾。这台计算机使用了大量的继电器(电子机械装置,那时还没有使用晶体管)。突然,Mark I死机了。Hopper试了很多次还是不能启动,他开始用各种方法查找问题,最后定位到了某个电路板的继电器上。Hopper观察这个继电器,惊奇地发现一只飞蛾已经被继电器打死。Hopper小心地用镊子将飞蛾夹出来,用透明胶布贴到“事件记录本”中,写上“第一个发现虫子的实例”。Hopper的事件记录本,连同那只飞蛾,现在都陈列在美国历史博物馆中。
软件测试基本概念_第2张图片

bug的概念:

  • 当且仅当产品规格书说明是存在的并且正确,程序与规格说明之间的不匹配才是错误。
  • 当需求规格说明书没有提到的功能,判断标准最终以用户为准;当程序没有实现其用户合理预期的功能要求时,就是软件错误

3.3 测试用例

测试用例是为了实施测试而向被测试系统提供的一组集合,这组集合包含:测试环境、测试步骤、测试数据、预期结果等要素。【主要解决测什么怎么测两个问题】

以注册网易邮箱为例,体会什么是测试用例:
软件测试基本概念_第3张图片
标题:注册网易邮箱

测试环境
windows 10
Microsoft Edge 版本 107.0.1418.56 (正式版本) (64 位)

测试数据
邮箱地址:abc
密码:123456
手机号:13137197608
验证码:123

测试步骤
1.打开微软浏览器,输入网易注册地址https://mail.163.com/register/index.htm?from=163mail&utm_source=163mail
2.输入邮箱地址、密码、手机号,获取验证码并输入验证码,勾选用户协议
3.点击注册

预期结果
展现注册成功的结果页,并且使用账号可以正常登录。

围绕着软件需求来设计测试用例,解决了重复测试的问题,测试用例要保持的原则是避免用后即弃

4.软件的生命周期

软件的生命周期是指从软件产品的设想开始,到软件不再使用而结束的时间。

如果把软件看成是有生命的事物,那么软件的生命周期可以分为六个阶段,即需求分析——计划——设计——编码——测试——运行维护

  • 需求分析:分析用户需求是否合理(市场分析、技术分析),完成软件需求文档。
  • 计划:制定需求执行计划,什么时候开始、结束,耗时多久。
  • 设计:将需求细化成一个个任务,进行技术设计(设计哪些接口,采用哪些技术),产出设计文档。
  • 编码:开发人员按照需求文档以及设计文档来进行编码。
  • 测试:测试人员参考测试用例来执行测序
  • 运行维护:项目上线之后对产品进行线上的维护

5.开发模型

5.1 瀑布模型

在这里插入图片描述
瀑布模型是其他所有模型的基础框架,其特点是线性的开发流程,并不能够应对需求而发生变化,这就导致产生了测试被后置的缺陷。

测试被后置将会使得风险往往被推至后期才显露,失去了及早纠正的机会;而且必须有足够的时间预留给测试阶段,否则将导致测试不充分,从而把缺陷直接遗留给客户。

该模型适用的场景只有需求固定的小项目

5.2 螺旋模型

一般在软件开发初期阶段,需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。
软件测试基本概念_第4张图片
该模型引入了全流程的风险分析(其实相当于在瀑布模型的每个阶段后进行了风险分析),每次分析完成后都会生成一个新的原型。

该模型的适用场景:需求不确定,变化的可能性很大的大型项目。

缺陷:风险暴露的可能性与风险分析人员的能力有关,消耗一定的资金和时间

5.3 增量模型和迭代模型

增量模型把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。
软件测试基本概念_第5张图片
优势:产品能够在较短时间内尽快的交付给用户去使用(可以只有部分功能)

迭代模型是先开发一个基础版本(包含功能A、B、C),但是A、B、C功能比较简陋,接下来会在这个基础版本上对A、B、C功能进行迭代优化。

增量通常和迭代混为一谈,但是其实两者是有区别的。增量是逐块建造的概念,例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。

5.4 敏捷模型

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

在上述的《敏捷宣言》中体现了敏捷模型的特点:
轻文档,轻流程,重目标,重产出,响应变化

敏捷开发有很多种方式,其中scrum是比较流行的一种,在scrum流程中,有三个角色和五个会议

三个角色:
产品经理:收集用户的需求,编写需求文档,对产品负责
项目经理:负责召开各种会议,协调项目,为研发团队服务。
研发团队:开发人员、测试人员、ui设计人员等等。

五个会议和scrum的开发流程:
软件测试基本概念_第6张图片
scrum模型中每个迭代周期为1~4周,通常情况下为一周。

6.测试模型

在软件测试模型中有V模型W模型,下边我们来具体了解:

6.1 V模型

V模型是瀑布模型的一种演化,目的是改进软件开发的效率和结果。
软件测试基本概念_第7张图片

  • 特点:左边每一个阶段和右边的阶段一一对应,左边每个阶段是右边测试每个阶段的依据。
  • 缺点:测试后置

6.2 W模型

软件测试基本概念_第8张图片

  • 特点:双V模型,开发一个V,测试一个V,软件开发的过程和软件测试能同步进行,保证项目前期的问题能够及时被发现。
  • 缺点:虽然开发和测试是同步的,但是仍然存在着前后的线性关系,不支持敏捷模型

⭐️最后的话⭐️
总结不易,希望uu们不要吝啬你们的哟(^U^)ノ~YO!!如有问题,欢迎评论区批评指正

请添加图片描述

你可能感兴趣的:(软件测试,测试工具)