软件测试_笔记(完整版)

2023-11-07

软件测试

概述

程序+文档+数据=软件

狭义的软件测试定义:为发现软件缺陷而执行程序或系统的过程

广义的软件测试定义:人工或自动地运行或测定某系统的过程,目的在于检验它是否满足规定的需求或弄清预期结果和实际结果间的差别

为什么要做软件测试

  • 发现软件缺陷
    • 功能错
    • 功能遗漏
    • 超出需求部分(画蛇添足)
    • 性能不符合要求
  • 软件质量高低:是否符合用户习惯、符合用户需求

测试的任务

  • 找出
  • 定位
  • 修改
  • 修改后要做回归测试,对已修改的部分进行再次的测试,避免引入新的错误

测试用例的定义和组成部分

  • 测试用例是为特定的目的而设计的一组测试输入、执行条件和预期的结果。测试用例是执行的最小实体。简单地说,测试用例就是设计一个场景,使软件程序在这种场景下,必须能够正常运行并且达到程序所设计的执行结果。
  • 包含
    • 用例ID
    • 用例名称
    • 测试目的
    • 测试环境
    • 前提条件
    • 测试步骤
    • 预期结果
    • 其他信息

一个好的高质量的测试用例在于能发现至今未发现的错误,一个成功的测试是发现了至今未发现的错误的测试(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

两个方向

  • 找错误,反向思维。
  • 证明能正常工作,正向思维。
  • 目前的方法出发点一般是“找错误”,因为没法证明软件是正确的。

用户需求

要求(用户想要) 需求(用户目的) 需要(用户内在欲望)
牙膏 清洁牙齿 个人魅力(个人外表整洁)

什么时候停止测试

  • 继续测试没有产生新的失效
  • 继续测试没有发现新缺陷
  • 回报很小
  • 以达到要求的覆盖
  • 无法考虑新的测试用例(若已遵循测试规则和指导方针,则可以选择)

测试过程模型

缺陷具有放大的特点,随着阶段的推进发现bug的成本会指数型上升,所以并不是代码级的测试才叫测试,而是开发过程各个阶段越早开始测试越好。

  • 瀑布模型:需求分析->设计(概要、详细)->编程->测试(单元、集成、系统)->维护
  • V模型(瀑布-改):在软件开发的生存期,开发活动和测试活动几乎同时的开始,如概要设计阶段结束后集成测试的测试用例就出来了、详细设计阶段结束后单元测试的测试用例也就出来了等
  • W模型(V模型更加细化、每步都加测试,边造软件边进行测试):需求分析加了需求测试、概要设计加了功能测试、详细设计加了设计测试、编码加了单元测试、集成加了集成测试、确认加了确认测试、验收加了系统测试
  • H模型:无实际意义,仅说明可以独立测试

软件测试的原则

  • 所有的测试都应追溯到用户的需求
  • 尽早地和不断地进行软件测试(缺陷具有放大的特点,测试成本随阶段深入而上升)
  • 8-2原则
    • 测试中发现的错误80%很可能起源于程序中的20%
    • 提前测试可发现80%,系统测试找出剩余bug的80%(总体的16%),最后的4%可能只有用户大范围长时间使用后才暴露出来
    • 80%的工程用在20%的需求上(即关键需求)
  • 软件缺陷的寄生虫性:找到的缺陷越多说明软件遗留的缺陷越多
  • 避免自己测试自己的程序
  • 回归测试:避免引入新的错误

软件测试流程

制定测试计划->测试设计->测试开发->测试执行->评估测试

注意

  • 测试不是开发后期的一个阶段
  • 测试入门其实稍容易,但要求技术一样高
  • 测试多数情况下不能覆盖所有输入
  • 不要“有时间多测,没时间少测”
  • 软件测试不止是测试人员的事,也是开发人员的事
  • 调试和测试不一样
  • 测试绝非只运行一下软件看结果对不对

L10N:本地化测试

I18N:国际化测试

黑盒测试

等价类划分与边界值分析

如何划分有效和无效等价类(一些常用原则)

  • 如果一个变量在某一个范围内,给它一个有效等价类两个无效等价类
  • 如果一个变量取值在某一个集合范围内,可在集合内取一个有效等价类在集合外取一个无效等价类
  • 如果一个变量的条件是“必须怎样”、“一定会是怎样”则去一个值满足“必须要”的条件再取多个不满足的从多个角度去违背这个条件
  • 如果一个变量是布尔类型,则取一个对的一个错的

在找到有效等价类和无效等价类后如何找测试数据

  • 有效等价类:要尽可能多的覆盖有效等价类
  • 无效等价类:每找到一组数据要至少覆盖一组无效等价类

如果功能模块的输入是多个,多个自变量放在一起如何找有效等价类、无效等价类、测试数据,4钟方法:

以一个具有自变量X1、X2的函数F为例,X1取值范围为[a, b)、[b, c)、[c, d];X2取值范围为[e, f)、[f, g]。仅考虑有标记的方块内为一般等价类测试(不处理无效数据的测试)、所有方块都考虑为健壮等价类测试(进行无效数据处理的测试)

g |_______|_______|_______|_______|_______|
f |_______|///|///|///|_______|
e |_______|///|///|///|_______|
  |_______|_______|_______|_______|_______|
          a       b       c       d
  • 弱一般等价类
    • 有假设前提:是单缺陷的,即假设系统出现的缺陷很少是由两个及以上的输入变量共同出现缺陷而引起的。
    • 选取的测试用例覆盖所有的有效等价类
      • 对于X1(横轴):[a, b)、[b, c)、[c, d]都需要覆盖到;对于X2(纵轴):[e, f)、[f, g]都需要覆盖到。保证了这两点的情况下,就可以任意取点了
g |_______|_______|_______|_______|_______|
f |_______|_______|____x__|_______|_______|
e |_______|___x___|_______|___x___|_______|
  |_______|_______|_______|_______|_______|
          a       b       c       d
  • 强一般等价类
    • 基于多缺陷假设
    • 选取的测试用例覆盖所有的有效等价类的笛卡尔积(集合A{a1,a2,a3} 集合B{b1,b2} 他们的 笛卡尔积 是 A*B ={(a1,b1),(a1,b2),(a2,b1),(a2,b2),(a3,b1),(a3,b2)} )
      • 对于X1(横轴):[a, b)、[b, c)、[c, d];X2(纵轴):[e, f)、[f, g],笛卡尔积的结果就是所有的格子,所以必须所有格子都取点
g |_______|_______|_______|_______|_______|
f |_______|___x___|___x___|___x___|_______|
e |_______|___x___|___x___|___x___|_______|
  |_______|_______|_______|_______|_______|
          a       b       c       d
  • 弱健壮等价类
    • 有假设前提:是单缺陷的,即假设系统出现的缺陷很少是由两个及以上的输入变量共同出现缺陷而引起的。
    • 考虑无效值,对有效输入,测试用例的设计等同于弱一般等价类;对无效输入,测试用例需要保证拥有一个无效值(比如某一变量的有效类的取值范围为x、y、z,则无效类为x-和z+,加起来取值范围一共:x-、x、y、z、z+),并保持其余的值都是有效的。

所以如下图,在保证弱一般等价类的取点后,还需要分别保证X1、X2中有1个属于无效输入的两个额外的取值范围,另一个属于有效输入的原本取值范围(如X1取无效X2取有效或X1取有效X2取无效,并全部覆盖无效范围)

g |_______|_______|_______|___O___|_______|
f |_______|_______|___x___|_______|___O___|
e |___O___|___x___|_______|___x___|_______|
  |_______|___O___|_______|_______|_______|
          a       b       c       d
  • 强健壮等价类
    • 基于多缺陷假设
    • 所有的取值范围取笛卡尔积(比如某一变量的有效类的取值范围为x、y、z,则无效类为x-和z+,加起来取值范围一共:x-、x、y、z、z+,再与另一变量的取值范围取笛卡尔积)
g |___O___|___O___|___O___|___O___|___O___|
f |___O___|___x___|___x___|___x___|___O___|
e |___O___|___x___|___x___|___x___|___O___|
  |___O___|___O___|___O___|___O___|___O___|
          a       b       c       d

在找测试数据时(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

  • 对于单缺陷的,即只有一个输入变量是处于无效等价类,其他所有输入变量都处在有效等价类中。包含:
    • 单缺陷有效值
    • 单缺陷无效值
  • 对于多缺陷的,即多个输入变量同时出现错误引起的。包含:
    • 有效值
    • 无效值

与等价类划分密切相关的就是边界值分析。先划分等价类,再结合边界值产生测试用例。边界值分析中也有假设前提:单缺陷。包含4种设计测试用例的方法:

  • 一般的边界值分析
    • 有效范围:最小的、比最小大一点的、正常值、比最大小一点、最大值
    • 无效范围:比最小更小、比最大更大
    • 共7个,再分单缺陷和多缺陷,这样设计测试用例的个数就会指数上升
- 单变量假设 多变量假设
有效值 **一般边界值**5n-(n-1)【n-1个变量取正常值】=4n+1【仅考虑有效区间单个变量边界值(一般边界值):用最小值、略高于最小值、正常值、略低于最大值和最大值。】 **一般最坏情况边界值**5^n【仅考虑有效区间多个变量边界值同时作用(一般最坏情况边界值):用各个变量最小值、略高于最小值、正常值、略低于最大值和最大值的笛卡尔积。】
无效值 **健壮性边界值**7n-(n-1)=6n+1【 同时考虑有效区间和无效区间单个变量边界值(健壮边界值):除了最小值、略高于最小值、正常值、略低于最大值、最大值,还要有略超过最大值和略小于最小值的值。】 **健壮最坏情况边界值**7^n【同时考虑有效区间和无效区间多个变量边界值同时作用(健壮最坏情况边界值):用各个变量最小值、略高于最小值、正常值、略低于最大值、最大值、略超过最大值和略小于最小值的笛卡尔积。】

常见的边界值

  • 16bit整数32767~-32768
  • 报表第一行和最后一行
  • 屏幕光标最左上和最右下
  • 数组的第一个和最后一个
  • 循环的第0、1、倒数第一、倒数第二次

决策表

适合于问题有多个条件,条件有多种组合执行不同操作(有很多if、else if、else),不能表达循环结构

最严格、最具有逻辑性

判定表
| 条件桩 | 条件项 | ... | 动作项 |
| 动作桩 | 动作项 | ... | 动作项 |

规则:条件的任意组合,判定表中的一列(贯穿条件项和动作项)。判定表有多少列就代表有多少条规则。

规则的化简:有的规则相互包含,可以化简

因果图

找出所有的原因,找出结果,可能还有中间结果的产生,在画因果图时注意。

  • 从输入考虑
    • I:连虚线出去,如连到ab,表示ab中至少有一个必须成立
    • E:连虚线出去,如连到ab,表示ab不能同时成立
    • R:如处于a指向b的虚线三角箭头上,表示a出现时b也必须出现,不可能一个出现一个不出现
  • 从输出考虑
    • M:如处于a指向b的虚线三角箭头上,表示a为1时b必须为0,a为0时b值不定
  • 连线:恒等
  • ~:非
  • ∨:或
  • ∧:且
  • ci:原因
  • ei:结果

画出因果图后,根据图得到决策表从而得到相应的测试数据:原因节点+中间节点为条件桩,结果结点为动作桩

白盒测试

逻辑覆盖

语句覆盖->判定覆盖->判定/条件覆盖->条件组合覆盖->路径覆盖
      \_条件覆盖/
  • 语句覆盖:每条语句执行一次
  • 判定覆盖:每个判定分支至少执行一次
  • 条件覆盖:每个判定条件应取到各种可能的值
  • 判定/条件覆盖:同时满足判定和条件
  • 条件组合覆盖:每个判定条件的每一种组合各出现一次
  • 路径覆盖:每一条可能的路径至少执行一次

关系:

  • 条件组合覆盖>判定覆盖>语句覆盖(即如果达到条件组合覆盖,就达到判定覆盖和语句覆盖:如果达到判定覆盖,就达到语句覆盖,下面类似理解)。
  • 条件组合覆盖>条件覆盖。
  • 条件覆盖不一定包含判定覆盖、语句覆盖。
  • 判定覆盖不一定包含条件覆盖。
  • 路径覆盖,判定覆盖>语句覆盖。

基本路径测试

基于程序圈复杂度产生的测试方法,画出控制流程图,算圈复杂度,找到独立路径并压缩为基本路径集合,根据集合中每条路径设计用例。把复合逻辑表达式拆成单个表达式

圈复杂度用于计算程序的基本的独立路径数目(每条新的独立路径都必须包含一条新的有向边,从入口到出口互不相同的路径数)

  • 圈复杂的V(G) = e - n + 2p【边-节点+2*连接区域数,连接区域p通常为1】=P+1【判定节点数+1】
  • 一般来说,一个单元模块的最大复杂度V(G)<10

如果把覆盖的路径数压缩到一定限度内,例如程序中的循环体只执行0次和1次,就成为基本路径测试,通过导出基本路径集合,从而设计测试用例,保证这些路径至少通过一次

基于数据流的测试

基于真的数据定义到数据的使用来进行测试,需要找到定义的节点(包括赋值的和比较的)和使用的节点(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

  • 定义节点DEF:输入语句、赋值语句、循环语句和过程调用;变量的值会发生变化的语句
  • 使用节点USE:数出语句、赋值语句、条件语句、循环控制语句、过程调用

需要找到所有这段功能代码从哪里开始定义,到哪里开始执行,把路径找出来。什么是定义使用路径(某一变量在最初节点定义到最终节点被使用)、定义清除路径(某一个变量从它的定义节点到使用节点这个过程中没有对这个变量进行二次定义)

循环测试

前提是程序是结构化的。

简单循环测试

  • 0次通过循环
  • 1次通过循环
  • 2次通过循环
  • m次通过循环(m<=循环最大次数)
  • m-1,m,m+1次通过循环

测试的过程

单元测试

单元测试的内容:5点(简答题)

  • 模块接口的测试
  • 局部数据结构的测试
  • 独立路径测试
  • 错误处理测试
  • 边界测试

单元测试的模块

  • 被测模块:被测试的程序的模块
  • 驱动模块:用来模拟测试模块的上一级模块,相当于被测模块的主程序
  • 桩模块:用来模拟被测模块工作过程中所调用的模块

单元测试的工具:Junit相关的概念:以插入断言的方式进行测试(类似黑盒测试)

  • 针对被测代码或者被测的功能点先创建测试类,然后在类里面创建一个个测试方法。通过实例化对象调用被测方法,用断言进行实际值预期值比较。

单元测试的方法

  • 以白盒测试法为主(覆盖),先静态检查代码是否符合规范,再动态运行代码,检查结果。除了需要验证结果是否正确,还需要检查程序的容错能力、边界值处理等问题。

集成测试

  • 一次性的集成big-bang:把所有通过了单元测试的模块按设计要求一次全部组装起来,然后进行整体测试。时间随变短了但急于求成。
  • 渐进地集成
    • 自上而下:从主程序模块开始按深度或广度优先策略边组装边测试
    • 自下而上:从最底层模块开始组装和集成测试
    • 汉堡包:两者进行结合,树状图每层画线,顶层采用自顶向下,底层采用自底向上
      相邻的集成:上下三层进行集成
      成对集成:先成对再相邻
      基于MM路径的集成:MM路径不是可执行路径,描述单元之间的控制转移。

最终得到调用图,然后就会到基本路径测试,找复杂度,找路径,得到测试用例的套路

系统测试

黑盒为主(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)

对哪些内容进行系统测试(9个):易用性、国际化本地化、性能、功能、界面、兼容性、安全性、文档、安装

Web系统测试

具体到如Web系统测试中的功能测试包含哪些内容、对cookies里面的内容进行测试属于Web系统测试里面的哪一项的测试(属于功能测试)

  • 功能测试
    • 页面内容测试
    • 页面链接测试
    • 表单测试
    • Cookies测试、Session测试
    • 设计语言测试
    • 数据库测试
  • 性能测试(负载/压力)
    • 连接速度测试
    • 测试工具 LoadRunner
      • 负载测试
      • 压力测试
    • 网页性能Firefox插件:Yslow,Findbug,PageSpeed
    • Dynatrace检查网页性能
  • 可靠性测试:不间断测试,看多久不出错
  • 用户界面测试/易用性测试
    • 导航测试
    • 图形测试
    • 内容测试
    • 整体界面测试
  • 安全性测试
  • 兼容性测试
  • 接口测试
    • 服务器接口
    • 外部接口
    • 错误处理

主要讲了性能测试的含义和怎么做,如所涵盖的含义如压力测试怎么做、负载测试怎么做等

  • 性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。
    • 时间性能:软件的一个具体事务的响应时间
    • 空间性能:软件运行时所消耗的系统资源
    • 我让你背1袋米(轻松)
    • 我让你背1袋米,但让你去操场上跑圈,看多久累倒(吃力)
    • 我让你背3袋米去操场跑圈,看多久累倒(极限)
    • 我让你背1袋、2袋、3袋、4袋…发现最多背3袋
  • 负载测试让被测系统在其能忍受的压力的极限范围之内连续运行,来测试系统的可靠性。
    • 系统能否处理某个时刻同时访问Web系统/某个页面的用户数量
    • 超过了这个数量,会出现什么现象?
    • 在线数据处理的数量
  • 负载/压力测试关注什么?
    • 验证系统能否同一时间响应大量的用户,用户传送大量数据时能否响应,系统能否长时间运行。
      • 瞬间访问高峰
      • 每个用户传送大量数据
      • 长时间使用
  • LoadRunner性能测试工具原理:录制+回放模拟用户实际操作场景,监控并分析运行结果。

自动化测试

录制+回放+脚本 是主要的方式

常用的自动化测试的工具,哪些种类,每种有什么工具

  • 功能测试工具:QTP
  • 性能测试工具:LoadRunner
    • 写脚本或者录制脚本
    • 使用用户自定义参数
    • 场景设计
    • 产生虚拟用户的机制:使用控制器,来控制模拟多少用户。
    • 使用监听器,查看测试结果

(Copyright © https://blog.csdn.net/s_gy_zetrov. All Rights Reserved)


visitor tracker
访客追踪插件


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

软件测试_笔记(完整版) 的相关文章

  • Python 如何安装Selenium(推荐)

    一 Selenium的定义 Selenium 是一个 Web的自动化测试工具 最初是为网站 自动化测试而开发的 Selenium 可以直接调用浏览器 它支持所有主流的浏览器 包括PhantomJS 这些无界面的浏览器 可以接收指令 让浏览器
  • 等价类划分法

    专注于分享软件测试干货内容 欢迎点赞 收藏 留言 如有错误敬请指正 软件测试面试题分享 1000道软件测试面试题及答案 软件测试实战项目分享 纯接口项目 完整接口文档 软件测试实战项目分享 WEB 测试自动化项目实战 软件测试学习教程推荐
  • 【软件测试】学习笔记-脚本与数据的解耦 + Page Object模型

    本篇文章介绍GUI测试中两个非常重要的概念 测试脚本和数据的解耦 以及页面对象 Page Object 模型 测试脚本和数据的解耦 GUI自动化测试适用的场景 尤其适用于需要回归测试页面功能的场景 如果在测试脚本中硬编码 hardcode
  • “揭秘性能测试工具:优化软件性能的关键秘籍“

    性能测试工具的设计宗旨是为了模拟用户对软件应用程序或系统的各种操作 旨在评估关键的性能指标 包括响应时间 吞吐量 并发能力和资源利用率 通过这些工具模拟的多用户环境 我们能够产生与实际工作负载相似的条件 并监测系统在这种情况下的性能表现 一
  • 外包干了2个月,技术退步明显...

    先说一下自己的情况 大专生 18年通过校招进入武汉某软件公司 干了接近4年的功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了四年的功能测试 已经让我变得不思进取 谈了2年的女朋友
  • Jmeter 压测-性能调优5大注意

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 2k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 基于Loadrunner的性能分析及调优经验分享

    公司某个系统的微信端计划将开放给几百上千的人员登录查询 并且登录账号为同一账号多人使用 后台服务能够支撑起多用户的并发操作以及成百上千人登录微信端对生产数据库或者登录查询的性能效率高成为交付可靠生产环境的必要条件 因此 项目组决定提交测试
  • 新入职一个00后卷王,每天加班到2点,太让人崩溃了····

    在程序员职场上 什么样的人最让人反感呢 是技术不好的人吗 并不是 技术不好的同事 我们可以帮他 是技术太强的人吗 也不是 技术很强的同事 可遇不可求 向他学习还来不及呢 真正让人反感的 是技术平平 却急于表现自己的人 每天加班到12点 在老
  • 软件测试|Pydantic详细介绍与基础入门

    简介 Pydantic 是一个强大的 Python 库 用于数据验证和解析 特别是用于处理 JSON 数据 它的主要目标是使数据验证和解析变得简单 直观和可维护 本文将介绍 Pydantic 的基础知识 包括如何定义模型 验证数据以及处理错
  • 软件测试|深入了解Python中的super()函数用法

    简介 Python中的super 函数是一种强大的工具 用于在子类中调用父类的方法 它在面向对象编程中非常有用 可以让你轻松地扩展和重用现有的类 本文将详细介绍super 函数的用法 并提供一些示例来帮助你更好地理解它的功能 什么是supe
  • 跨平台UI自动化框架:Airtest,游戏开发和应用测试的利器

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • Jmeter 性能-阶梯负载最终请求数

    2024软件测试面试刷题 这个小程序 永久刷题 靠它快速找到工作了 刷题APP的天花板 CSDN博客 文章浏览阅读2 3k次 点赞85次 收藏11次 你知不知道有这么一个软件测试面试的刷题小程序 里面包含了面试常问的软件测试基础题 web自
  • 新手也能看懂的【前端自动化测试入门】!

    前言 最近在网上搜索前端自动化测试相关的文档 但是发现网上的文章都是偏使用 没有把一些基础概念说清楚 导致后续一口气遇到一些 karma Jasmine jest Mocha Chai BDD 等词汇的时候很容易一头雾水 这次一方面整理一下
  • 甜蜜而简洁 —— 深入了解Pytest插件pytest-sugar

    在日常的软件开发中 测试是确保代码质量的关键步骤之一 然而 对于测试报告的生成和测试结果的可读性 一直以来都是开发者关注的焦点 Pytest插件 pytest sugar 以其清晰而美观的输出 为我们提供了一种愉悦的测试体验 本文将深入介绍
  • 探索自动化测试断言:提升测试效率与质量的关键!

    前言 断言在自动化测试中起着关键的作用 它是验证测试结果是否符合预期的重要手段 如果在自动化测试过程中忽视了断言 那么这个测试就失去了其本质的意义 因为我们无法得知测试结果是否达到了预期的效果 因此 断言在自动化测试中的重要性不言而喻 那么
  • 一文让你了解UI自动化测试

    测试都起什么作用 是项目的保险 但不是项目的救命草 测试无实际产出 但作用远大于实际产出 测试是从项目维度保证质量 而不是测试阶段 UI自动化 下面简称自动化 基于UI进行自动功能测试 以Web端作为例子 一般的UI功能自动化都是基于HTM
  • 15:00面试,15:06就出来了,问的问题有点变态。。。

    从小厂出来 没想到在另一家公司又寄了 到这家公司开始上班 加班是每天必不可少的 看在钱给的比较多的份上 就不太计较了 没想到9月一纸通知 所有人不准加班 加班费不仅没有了 薪资还要降40 这下搞的饭都吃不起了 还在有个朋友内推我去了一家互联
  • 外包干了3个月,技术退步明显。。。。。

    先说一下自己的情况 本科生 20年通过校招进入广州某软件公司 干了接近3年的 功能测试 今年年初 感觉自己不能够在这样下去了 长时间呆在一个舒适的环境会让一个人堕落 而我已经在一个企业干了3年的功能测试 已经让我变得不思进取 谈了2年的女朋
  • 一文从0到1手把手教学UI自动化测试之数据驱动!

    在UI的自动化测试中 我们需要把测试使用到的数据分离到文件中 如果单纯的写在我们的测试模块里面 不是一个好的设计 所以不管是什么类型的自动化测试 都是需要把数据分离出来的 当然分离到具体的文件里面 文件的形式其实有很多的 这里主要说明JSO
  • 用Python实现高效数据记录!Web自动化技术助你告别重复劳动!

    自动化关键数据记录 简介 关键数据记录是 Web 自动化测试中的关键部分 它们提供了关于系统行为和执行过程的详细信息 有助于验证用例的正确性 排查问题和确保应用程序的质量 行为日志 行为日志是一种用于记录系统或应用程序的操作和事件的技术 它

随机推荐

  • 攻防世界--WEB题之robots

    问题描述 难度系数 一颗星 题目来源 Cyberpeace n3k0 题目描述 X老师上课讲了Robots协议 小宁同学却上课打了瞌睡 赶紧来教教小宁Robots协议是什么吧 题目场景 点击获取在线场景 题目附件 暂无 题目分析 这个题由题
  • python基础练习题(一)

    参考 一 单选题 1 Python中 运算符比较两个对象的值 下列选项中哪一个是is比较对象的因素 4 0分 A id B sum C max D min id 命令查看变量的地址 2 在python中 字符串s abc 那么执行表达式s
  • vue2以ElementUI为例构建notify便捷精美提示

    我们先引入一个 第三方UI库 这里 我们以elementUI为例 先引入依赖 npm install element ui save 然后 在 main js 入口文件中 引入一下 import ElementUI from element
  • MSYS2 如何添加国内源

    用MSYS2 pacman S 安装包的速度让你怀疑人生 所以需要将源换成国内源 步骤 lt 1 gt 打开MSYS2软件内的 etc pacman d 其中有3个文件 mirrorlist mingw32 mirrorlist mingw
  • Nacos未授权访问漏洞(CVE-2021-29441)

    目录 漏洞描述 影响范围 环境搭建 漏洞复现 声明 本文仅供学习参考 其中涉及的一切资源均来源于网络 请勿用于任何非法行为 否则您将自行承担相应后果 本人不承担任何法律及连带责任 加粗样式 漏洞描述 Nacos 是阿里巴巴推出来的一个新开源
  • 百度Apollo(二):障碍物感知模块

    Apollo感知模块具有识别障碍物和交通灯的能力 其中 Apollo解决的障碍物感知问题 1 高精地图ROI过滤器 HDMap ROI Filter 2 基于卷积神经网络分割 CNN Segmentation 3 MinBox 障碍物边框构
  • jenkins构建前、构建、构建后操作

    因为使用docker部署的jenkins存在目录映射问题 所以直接部署jenkins 部署参考 构建前操作 思路 使用ssh到目标服务器下发命令 查询启动的node服务 分析不同的服务器启动的服务 备份服务对应代码 构建 思路 jenkin
  • linux 创建 svn 库

    cd data svn mkdir p itvalue chown R windmaker windmaker itvalue svnadmin create data svn itvalue cd itvalue cd conf vim
  • freeimage ubuntu安装

    sudo apt get install libfreeimage dev sudo apt get install libfreeimage 编译安装地址 https github com Kanma FreeImage This dis
  • es6 求两个数组的差集

    let arr 1 2 3 4 5 let arr01 1 2 3 4 5 6 7 8 9 let arr02 arr01 filter x gt arr every y gt y x console log arr02
  • 以太坊Dapp终极教程——如何构建一个完整的全栈去中心化应用(三)

    在以太坊Dapp终极教程 如何构建一个完整的全栈去中心化应用 一 中 我们已经完成了一切所需的设置 在以太坊Dapp终极教程 如何构建一个完整的全栈去中心化应用 二 中 让我们通过列出将在选举中运行的候选人来继续构建智能合约并完成客户端程序
  • 第四章文件管理

    0 初识文件管理 一个文件有哪些属性 文件名 由创建文件的用户决定文件名 主要是为了方便用户找到文件 同一目录下不允许有重名文件 标识符 一个系统内的各文件标识符唯一 对用户来说毫无可读性 因此标识符只是操作系统用于区分各个文件的一种内部名
  • WLS2 下解决nvidia-smi不可用方法

    WLS2系统 Ubuntu22 04 windows win11 wls2更新内核后 nvcc V 可用 但是 nvidia smi报错 NVIDIA SMI has failed because it couldn t communica
  • 安装开发软件的步骤以及后期开发会遇到的一系列问题

    这是我自己进行项目开发过程中遇到的一些问题 我将他们记录了下来 一 合理的安装开发软件的过程 1 安装jdk 1 1版本问题 不要安装最新的jdk 很容易出现bug 可以安装第三个版本左右的jdk 1 2配置环境变量 网上搜 2 安装Tom
  • 区块链学习笔记(三)——第一章 密码学及加密货币概念

    加密数字货币与法定货币不同在于 其安全规则需要完全通过技术手段实现 而非依赖中央机构 1 1 哈希函数 哈希函数三个特性 1 任意大小字符串均可作为输入 2 产生固定大小输出 3 能进行有效计算 即对应n位字符串 其哈希值计算复杂度为 O
  • linux 下使用 sar -n 命令查看Kbps、bps的带宽速率

    一 关于网络带宽知识 1 1 速率单位 bps 速度单位 bit即比特 通常用b 小写 表示 指一位二进制位 1 Milionbit 1000Kilobit 1000000bit 即 1Mbps 1000 000bps 常见换算单位 Mbp
  • helm 安装

    官方安装 https helm sh docs intro install 1 一键安装 curl https raw githubusercontent com helm helm main scripts get helm 3 bash
  • 计算机毕业设计Node.js+Vue电影票网上订票系统(程序+源码+LW+部署)

    该项目含有源码 文档 程序 数据库 配套开发软件 软件安装教程 欢迎交流 项目运行 环境配置 Node js Vscode Mysql5 7 HBuilderX Navicat11 Vue Express 项目技术 Express框架 No
  • Unity 动态加载Prefab

    Unity动态记载Prefab 第一种方法 从Resources文件夹读取Prefab Assets Resources是Unity中的一个特殊文件夹 放在这个文件夹里的资源包括Prefab可以被代码动态加载 GameObject Pref
  • 软件测试_笔记(完整版)

    软件测试 概述 程序 文档 数据 软件 狭义的软件测试定义 为发现软件缺陷而执行程序或系统的过程 广义的软件测试定义 人工或自动地运行或测定某系统的过程 目的在于检验它是否满足规定的需求或弄清预期结果和实际结果间的差别 为什么要做软件测试