谈谈初级软件测试工程师具备的知识与技能

2023-11-05


什么是软件测试

软件测试的经典定义是: 在规定的条件下对程序进行操作,以发现程序错误,衡量软件品质,并对其是否能满足设计要求进行评估的过程。

软件测试的现实定义是: 软件测试是贯穿整个软件开发生命周期、对软件产品(包括阶段性产品)进行验证和确认的活动过程,其目的是尽快尽早地发现在软件产品中所存在的各种问题——与用户需求、预先定义的不一致性。

掌握技能

1.测试基础理论:你要明白一家互联网公司各个岗位是做什么的,主要是前端,后端,产品经理…以及一个版本迭代从需求分析到上线整个测试流程以及使用的管理工具。要掌握测试用例的编写方法与技巧。

2.功能测试:主要分为app测试,web测试和接口测试。主要就是接口测试,你要学会使用两个工具,一个是postman用来调接口,一个是fiddler用来抓包定位bug。学好接口测试也是为以后的性能压测学习打下基础。

3.数据库:首学mysql,主要掌握sql语句,增删查改,嵌套子查询,多表查询。加分项会存储过程,懂索引,事务,sql优化。这些初级不强求。工作中使用最多的是查询和修改语句,主要校验前端的传值以及不同系统接口调用数据传输,存值是否正确。

4.linux:会linux基本命令,比如linux三剑客等,会用命令查日志,会搭建测试环境。因为绝大多数公司服务器以及代码都是部署在linux系统上,工作中用的最多的就是查询日志,定位bug。

5.网络协议:会http/https协议,高频面试题目接口请求的方式get与post区别,cookie与session机制区别,三次挥手四次断开,输入百度网址发生了什么?这些都要了解。

6.版本控制工具:主要就是git和svn,git是命令形式,svn是图形化界面,企业主要用来管理代码以及文档等,属于工具使用,比较简单,最好都会。

7.编程语言:java/python之一,初级对编程语言要求不高,不会也可,但是是加分项,最好掌握一些基础语法,比如学完javase,能手写实现冒泡排序或其它排序,很加分。

8.自动化:主要分为Web自动化,App自动化,接口自动化。初级要求不高,知道一些框架即可,如果学习请优先学习接口自动化,目前需求最多。加分项是会使用搭好的框架编写自动化case,脚本等。

9.性能测试:初级没要求,加分项会使用jmeter做接口压测,并发测试等。

测试的方法

软件测试一般分为白盒测试和黑盒测试。

黑盒测试

黑盒测试,软件测试的主要方法之一,也可以称为功能测试、数据驱动测试或基于规格说明的测试。 测试应用程序的功能,而不是其内部结构或运作。测试者不需具备应用程序的代码、内部结构和编程语言的专门知识。测试者只需知道什么是系统应该做的事,即当键入一个特定的输入,可得到一定的输出,这是从用户的角度针对软件界面、功能及外部结构进行测试,而不考虑程序内部逻辑结构。测试用例是应用系统应该做的功能,照规范、规格或要求等设计。测试者选择有效输入和无效输入来验证是否正确的输出。此测试方法可适合大部分的软件测试,例如单元测试(unittesting)、集成测试(integrationtesting)以及系统测试(systemtesting)。

白盒测试

白盒测试 (又称透明盒测试、结构测试等)是一个测试软件的方法,测试应用程序的内部结构或运作,而不是测试应用程序的功能(即黑盒测试)。 在白箱测试时,以编程语言的角度来设计测试案例。测试者输入数据验证数据流在程序中的移动路径,并确定适当的输出,类似测试电路中的节点。

白箱测试可以应用于单元测试、集成测试和系统的软件测试流程,可测试在集成过程中每一单元之间的路径,或者主系统跟子系统中的测试。尽管这种测试的方法可以发现许多的错误或问题,它可能无法检测未使用部分的规范。

测试类型

功能测试

按照测试软件的各个功能划分进行有条理的测试,在功能测试部分要保证测试项覆盖所有功能和各种功能条件组合。更详细的描述请参见“黑盒测试”。

系统测试

对一个完整的软件以用户的角度来进行测试,系统测试和功能测试的区别是,系统测试利用的所有测试数据和测试的方法都要模拟成和用户的实际使用环境完全一样,测试的软件也是经过系统集成以后的完整软件系统,而不是在功能测试阶段利用的每个功能模块单独编译后生成的可执行程序。

极限值测试

对软件在各种特殊条件,特殊环境下能否正常运行和软件的性能进行测试。

特殊条件一般指的是软件规定的最大值,最小值,以及在超过最大,小值条件下的测试。特殊环境一般指的是软件运行的机器处于CPU高负荷,或是网络高负荷状态下的测试,根据软件的不同,特殊环境也有过不同。

性能测试

性能测试是对软件性能的评价。简单的说,软件性能衡量的是软件具有的响应及时度能力。因此,性能测试是采用测试手段对软件的响应及时性进行评价的一种方式。根据软件的不同类型,性能测试的侧重点也不同。

压力测试

压力测试,确立系统稳定性的一种测试方法,在软件工程、金融风险管理等领域应用比较普遍。通常在系统正常运作范围之外进行,以考察其功能极限和隐患。

压力测试与性能测试的区别

压力测试常常和性能测试相混淆。它们主要不同点是,压力测试要求进行超过规定性能指标的测试。例如一个网站设计容量是100个人同时点击,压力测试就要是采用120个同时点击的条件测试。


最后:软件测试资料分享一波!

技术行业,一定要提升技术功底,丰富自动化项目实战经验,这对于你未来几年职业规划,以及测试技术掌握的深度非常有帮助。

金九银十面试季,跳槽季,整理面试题已经成了我多年的习惯!下面有我近几年的收集和整理,整体是围绕着【软件测试】来进行整理的,主体内容包含:python自动化测试专属视频、Python自动化详细资料、全套面试题等知识内容。

愿你我相遇,皆有所获! 如果对软件测试、接口测试、自动化测试、面试经验交流。关注微信公众号:【伤心的辣条】 免费领取一份216页软件测试工程师面试宝典文档资料。以及相对应的视频学习教程免费分享!交流学习裙:313782132

推荐好文:

自动化测试到底要学什么?

为何跳槽不考虑腾讯?聊聊我和鹅厂的一点往事

自动化测试和手动测试哪个更高级?

新手必看:怎么写一个合格的测试用例?

python登录接口测试问题记录与解决 ( 干 货 )

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

谈谈初级软件测试工程师具备的知识与技能 的相关文章

  • Tastypie 与 application/x-www-form-urlencoded

    我有点难以弄清楚下一步应该做什么 我正在使用 tastypie 为我的 Web 应用程序创建 API 从另一个应用程序 特别是 ifbyphone com 我收到一个没有标题的 POST 如下所示 post data http myapp
  • 如何在 Python 中使用 .format() 打印“for”循环中的列表?

    我是 Python 新手 我正在编写一段非常简单的代码 使用 for 循环打印列表的内容 format 我想要如下的输出 但我收到此错误 names David Peter Michael John Bob for i in names p
  • 为什么具有复杂无穷大的 NumPy 运算会导致有趣的结果?

    我注意到复杂的无穷大的有趣结果 In 1 import numpy as np In 2 np isinf 1j np inf Out 2 True In 3 np isinf 1 1j np inf Out 3 True In 4 np
  • Python 3.4.3 subprocess.Popen 在没有管道的情况下获取命令的输出?

    我试图将命令的输出分配给变量 而不让命令认为它正在通过管道传输 原因是 如果正在通过管道传输 则相关命令会给出未格式化的文本作为输出 但如果从终端运行 则会给出颜色格式化的文本 我需要获取这种颜色格式的文本 到目前为止我已经尝试了一些事情
  • Django REST Framework:无法使用视图名称解析超链接关系的 URL

    我已经广泛研究了这个相当常见的问题 但没有一个修复对我有用 我正在 REST 框架中构建 Django 项目 并希望使用超链接关系 用户可以拥有许多独立的汽车和路线 路线是位置的集合 这些是我的序列化器 class CarSerialize
  • 预处理 csv 文件以与 tflearn 一起使用

    我的问题是关于在将 csv 文件输入神经网络之前对其进行预处理 我想使用 python 3 中的 tflearn 为著名的 iris 数据集构建一个深度神经网络 数据集 http archive ics uci edu ml machine
  • 使用opencv+picamera流IO用树莓派捕获视频

    我使用 Raspberry 来简单地显示一个视频 目前仅此 为此 我必须使用 opencv cv2 我尝试了很多解决方案 但现在我想使用 Picamera 库捕获视频 我将向您展示我的代码 import io import time imp
  • 类型错误:只有长度为 1 的数组可以转换为 Python 标量

    我是 openCV 的初学者 正在尝试分析数独求解器的现有代码 有这一段代码会引发错误 samples np float32 np loadtxt feature vector pixels data responses np float3
  • 不使用 graphviz/web 可视化决策树

    由于某些限制 我无法使用 graphviz webgraphviz com 可视化决策树 工作网络与另一个世界是封闭的 问题 是否有一些替代实用程序或一些 Python 代码用于至少非常简单的可视化可能只是决策树的 ASCII 可视化 py
  • 如何在 sqlalchemy 中创建基于文字的查询?

    我创建了一个函数来创建表达式 def test operator1 operation operator2 return literal column operator1 op operation operator2 现在当我用 test
  • 自定义信号的声明

    在 Qt 中 我们可以通过将自定义信号设为静态变量来创建它们 然后我们使用self signame反而classname signame 这样就在类中创建了一个实例变量 我想了解这种模式之外的理论 这是我尝试过的一些伪代码 这些伪代码已记录
  • 在 PyCharm 中运行命令行命令

    你好 我正在使用Python 但之前从未真正使用过它 我收到一些命令 需要在终端中运行 基本上 python Test py GET feeds 我正在使用 PyCharm 我想知道是否有办法从该 IDE 中运行这些相同的命令 按 Alt
  • 使用 Twisted Python 的 UDP 客户端和服务器

    我想创建一个服务器和客户端 使用 Twisted 从网络发送和接收 UDP 数据包 我已经用 Python 中的套接字编写了此代码 但想利用 Twisted 的回调和线程功能 然而 我需要 Twisted 设计方面的帮助 我想接收多种类型的
  • 使用 shell=True 将 PATH 设置为 bitbake 的“source”在 Python 中没有效果

    下面是shell脚本中的代码 source proj common tools repo etc profile d repo sh repo project init branch repo project sync source pok
  • 如何使用 Python Pandas 制作 DataFrame 切片并在特定切片中“fillna”?

    问题 让我们从 Kaggle 获取泰坦尼克号数据集 我有包含 Pclass 性别 和 年龄 列的数据框 我需要用特定组的中位数填充 年龄 列中的 NaN 如果是来自一等的女性 我想用一等女性的中位数填写她的年龄 而不是整个年龄列的中位数 问
  • python 中的异步编程

    python 中有异步编程的通用概念吗 我可以为一个函数分配一个回调 执行它并立即返回主程序流 无论该函数的执行需要多长时间吗 您所描述的 主程序流程在另一个函数执行时立即恢复 不是通常所说的 异步 又名 事件驱动 编程 而是 多任务 又名
  • Python写入dbf数据时出错

    我得到这个错误 DbfError unable to modify fields individually except in with or Process 如何修复它 这是我的code with dbf Table aa dbf as
  • Flask APScheduler + Gunicorn 工作人员 - 在套接字修复后仍在运行任务两次

    我有一个 Flask 应用程序 我使用 Flask APScheduler 在我的数据库上运行计划查询并通过 cron 作业发送电子邮件 我通过 Gunicorn 使用以下配置运行我的应用程序并通过主管进行控制 program myapp
  • 使用 Tweepy 获取推文时出错

    我有一个用于获取推文的 Python 脚本 在脚本中我使用该库 Tweepy 我使用有效的身份验证参数 运行此脚本后 一些推文存储在我的 MongoDB 中 有些则被 if 语句拒绝 但我仍然收到错误 requests packages u
  • 有效积累稀疏 scipy 矩阵的集合

    我有一个 O N NxN 的集合scipy sparse csr matrix 每个稀疏矩阵都有 N 个元素集 我想将所有这些矩阵加在一起以获得一个常规的 NxN numpy 数组 N 约为 1000 矩阵内非零元素的排列使得所得总和肯定不

随机推荐

  • H3C官网-inode客户端下载

    打开 新华三官网 点击登录 用户名 yx800 密码 01230123 MacOS 安装 iNode Client 的事故与故事 提示 libCoreUtils dylib 将对您的电脑造成伤害 知乎 怎么用mac通过inode上网 知乎
  • js对象获取属性值的方法([]和.方式的不同)

    javascript获取目标对象的属性值 有两种方法 1 通过object key 即 的方式 2 通过object key 即 方式 下面用一个例子来说明 通过 方式获取属性值 key是静态值 即 h value 时 h是没有 为静态值
  • python中的生成器(generator)

    一 生成器 生成器是 Python 中非常有用的一种数据类型 它可以让你在 Python 中更加高效地处理大量数据 生成器可以让你一次生成一个值 而不是一次生成一个序列 这样可以节省内存并提高性能 二 实现generator的两种方式 py
  • js逆向加密五邑大学教务系统密码AES实现模拟登录(仅供参考)

    最近下班无聊 就看了一下之前写的教务系统模拟登录代码 python 爬虫 整体逻辑大概自己总结了一下 1 请求验证码图片 2 对输入的密码进行加密 3 封装账号 密码 验证码 发送post请求 但是在第2步的时候对输入的密码进行加密的过程中
  • 解决Git中fatal: refusing to merge unrelated histories

    Git的报错 在使用Git的过程中有时会出现一些问题 那么在解决了每个问题的时候 都需要去总结记录下来 下次不再犯 一 fatal refusing to merge unrelated histories 今天在使用Git创建项目的时候
  • Python中关于列表list的各种技能整理【定义、增删查改、函数、列表表达式】附练习题

    大家早上好 本人姓吴 如果觉得文章写得还行的话也可以叫我吴老师 欢迎大家跟我一起走进数据分析的世界 一起学习 感兴趣的朋友可以关注我的数据分析专栏 里面有许多优质的文章跟大家分享哦 今天带大家温习的是Python中的列表操作 全篇博文没有难
  • 【数据库学习】数据库平台:Postgres(PG)与PostgreSQL

    中文文档 PostgreSQL 10 6举例 Postgres原理及底层实现 1 安装配置与常见命令 1 安装与配置 安装 yum install https rpm 1 gt 安装目录 bin目录 二进制可执行文件目录 此目录下有post
  • Lim测试平台快速上手教程

    一 数据准备 这里我们将Lim平台作为测试项目 并通过编写一个简单的用例来介绍一下LIm的功能和流程 用例的步骤如下 用户登录 创建项目 修改项目 项目地址 http 121 43 43 59 二 编写用例 大多的接口测试平台都需要用户先维
  • 17_LinuxLCD驱动

    目录 Framebuffer设备 LCD驱动简析 LCD驱动程序编写 LCD屏幕参数节点信息修改 LCD 屏幕背光节点信息 使能Linux logo显示 设置LCD作为终端控制台 Framebuffer设备 先来回顾一下裸机的时候LCD驱动
  • 行为树的原理及实现

    查阅了一些行为树资料 目前最主要是参考了这篇文章 看完后感觉行为树实乃强大 绝对是替代状态机的不二之选 但从理论看起来很简单的行为树 真正着手起来却发现很多细节无从下手 总结起来 就是 1 行为树只是单纯的一棵决策树 还是决策 控制树 为了
  • 如何管理技术团队?我的 6 个建议

    我工作近 10 年 是程序员出身 有大概 5 年的管理经验 最多管理过 40 人的技术团队 本文是个人的一些观点和建议 以及这些年的一点感悟 希望对于管理人员 特别是中层管理者有点用处 管理技术团队 其实也是管理的一种 我个人认为 管理能力
  • ms08-067漏洞复现

    文章目录 ms08 067简介 复现 实验环境 漏洞利用 ms08 067简介 Windows Server服务RPC请求缓冲区溢出漏洞 MS08 067 漏洞类别 远程溢出 CVE ID 2008 4250 漏洞详情 MicrosoftW
  • 更改软件计算机无法启动怎么办,无法开机:windows未能启动,原因可能是最近更改了硬件或软件...

    win7系统 电脑无法启动 屏幕提示 windows未能启动 原因可能是最近更改了硬件或软件 这个问题我电脑出现过一模一样的 不用从装系统 简单一步就能开机 1 开机出现第一个页面 就是这个图片这样按F8 进入安全模式 2 然后就是这个页面
  • QT-------UI基础到进阶,干货满满!!!

    目录 一 UI基础 1 QWidget类 掌握 2 添加子组件 掌握 3 样式表 熟悉 二 UI进阶 1 Designer 设计师 掌握 2 布局 Layout 掌握 3 QWidget属性 掌握 4 UI指针 掌握 5 基础组件 熟悉 5
  • 云服务器配置环境Linux初学常用命令以及操作步骤

    云服务器Linux初学常用命令 ls 查看此目录下所有文件夹的名称 cd 返回上一个文件夹 cd 返归根目录 cd file 查看指定的文件夹 file是你自己指定的文件夹的名称 tar zxvf file 解压你指定的gz包 file是你
  • layui 日期范围选择

    layui时间范围选择 相信很多时候项目中会遇到时间范围选择 废话不多说上图 上代码 div class layui inline div class layui input inline style width 160px div div
  • “数字孪生城市”的概念,你知道多少?

    随着大数据时代的到来以及互联网 云计算 物联网 人工智能技术等新一代先进信息技术的发展 近年来陆续诞生了数字城市 智慧城市以及数字孪生城市等各种 新型城市 概念 数字城市是随着1998年美国前副总统阿尔 戈尔提出 数字地球 之后而产生的概念
  • W25Q256学习

    一 基本特性 容量256Mb 最小的组织单位是页每个页256个字节 可进行页编程 一次写256个字节 16个页组成4KB的扇区 可进行扇区擦除 128个扇区组成32KB块 64KB的组 可以整片擦除 256有8192个扇区和512个块 25
  • 在 Web.config 中,配置允许多个指定的域名进行跨域访问

    一般来说 如果是要允许跨域访问 最简单的设置 就是在 Web config 中 将 Access Control Allow Origin 设置为 即可 如下所示
  • 谈谈初级软件测试工程师具备的知识与技能

    什么是软件测试 软件测试的经典定义是 在规定的条件下对程序进行操作 以发现程序错误 衡量软件品质 并对其是否能满足设计要求进行评估的过程 软件测试的现实定义是 软件测试是贯穿整个软件开发生命周期 对软件产品 包括阶段性产品 进行验证和确认的