测试:概念篇

2023-11-04

目录

简单介绍测试

我们先简单的介绍一下测试工程师

简单来看看测试和开发的区别

测试的基本概念

什么是需求

BUG 的概念

测试用例

什么是测试用例?

为什么有测试用例

测试周期

开发模型

瀑布模型:

螺旋模型:

敏捷软件开发

V 模型

W 模型(双V 模型)


本章开始我们来开始了解测试。

简单介绍测试

我们先简单的介绍一下测试工程师

测试工程师,软件质量的把关者,工作起点高,发展空间大。我国的软件测试职业还处于一个发展的阶段,所以测试工程师具有较大发展前景。

传统的软件行业还是以软件测试工程师为主,但是在新兴的互联网行业大多还是以QA来命名这个职位,也就是质量保证 ----百度百科

测试工程师其主要职责就是确保程序不会出粗(检测程序质量)。

简单来看看测试和开发的区别

难易程度 开发广度小,专业度高。测试广度大,专业度低
工作环境 基本类似
薪水中小企业总体比研发低,自动化等专业测试领域和研发基本无差距。大厂研发测试基本无差别

发展前景 自动化测试、安全测试等领域发展前景和研发基本一致。
繁忙程度 敏捷模式下差距不大,产品发布前压力比较大
技能要求 测试要求更广泛:业务能力,设计和架构分析能力,测试手段和工具使用,用户模型分
析和理解,编程能力

总之呢,二者差别不大。

软件测试与调试的区别:

目的不同:

  • 调试(Debug):确保程序做了程序员想它做的事情
  • 测试(Testing):确保程序解决了它该解决的问题

参与角色不同:

  • 测试由测试人员和开发人员来执行,黑盒测试主要由测试人员完成、单元/集成测试主要是由开发人员执行。
  • 调试由开发人员完成。

执行的阶段不同:

  • 测试贯穿整个软件开发生命周期
  • 调试一般在开发阶段

ok,测试先介绍到这里,其余的可以上网查查,我这里也是上网去查的。

我们本章的重点在于,认识测试的基本概念,有助于我们更快的融入测试这个团队中去。

测试的基本概念

什么是需求

需求的概念:

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

在绝大多数公司,需求分为两部分:

  • 用户需求
  • 软件需求

用户需求

可以简单理解为甲方提出的需求,如果没有甲方,那么就是终端用户使用产品时必须要完成
的任务。该需求一般比较简略

软件需求

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

大部分公司在进行软件开发的时候会把用户需求转化为软件需求。开发人员和测试人员工作的直接依据就是软件需求。

软件需求规格说明书:

BUG 的概念

bug 的英译为:虫子;bug的由来:bug的由来 (baidu.com)

软件错误的定义:

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

测试用例

什么是测试用例?

测试用例就是一组集合:测试环境,测试数据,预期结果,操作步骤,等等

比如在 chrome 浏览器测试Leetcode 题:

测试环境:chrome 浏览器

测试数据:Leetcode 出题数据

预期结果:通过率 100%

操作步骤:写代码,提交

等等.......

为什么有测试用例

  • 测试用例提高了测试人员的工作效率(降低了工作人员的重复性问题)
  • 测试用例是建立自动化测试的基础

测试周期

人有生命周期,软件有生命周期,测试也有生命周期。

人的生命周期就是:出生 ~ 死亡

测试的生命周期:需求分析 -> 计划 设计 ->编码 ->测试->运行维护

我们来一一分析:

  1. 需求分析:需求分析是否合理,需求是否完善
  2. 计划:交给谁完成开发,谁测试,什么时候开始,什么时候结束
  3. 编码:写代码
  4. 测试:进行测试,并提交测试报告
  5. 如果产品上线后,出现问题,测试人员要协助开发人员定位问题,解决问题。

开发模型

来简单介绍几个测试模型

瀑布模型:

制定周密计划。1970年,温斯顿·罗伊斯(WinstonRoyce)提出,直到80年代早期,它一直是唯一被广泛采用的软件开发模型。
采用瀑布模式的项目从最初的构思到最终产品要经过一系列步骤。每一个步骤结束时,项目小组组织审查,并决定是否进入下一步。如果项目未准备好进入下一步,就停滞下来直到准备好。

如图:

特点
从测试的角度看来,瀑布模式比截至到目前为止的其他模式更有优势。
瀑布模式所有一切都有完整细致的说明。当软件提交到测试小组时,所有细节都已确定并有文档记录,而且实现在软件之中。由此,测试小组得以制定精确的计划和进度。
测试对象非常明确,在分辨是功能还是缺陷上也没有一点问题。
在瀑布模型中,测试被认为是在软件开发过程的后期阶段进行的“一次性”活动,这带来一个巨大的缺点,因为测试仅在最后进行,所以一些根本性问题可能出现在早期,但是直到准备发布产品时才可能发现。

螺旋模型:

如图:

特点
该模式发现问题早、成本低的特点,可以算做相当好的开发模式。
软件测试员喜欢该模式。因为通过参与最初设计的设计阶段,可以尽早地影响到产品,可以把产品的来龙去脉弄得很清楚;并且在项目末期,不至于最后一分钟还在匆匆忙忙地进行全面测试。软件测试员的测试一直都在进行,所以最后一步只是一个验证表面所有部分都没有问题。

敏捷软件开发

2001年初,在犹他州的Snowbird,由于看到很多软件开发团队陷入了不断增长的过程的泥潭,一批业界专家聚集在一起概括出了一些可以让软件开发团队具有轻量化、快速工作、响应变化能力的价值观和原则,他们称自己为“敏捷联盟”。
敏捷联盟在随后几个月,他们创建了一份价值观声明,也就是敏捷联盟宣言。这不是一份抽象的方法论集合,并没有提供任何死板僵化的开发方法和复杂的技术结构层次,而更像是一份针对客户和开发个体的箴言警句集。

敏捷宣言:

敏捷开发的核心思想是:以人为本,适应变化。

敏捷开发提倡迭代式和增量式的开发模式,并强调测试在其中的重要作用。

绿色部分很重要,但是敏捷软件中,更加注重前面部分。

V 模型

如图:

优点

  1. V模型明确地将测试分为不同的级别或阶段。
  2. 每个阶段都与开发的各阶段相对应。
  3. V模型的测试策略包括低层测试和高层测试,低层测试是为了源代码的正确性,高层测试是为了整个系统满足用户的需求。

缺点

  1. 测试是开发之后的一个阶段。实际应用中容易导致需求阶段的错误一直到最后系统测试阶段才被发现。
  2. 测试的对象就是程序本身。忽视了测试活动对需求分析,系统设计等活动的验证和确认的功能,直到后期的验收测试才被发现。

W 模型(双V 模型)

如图:

优点

  1. W模型从V模型演化过来,实际上开发是V,测试是并行的V,测试与开发同步进行,有利于尽早地全面的发现问题。
  2. 测试伴随整个软件开发周期。
  3. 测试的对象不仅仅是程序,需求、设计等同样要测试。

缺点

  1. W模型中,需求、设计、编码等活动被视为串行的,同时,测试和开发活动也保持着一种线性的前后关系,上一阶段完全结束,才可正式开始下一个阶段工作。这样就无法支持迭代的开发模型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

测试:概念篇 的相关文章

  • Jmeter 数据库压力测试

    一 jmeter本地数据库压力测试 1 将JMeterPlugins Extras jar和JMeterPlugins Standard jar放到apache jmeter 3 0 lib ext目录下 2 在本地打开ServerAgen
  • 超详细!Jmeter性能测试(二)

    Jmeter 性能测试 二 关联 正则表达式提取器和JSON Extractor提取器 接入上篇博文继续 上篇地址 https blog csdn net weixin 44954642 article details 103054387
  • Fortify 代码扫描安装使用教程

    前言 Fortify 能够提供静态和动态应用程序安全测试技术 以及运行时应用程序监控和保护功能 为实现高效安全监测 Fortify具有源代码安全分析 可精准定位漏洞产生的路径 以及具有1分钟1万行的扫描速度 Fortify SCA 支持丰富
  • 【建议收藏!】APP UI自动化测试,思路全总结在这里了。

    首先想要说明一下 APP自动化测试可能很多公司不用 但也是大部分自动化测试工程师 高级测试工程师岗位招聘信息上要求的 所以为了更好的待遇 我们还是需要花时间去掌握的 毕竟谁也不会跟钱过不去 接下来 一起总结一下APP UI自动化测试的思路吧
  • Jmeter接口测试+压力测试

    jmeter是apache公司基于java开发的一款开源压力测试工具 体积小 功能全 使用方便 是一个比较轻量级的测试工具 使用起来非常简单 因为jmeter是java开发的 所以运行的时候必须先要安装jdk才可以 jmeter是免安装的
  • 自动化测试——接口测试

    一 接口分类 1 内部接口 测试被测系统各个子模块之前的接口 或者测试被测系统提供给内部用户系统使用的接口 2 外部接口 被测系统调用外部的接口 系统对外提供的接口 接口测试重点 检查结论参数传递的正确性 输出结果的正确性及对各种异常情况的
  • Python自动化测试 软件测试最全教程(附笔记),看完就可就业

    最近看到很多粉丝在后台私信我 叫我做一期Python自动化测试的教程 其实关于这个问题 我也早就在着手准备了 我录制了一整套完整的Python自动化测试的教程 都上传在B站上面 大家有兴趣的可以去看一下 Python自动化测试 手把手教你做
  • 字符串匹配算法总结

    转自 http blog csdn net zdl1016 archive 2009 10 11 4654061 aspx 我想说一句 我日 我讨厌KMP KMP虽然经典 但是理解起来极其复杂 好不容易理解好了 便起码来巨麻烦 老子就是今天
  • [ASP.NET MVC 小牛之路]05 - 使用 Ninject

    在 ASP NET MVC 小牛之路 系列上一篇文章 依赖注入 DI 和Ninject 的末尾提到了在ASP NET MVC中使用Ninject要做的两件事情 续这篇文章之后 本文将用一个实际的示例来演示Ninject在ASP NET MV
  • 008-黑盒测试和白盒测试的优缺点

    黑盒测试和白盒测试的优缺点 黑盒测试的优点有 比较简单 不需要了解程序内部的代码及实现 与软件的内部实现无关 从用户角度出发 能很容易的知道用户会用到哪些功能 会遇到哪些问题 基于软件开发文档 所以也能知道软件实现了文档中的哪些功能 在做软
  • 测试:性能测试

    一 性能测试 性能测试是一种评估软件 系统或服务在特定条件下性能的过程 性能测试有助于确定系统的响应时间 吞吐量 可扩展性 稳定性和资源消耗等关键指标 一 响应时间 响应时间 Response Time 是性能测试中的一个重要指标 用于衡量
  • Jmeter 简单的压力测试!

    今天我们一起利用Apache Jmeter 一种接口测试工具 来进行压力测试学习 压力测试主要目的是测试负载均衡的实现效果 安装Jmeter这里就不做阐述了 上网下载个最新版就可以了 因为Jmeter是由JAVA语言开发的 所以安装之前先把
  • 第三方软件验收测评在项目验收中的重要性

    CMA CNAS第三方检测报告 软件从最简单的家用电冰箱到工业生产 涉及方方面面 以前软件中的问题只是个人重启一下机器的小事情 但如今软件已在大型工业中发挥越来越大的作用 软件安全与质量的隐患已可能对人身安全和环境造成威胁 软件工程 的总目
  • 广州软件第三方测试报告需要盖CNAS\CMA吗?怎么取费?

    CNAS CMA资质 1 CMA资质标识 根据报告接收方要求 第三方测试报告上是否加盖CMA标识 第三方测试机构执行标准为GB T25000 51和GB T25000 10标准 2 CNAS标识 ILAC MRA国际互认标识 通常第三方测试
  • unittest自动化测试断言方法的介绍

    断言如同在测试用例上 类似于预期结果与实际结果是否一致 如果一致则表示测试通过 Assert断言 很好的用于测试结果判断上 更灵活的对预期结果和实际结果进行对比 下面简单的介绍一下unittest的Assert断言 unittest中基础的
  • 大厂测试员为了不加班,降薪去事业单位,半年后:还不如当测试员?!

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读1 9k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • JMeter 性能测试基本过程及示例

    jmeter 为性能测试提供了一下特色 jmeter 可以对测试静态资源 例如 js html 等 以及动态资源 例如 php jsp ajax 等等 进行性能测试 jmeter 可以挖掘出系统最大能处理的并发用户数 jmeter 提供了一
  • wireshark抓包工具的使用

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 交流讨论 欢迎加入我们一起学习 资源分享 耗时200 小时精选的 软件测试 资料包 软件测试学习教程推荐 火遍全网的 软件测试 教程 前言 wireshark是非常流行的网
  • 2024几个测试接口的好工具,效率加倍~

    作为一名后端程序员 一定要对自己写的接口负责 保证接口的正确和稳定性 因此 接口测试也是后端开发中的关键环节 但我相信 很多朋友是懒得测试接口的 觉得这很麻烦 一般自己写的接口自己都不调用 而是直接甩给前端或者其他调用方去验证 出了问题再改
  • Mockito3.x详解

    目录 Mockito 1 简单示例 2 打桩测试 3 参数匹配器 4 调用次数验证 5 通过打桩为无返回值函数抛出异常 6 验证调用顺序 7 验证从未发生过的交互

随机推荐

  • C++继承和多态

    C 继承和多态 继承 继承的本质 代码的复用 在基类中给所有派生类提供统一的虚函数接口 让派生类进行重写 然后就可以使用多态了 类和类的关系 a part of 一部分关系 继承 a kind of 一种的关系 继承引入了一些概念 基类 父
  • es6~解构赋值

    ES6允许按照一定模式 从数组和对象中提取值 对变量进行赋值 这被称为解构 以前 为变量赋值 只能直接指定值 let a 1 let b 2 let c 3 ES6 允许写成下面这样 let a b c 1 2 3 上面代码表示 可以从数组
  • 微信小程序实现附件(图片/视频)上传及附件(图片/视频)预览

    微信小程序的图片 视频上传功能 小程序官网是提供了相关的API语法 本例使用了 wx chooseMedia 选择或拍摄图片 视频附件 通过 wx uploadFile 方法上传至服务器 在需要的地方将服务器存储的附件地址查询出来提供展示预
  • 分糖果(c++)

    传送门 这道题真是简单到不能再简单 思路 判断L n是否小于R N 如果是 输出n 1 最大余数 否则输出R N 余数尽量大 因为L N R N 且L lt R 本题代码最多10行 include
  • MSVCRTD.lib(crtexew.obj) : error LNK2019: 无法解析的外部符号 _WinMain@16,该符号在函数 ___tmainC

    一 问题描述 MSVCRTD lib crtexew obj error LNK2019 无法解析的外部符号 WinMain 16 该符号在函数 tmainCRTStartup 中被引用 Debug jk exe fatal error L
  • 两个C++编译异常及解决方法-does not name a type和field `XX' has incomplete type

    两个C 编译错误及解决办法 does not name a type和field XX has incomplete type 编译错误一 XX does not name a type 编译错误二 field XX has incompl
  • CH1-数字逻辑基础

    文章目录 一 数制和码制 1 1 数字量和模拟量 1 2 数制和码制 一 数制 二 数制转换 三 码制 二 逻辑代数中的基本运算 与门 或门 非门 与非门 或非门 与或非门 异或门 同或门 三 基本和常用公式 3 1 基本公式 3 2 常用
  • 通过ribbon 根据服务名获取所有服务实例的IP和端口列表

    代码使用SpringCloud版本E3 业务场景 今天遇到一个业务场景 要求根据服务名获取当前微服务集群中所有的对应服务实例的IP和端口 通过分析源码推算出了写法 原理简述 如果代码中引入了spring cloud netflix core
  • Spring Boot 集成 WebSocket

    假设有这样一个场景 服务端的资源经常在更新 客户端需要尽量及时地了解到这些更新发生后展示给用户 如果是 HTTP 1 1 通常会开启 ajax 请求询问服务端是否有更新 通过定时器反复轮询服务端响应的资源是否有更新 ajax 轮询 在长时间
  • win下nacos-2.2.2搭建开发环境(3种模式)

    nacos安装模式 单机模式 Derby 这种模式是极简模式 数据没法持久化存储 适合开发环境 单机模式 MySQL 这种模式支持数据持久化 数据会存储到MySQL中 适合生产环境 集群模式 这种模式适合生产环境并且服务节点个数较多 不存在
  • 导入android project到 eclipse 出现Unable to resolve target 'android-8'的错误

    今天导入一个Android的例子程序 出现了Unable to resolve target android 8 的错误 刚开始以为是没导入包或者是phoneGap没配置好 可是折腾了好久还是报错 最后google之后才发现原来是ADK版本
  • node—第三方模块之mysql模块

    mysql模块 专门用来连接mysql数据库 2
  • [每日两题系列]刷算法题咯~~

    今日题目 从尾到头打印链表 移除重复节点 本系列所选题目均来自力扣或者牛客网站 所选题目主要是以其中的简单题为主 中等题为辅 包含少数困难题 原因是 本人目前能力还不够 开展这个系列的目的是督促自己 在暑假的时间里也要保持有一定的刷题量 拒
  • leetcode刷题(10.8总结)

    1 移除链表元素 题目描述 https leetcode cn problems remove linked list elements class Solution def removeElements self head ListNod
  • mysql表设计----列类型介绍

    author skate time 2012 02 18 mysql表设计 列类型介绍 在我们设计数据库时一些经验 合理的评估表的增量 预计大小 分库分表 整库表的数量 为了方便维护与性能 mysql库一般500张表以里 等 从基本的说起
  • unity 最新场景加载SceneManager.LoadScene的用法

    摘自 http www heyclock com archives 708 随着unity的不断更新 你是否发现之前的场景加载 Application LoadLevel 已经过时了呢 下面我们来介绍信的场景加载的用法 1 2 3 4 5
  • vue项目video、img配合canvas截图及资源跨域处理

    解决 VUE项目video img截图及资源跨域处理 视频截图 跨域处理 视频截图 代码如下
  • Imagination官方信息速递2023年8月期

    白皮书下载 通过Photon架构创建身临其境的图形体验 2023 年 Imagination 将基于 PowerVR Photon 架构的光加线速集群 RAC 的演进引入 IMG DXT 图形处理单元 GPU IMG DXT GPU 不仅通
  • 第十五节课 使用Samba或NFS实现文件共享及DNS域名解释服务

    这节课主要讲解了Samba文件共享服务和NFS网络文件系统配置及使用 autofs自动挂载服务 DNS域名解释服务及bind服务程序配置等
  • 测试:概念篇

    目录 简单介绍测试 我们先简单的介绍一下测试工程师 简单来看看测试和开发的区别 测试的基本概念 什么是需求 BUG 的概念 测试用例 什么是测试用例 为什么有测试用例 测试周期 开发模型 瀑布模型 螺旋模型 敏捷软件开发 V 模型 W 模型