测试复习(自用)

news2024/11/25 6:30:09

测试复习

通识/基础/概念

什么是软件测试

  • 验证软件特性是否满足用户的需求

专业名词

  • 需求

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

      • 用户需求
      • 软件需求
    • 是测试人员开展软件测试工作的依据

    • 如何让测试人员更好了解需求呢

      • 从需求分析阶段测试人员就介入(测试应当贯穿软件的生命周期)
  • bug

    • 什么是bug

      • 规格说明存在且正确的时候,程序和规格说明之间的不匹配才是错误
      • 当需求规格说明书没有提到的功能,以用户为标准判断:程序没有实现最终用户合理预期的功能要求时,就是软件错误
    • 如何描述一个bug(简单了解,笔试)

      • 标题

      • 发现bug的版本

      • 发现bug的环境

      • 发现bug的步骤

      • 期望的结果

      • 实际的结果

      • 其他

        • bug类型
        • bug等级
    • bug的级别(具体要看企业的bug定级标准文档)

      • 崩溃
      • 严重
      • 一般
      • 次要
    • bug的生命周期

      • New

        • 新发现bug,未经评审决定是否指派给开发人员修改
      • Open

        • 确认是bug,并且认为需要进行修改,指派给相应的开发人员
      • Fixed

        • 开发人员修改后标识为修改状态,有待测试人员的回归测试验证
      • Rejected

        • 认为不是bug,拒绝修改
      • Delay

        • 认为暂时不需要修改或暂时不能修改,则延后修改
      • Closed

        • 修改状态的bug,经测试人员的回归测试验证通过,则关闭bug
      • Reopen

        • 经验证bug仍然存在,则重新打开bug,开发人员重新修改
      • 具体流程

软件开发的生命周期

  • 需求分析

    • 分析用户需求是否合理(技术可行性、市场可行性)
    • 产出软件需求文档
  • 计划

    • 指定需求执行计划
    • 产出计划文档
  • 设计

    • 将需求细化成任务,进行技术设计(设计哪些接口,采用哪些技术)
    • 产出设计文档
  • 编码

    • 开发人员按照需求文档以及设计文档来进行编码
  • 测试

    • 测试人员参考测试用例,执行测试
  • 运行维护

    • 项目上线后对产品进行线上维护
  • 测试是如何贯穿软件的整个生命周期的

    • 需求分析

      • 分析需求逻辑是否合理,是否符合用户行为习惯。还要站在开发人员角度思考技术实现难度,针对技术难度来合理调整需求
    • 计划

      • 根据需求文档编写测试计划/方案
    • 设计

      • 适当了解设计,合理的进行测试用例的设计和调整
    • 编码

      • 专业的白盒测试人员可以执行单元测试,完善、细化测试用例以及调整测试计划和方案
    • 测试

      • 测试人员参考测试用例执行测试
    • 运行和维护

      • 测试往往是最了解需求的人,进行产品的演示和功能的介绍,期间记录大家的反馈建议,反馈给产品经理,成为一个新的用户需求

软件测试的生命周期

  • 需求分析

    • 站在用户的角度:需求逻辑是否正确,是否符合用户的需求和行为习惯
    • 站在开发人员的角度:需求是否可以实现,或实现起来的难度大小
  • 测试计划

    • 指定测试计划:测试工时、人力安排等
  • 测试设计、测试开发

    • 设计测试用例(经验丰富的白盒测试人员可以开始单元测试)
  • 测试执行

    • 参考测试用例来执行测试
  • 测试评估

    • 测试人员需要记录测试,做好缺陷管理,进行测试的评估

跟开发产生争执了怎么办

  • 具有批判性思维,反思是不是自己bug描述的不够清楚

  • bug等级一定要有理有据

  • 合理友好的进行沟通,站在用户的角度反问,假如你是用户,你能接受吗?

  • 不仅能够提问题,最好也能够给出解决方案

  • 组织bug评审,邀请代表参加bug评审:产品代表、开发代表、测试代表

    • 如何解决bug
    • 如何预防类似的bug

常用模型

开发模型

  • 瀑布模型

    • 在这里插入图片描述

    • 是其他所有模型的基础框架

    • 特点:线性的开发流程,不能应对需求的变化

    • 缺点

      • 测试被后置

        • 风险往往在后期的测试阶段才能被发现,因而失去了及早纠正的机会
        • 必须在代码完成后有足够的时间预留给测试活动,否则导致测试不充分,从而缺陷直接遗留给用户
      • 最大的缺陷是,产品要很迟才能被看到

    • 适用于固定的小项目

  • 螺旋模型

    • 在这里插入图片描述

    • 引入全流程的风险评估,每次分析完后后,都会生成一个新的原型

    • 适用于规模庞大、复杂度高、风险大的项目

    • 缺点:时间拉长,人力、资金耗费大

  • 敏捷模型

    • 敏捷宣言(了解)

    • scrum

      • 三个角色

        • 产品经理

          • 收集用户需求,编写需求文档,对产品负责
        • 项目经理

          • 召开各种会议,协调项目,为团队研发服务
        • 研发团队

          • 开发人员、测试人员、UI人员等
      • 五个会议

        • 发布计划会议

          • 制定出这一期要完成的stroy列表,sprint backlog
        • 迭代计划会议

          • 任务分解,划分负责人,初步工时
        • 每日例会

          • 了解项目进度,预知风险并规避
          • 产出物:可交付的软件
        • 演示会议

          • 迭代结束后,展示成果。期间记录反馈,由po整理成新的story
          • 产出物:新的user story
        • 回顾会议

          • 项目团队对本期迭代进行总结,发现不足,制定改进计划,下一次迭代继续改进,以达到持续改进的效果
      • 在这里插入图片描述

    • 特点:轻流程、轻文档、重目标、重产出

  • 增量模型和迭代模型

    • 增量模型

      • 逐块构造
      • 先画头,再画身体,再画四肢
    • 迭代模型

      • 反复求精
      • 先画轮廓,再完善其他细节

测试模型

  • V模型

    • 特点

      • 明确标注了测试的类型
      • 明确标注了测试阶段和开发阶段的关系
    • 缺点

      • 风险别推迟到测试的时候才发现,失去及早纠正的机会
      • 必须给测试留足够的时间,不然风险会遗留给用户
    • 在这里插入图片描述

  • W模型

    • 特点:测试从需求阶段就开始介入了

    • 缺点

      • 上一个阶段完成,下一个阶段才能开始
      • 开发模型和测试模型也保持着一种前后的线性关系
      • 重文档、重过程 => 不支持敏捷模型
    • 在这里插入图片描述

测试用例

测试用例

  • 解决了测什么,怎么测

  • 是为了实施测试而面向被测试的系统提供的一组集合

    • 测试环境

      • 操作系统版本
      • 浏览器版本
    • 测试步骤

    • 测试数据

    • 预期结果

  • 为什么要设计测试用例

    • 围绕软件需求来设计测试用例

      • 解决了重复测试的问题
      • 原则:避免用后即弃

设计测试用例的万能公式

  • 界面测试

    • 看得到的都要测试
  • 功能测试

  • 性能测试

    • eg登录注册的响应时间,千万人同时访问接口
  • 兼容性测试

    • 系统版本
    • 软件版本
    • 终端
    • 不同浏览器
  • 易用性测试

    • 产品是否简单易上手、方便使用
  • 安全测试

    • 针对物品来说

      • 本身是否有毒
      • 其他干扰环境下是否有毒有害
    • 针对一个软件功能来说

      • sql注入
      • xxs漏洞
      • 越权(垂直越权、水平越权)
  • 其他测试(根据测试对象的特性)

设计测试用例的方法

  • 基于需求设计测试用例

    • 需求分析
    • 需求有哪些功能呢个
    • 设计测试点
    • 设计测试用例
  • 等价类

    • 针对需求输入范围划分成若干个等价类,从其中一个等价类取出一个用例,若该测试用例通过,则认为该测试用例所在的等价类是通过的

    • 步骤

      • 确定有效等价类和无效等价类
      • 编写测试用例
    • 在这里插入图片描述

  • 边界值

    • 通常是对等价类的补充
    • 设计边界值测试用例的时候,需要加上边界值+次边界值
    • 在这里插入图片描述
  • 判定表法

    • 一种表达逻辑判断的工具

    • 为什么别人写的因果图,而你使用判定表?

      • 根据因果图画判定表,我认为画因果图很多余,而且因果图在设计测试用例的时候并没有多大意义
    • 步骤

      • 确认输入和输出条件
      • 找出输入条件和输出条件的关系
      • 画判定表
      • 根据判定表编写测试用例
    • 在这里插入图片描述

    • 适用于需要考虑输入之间的组合关系,不同的组合关系对应的输出结果不同

  • 正交表法

    • 步骤

      • 找到因素数和水平数
      • 用allpairs工具生成正交表
      • 根据正交表来编写测试用例
      • 补充测试用例
    • 正交表达式

    • 在这里插入图片描述

  • 场景设置法

    • 步骤

      • 基本事件流
      • 备用事件流
    • 在这里插入图片描述

  • 错误猜测法

    • 依赖测试人员的个人工作经验
    • 用到万能公式、弱网测试、异常测试

测试分类

按照测试对象分类

  • 文档内存兼容性,界面易用可双安

  • 界面测试(UI测试)

    • 非软件

      • 颜色
      • 大小
      • 材质
      • 形状
      • 整体是否美观
    • 软件

      • 尺寸、颜色、形状、整体适配清晰度

        • 输入框
        • 文本框
        • 滚动条
        • 按钮
        • 文字
        • 图片
  • 可靠性测试(*)

    • 可靠性 = 正常运行时间 / (正常运行时间+非正常运行时间) * 100%,一般要求达到4个9或者5个9
  • 容错性测试

    • 指系统能够处理异常,用户的操作不至于系统崩溃,从而能够提高系统的可用性
  • 文档测试

    • 通常来说是需求评审阶段,测试人员需要进行需求分析(文档测试)
  • 兼容性测试

    • 浏览器兼容性

      • Chrome
      • Firefox
      • Edge
      • Safari
    • 平台兼容性

      • PC端(Windows、Mac、Linux)
      • 移动端(安卓、苹果)
    • 自身兼容性

      • eg.Chrome软件的1~103版本
    • 其他软件兼容性

      • 其他软件的引流入口都不同
    • 数据兼容性

  • 易用性测试

    • 软件需要具备简单易上手的特性
  • 安装卸载测试

    • 移动端很容易遗漏卸载测试
  • 安全测试

    • SQL注入

    • XSS漏洞

    • 越权

      • 垂直越权
      • 水平越权
  • 性能测试

    • 资源泄露
    • 资源瓶颈(CPU、内存、网络、进程对比),采长补短
  • 内存泄露测试

    • 工具检查

      • 静态代码扫描工具
    • 人工检查

按照是否查看代码划分

  • 黑盒测试

    • 把代码看做一个黑匣子,不关心内部结构和内部特性,只关心功能是否符合产品规格说明书

    • 别称

      • 数据驱动测试
      • 功能测试
    • 常见的黑盒测试设计测试用例的方法

      • 等价类
      • 边界值
      • 判定表
      • 正交法
      • 场景法
      • 错误猜测法
  • 白盒测试

    • 检查程序内部实现、检查程序的运行状态是否符合预期

    • 别称

      • 逻辑驱动测试
      • 结果测试
  • 灰盒测试

    • 介于两者之间,既要关心内部构造和内部特性
    • 通常用在集成测试
  • 常见的测试方法有哪些?哪种用得更多?

    • 黑盒测试和白盒测试,在工作中需要根据实际情况来结合黑盒测试和白盒测试。通常来说,测试人员使用黑盒测试要多一点
  • 为什么不直接用灰盒测试?

    • 灰盒测试没有白盒测试详细、完整,没有黑盒测试覆盖产品范围广,所以灰盒测试不能取代黑盒测试和白盒测试。
    • 黑盒测试可以取代灰盒测试,但是不建议,需要消耗很大的代价

按照开发阶段划分

  • 单元测试

    • 针对系统最小单元进行测试
    • 最小单元是人为规定的
  • 集成测试

    • 完成单元测试后,将模块和模块之间集成,按照功能来进行测试
  • 冒烟测试

    • 由测试人员来执行,检查系统主要功能/流程是否正常,评估软件/系统是否具备可测性的条件/标准
  • 系统测试

    • 集成测试完成后,测试人员准备项目环境,将程序看成一个整体,对程序/系统进行系统测试,保证系统功能符合产品规格说明书的要求
  • 回归测试

    • 对历史版本/功能进行测试,保证功能是符合要求的
    • 随着功能迭代越来越多,版本越来越多,回归测试的难度相对于来说要大一些,需要借助自动化测试来进行回归测试
  • 验证测试

    • 通常是用户来进行验收测试,目的就是为了验证产品/程序是否符合用户的需求。实际上主要是由产品/运营来进行验收

思维导图总结

需要pdf可以评论区d
在这里插入图片描述

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

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

相关文章

【Mysql】基础入门篇

文章目录 什么是数据库见见数据库服务器、数据库、表之间的关系数据逻辑存储MySQL架构SQL分类存储引擎 什么是数据库 存储数据用文件就可以了,为什么还需要数据库,文件保存数据有以下几个缺点: 文件的安全性问题 文件不利于数据查询和管理 文…

五年后,你是什么档次

每晚一到两篇的阅读 1.认清现实,她就是喜欢钱 2.不要再找理由,自卑才是你最大的动力 3.提高自己的任性指数 4.尽量把钱花在有营养的地方 5.不要成为一条被溺死的鱼 6.总有一天,卫生纸比钞票值钱 7.穷忙的人,不要开Toyota 8.目标就…

easypoi模板导出文件,支持Liunx系统(自用)

springboot使用easypoi通过使用模板导出文件 第一步:导入poi以及easypoi的maven坐标 首先&#xff0c;easypoi是依赖于Apache的poi实现的&#xff0c;因此需要先引入poi <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifac…

智慧加油站解决方案,提高加油区和卸油区的安全性和效率

英码科技智慧加油站解决方案是一个综合应用了AI智能算法的视觉分析方案&#xff0c;旨在提高加油区和卸油区的安全性和效率。 加油区算法&#xff1a; 吸烟检测&#xff1a;通过AI算法分析视频流&#xff0c;检测是否有人在加油区域吸烟&#xff0c;以防止火灾风险。 打电话…

Web Scoket简述

Web Socket 简介 初次接触 Web Socket 的人&#xff0c;我们已经有了 HTTP 协议&#xff0c;为什么还需要另一个协议&#xff1f;它能带来什么好处&#xff1f; 因为 HTTP 协议有一个缺陷&#xff1a;通信只能由客户端发起。http基于请求响应实现。 &#xff08;准确来说HTTP…

使用Cloudflare Zaraz 可让同意管理变得简单明了

视您的居住地而定&#xff0c;在首次造访网站时&#xff0c;可能会要求您同意使用Cookie。如果您曾经点选过「核准」以外的其他选项&#xff0c;您就会注意到&#xff0c;关于应该或不应该允许哪些服务使用Cookie 的选项清单可能非常长。这是因为网站通常会整合许多第三方工具进…

陕西省赛2023-部分Reverse复现

目录 我的upx -d怎么坏了 动调脱upx壳&#xff1a; babypython BadCoffee ob混淆&#xff1a; 我的upx -d怎么坏了 打开附件&#xff0c;发现是upx壳&#xff0c;应该是修改了区段名或者特征码 但是修改过还是不对.....(哭.jpg)应该还是改了其他 好学长告诉我直接动态调试…

【Matter】Nordic Mattter(开发大纲)

nRF Connect SDK 支持Mattter Nordic提供的Matter用户指南 子页面&#xff1a; Matter概况开始使用Matter如何创建 Matter 最终产品 Matter网络拓扑结构 Thread&#xff1a;Thread是一种开放的低功耗无线通信协议&#xff0c;旨在为物联网设备提供安全、稳定、高效的IPv6连接。…

混合动力汽车耐久测试

一 背景 整车厂可通过发动机和电机驱动的结合为多款车型提供混合动力驱动技术。汽车集成电机驱动可大大减少二氧化碳的排放&#xff0c;不仅如此&#xff0c;全电动驱动或混合动力驱动的汽车还将使用户体验到更好的驾驶感受&#xff0c;且这种汽车可通过电动机来实现更快的加速…

机器学习 | 降维问题

目录 一、主成分分析 二、奇异值分解 2.1 奇异值分解原理 2.2 奇异值分解实践 三、特征值与特征向量 一、主成分分析 主成分有如下特征&#xff1a; 每个主成分是原变量的线性组合&#xff1b;各个主成分之间互不相关&#xff1b;主成分按照方差贡献率从大到小依次排列&…

【诗视野文学社】五一特刊|本期诗人:胭脂茉莉 李本 薛宏 文爱艺 唐根金 王宁 迪夫 东楠灵

【诗视野文学社】五一特刊 本期诗人&#xff1a;胭脂茉莉 李本 薛宏 文爱艺 唐根金 王宁 迪夫 东楠灵 脂茉莉简介&#xff1a;刘彦芹&#xff0c;女&#xff0c;作家、诗人&#xff0c;江苏人&#xff0c;年少习诗&#xff0c;评论及随笔见诸媒体及报刊&#xff0c;诗歌被选入海…

中国人民大学与加拿大女王大学金融硕士引领你走出职场困境,勇往直前!

走到一定职位时&#xff0c;想更进一步基本无望&#xff0c;到了自己事业的瓶颈期。从底层一路冲到中层靠的是能力&#xff0c;靠的是忠诚&#xff0c;靠的是勤奋&#xff0c;而再向上走&#xff0c;该凭借什么&#xff0c;完全找不到方向。而那些极个别的人却在自己看不到的地…

基于PySpark的10亿级数据集LAION-5B元数据快速处理实践(全文分享)

推荐语 多模态大模型训练如火如荼展开&#xff0c;但以LAION-5B为代表的大规模多模态数据集获取却成了一个令人头疼的问题。 OpenDataLab两位工程师在浦数 AI Talk做了非常实用的LAION-5B下载经验分享&#xff0c;我们整理了其演讲内容、Parquet文件、图片下载工具&#xff0…

Hive执行计划之一文读懂Hive执行计划

目录 文章目录 概述1.hive执行计划的查看2.学会查看Hive执行计划的基本信息3.执行计划步骤操作过程4.explain extended 概述 Hive的执行计划描述了一个hiveSQL语句的具体执行步骤&#xff0c;通过执行计划解读可以了解hiveSQL语句被解析器转换为相应程序语言的执行逻辑。通过…

软件测试人员迷茫之中如何找到职业发展的方向?

出现迷茫或焦虑的原因是什么&#xff1f; 也许每个人的原因不一样&#xff0c;但不外乎是下面这些原因叠加的结果。 1、敏捷和DevOps开发模式的推行&#xff0c;虽然20年的历史是否已经证明“敏捷已经失败了” 暂且不管&#xff0c;但敏捷/DevOps之风刮的还是很厉害&#xff0c…

每日一练 | 华为认证真题练习Day53

1、现在有以下10.24.0.0/24&#xff0c;10.24.1.0/24&#xff0c;10.24.2.0/24&#xff0c;10.24.3.0/24四个网段&#xff0c;这四个网段可以汇总为以下哪个网段&#xff1f;&#xff08;多选&#xff09; A. 10.24.0.0/23 B. 10.24.1.0/23 C. 10.24.0.0/22 D. 10.24.0.0/2…

Window环境rabbitmq安装教程

首先我们需要取官网下载对应的两个安装包 第一个是rabbitmq安装包路径在括号里&#xff08;Installing on Windows Manually — RabbitMQ&#xff09; 我们选择window下载即可。 下图是下载的样子&#xff0c;确认是这两个就没问题了 第二个是erlang&#xff08;http://erlang…

上海市计算机学会竞赛平台五月月赛题目汇总

我又来了&#xff01; 爆切了一大堆没用的水题后&#xff0c;我终于来发题解啦&#xff01;&#xff01;&#xff01; T1原题https://iai.sh.cn/problem/792 我们考虑通过计算最长上升连续自然数串&#xff08;是这么叫的吗&#xff09;来获取答案 可以开两个数组 和 来计…

从飞书妙记秒开率提升,看火山引擎A/B测试在研发场景的应用

作者&#xff1a;DataTester 用户体验是决定互联网产品能否长久生存的关键&#xff0c;每一个基于产品功能、使用和外观的微小体验&#xff0c;都将极大地影响用户留存和满意度。 对于企业协作平台飞书而言&#xff0c;用户体验旅程从打开产品页面的一瞬间就已开始&#xff0c;…

如何安装多个node版本(使用nvm)

1、卸载之前安装的所有node 2、下载nvm安装包&#xff0c;下载地址https://nvm.uihtm.com/ 3、安装nvm 4、打开cmd&#xff0c;运行命令 nvm install node版本号&#xff0c;安装对应版本的node 5、打开nvm的安装路径&#xff0c;可以看到安装的对应的node版本的文件夹 6、若有…