软件测试之【面试题综合训练题】

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS PostgreSQL,集群系列 2核4GB
简介: 软件测试之【面试题综合训练题】

🔥前言

本篇内容包含了软件测试的面试题型,并配合技术要点进行解答,尽请期待本文吧!

🚀软件测试基础面试题

1️⃣:说出测试用例通用格式包含的要素

💯:

⭐️测试用例通用格式通常包含以下要素:

🔥测试用例名称:清晰描述被测试功能的名称或描述。

🔥测试目的:明确指出该测试用例的目标和目的。

🔥前提条件:列出执行该测试用例所需要满足的前提条件或环境。

🔥输入数据:指定用于执行测试的输入数据或操作步骤。

🔥预期结果:描述执行测试用例后预期得到的输出结果或行为。

🔥实际结果:执行测试用例后实际观察到的结果或行为。

🔥测试步骤:详细描述执行测试用例的步骤和操作流程,包括输入数据、操作方法、预期结果等。

🔥优先级:指定测试用例的优先级,如高、中、低等。

🔥测试环境:记录测试用例执行时所需的测试环境信息,如操作系统、浏览器版本等。

🔥备注:附加信息或补充说明,有助于理解和执行测试用例。

以上是测试用例通用格式常用的要素,有助于规范化测试流程,并确保测试覆盖的全面性和准确性。

2️⃣:简述至少10个提交缺陷时要填写的字段

💯:⭐️当提交缺陷时,通常需要填写一些重要字段,以确保缺陷能够被有效管理和跟踪。以下是提交缺陷时可能需要填写的字段,包括但不限于:

🔥缺陷标题:简明扼要地描述缺陷的主要问题或特征。

🔥缺陷描述:详细描述缺陷的现象、表现和影响,提供足够信息以便开发人员重现和修复缺陷。

🔥缺陷严重程度:指定缺陷的影响程度,如致命、严重、一般、轻微等。

🔥复现步骤:列出引发缺陷的具体操作步骤或条件,以协助开发人员模拟和确认缺陷。

🔥环境信息:描述引发缺陷的测试环境信息,如操作系统、浏览器版本、设备类型等。

🔥优先级:确定缺陷修复的紧急程度,如高、中、低等。

🔥影响范围:指出缺陷可能对系统其他部分或功能的影响程度。

🔥附件:附加相关文件、截图或日志以便更好地说明和理解缺陷。

🔥责任人:指定处理该缺陷的责任人或开发人员。

🔥备注:附加信息或补充说明,有助于更全面而准确地描述和跟踪缺陷。

填写这些字段可以帮助团队成员更有效地定位、修复和验证缺陷,提高缺陷管理的效率和质量。

3️⃣:比较等价类划分法与判定表法的优缺点

💯:等价类划分法(Equivalence Partitioning)

优点:

简单易懂:等价类划分法易于理解和使用,不需要复杂的计算或分析。

覆盖全面:可以有效地覆盖各种不同类别的输入情况,减少测试用例数量且仍能发现大部分缺陷。

高效节约:能够最大程度减少测试用例的数量,同时保证覆盖了主要的测试场景。

提高可靠性:通过等价类划分,可以更容易地识别和管理测试用例,提高测试用例的可靠性。

缺点:

局限性:难以精确划分等价类;有时候无法避免需要覆盖一些特殊的情况。

测试覆盖:不能保证覆盖所有可能出现的异常情况,可能会漏掉一些边界条件。

依赖严重:依赖于正确的等价类划分,如果等价类划分不准确,可能导致遗漏某些缺陷。

划分不均匀:有时候等价类的划分不均匀,可能导致某些等价类覆盖不充分。

判定表法(Decision Table Testing)

优点:

覆盖全面:能够处理多个条件组合的测试情况,覆盖更多的可能路径和情况。

适应性强:适用于复杂的系统和多种条件组合的测试设计需求。

简化逻辑:能够以表格形式清晰呈现各种条件情况和对应的测试动作,简化了测试设计逻辑。

易于理解:决策表清晰简洁,易于理解和共享。

缺点:

复杂设计:针对复杂场景,决策表可能变得庞大复杂,设计和维护困难。

测试用例数增多:随着条件数目的增加,生成的测试用例数量也会增加,可能需要大量的测试用例。

耗时耗力:编写和维护大规模的决策表需要耗费大量的时间和精力。

容易出错:决策表设计一旦出错,可能会导致遗漏某些测试场景或引入错误缺陷。

总体而言,等价类划分法适用于简单条件下的测试设计,简单且高效;而判定表法适用于复杂条件下的测试设计,能够更全面地覆盖多种条件组合情况,但也更复杂且耗时。选择使用哪种方法取决于具体的测试需求和系统复杂程度。

4️⃣某视频的回放功能,播放时可以迁移到哪些状态

💯

🚀Linux操作(基础命令、docker、Git、mysql、shell)面试题

基础命令

1️⃣:在linux中如何实时查看后台日志

💯:在Linux中,可以使用以下几种方法实时查看后台日志:

使用tail命令:tail -f /path/to/logfile命令可以实时显示日志文件的最新内容。通过这种方式可以方便地监视后台日志文件的变化。

使用journalctl命令:如果系统使用systemd作为日志管理工具,可以使用journalctl -f命令实时查看系统日志。

使用less命令:可以使用less +F /path/to/logfile命令实时查看日志文件。按Shift+F可以切换到实时追踪模式。

使用tail和grep命令:结合使用tail -f /path/to/logfile | grep "keyword"命令可以过滤出包含特定关键词的日志内容。

2️⃣:测试时什么时候会使用linux命令

💯:在软件测试过程中,以下情况下可能会用到 Linux 命令:

环境设置:在测试环境搭建过程中,可能需要使用 Linux 命令进行软件的安装、配置和更新,以确保测试环境的准备工作。

日志查看:在进行测试时,可能需要实时查看后台日志以监控系统运行状态、记录错误信息或查找异常情况。可以使用 Linux 命令如 tail、grep、journalctl 等进行日志查看。

文件操作:在测试过程中可能需要对文件进行管理,包括查看、编辑、复制、移动、删除等操作。Linux 的文件管理命令如 ls、cp、mv、rm 等会在此时派上用场。

版本控制:如果使用版本控制系统(如 Git)进行测试用例或代码管理,可能需要使用 Linux 命令来克隆代码仓库、提交代码、查看版本历史等操作。

运行测试脚本:在执行自动化测试时,可能需要在终端中运行测试脚本文件,以便自动执行测试用例并生成测试报告。

性能测试:在进行性能测试时,可能需要使用一些 Linux 命令来监控系统资源占用情况、查看进程信息、分析性能数据等。

总的来说,Linux 命令在软件测试过程中的作用主要是进行环境配置、日志查看、文件操作、版本控制、运行测试脚本等操作。熟练掌握一些常用的 Linux 命令可以提高测试工作效率和便捷性。

docker

3️⃣:docker search httpd 的命令结果,请说明各字段的含义

💯:name:镜像仓库源名

description:镜像描述

stars:点赞数

official:是否为docker官方发布

automated :自动构建

4️⃣:如果你忘记一条Docker的命令,可以采用什么方式打出命令?并举例

💯Docker --help

知道具体的命令名的话可以 docker xx --help

例如:docker run --help

Git

5️⃣:把内容从工作区推送到远程仓库,需要执行哪些命令

💯:要将内容从Git工作区推送到远程仓库,你可以执行以下命令:

🔥添加文件到暂存区:如果有新的文件或修改过的文件需要推送到远程仓库,首先需要将这些更改添加到Git的暂存区。可以使用以下命令添加所有更改:

git add .

🔥提交更改到本地仓库:一旦文件被添加到暂存区,就可以将这些更改提交到本地仓库并添加提交信息:

git commit -m "Commit message"

🔥推送更改到远程仓库:最后,使用以下命令将本地仓库中的更改推送到远程仓库。在这里,origin是你远程仓库的名称,master是你要推送到的远程分支的名称,通常默认为master:

git push origin master

执行以上步骤,你就可以将Git工作区中的内容成功推送到远程仓库中了。确保在执行git push命令之前,你已经添加并提交了在工作区中所做的更改。

6️⃣:git如何恢复文件

💯:要恢复被删除或修改的文件,可以使用 Git 中的以下命令:

⭐️恢复修改的文件:

如果你修改了一个文件,但还没将这些修改添加到暂存区,可以使用以下命令将文件恢复到最近一次的提交状态:

git checkout -- <file>

其中, 是被修改的文件名。

⭐️恢复被删除的文件:

如果你删除了一个文件,并希望将其恢复,可以使用以下命令:

git checkout HEAD -- <file>

这将从最近的提交中恢复文件的内容。

⭐️恢复特定版本的文件:

如果你知道文件在某个特定提交中是正确的,可以使用以下命令将文件内容恢复到该特定版本:

git checkout <commit-SHA> -- <file>

其中, 是希望恢复的提交的 SHA 值。

通过使用上述命令,你可以轻松地恢复 Git 中的文件,无论是被修改、删除或者需要回滚到特定版本。记得在恢复文件之前,认真检查文件路径和状态,以免意外修改或丢失文件。

mysql

7️⃣:关联查询的方式有哪几种?关键字分别是啥?

💯内连接(Inner Join):关键字是 INNER JOIN 或 JOIN。

外连接(Outer Join):包括左外连接(Left Outer Join)、右外连接(Right Outer Join)和全外连接(Full Outer Join)。对应的关键字是 LEFT JOIN、RIGHT JOIN 和 FULL JOIN。

PS:MySQL实际上是支持FULL JOIN语法的,但是MySQL并没有使用标准的FULL JOIN关键字,而是可以通过使用LEFT JOIN和RIGHT JOIN的组合来模拟实现全外连接。具体方法如下:

SELECT *
FROM table1
LEFT JOIN table2 ON table1.id = table2.id
UNION
SELECT *
FROM table1
RIGHT JOIN table2 ON table1.id = table2.id;

8️⃣简述where和having的区别

💯在MySQL中,WHERE 和 HAVING 子句都用于筛选数据,但它们主要在以下几个方面有所不同:用法:

WHERE 子句用于在对表中的数据进行操作前,对行进行过滤,即在执行SELECT, UPDATE, DELETE 语句时,WHERE 子句判断每一行是否符合条件,只有符合条件的行才参与操作。

HAVING 子句用于在对分组后的结果进行过滤,通常与 GROUP BY 结合使用,用于筛选分组后的数据。HAVING 子句在数据分组后,对每个分组的聚合结果进行过滤。

执行顺序:

WHERE 子句在查询数据时先执行,用于过滤行。数据过滤在分组前进行,对数据行进行筛选。

HAVING 子句在 GROUP BY 分组后执行,用于过滤分组。只有在对数据进行分组后,才对每个分组的聚合结果应用筛选条件。

可用范围:

WHERE 子句可用于任何SELECT语句中。

HAVING 子句一般用于包含GROUP BY子句的查询,用于对分组后的结果进行过滤。

综上所述,WHERE 用于筛选行,HAVING 用于筛选分组后的结果。在一般的 SELECT 语句中,首先应该使用 WHERE 进行数据行的筛选,然后使用 HAVING 对分组结果进行过滤,特别是在聚合函数中使用分组时。

shell

🅰️简述shell脚本保存为test.sh,并赋予执行权限,然后在终端中执行该脚本,需要使用到哪些命令?

💯创建一个名为 test.sh 的shell脚本,并给予执行权限,然后在终端中执行该脚本,你需要使用以下几个命令:

创建名为 test.sh 的shell脚本文件:

touch test.sh

编辑 test.sh 文件并添加shell脚本内容,比如:

#!/bin/bash
echo "Hello, world!"

给 test.sh 脚本文件添加执行权限:

chmod +x test.sh

在终端中执行该脚本:

./test.sh

在执行完成后,你将看到输出 Hello, world!。

🅱️编写一个shell脚本,在当前目录下新建一个空白文件aa.txt和一个叫dir1的目录,并把aa.txt复制到dir1的目录下。

💯编写脚本如下

#!/bin/bash
# 创建空白文件 aa.txt
touch aa.txt
# 创建名为 dir1 的目录
mkdir dir1
# 复制 aa.txt 到 dir1 目录下
cp aa.txt dir1/

⭐️⭐️⭐️总结

本文简单的实例了软件测试相关的面试简答题,包含了软测的基础知识以及Linux的相关操作知识,希望对友友们能有所帮助。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
2月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
156 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
2月前
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
76 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
4月前
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
2月前
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
3271 1
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
PyTorch 算法框架/工具 计算机视觉
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
本文介绍了使用YOLOv4-Tiny进行目标检测的完整流程,包括模型介绍、代码下载、数据集处理、网络训练、预测和评估。
177 2
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
|
2月前
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
567 0
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
156 0
|
2月前
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
312 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
2月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
66 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
|
2月前
|
机器学习/深度学习 XML 并行计算
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用YOLOX完成图像目标检测任务的完整流程,包括数据准备、模型训练、验证和测试。
244 0
目标检测实战(七): 使用YOLOX完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)