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

本文涉及的产品
RDS Agent(兼容OpenClaw),2核4GB
RDS MySQL DuckDB 分析主实例,集群系列 4核8GB
RDS DuckDB + QuickBI 企业套餐,8核32GB + QuickBI 专业版
简介: 软件测试之【面试题综合训练题】

🔥前言

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

🚀软件测试基础面试题

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的相关操作知识,希望对友友们能有所帮助。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
目录
相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
813 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
数据采集 机器学习/深度学习 大数据
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
这篇文章详细介绍了C3D架构在行为检测领域的应用,包括训练和测试步骤,使用UCF101数据集进行演示。
747 1
行为检测代码(一):超详细介绍C3D架构训练+测试步骤
|
7月前
|
监控 Java 关系型数据库
面试性能测试总被刷?学员真实遇到的高频问题全解析!
面试常被性能测试题难住?其实考的不是工具,而是分析思维。从脚本编写到瓶颈定位,企业更看重系统理解与实战能力。本文拆解高频面试题,揭示背后考察逻辑,并通过真实项目训练,帮你构建性能测试完整知识体系,实现从“会操作”到“能解决问题”的跨越。
|
机器学习/深度学习
神经网络与深度学习---验证集(测试集)准确率高于训练集准确率的原因
本文分析了神经网络中验证集(测试集)准确率高于训练集准确率的四个可能原因,包括数据集大小和分布不均、模型正则化过度、批处理后准确率计算时机不同,以及训练集预处理过度导致分布变化。
|
机器学习/深度学习 编解码 监控
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
这篇文章详细介绍了如何使用YOLOv8进行目标检测任务,包括环境搭建、数据准备、模型训练、验证测试以及模型转换等完整流程。
27008 59
目标检测实战(六): 使用YOLOv8完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
PyTorch 算法框架/工具 计算机视觉
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
本文介绍了使用YOLOv4-Tiny进行目标检测的完整流程,包括模型介绍、代码下载、数据集处理、网络训练、预测和评估。
1225 2
目标检测实战(二):YoloV4-Tiny训练、测试、评估完整步骤
|
机器学习/深度学习 监控 计算机视觉
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
本文介绍了如何使用YOLOv7进行目标检测,包括环境搭建、数据集准备、模型训练、验证、测试以及常见错误的解决方法。YOLOv7以其高效性能和准确率在目标检测领域受到关注,适用于自动驾驶、安防监控等场景。文中提供了源码和论文链接,以及详细的步骤说明,适合深度学习实践者参考。
4141 1
目标检测实战(八): 使用YOLOv7完成对图像的目标检测任务(从数据准备到训练测试部署的完整流程)
|
机器学习/深度学习 JSON 算法
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
本文介绍了DeepLab V3在语义分割中的应用,包括数据集准备、模型训练、测试和评估,提供了代码和资源链接。
4642 0
语义分割笔记(二):DeepLab V3对图像进行分割(自定义数据集从零到一进行训练、验证和测试)
|
运维 测试技术
拆分软件测试流程,一张图秒杀所有面试
本文主要介绍了软件测试流程的核心内容,包括需求分析、测试用例编写、测试执行、缺陷提交及回归测试等关键步骤。以迭代测试为例,详细说明了每个环节的具体操作和注意事项,并提供了一张测试流程图以便理解。测试流程确保了软件质量,是面试中常见的考察点。
1396 7
拆分软件测试流程,一张图秒杀所有面试
|
机器学习/深度学习 并行计算 数据可视化
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)
这篇文章介绍了如何使用PaddleClas框架完成多标签分类任务,包括数据准备、环境搭建、模型训练、预测、评估等完整流程。
1410 0
目标分类笔记(二): 利用PaddleClas的框架来完成多标签分类任务(从数据准备到训练测试部署的完整流程)

热门文章

最新文章