面试题目记录

我是一个小小的垃圾测试工程师,目前作为一个垃圾测试,想换工作,想慢慢积累属于自己的面试题目。

通用面试题

你们的测试流程是什么样的?

你在工作中可有遇到什么难题?

python面试题

C++面试题

设计用例面试题

题目一:存储用例设计

给你十六个视频源,接十六个存储盘,每次启动一个存储盘,每当一个存储盘存储满之后,再开启下一个存储盘,当十六个存储盘存满之后,再继续从第一个开始循环,你怎么设计测试用例。

这道题是最近面试官给的题目,我作为UFS存储芯片设计,小小外包,从来没接触过用例设计,所以没答上来,但这种题肯定会常问的,答案是我问的AI,仅参考参考。

一、 核心功能测试:验证"轮转存储"机制正确性

这是测试的基石,要确保系统最基本的行为符合设计预期。

单个循环基础流程验证:

用例1: 启动系统,向视频源写入数据。确认只有第一个存储盘被激活并开始存储,其余15个处于待命或未激活状态。

用例2: 持续写入,直到第一个存储盘达到其定义的"满"状态(如容量达到95%,或文件系统报满)。监控系统,确认在第一个盘满的瞬间或之后,系统能自动、无中断地切换到第二个存储盘,并继续写入。

用例3: 重复上述过程,依次验证第2个盘满后切换到第3个,第3个到第4个......直到第16个盘。记录每次切换的触发点(实际容量)、切换延迟和数据是否有丢失。

用例4(关键用例): 在第16个存储盘存满后,持续写入。验证系统是否能正确循环回第一个存储盘。这里需要明确:是覆盖第一个盘上的旧数据,还是清空后重新开始?根据设计不同,要验证其行为是否符合预期(例如,覆盖最早的视频文件)。

多轮循环稳定性验证:

用例5: 进行连续多轮(如3-5轮) 完整的16盘循环存储测试。检查系统在长时间、多周期运行下,轮转逻辑是否始终保持一致,没有出现跳盘、重复使用同一盘或顺序错乱的情况。

二、 边界与异常情况测试:挑战系统的鲁棒性

这是衡量系统是否成熟的关键,需要模拟各种"意外"。

存储盘"满"的边界定义:

用例6: 测试不同"满"的定义。是物理容量100%?还是预留管理空间后的"逻辑满"(如95%)?在临界点(如99.9%)持续写入小块数据,观察切换触发是否精准,是否会因缓存等原因导致切换前写入失败。

用例7: 慢盘测试:其中一个盘写入速度极慢,导致数据流入速率大于写入速率。系统是等待该盘缓慢写满,还是根据超时机制切换?这需要明确设计逻辑。

存储盘异常场景:

用例8: 盘中拔盘:在某个盘正在存储时,热拔除该盘。系统应能检测到错误,并尝试:a) 切换到下一个可用盘继续存储;b) 报警并暂停。需验证后续轮转是否跳过这个坏盘,还是将其保留在序列中。

用例9: 插入坏盘/未格式化盘:在轮转序列中预置一个无法识别的坏盘或RAW格式盘。当轮转到它时,系统应能跳过它并转到下一个好盘,同时产生明确告警。

用例10: 盘提前满:手动将一个未轮转到的盘填满,观察当轮转到它时,系统是尝试写入失败后切换,还是能智能识别其已满状态直接跳过。

系统与电源异常:

用例11: 切换瞬间断电:恰好在存储盘A满、切换到盘B的瞬间切断系统电源。重启后,检查:上次写入的文件是否完整?系统是应该从盘B开始继续写,还是回退到盘A的末尾?需验证数据的一致性和状态恢复的正确性。

用例12: 任意时刻断电:在循环中的随机时间点暴力断电重启,检查文件系统损坏情况,以及系统重启后是否能从正确的盘继续写入。

三、 性能与压力测试:评估系统的实际承载能力

吞吐量与实时性:

用例13: 十六路视频源同时满带宽写入:测试系统的聚合写入带宽是否满足要求。监控每个盘的写入速度,确保在切换期间和稳定写入期都没有性能瓶颈。

用例14: 切换延迟测试:精确测量从"盘N满"到"盘N+1成功写入第一个数据包"的时间差。这个延迟必须小于视频源的缓冲区,否则会导致数据丢失。这是核心性能指标。

压力与容量风暴:

用例15: 使用小容量盘进行高频切换:用16个小容量U盘进行测试,让系统在短时间内频繁触发盘满切换,考验状态机切换的稳定性和文件系统频繁挂载/卸载的可靠性。

用例16: 混合磁盘类型:模拟真实场景,使用不同品牌、型号、速度(HDD, SSD, UFS卡)的存储介质混合测试,观察系统兼容性和最慢磁盘对整体流程的影响。

四、 配置与兼容性测试

用例17: 变更存储盘数量:如果系统支持配置,测试配置为少于16个(如8个)、多于16个盘时,轮转逻辑是否正常。

用例18: 变更存储盘顺序:如果系统能识别盘符或槽位,打乱物理插入顺序,测试轮转顺序是基于物理槽位还是基于系统发现的顺序。

五、 数据完整性验证

这是存储系统的根本,所有功能都必须建立在数据正确的基础上。

用例19: 数据校验:在视频源端,对发出的每一帧数据植入校验码(如CRC)或使用固定测试 pattern。在存储盘上,随机抽查各个盘、各个时间段存储的文件,进行回读校验,确保数据比特级正确。

用例20: 文件系统与索引检查:检查每个盘上生成的文件是否完整(没有半截文件),文件命名、时间戳序列是否连续正确,能否被标准播放器正常解码播放。


相关推荐
草履虫建模1 天前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础
马猴烧酒.1 天前
【面试八股|Java集合】Java集合常考面试题详解
java·开发语言·python·面试·八股
学历真的很重要1 天前
【系统架构师】第二章 操作系统知识 - 第二部分:进程管理(详解版)
学习·职场和发展·系统架构·系统架构师
闻哥1 天前
从测试坏味道到优雅实践:打造高质量单元测试
java·面试·单元测试·log4j·springboot
VT.馒头1 天前
【力扣】2722. 根据 ID 合并两个数组
javascript·算法·leetcode·职场和发展·typescript
执着2591 天前
力扣hot100 - 108、将有序数组转换为二叉搜索树
算法·leetcode·职场和发展
LiLiYuan.1 天前
【Cursor 中找不到LeetCode 插件解决办法】
算法·leetcode·职场和发展
南风知我意9571 天前
【前端面试5】手写Function原型方法
前端·面试·职场和发展
技术狂人1681 天前
2026 智能体深度解析:落地真相、红利赛道与实操全指南(调研 100 + 案例干货)
人工智能·职场和发展·agent·商机