• 软件测试 - 概念篇


    1.什么是软件测试???
    软件测试就是软件工程师验证软件是否满足了用户的需求
    在这里插入图片描述在这里插入图片描述

    所以我们知道了:用户的需求是比较粗略的,软件需求肯定是包含了用户需求,因为软件需求是用户需求的细化,我们一般通过用户需求去转换成软件需求,然后通过软件需求变成一个具体可实现的需求文档去进行开发和测试

    在这里插入图片描述在这里插入图片描述
    概念篇这里我们需要弄懂几个问题:
    什么是需求
    什么是bug
    什么是测试用例
    开发模型和测试模型
    配置管理和软件测试

    需求

    在这里插入图片描述
    那么我们软件测试人员如何深入了解需求呢???
    从需求分析阶段就开始介入了解需求,并且站在用户的角度
    案列分析:
    用户需要进行注册 ,满足需求 进行邮箱注册
    这里是引用
    需求是测试人员进行软件测试工作的依据。

    在具体设计测试用例的时候,首先需要搞清楚每一个业务需求对应的多个软件功能需求点,然后分析出每个软件功能需求点对应的多个测试需求点,然后针对每个测试需求点设计测试用例。
    过程如下:
    业务需求—>软件功能需求点—>测试需求点—>测试用例
    在这里插入图片描述

    测试用例

    在这里插入图片描述
    通过测试用例再去细分:
    测试用例的几个步骤需要严格执行,包括测试环境( 游览器的具体版本号之类的)
    测试用例解决了我们要测什么? 怎么测的问题…
    尤其是测试环境的描述应该越详细越好,并且同样的游览器的版本号不一样导致不能注册,那么我们应该保证每个用户都可以不因为游览器版本号的区别而不能注册.
    在这里插入图片描述
    测试用例,就如同 上图给标题一样“正确的用户名密码可以成功登录邮箱”,它是一个非常模糊 和 片面的说法。
    而我们通过将其划分成 4 个部分,来将这个测试用例进行初步的划分,
    而且,划分出的这几个部分,其实也是可以进行细分的!
    划分成一个个测试点

    在这里插入图片描述测试用例 和 测试点,两者其实是一样的。
    只不过测试点,更加详细和具体。

    Bug的概念

    只有当软件需求规格说明书(软件需求文档)存在并且合理,软件的功能不符合规格说明书,就是软件错误(BUG)。
    ‘ 
    如果软件需求规格说明书不存在,而用户的需求存在,并且合理,那么,软件的功能 和 用户的需求 不相符合,就是软件错误0(BUG)。

    开发模型和测试模型

    软件开发的生命周期

    软件开发的生命周期,其实就是一个软件从无到有的过程:

    需求分析  >>计划(如何进行开发软件,规定一个范围,一个方向)  >>
      设计(正式开始设计软件的具体功能…) >>
      代码实现 >> 功能测试 >> (测试通过了)进行线上的运行维护

    开发的五大模型

    瀑布模型(Waterfall Model)

    在这里插入图片描述
    不响应需求的变化就是 不应该因为后期需求有变化就去对项目做出改变

    瀑布模型在软件工程中占有重要地位,是所有其他模型的基础框架。瀑布模型的每一个阶段都只执行一次,因此是线性顺序进行的软件开发模式。

    优点:
    1、强调开发的阶段性;
    2、强调早期计划及需求调查
    3、 强调产品测试。

    缺点:
    1、依赖于早期进行的唯一一次需求调查,不能适应需求的变化;
    2、由于是单一流程,开发中的经验教训不能反馈应用于本产品的过程;
    3、风险往往迟至后期的测试阶段才显露,因而失去及早纠正的机会。

    瀑布模型的一个最大缺陷在于:
    可以运行的产品很迟才能被看到。
    这会给项目带来很大的风险,尤其是集成的风险。
    因为如果在需求引入的一个缺陷要到测试阶段甚至更后的阶段才发现,通常会导致前面阶
    段的工作大面积返工,业界流行的说法是:“集成之日就是爆炸之日”。 
    尽管瀑布模型存在很大的缺陷,
    例如,在前期阶段未发现的错误会传递并扩散到后面的阶段,而在后面阶段发现这些错误时,可能已经很难回头再修正,从而导致项目的失败。但是目前很多软件企业还是沿用了瀑布模型的线性思想,在这个基础上做出自己的修改。例如细化了各个阶段,在某些重点关注的阶段之间掺入迭代的思想。
    在瀑布模型中,测试阶段处于软件实现后,这意味着必须在代码完成后有足够的时间预留给测试活动,否则将导致测试不充分,从而把缺陷直接遗留给用户。

    简单来说:瀑布模型,一旦是开始项目操作,中途是没有 “刹车 和 回炉” 的操作。(非常头铁)
    之所以称为 瀑布模型,你有见过瀑布的水逆流而上吗?或者说,你见过瀑布的水,流到一半静止的吗?
    采用 瀑布模型,是没有“后悔药”可以吃的

    螺旋模型(Spiral Model)

    一般在软件开发初期阶段需求不是很明确时,采用渐进式的开发模式。螺旋模型是渐进式开发模型的代表之一。
      这对于那些规模庞大、复杂度高、风险大的项目尤其适合。这种迭代开发的模式给软件测试带来了新的要求,它不允许有一段独立的测试时间和阶段,测试必须跟随开发的迭代而迭代。因此,回归测试的重要性就不言而喻了
      在这里插入图片描述
    他是不允许有单独的时间来进行测试的,所以在开发的同时也进行这测试,并且加入了大量的人力资源进行风险评估分析.
    优点:
    1、强调严格的全过程风险管理。
    2、强调各开发阶段的质量。
    3、提供机会检讨项目是否有价值继续下去。

    缺点:
    1、引入非常严格的风险识别、风险分析和风险控制,这对风险管理的技能水平提出了很高
    的要求。这需要人员、资金和时间的投入。

    增量模型 && 迭代模型

    增量开发能显著降低项目风险,结合软件持续构建机制,构成了当今流行的软件工程最佳实践之一。

    增量开发模型,鼓励用户反馈,在每个迭代过程中,促使开发小组以一种循环的、可预测的方式驱动产品的开发。
    因此,在这种开发模式下,每一次的迭代都意味着可能有需求的更改、构建出新的可执行软件版本,意味着测试需要频繁进行,测试人员需要与开发人员更加紧密地协作。

    增量通常和迭代混为一谈,但是其实两者是有区别的。
    增量是逐块建造的概念,
    例如画一幅人物画,我们可以先画人的头部,再画身体,再画手脚……

    而迭代是反复求精的概念,同样是画人物画,我们可以采用先画整体轮廓,再勾勒出基本雏形,再细化、着色。

    简单来说:
    假设我们要实现一个系统,该系统需要 4个模块 ABCD。

    增量模型: 将4个模块分为两个部分【AB,CD】,先完成 AB 模块,然后再来完成 CD 模块。【使每部分的开发联系起来】

    迭代模型:先将4个模块的基础 框架搞定,然后在这个基础上,继续完善4个部分的一些代码。【你可以理解为盖房子,先打好基础,然后再一层层完善。】
    实际上迭代开发本身就是将一个项目或者一个步骤再进行细化,这样不断地迭代,我们在分析和解决问题的时候思路比较清晰
    什么是迭代测试

    敏捷模型

    个体与交互重于过程和工具
    可用的软件重于完备的文档
    客户协作重于合同谈判
    响应变化重于遵循计划
    在每对比对中,后者并非全无价值,但我们更看重前者。
    核心思想:轻流程,轻文档,重目标,重产出,响应变化,
    在这里插入图片描述
    敏捷模型相对来说是比较重要的一种模型
    他的参与角色分成三个部分:
    1.product owner 产品经理
    2.scrum master 项目经理
    3.software testing 研发人员(包括测试人员等等)
    本身W模型是不支持敏捷开发的,因为敏捷开发是是响应需求变化的

    软件测试模型

    V模型

    在这里插入图片描述
    特点:
    1、左边每一个阶段 和 右边的阶段,都是一一对应的
    2、左边的每个阶段是右边测试每一个阶段的依据
    在这里插入图片描述
    3、它和瀑布模型一样,是串行执行。
    其实 测试V模型 就是 开发的瀑布模型的变种。
    因此,瀑布模型的缺点,V模型也有。
    1、就像瀑布一样,水(阶段)只能往下流(只能顺着执行,不可能回头)。
    2、测试介入晚,前期的问题,后期才发现,导致前期问题不能及时解决

    W模型

    在这里插入图片描述

    W 模型,也称作双V模型。
    看图说话:就是两个 V 模型 组成的。
    特点:
    1、开发一个V,软件测试一个V【双卡双待】
    换个说法:软件开发 和 软件测试 是 同步进行的。
    这样做,就解决了 V 模型的缺陷:W模型能够及时发现,并处理前期出现的问题。
    缺点:
    它仍然是 串行执行的过程,它是不支持 需求的变化。
    也就是说:W模型是不支持敏捷开发的。

  • 相关阅读:
    RabbitMQ详解(下)
    SpringCloud-Eureka注册中心
    Python(12)进程与线程
    React@16.x(51)路由v5.x(16)- 手动实现文件目录参考
    七点工具箱(安卓)
    一起看 I/O | Android 开发工具最新更新
    十、为影院添加影片及座位安排《仿淘票票系统前后端完全制作(除支付外)》
    Android基础开发-数据存储
    vue2踩坑之项目:Swiper轮播图使用
    理解浅拷贝和深拷贝以及实现方法
  • 原文地址:https://blog.csdn.net/weixin_59551524/article/details/125392569