测试工程师

article/2025/8/23 3:14:37

1 测试理论

1.1 测试理论基础

1.1.1 软件研发流程

软件生命周期: 需求-设计-编码-测试-维护-废弃
**软件测试流程:**需求分析-测试计划-测试方案-测试用例-测试执行-测试报告

需求分析:分析产品功能点;产品核心竞争力;Kano模型、马斯洛需求分析、多问几个为什么、上下文分析法

制定测试用例:

  1. 使用思维导图列举测试大纲,尽量发散,想到什么写什么;先放后收,对知识点进行总结和归纳,标记重点测试模块,删除冗余及重复测试点。
  2. 可使用边界值法、等价类划分法、错误推测法、因果图法等设计案例
  3. 根据测试大纲制定测试用例,需包含模块名、测试优先级、操作步骤、期望结果、测试结果、备注

执行测试:

根据测试用例执行测试
发现问题保留现场,记录测试方法,通知开发解决问题
覆盖测试用例之外若有时间可进行探索性测试

提交Bug并推动Bug解决

在Bug管理工具上提交Bug,详细记录测试步骤
根据Bug严重程度划分Bug等级:致命、严重、一般、提示
推动开发解决问题,记录问题进展,一般聊天沟通,若问题严重则需通过邮件推动解决

回归测试

对已修复的Bug进行验证
对Bug所在模块进行基本功能测试;整体进行冒烟测试,确保不会因为修改Bug而引起其他功能出现问题

编写并提交测试报告
可使用金字塔原理设计测试报告,先总后分,上级统领下级,下级推导出上级,环环相扣

对Bug进行汇总,筛选出各个等级的Bug存活情况
制订Bug发现及解决曲线图,一般版本正常应是前期多,后期收敛,存活的是级别较低的Bug
总结归纳版本情况,评估发布与否

1.1.2 软件测试基础

软件测试的经典定义: 在规定的条件下对程序进行操作,以发现缺陷和错误,对软件质量进行评估。
测试目的: 不仅仅是为了发现软件缺陷和错误,而且也是对软件质量进行度量和评估,以提高软件的质量。
软件测试对象: 软件包括程序、数据、文档,软件测试贯穿整个软件生命周期。
软件测试风险: 进度风险、质量风险、人员风险、变更风险、成本风险等。
软件测试工程师的职责:

  1. 配置测试环境
  2. 执行软件测试
  3. 报告软件缺陷
  4. 验证修正的缺陷
  5. 报告测试状态
  6. 完成测试相关的其他任务

1.1.3 软件测试分类

按照开发阶段划分软件测试:

  1. 单元测试–模块测试
  2. 集成测试–组装测试,联合测试
  3. 系统测试–有效性测试
  4. 验收测试
    按照测试实施组织划分软件测试:
  5. 开发方测试
  6. 用户测试(Beta测试)
  7. 第三方测试
    按照测试技术划分:
  8. 白盒测试–重于程序内部结构和算法(内部代码)

白盒测试 : 是一种测试用例设计方法,在这里盒子指的是被测试的软件,白盒,顾名思义即盒子是可视的,你可以清楚盒子内部的东西以及里面是如何运作的,因此白盒测试需要你对系统内部的结构和工作原理有一个清楚的了解,并且基于这个知识来设计你的用例。
白盒测试技术一般可被分为静态分析和动态分析两类技术。
静态分析主要有:控制流分析技术、数据流分析技术、信息流分析技术。
动态分析主要有:逻辑覆盖率测试(分支测试、路径测试等),程序插装等。
白盒测试优点:迫使测试人员去仔细的思考软件的实现;可以检测代码中的每条分支和路径;揭示隐藏在代码中的错误;对代码的测试比较彻底;最优化。
白盒测试缺点:昂贵;无法检测代码中遗漏的路径和数据敏感性错误;不验证规格的正确性。

  1. 黑盒测试–不管内部逻辑和内部特性(界面功能测试)

黑盒测试 又叫功能测试 ,这是因为在黑盒测试中主要关注被测软件的功能实现,而不是内部逻辑。在黑盒测试中,被测对象的内部结构,运作情况对测试人员是不可见的,测试人员对被测产品的验证主要是根据其规格,验证其与规格的一致性。
在绝大多数没有用户参与的黑盒测试中,最常见的测试有:功能性测试、容量测试、安全性测试、负载测试、恢复性测试、标杆测试、稳定性测试、可靠性测试等。

  1. 灰盒测试–介于白盒和黑盒测试之间,基于程序运行时刻的外部表现同时又结合程序内部逻辑结构来设计用例

白盒测试和黑盒测试往往不是决然分开的,一般在白盒测试中交叉使用黑盒测试的方法,在黑盒测试中交叉使用白盒测试的方法。灰盒测试就是这类界于白盒测试和黑盒测试之间的测试。
最常见的灰盒测试是集成测试。
单元测试属于白盒测试范畴;集成测试属于灰盒测试范畴;系统测试属于黑盒测试范畴 。

按照是否执行程序的角度:

  1. 静态测试: 是一种不通过执行程序而进行测试的技术。它的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。
  2. 动态测试: 包含了程序在受控的环境下使用特定的期望结果进行正式的运行。它显示了一个系统在检查状态下是正确还是不正确。
    其他分类:
  3. 冒烟测试(大概框架测试)–确认软件基本功能正常,可以进行后续的测试工作
  4. 回归测试–对软件的新版本测试时,重复执行上一个版本测试时使用的测试用例。防止出现以前应用没有的问题
  5. 随机测试(猴子测试)–测试数据是随机产生的,在测试用例之外
  6. 敏捷测试(敏捷开发引发)
  7. TDD(测试驱动开发)

1.2 黑盒测试用例方法

  1. 黑盒测试的概念

什么是黑盒测试:又称功能测试、数据驱动测试或基于规格说明书的测试,是一种从用户观点出发的测试
在这里插入图片描述
测试人员把被测程序当作一个黑盒子

黑盒测试主要测试的错误类型

  1. 不正确或遗漏的功能
  2. 接口、界面错误
  3. 性能错误
  4. 数据结构或外部数据访问错误
  5. 初始化或终止条件错误等
  1. 黑河用例设计技术(重点)
  1. 等价类划分法: 所有可能的输入数据(即程序的输入)
  1. 有效等价类
  2. 无效等价类:选取少数具有代表性的数据
  1. 边界值分析法:
  1. 对等价类的补充
  2. 与等价划分的区别:边界值分析不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件;边界值分析不仅考虑输入条件,还要考虑输出空间产生的测试情况。
    1.2.针对页面输入框
    场景法(针对业务流程)
    在这里插入图片描述
    错误推测方法: 基于经验和直觉来推测程序中可能存在的错误
    因果图方法:
    原因和结果、原因和原因的关系
    因果图
    判定表
    判定表驱动分析方法
    正交试验设计方法

1.3 性能测试技术

性能测试是通过自动化的测试工具模拟多种正常、峰值以及异常负载条件来对系统的各项性能指标进行测试。性能测试需要掌握的知识有以下几点:

  1. 性能测试基础概念:
  2. 性能工具Jmeter:
  3. 性能监控分析:
  4. 性能调优:

1.4 自动化技术

自动化测试作为测试行业需求最大的技术点,招聘要求随处可见,进阶高级测试工程师必会点之一。

  1. 自动化基础原理
  2. webUI与Selenium框架
  3. app自动化和Appium框架
  4. python+requests+pytest/unittest接口自动化框架

2 编程语言

3 数据库

4 计算机网络

4.1 基本理论知识

1 计算机网络的分层模型,五层模型分别包含什么,每一层主要解决的问题是什么

2 在数据链路层的MAC地址和网络层的IP地址间的区别是什么

3 交换机和路由器的区别是什么

4 在网络层中域名解析的过程包含了哪些步骤

5 IPv4和IPv6的区别是什么

6 IP地址的分类有哪些

7 TCP和UDP的区别

8 TCP和UDP三次握手和四次挥手的过程是什么,为什么如此设计

9 TCP中的流量控制和拥塞控制的大概过程

10 HTTP请求和响应报文的格式

11 HTTP请求中常见的请求方法有哪些

12 GET请求和POST请求的区别

13 Cookie、Session和Token的区别

14 HTTP1.0和1.1的区别

15 HTTPs和HTTP的区别

16 在浏览器中输入一个网址到网页加载完成,发生了什么

5 Linux操作

6 Java

7 Git

Git是一个开源的分布式版本控制系统,用于敏捷高效地处理任何或大或小的项目。Git 是 Linus Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。也是内容管理系统,工作管理系统等。

7.1基本工作流程

  • 克隆Git资源作为工作目录。
  • 在克隆的资源上添加或修改文件。
  • 如果其他人修改了,你可以更新资源。
  • 在提交前查看修改。
  • 提交修改。
  • 在修改完成后,如果发现错误,可以撤回提交并再次修改并提交。

在这里插入图片描述

7.2 在GIt仓库中工作区、暂存区和版本库之间的关系

工作区: 就是电脑里能看到的目录。
暂存区: index,一般存放在 .git 目录下的index文件中,所以把暂存区也叫索引(index)。
版本库: 工作区有一个隐藏目录 .git ,这个不算工作区,而是Git的版本库。
在这里插入图片描述

7.3 常用命令

1.如何初始化一个本地Git仓库

Git 使用 git init 命令来初始化一个 Git 仓库,Git 的很多命令都需要在 Git 的仓库中运行,所以 git init 是使用 Git 的第一个命令。

在执行完成 git init 命令后,Git 仓库会生成一个 .git 目录,该目录包含了资源的所有元数据,其他的项目目录保持不变。

初始化后,会在 newrepo 目录下会出现一个名为 .git 的目录,所有 Git 需要的数据和资源都存放在这个目录中。

如果当前目录下有几个文件想要纳入版本控制,需要先用 git add 命令告诉 Git 开始对这些文件进行跟踪,然后提交:

$ git add *.c
$ git add README
$ git commit -m '初始化项目版本'

2.如何暂存以及提交代码到本地仓库

命令说明
git clone拷贝一份远程仓库,也就是下载一个项目
git add添加文件到暂存区
git status查看仓库当前的状态,显示有变更的文件
git diff比较文件的不同,即暂存区和工作区的差异
git commit提交暂存区到本地仓库
git reset回退版本
git rm删除工作区文件
git mw移动或重命名工作区文件
提交日志
git log查看历史提交记录
git blame以列表形式查看指定文件的历史修改记录

3.如何将本地分支与远程仓库分支进行关联,将本地代码推送到远程仓库中

远程操作
git remote远程仓库操作
git fetch从远程获取代码库
git pull下载远程代码并合并
git push上传远程代码并合并

4.如何从远程仓库拉取代码

5.在合代码的过程中出现冲突如何解决

https://www.runoob.com/git/git-branch.html


http://chatgpt.dhexx.cn/article/FeVDnLNC.shtml

相关文章

一名优秀的测试工程师需要具备哪些技能?

文章目录 js/css 前端技术网络架构网络协议DNS解析负载均衡策略Linux 系统基本操作数据库知识 js/css 前端技术 很多测试工作都由前端发起,所以了解前端技术可以让测试人员使用更灵活的方式执行测试 任务。如何利用前端技术辅助测试人员更好…

性能测试工程师的要求通常有哪些?

作为性能测试工程师,常见的岗位要求包括: 1. 熟悉性能测试理论:了解性能测试的基本概念、性能指标、测试方法和工具,以及性能测试的相关知识和技能。很多人可能觉得理论的东西不需要了解太多,够用就可以了。其实是有误…

测试工程师等级评定细则

一、初级测试工程师(门槛低) 大专以上文化程度即可; 有一定的业务熟悉能力,能快速的熟悉业务并定位出业务中的缺陷; 了解软件生命周期和简单的互联网交互方式; 会使用简单的工具(抓包工具、bug…

计算机网络学习笔记:第二章

计算机网络学习笔记:第二章 学习书籍:《计算机网络:自顶向下方法》 第二章:应用层 其他章节请参阅: 《计算机网络:自顶向下方法》 第一章:计算机网络和因特网 《计算机网络:自顶向…

计算机网络第一遍学习

文章目录 网络、互联网、因特网互联网的组成三种交换方式电路交换、报文交换、分组交换的对比计算机网络的定义和分类计算机网络的性能指标计算机网络的体系结构专用术语 物理层物理层的基本概念物理层下面的传输媒体传输方式编码与调制信道的极限容量 数据链路层数据链路层概述…

关于网络的学习

网络的七层模型 TCP和UDP的区别 TCP:可靠,速度稍慢,点对点通信,通信内容为字节码,多用于传输文件 UDP:不可靠了,速度很快,点对点、一对多、多对多通信,通信内容为数据报…

计算机网络的学习1-2

计算机网络的学习 1-2 网络在我国的发展 第一阶段:国内互联网 1980年,铁道部开始网络实验。 89年11月,第一个公用分组交换网CNPAC建成。 第二阶段:互联网初期 91年6月,第一条互联网专线,中国科学院高…

计算机网络学习笔记(汇总)

计算机网络 根据所学大学课程对计算机网络较为全面的记载,考试复习,由于图片在github上,需要转储可能部分出不来,如有缺失可以去我的github项目下的github pages观看文档 1.概述 1.1 互联网组成 边缘部分 服务器不需要知道用户地…

计算机网络的学习(概述)

因特网概述 网络、互联网、因特网 网络:由若干节点(Node)和连接这些节点的链路构成 互联网:多个网络通过路由器互连,成为一个覆盖范围更大的网络 因特网:世界上最大的网络 注:Internet 和inte…

计算机网络学习笔记(谢希仁版本)

计算机网络学习笔记 1. 概述 1.1 计算机网络在信息时代的作用 互联网基本特点: 连通性:互联网上用户不管距离多远,都能通信,就像这些用户终端都彼此连通 共享性:指资源共享,包含信息、软件、硬件等共享…

计算机网络学习(一) 计算机网络概述

正在学习计算机网络课程,以下是学习《计算机网络-自顶向下方法》的一些笔记,部分图片来自mooc网 哈尔滨工业大学 计算机网络课程:https://www.icourse163.org/course/HIT-154005。 文章目录 1.计算机网络基本概念1.1计算机网络1.2什么是Inte…

【计算机网络学习笔记01】计算机网络概述(上)

【计算机网络学习笔记01】计算机网络概述(上) 计算机网络的诞生与发展 1 20世纪60年代出现的第一代计算机网络——基本的面向终端的计算机网络 相关知识点:第一台计算机诞生于1946年2月14日的美国宾夕尼亚大学,主要采用批处理方…

学习网络基础

网络基础 OSI模型(开放式系统互联参考模型)-7层 OSI是Open System Interconnection的缩写,意为开放式系统互联。国际标准化组织(ISO)制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描述计算机网络通信的基本…

计算机网络学习总结

计算机网络学习总结~ 1. OSI,TCP/IP,五层协议的体系结构,以及各层协议: OSI 分层:7层,物理层,数据链路层,网络层,传输层,会话层,表示层,应用层 …

计算机网络技术学习总结(详细,持续更新)

目录 01概述 1.1计算机网络在信息化时代中的作用 1.2因特网概述 1.3因特网的组成 边缘部分: 核心部分: 1.4计算机网络分类 A. 按拓扑结构 B.按覆盖范围 C.按传输速率 D.按传输介质 E.按使用范围 1.5计算机网络主要性能指标 1.6计算机网络体系结构 1.6.1网络协议 1.…

计算机网络 学习笔记

计算机网络 学习笔记 第一章 计算机网络体系结构1.1 计算机网络概述1.1.1 计算机网络的概念1.1.2 计算机网络的组成1.组成部分2.工作方式3. 功能组成 1.1.3 计算机网络的功能1.数据通信2.资源共享3.分布式处理4. 提高可靠性5. 负载均衡 计算机网络的发展1.1.4 计算机网络的分类…

【计算机网络学习笔记】计算机网络

计算机网络学习笔记 第一章 计算机网络概述1. 计算机网络概述1.1 计算机网络的概念1.2 计算机网络的组成1.3 计算机网络的功能1.4 计算机网络的分类1.5 计算机网络的标准化工作和相关组织1.6 计算机网络的性能指标1.7 计算机网络的非性能指标 2. 计算机网络的体系结构2.1 计算机…

计算机网络入门

计算机网络基础 一、计算机网络的发展 主机带终端形式的计算机网络 网络结构比较简单,负载量十分庞大,网络系统稳定性较低 基于通信网的计算机网络 采用存储转发技术,利用动态分配传输带宽的方式实现数据通信 标准化的计算机网络 提出了OS…

计算机网络基础学习指南

前言 计算机网络基础是研发/运维工程师都需掌握的知识,但往往会被忽略。 今天,我将对计算机网络基础学习进行详细阐述,涵盖 TCP / UDP协议、Http协议、Socket等,希望你们会喜欢。 1、计算机网络体系结构 1.1 简介 定义 计算机…

计算机网络学习路线

文章目录结构: 一 OSI与TCP/IP各层的结构与功能,都有哪些协议 运输层主要使用以下两种协议: UDP的主要特点: TCP的主要特点: 域名系统(Domain Name System缩写DNS,Domain Name被译为域名&…