当前位置: 首页 > news >正文

5年功能测试的一些心得

一、前言

功能测试是测试工程师的基础功,很多人功能测试还做不好,就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点,如何自己不用心去悟,去研究,那么你的职业生涯也就停留在点点点上了。在这里,我把我对功能测试的理解写下来。

二、功能测试所需要掌握的技能

  2.1 熟练使用SQL

  1、常用的 sql 语句一定会写。比如说增删改查之类。

  2、了解数据库的事务、会编写存储过程、熟练常用的系统函数。

  3、了解并可以进行数据库的备份、迁移、还原、镜像等操作

  4、对 sql 语句进行调优,并对可以对运行的语句监控查看性能

  5、了解数据库集群等操作。

  2.2 Linux

  Linux是测试人员的基础功,不需要掌握太难或者很不常见的Linux命令,正常能做到查看日志,定位问题就可以了。

  1、基本命令

  常用的Linux基本命令,面试经常会问的,或者给出一种场景,问你用什么命令。

  2、查看日志

  初级测试人员在工作时经常遇到,发现bug,开发不承认或者不愿意解决的情况,测试人员怎么摆脱这样的问题呢?

  那就是根据发现的bug根据日志级别,来查看日志,定位问题。

  那这里首先要说一下日志级别了。

  首先记住这一点:日志级别越高,输出的信息越少 。

  具体的日志级别分为四级:

  info : 代码 info 信息,不包括sql语句等一些debug信息

  warning warning : 代码警告信息

  error : 程序本身报错信息 java.lang.outindexERROR.....

  critical :几乎用不到

  一般不符合需求的bug在 debug中,程序本身报错的bug在 error中。

  2.3 使用数据库,跟数据流向

  关于数据库,请见另外一篇博文。

  1、数据库的本质

  常见数据库主要是MAYSQL、ORECAL、Redis

  其中Mysql数据库是典型的关系型数据库

  2、数据库操作

  (1) 数据库和表操作

  (2)表数据操作

  (3)复杂sql查询

  2.4 写好测试用例

  在测试过程中很重要的一类文档,它是测试工作的核心、是一组在测试时输入输出的标准、是软件需求的具体对照。编写测试用例,是测试人员的基本功,但是真正能写好的人并不多。

  测试用例必须包含的内容:

  用例编号、用例名称、测试背景、前置条件、优先级、重要级、测试数据、测试步骤、预期结果、实际结果、备注。

  1、测试用例的编写流程

  需求分析->提取测试点->测试用例编写->测试用例评审

  2、编写测试用例的思路

  (1)根据产品的RPD,提取测试点。

  (2)根据数据流的走向。

  (3)根据的架构部署。

  (4)编写测试用例的常用方法:等价类划分法、边界值分析法、流程图法等。

  (5)覆盖弱网测试、接口测试、安全测试、性能测试等。

  (6)常用测试工具有:Postman、 Charles、 Fiddler 、Jemter、Loadrunner等。

  3、编写测试用例注意事项

  (1)根据项目的实际情况设计测试用例表格

  (2)用例格式不要生搬硬套

  (3)根据具体情况编写

  (4)学会质疑需求,不要完全按照需求来写测试用例,要从客户和产品的角度来理解需求,看到需求之外的功能和体验

  4、管理测试用例

  为什么要管理测试用例?

  (1)测试用例数目巨大

  (2)测试用例会根据需求的改变而改变

  (3)测试用例需要长期补充完善

  如何管理测试用例?

  (1)原始的Excel管理

  (2)专业的项目管理系统(eg:git、禅道、JIRA、Confiuence等)一般都为web格式

  2.5 http与https协议

  面试经常关于Http协议的下面几个问题

  1、Http协议原理

  2、http和http协议的区别

  3、TCP和UDP的区别

  4、session和token的区别

  5、公钥和私钥的理解

  6、get和post的区别

  7、从输入URL到页面加载发生了什么

  8、什么叫代理,正向代理和反向代理?

  2.6 了解业务

  做功能测试,一定要了解业务,甚至理解业务。只有把业务吃透,才能把功能测试做好,并且有一定的提高。

  业务熟悉后,会知道很多常识,知道下面的常识之后,你就可以尝试进阶,学习做自动化测试、接口测试、性能测试

  1、什么时候介入自动化 => 当你系统趋于稳定的时候

  2、什么时候介入接口测试 => 当接口开发完毕的时候

  3、什么时候介入性能测试 => 当出现促销的时候,或者抢购的时候(618大促,过年抢火车票,抢优惠券)

  比如说,5000张优惠券,大概有多少人抢,在多长时间内抢完

  2.7 bug管理

  做功能测试,还有个很重要的工作就是bug管理,一个优秀的的测试人员,线上bug非常多,多于和你一起工作的其他同事,但是线上bug非常少,少于其他同事。

  1、 bug定义

  (1)不符合需求的

  (2)程序本身报错

  (3)不符合用户的使用习惯

  2、bug生命周期当我们测试人员提交一个bug的时候,自始bug就有它的生命周期,从开始到

  结束

  3、bug单内容

  Bug描述(summary)

  环境信息:操作系统/数据库/浏览器/软件版本 (OS/Database/Project/Build/Release)

  所属功能模块

  测试/开发人员

  严重等级(1-5)

  客户优先级

  风险程度

  状态

  重现步骤

  实际结果

  是否要回归问题

  等

  4、测试报告

  把测试的过程和结果写成文档,对发现的问题和缺陷进行分析,为纠正软件的存在的质量问题提供依据,

  同时为软件验收和交付打下基础测试报告和测试计划一样,一般由测试leader编写,测试人员需要了解

  2.8 典型bug

  1、抓包作用: 测试一个app搜索功能,抓包,抓到一个搜索接口,突然发现抓到了两个请求接口 -> 当访问量上来了,服务的压力上升两倍

  2、数据流走向 : 测试时候发现页面上数据只有一条,但是数据库里面多了一条 -> 1、数据量变大,查询变慢 2、脏数据太多,瞬间爆满,程序崩溃了

  3、弱网测试:app项目一定要有弱网络测试(模拟2g、3g、4g,wifi网络状态以及丢包情况);网络切换测试(网络断开后重连、3g切换到4g/wifi 等)

最后:【可能给你带来帮助的教程】

 

这一些资料,对做【软件测试】的朋友而言应该是较为完整了,这类学习资料也陪伴我走过了最艰难的路程,希望也可以帮助到你!万事要尽早,尤其是技术行业,一定要提升技术功底。

以上软件测试资料领取小伙伴可以通过点击下面的小卡片【软件测试行业现状】2023年了你还敢学软件测试?未来已寄..测试人该何去何从?【自动化测试、测试开发、性能测试】_哔哩哔哩_bilibili想要高薪得会这几点:懂自动化测试基础知识、Linux必备、Shell、互联网程序原理、Mysql数据库、抓包工具专题、接口测试工具、测试进阶-Python编程、Web自动化测试、APP自动化测试、接口自动化测试、测试高级持续集成、测试架构开发测试框架、性能测试、安全测试等。资源都已经整理在我的软件测试资料共享群:q群632880530(备注B站08) 有需要的朋友可以加群免费领取。, 视频播放量 9790、弹幕量 182、点赞数 136、投硬币枚数 149、收藏人数 182、转发人数 73, 视频作者 华测教育软件测试, 作者简介 免费领取配套视频资料+源码+课件+学习笔记!+q交流裙:632880530备注B站999),相关视频:前天才把培训费交了,今天在逼站刷视频说是软件测试行业现在是49年进国军。小伙大半夜焦虑得睡不着 怎么办兄弟萌,测试干了9年,我想离开这个行业!,软件测试零基础能去应聘吗,你以为的软件测试工程师都是朝九晚六,但现实是........................,都2022年了,还敢转行软件测试?软件测试行业现状/软件测试基础/软件测试入门/零基础入门软件测试/软件测试发展前景/软件测试就业,IT行业哪些岗位最吃香?哪些岗位打死都不要去?揭秘行业潜规则,让你少走弯路!,【测试工作体验】96年女测试工程师,入职不到半年竟如此工作,后悔不已,黑马程序员软件测试从入门到精通_软件测试基础教程,软件测试去年找工作 vs 软件测试今年找工作,2个月入职软件测试是骗局吗?自学软件测试真的这么简单吗?应届生学习测试误区。https://b23.tv/zd94ebU

相关文章:

5年功能测试的一些心得

一、前言 功能测试是测试工程师的基础功,很多人功能测试还做不好,就想去做性能测试、自动化测试。很多人对功能测试的理解就是点点点,如何自己不用心去悟,去研究,那么你的职业生涯也就停留在点点点上了。在这里&#…...

在外包做了3年测试,离职后却成功入职字节跳动.....

最近换了份工作,当时和群里的朋友也聊过换工作的话题,他们都觉得这是一次非常冒险的行为,说我这是一次豪赌——成了会有更好的职业发展,没成可能就会出现两三年的发展断层,甚至影响职业生涯路径。一步错,步…...

网络编程套接字( TCP )

目录 1、实现一个TCP网络程序(单进程版) 1.1、服务端serverTcp.cc文件 服务端创建套接字 服务端绑定 服务端监听 服务端获取连接 服务端提供服务 服务端main函数命令行参数 服务端serverTcp.cc总代码 1.2、客户端clientTcp.cc文件 客户端main函数命令行…...

QT 判断当前操作系统是否为 Windows 8 及以下版本

判断当前操作系统是否为 Windows 8 及以下版本,可以使用 QSysInfo 类中的静态函数 QSysInfo::windowsVersion(),其返回值是一个 QOperatingSystemVersion 类型的对象,包含了当前操作系统的主版本号、次版本号和补丁版本号。我们可以通过比较主…...

走进小程序【五】微信小程序架构之【逻辑层】详解

文章目录🌟前言🌟小程序架构🌟逻辑层 App Service🌟注册小程序🌟注册页面🌟使用 Page 构造器注册页面🌟在页面中使用 behaviors🌟使用 Component 构造器构造页面🌟页面生…...

mysql workbench使用教程

mysql workbench使用教程1、打开workbench,显示如下界面,点击2、连接建立好之后,点击已经建立好的连接,连接mysql服务器1、打开workbench,显示如下界面,点击 填写信息 密码是之前安装MySQL时设置的密码 点击…...

蓝易云:Linux系统常用命令-系列【3】

在Linux中,有许多常用的命令可以用来管理文件、目录、进程等。下面是一些常用的Linux命令的介绍。 1. cd:改变当前目录。例如,cd /home。 2. ls:列出指定目录下的所有文件和子目录。例如,ls -al。 3. rm&#xff1a…...

Nginx实现会话保持,集群模式下session域共享

前言 生产环境下,多数系统为了应对线上多种复杂情况而进行了集群架构的部署,保证系统的高性能、价格有效性、可伸缩性、高可用性等。通常将生产环境下的域名指向Nginx服务,通过它做HTTP协议的Web负载均衡。 session是什么 在计算机中&…...

【SpringMVC】6—SpringMVC拦截器

⭐⭐⭐⭐⭐⭐ Github主页👉https://github.com/A-BigTree 笔记链接👉https://github.com/A-BigTree/Code_Learning ⭐⭐⭐⭐⭐⭐ 如果可以,麻烦各位看官顺手点个star~😊 如果文章对你有所帮助,可以点赞👍…...

【算法】插入排序

插入排序实现思路:将一个新的数,和前面的比较,只要当前数小于前一个则和前一个交换位置,否则终止;「时间复杂度:O(N^2);」「空间复杂度:O(1)」 一、标准方式 function insertSort(a…...

java servlet 期刊在线投稿系统jsp编程sqlserver数据库mvc模式开发计算机网页设计

一、源码特点 java servlet 期刊在线投稿系统是一套完善的java web信息管理系统,对理解JSP java编程开发语言有帮助,系统采用serlvetdaobean,系统具有完整的源代码和数据库,系统 主要采用B/S模式开发。 java servlet 期刊在线…...

命名空间和程序集

目录 一、什么是命名空间 1. 命名空间的作用 2. 命名空间跨文件伸展 3.嵌套命名空间 二、using指令 1. using命名空间指令 2. using别名指令 三、程序集的结构 1. 程序集标识符 2.强命名程序集 一、什么是命名空间 1. 命名空间的作用 命名空间是共享命名空间名的一组…...

108、指针进阶

数组名是数组首元素的地址 但是有两个例外: 1、sizeof(数组名) --数组名表示整个数组,计算的是整个数组的大小,单位是 字节 byte。 2、&数组名 --数组名表示整个数组,取出的是整个数组的地址。 二…...

arm平台交叉编译rt-tests

如果要为ARM平台添加libnuma-dev库,需要在x86平台上进行交叉编译,生成ARM平台可用的库文件。具体步骤如下: 1. ARM平台的交叉编译工具链,例如arm-linux-gnueabihf,可以使用以下命令安装: sudo apt-get in…...

Melis4.0[D1s]:5.测试笔记 - 修改显示测试源码

文章目录1.将显示命令参数固化2.disp_mem源码阅读3.Melis子目录Makefile编写本文是下一篇文章Melis4.0[D1s]:6.mango-MQ-R基于Melis移植lvgl 的基础知识。 1.将显示命令参数固化 从上一篇文章《Melis4.0[D1s]:4.测试笔记 - 内嵌的显示命令》知道,只要2个命令就可以…...

yolov7目标检测:基于自定义数据集完成检测、训练、测试

文章目录 前言一、环境与文件准备1.1、环境配置1.2、源码下载1.3、权重文件下载1.4、详解源码中的文件夹与文件1.5、详解配置参数二、检测模型(detect.py)2.1、自定义检测数据准备2.2、配置参数2.2.1、方式一:打开Pycharm,进入Terminal,输入指令开始检测2.2.2、方式二:点…...

托福高频真词List13 // 附托福TPO阅读真题

目录​​​​​​​ 4.4单词 生词 熟词 4.5真题 4.4单词 生词 🫐damagemutilatev.损害🫐outlyingfarfar from the centeradj.偏远的🫐posterity[pɑːˈsterəti]further generationn.后代🫐🫐premiseassumpti…...

动力节点王鹤SpringBoot3笔记——第八章 文章管理模块

目录 第八章 文章管理模块 8.1 配置文件 8.2 视图文件 8.3 Java代码 第八章 文章管理模块 创建新的Spring Boot项目,综合运用视频中的知识点,做一个文章管理的后台应用。 新的Spring Boot项目Lession20-BlogAdmin。Maven构建工具,包…...

ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试

ROS功能包|mav_control_rw(基于MPC的无人机轨迹跟踪控制)---gazebo仿真测试gazebo仿真测试gazebo仿真测试 启动gazebo并加载无人机模型 $ roslaunch rotors_gazebo mav.launch mav_name:firefly启动 linear mpc 控制器 $ roslaunch mav_linear_mpc ma…...

iOS 内存管理机制与原理

内存分区 内存一般分为五大区:栈区、堆区、常量区、全局区、代码区。如图 1.栈区 是由编译器自动分配并释放的,主要用来存储局部变量、函数的参数等,是一块连续的内存区域,遵循先进后出(FILO)原则。一般在…...

Flask RESTful 示例

目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...

Cesium1.95中高性能加载1500个点

一、基本方式&#xff1a; 图标使用.png比.svg性能要好 <template><div id"cesiumContainer"></div><div class"toolbar"><button id"resetButton">重新生成点</button><span id"countDisplay&qu…...

cf2117E

原题链接&#xff1a;https://codeforces.com/contest/2117/problem/E 题目背景&#xff1a; 给定两个数组a,b&#xff0c;可以执行多次以下操作&#xff1a;选择 i (1 < i < n - 1)&#xff0c;并设置 或&#xff0c;也可以在执行上述操作前执行一次删除任意 和 。求…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

实现弹窗随键盘上移居中

实现弹窗随键盘上移的核心思路 在Android中&#xff0c;可以通过监听键盘的显示和隐藏事件&#xff0c;动态调整弹窗的位置。关键点在于获取键盘高度&#xff0c;并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散

前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说&#xff0c;在叠衣服的过程中&#xff0c;我会带着团队对比各种模型、方法、策略&#xff0c;毕竟针对各个场景始终寻找更优的解决方案&#xff0c;是我个人和我司「七月在线」的职责之一 且个人认为&#xff0c…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...

Appium下载安装配置保姆教程(图文详解)

目录 一、Appium软件介绍 1.特点 2.工作原理 3.应用场景 二、环境准备 安装 Node.js 安装 Appium 安装 JDK 安装 Android SDK 安装Python及依赖包 三、安装教程 1.Node.js安装 1.1.下载Node 1.2.安装程序 1.3.配置npm仓储和缓存 1.4. 配置环境 1.5.测试Node.j…...

C++11 constexpr和字面类型:从入门到精通

文章目录 引言一、constexpr的基本概念与使用1.1 constexpr的定义与作用1.2 constexpr变量1.3 constexpr函数1.4 constexpr在类构造函数中的应用1.5 constexpr的优势 二、字面类型的基本概念与使用2.1 字面类型的定义与作用2.2 字面类型的应用场景2.2.1 常量定义2.2.2 模板参数…...