🔥前言
本篇内容包含了软件测试的面试题型,并配合技术要点进行解答,尽请期待本文吧!
🚀软件测试基础面试题
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的相关操作知识,希望对友友们能有所帮助。