测试流程体系

news2024/11/25 23:57:49

目录: 

  • 软件测试基本概念
  • 软件测试模型
  • 软件测试工作流程
  • 测试左移和测试右移

1.软件测试基本概念 

  • 通过手工或者工具对"被测对象"进行测试
  • 验证实际结果与预期结果之间是否存在差异

 软件测试作用

  • 通过测试工作可以发现并修复软件当中存在的缺陷,从而提高用户对产品的使用信心。
  • 测试可以降低同类型产品开发遇到问题的风险。

软件缺陷

  • 软件缺陷被测试工程师和开发工程师们称作bug
  • 软件缺陷会导致软件不能正常运行,它的存在会在一定程度上导致软件不能满足用户的需求,甚至有可能破坏或泄漏用户的重要数据 

软件测试原则

软件测试基础概念_阿瞒有我良计15的博客-CSDN博客

  • 测试显示缺陷的存在
  • 穷尽测试是不可能的
  • 测试尽早介入
  • 缺陷集群性(2/8原则)
  • 杀虫剂悖论
  • 测试活动依赖于测试内容
  • 没有错误是好是谬论 

软件测试对象

  • 需求分析阶段:需求文档、接口文档
  • 编码实现阶段:源代码
  • 系统功能使用:软件程序 

测试用例

为特定的目的而设计的一组测试输人、执行步骤和预期的结果,以便测试产品否满足某个特定需求的文档

2.软件测试模型 

V模型

软件测试V模型_阿瞒有我良计15的博客-CSDN博客

  • V模型是瀑布模型的一种改进
  • V模型标明了测试过程中的不同阶段

 

  • 需求分析:需求文档
  • 概要设计:系统架构、模块划分、模块与模块之间的接口
  • 详细设计:模块内部实现的逻辑和方法
  • 编码:用代码实现设计的内容
  • 单元测试:测试代码中最小模块是否符合详细设计
  • 集成测试:测试各个模块组成到一起后是否可以正常使用
  • 系统测试:测试已经集成在一起的产品是否符合需求文档中的要求
  • 验收测试: 测试产品是否符合用户的需求

优点

  • 既有底层测试又有高层测试。
  • 将开发阶段清楚的表现出来,便于控制开发的过程。

缺点

  • 容易让人误解为测试是在开发完成之后的一个阶段。
  • 由于它的顺序性,当编码完成之后,正式进入测试时,这时发现的一些bug可能不容易找到其根源,并且代码修改起来很困难。
  • 如果需求变更较大,导致要重复变更需求、设计、编码、测试。返工量大。
     

 W模型

软件测试W模型_阿瞒有我良计15的博客-CSDN博客

  • W模型明确表示出了测试与开发的并行关系
  • W模型中测试伴随着整个软件开发周期,并且测试的对象不仅仅是程序,需求和设计同样要测试

W模型的优缺点

优点

  • 将测试贯穿到整个软件的生命周期中,且除了代码要测试,需求、设计等都要测试。
  • 更早的介入到软件开发中,能尽早的发现缺陷进行修复
  • 测试与开发独立起来,并与开发并行。

缺点

  • 无法支持迭代的开发模型
  • 对有些项目,开发过程中根本没有文档产生,故W模型无法使用
  • 对于需求和设计的测试技术要求很高,实践起来很困难 

H模型 

  • 软件开发中需求、设计、编码等活动被分阶段执行、但是实践中,他们并不是完全串行的,它们之间更多时候是交叉进行的,更多的是迭代执行
  • 把测试活动完全独立出来,形成一个完全独立的流程,将测试准备活动和测试执行活动清晰地体现出来

 

 H模型的优缺点

优点

  • 软件测试完全独立,贯穿整个生命周期,且与其他流程并发进行。软件测试活动可以尽早准备、尽早执行,具有很强的灵活性

缺点

  • 测试就绪点分析困难
  • 对于整个项目组的人员要求非常高

软甲测试H模型是软件测试中一种测试过程模型,其名称来源于其形状类似英文字母H。该模型是一种组合了瀑布模型、V模型和敏捷开发的测试过程模型。

软甲测试H模型包含以下几个阶段:

1. 需求分析阶段:在此阶段,测试团队与业务分析人员和项目管理人员合作,理解软件需求和业务规则。测试团队通过分析需求文档、原型等,生成测试需求和测试计划。

2. 系统测试阶段:在此阶段,测试团队根据需求分析阶段的测试计划设计系统测试用例,并开始执行测试。系统测试主要用于验证整个软件系统的功能、性能和稳定性。

3. 集成测试阶段:在系统测试阶段之前,需要进行集成测试。集成测试主要针对不同模块或组件之间的集成和接口进行测试。测试团队根据系统设计和组件之间的接口规范,设计和执行集成测试用例。

4. 单元测试阶段:在集成测试阶段之前,需要进行单元测试。单元测试主要针对软件中的单个模块或函数进行测试。测试团队根据模块设计和功能规范,设计和执行单元测试用例。

5. 验收测试阶段:在系统测试和集成测试完成后,进行验收测试。验收测试是由用户或业务代表来执行的,用于验证系统是否满足业务需求和用户期望。

6. 回归测试阶段:在软件修改或新功能添加后,需要进行回归测试。回归测试是为了确保修改或添加的功能不会影响到原有的功能。测试团队重新执行先前的测试用例,并添加新的测试用例来验证软件的稳定性。

7. 敏捷循环阶段:在软甲测试H模型中,敏捷开发的理念和实践被引入,允许团队在项目开发中进行迭代和增量式的测试。测试团队与开发团队合作,共同完成每个迭代周期内的需求分析、设计、开发和测试。

软甲测试H模型的优点包括:

- 综合了瀑布模型和V模型的优点,强调需求分析和早期测试阶段,提前发现和解决问题;
- 具有较高的可控性和可估计性,减少了后期问题的风险;
- 敏捷循环阶段使得团队可以更加灵活地应对变化,并实现快速交付;

软甲测试H模型的缺点包括:

- 需要充分的沟通和协作,团队成员之间的配合和合作对于模型的成功实施至关重要;
- 模型相对较复杂,需要更多的资源和时间来进行测试规划和执行;
- 不适用于所有开发项目,需要根据团队的具体情况和项目要求进行酌情选择。

总之,软甲测试H模型是一个结合了瀑布模型、V模型和敏捷开发的综合测试过程模型,提供了全面的测试覆盖和敏捷开发的灵活性,使团队能够更好地控制质量并满足业务需求。

3.软件测试工作流程

传统测试流程

 

  • 单元测试:单元测试是针对软件中的单个模块或函数进行的测试。目的是验证单元的功能是否按预期工作。通常由开发人员编写和执行,以确保代码的正确性并尽早发现和修复潜在的问题。

  • 集成测试:集成测试是针对软件的不同模块或组件之间的集成和接口进行的测试。它旨在验证模块之间的协作和数据传递是否正确,以及是否满足设计和规范。测试团队根据组件接口规范设计和执行集成测试用例。

  • 冒烟测试:冒烟测试是一种简单的测试,用于验证软件的基本功能是否正常工作。它通常在每个新版本或构建之后进行,以确保软件在进行更详细的测试之前是可用和可靠的。冒烟测试目的是验证软件的核心功能,快速筛选出严重的问题。

  • 系统测试:系统测试是针对整个软件系统进行的测试,以验证其功能、性能和稳定性是否满足需求。测试团队会根据需求分析阶段的测试计划设计系统测试用例,并执行测试。系统测试旨在模拟最终用户的操作环境和使用情况。

  • 回归测试:回归测试是在软件修改或新功能添加后进行的测试,以确保修改或添加的功能不会影响到原有的功能。它重新执行先前的测试用例,并添加新的测试用例来验证软件的稳定性。回归测试旨在捕获由于修改引入的潜在问题。

  • 验收测试:验收测试是由用户或业务代表来执行的测试,用于验证系统是否满足业务需求和用户期望。它确保软件按照预期工作,并且能够满足用户的需求。验收测试通常发生在软件的最终阶段,以确认软件的可交付性。

 

系统测试流程

 

  • 需求分析:在系统测试流程的开始阶段,测试团队与业务分析人员和项目管理人员一起分析软件需求和业务规则。通过仔细审查需求文档、原型等,测试团队能够理解系统所需的功能和性能要求,并确保对系统需求的充分理解。
  • 测试计划:测试计划是制定整体测试策略和测试方法的重要文档。在测试计划阶段,测试团队根据需求分析和项目要求,确定测试目标、范围、时间、资源和进度等。测试计划还包括定义测试环境和提供测试的输入数据等。
  • 测试设计:在测试设计阶段,测试团队根据需求分析和测试计划,制定具体的测试策略和测试方案。测试设计包括选择合适的测试技术和方法,确定测试用例的优先级和范围,以及规划测试数据和测试环境的准备工作。
  • 用例评审:在测试设计阶段,测试用例需要经过评审来确保其质量和有效性。用例评审是测试团队和相关利益相关者共同审查测试用例的过程,以确保测试用例的准确性和完整性。评审期间,团队成员提出意见和建议,确保测试用例满足预期的测试目标。
  • 测试执行:在测试执行阶段,测试团队根据测试计划和测试设计中定义的测试用例,按照预定的测试策略和方法执行测试。测试执行包括准备测试数据和测试环境,执行测试用例,记录测试结果,以及检测和报告任何发现的问题或缺陷。
  • Bug管理:在测试执行阶段,测试团队会发现和记录测试中发现的问题或缺陷。通过使用专门的缺陷跟踪工具,测试团队能够管理和追踪缺陷的状态、修复过程和验证结果。优秀的缺陷管理可帮助团队及时解决问题并确保质量。
  • 发布维护:一旦经过充分测试并修复缺陷,系统测试阶段结束,软件可以准备发布部署。在发布维护阶段,测试团队与开发团队合作进行最终的功能测试和验证,以确保软件在生产环境中正常运行并满足用户需求。同时,团队也负责对软件进行后续维护和支持。

Bug管理流程

 

4.测试左移和测试右移

测试左移

  • 左移是往测试之前的开发阶段移
  • 测试团队在软件开发周期早期就开始介入
  • 对代码进行测试
  • 从发现bug到预防bug

测试左移-质量保障手段 

  • 代码评审(code review)
  • 代码审计
  • 单元测试
  • 自动化冒烟测试
  • 研发自测

测试右移

  • 右移是往发布之后移。
  • 产品上线后进行线上监控。

测试右移-线上监控

  • 闭环的线上问题反馈-检查-解决-更新流程
  • 更便捷的日志查看、回传服务
  • 丰富有效的log,便于问题的快速定位
  • 丰富的监控指标(例如业务异常点指标)
  • 业务监控(例如短信发送等)
  • 关键指标每日监控(服务器指标)
  • 生产数据监控(警报)

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

环状支撑佩戴,骨传导新体验:南卡OE骨传导开放式耳机

骨传导耳机究竟是“黑科技”还是“智商税”呢?我想近几年的市场反馈就能给出答案。尤其是在户外运动场景下,骨传导耳机的综合体验都要比入耳式耳机更好一些。最近国产品牌南卡推出了一款新形态的骨传导耳机,南卡OE,它通过改良耳机…

【二叉树part03】| 104.二叉树的最大深度、559.n叉树的最大深度、111.二叉树的最小深度、222.完全二叉树的节点个数

目录 ✿LeetCode104.二叉树的最大深度❀ ✿LeetCode559.n叉树的最大深度❀ ✿LeetCode111.二叉树的最小深度❀ ✿LeetCode222.完全二叉树的节点个数❀ ✿LeetCode104.二叉树的最大深度❀ 链接:104.二叉树的最大深度 给定一个二叉树,找出其最大深度…

[Leetcode] 0014. 最长公共前缀

14. 最长公共前缀 img { margin: auto; display: block } 点击上方,跳转至Leetcode 题目描述 编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ""。 示例 1: 输入:strs ["flowe…

一道有点仙的数位dp 方伯伯的商场之旅

link 大意: 思路: 先来考虑单个数字的情况 其实首先可以将题意稍微转化一下,就是移动一个石子的代价是其移动的距离。这样的话,显然我们的策略就是对于每一个石子,一次性将其移动到正确的位置,毕竟能一步…

Axure教程—选择器

本文将教大家如何用AXURE中的动态面板制作选择器 一、效果 预览地址:https://zhihp9.axshare.com 二、功能 用户点击选择框,可以显示下拉选择器,点击后选择对应项。 三、制作 1、选择框 拖入一个矩形,设置大小为16438&#xff…

macOS Ventura 13.4.1 (22F82) Boot ISO 原版可引导镜像下载

macOS Ventura 13.4.1 (22F82|22F2083) Boot ISO 原版可引导镜像下载 本站下载的 macOS 软件包,既可以拖拽到 Applications(应用程序)下直接安装,也可以制作启动 U 盘安装,或者在虚拟机中启动安装。另外也支持在 Wind…

EMC学习笔记(六)优选布线层

EMC学习笔记(六)优选布线层 1. 表层与内层走线的比较1.1 微带线(microsstrip)1.2 带状线(stripline)1.3 微带线与带状线的比较 2.布线层的优先级别 对于时钟、高频、高速、小、弱信号而言,选择合…

React封装axios请求

1、前言 因为最近在进行老系统用新框架改造,正好用到了react,就顺便整理了一下react中对axios进行封装的相关知识点和步骤。 2、如何封装 可以参考一下chat gpt给出的回答。 我大概总结一下,其实就是使用axios.create创建一个axios的实例&…

基于座位预约管理系统的设计与实现

前言: 各位小伙伴儿们端午节快乐,本篇文章为大家带来一份基于ssm技术搭建的项目,正在学习这块技术的童靴们可以体验一下哦,在资源中可获取源码 ~ 以下正文开始: 文章目录 需求分析功能模块项目架构图首页部分Controll…

存储笔记 - 整理

文章目录 第一章 存储系统introlesson 1何为数据?类型与关系 lesson 2 存储系统环境lesson 1lesson 2 Disk Drive 数据保护 RAIDlesson 1 智能存储lesson 第二章 存储网络技术与虚拟化DAS 直连式存储与 SCSIlesson 直连存储lesson: SCSI简介summary SANl…

长尾关键词有什么作用?要怎么用?

长尾关键词很多的网站都会忽略其存在,其实你不要小看长尾关键词,他将带给网站的流量也是极其可观的,所说比不上那些重点关键词的流量,但是对提升网站的权重还是有着重要的作用。 长尾关键词有什么用?长尾关键词的3…

基于spss的多元统计分析 之 因子分析(4/8)

实验目的: 1.掌握因子分析的基本思想; 2.熟悉掌握SPSS软件进行因子分析的基本操作; 3.利用实验指导的实例数据,上机熟悉因子分析方法。 实验内容: 附表的数据来自一次对液晶电视的调…

English Learning - L3 作业打卡 Lesson7 Day48 2023.6.21 周三

English Learning - L3 作业打卡 Lesson7 Day48 2023.6.21 周三 引言🍉句1: I thought the worst was over until weeks later when I saw my new legs for the first time.成分划分弱读连读爆破语调 🍉句2: I didn’t know what to expect but I wasn‘…

【C++】 Qt-认识Qt

文章目录 Qt简介Qt建立工程准备建立控制台程序建立桌面窗口程序 Qt简介 Qt(官方发音[kju:t],同音cute)是一个跨平台的C开发库,主要用来开发图形用户界面(Graphical User Interface,GUI)程序&am…

Android之 日历单选多选控件

一,效果图 1.1 单选 2.2 多选 二 实现思路 2.1 数据来源,利用原生日历Calendar,获取从本月开始的往后一年的日期,遍历月数添加全部天数据 private void initCalendarData() {Calendar calendar Calendar.getInstance();year …

Chrome(Manifest Version 3) 浏览器扩展插件基础教程

文章目录 一、简介二、核心介绍三、自定义页面背景色三、设置页面背景图(web_accessible_resources)四、设置徽章(Badge)五、桌面通知六、消息通信七、自定义右键菜单(添加、更新、删除)八、Omnibox九、浏览…

网安笔记--整合

文章目录 1 intro威胁因素 2 加密密码体制分类安全性 3 DESDES工作模式多重DES和安全性加密策略 4 RSA PKCS保密系统体制分类单向函数用处 RSAElgamal 5 SHAHASHSHA-1SHA-2 6 数字签名基本概念签名体系MAC 消息认证码 7 密码协议协议距离协议分类密钥建立协议认证建立协议认证的…

云原生监控平台 Prometheus 的相关概念及部署

1 Prometheus简介 Prometheus 是一个开源的系统监控和报警系统,在 2012 年由 SoundCloud 公司创建,并于 2015 年正式发布。2016 年,Prometheus 正式加入 CNCF (Cloud Native Computing Foundation),成为继kubernetes之后第二个在C…

Redis---集群

目录 一、集群的介绍 1.1 为什么需要集群呢? 1.2 什么是集群? 1.2 集群能干什么呢? 二、集群的算法之分片&槽位slot 2.1 什么是槽位slot? 2.2 分片 2.3 使用槽位和分片的优势 2.4 slot 槽位映射的三种算法 1、哈…

postgresql 从应用角度看快照snapshot使用,事务隔离控制不再神密

​专栏内容:postgresql内核源码分析 个人主页:我的主页 座右铭:天行健,君子以自强不息;地势坤,君子以厚德载物. 快照使用 快照是事务中使用,配合事务的隔离级别,体现出不同的可见性。…