面试题目记录

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

通用面试题

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

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

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


相关推荐
程序员杰哥2 小时前
性能测试详解
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·性能测试
让我上个超影吧2 小时前
【力扣76】最小覆盖子串
算法·leetcode·职场和发展
想进个大厂4 小时前
代码随想录day29 贪心03
算法·leetcode·职场和发展
闻哥5 小时前
从 AJAX 到浏览器渲染:前端底层原理与性能指标全解析
java·前端·spring boot·ajax·okhttp·面试
丁一郎学编程5 小时前
面试的面经
面试
阿蒙Amon6 小时前
C#每日面试题-Task和Thread的区别
java·面试·c#
橘颂TA6 小时前
【剑斩OFFER】算法的暴力美学——力扣 1020 题:飞地的数量
数据结构·c++·算法·leetcode·职场和发展·结构与算法
蒹葭玉树7 小时前
【C++上岸】C++常见面试题目--网络篇(第二十六期)
网络·c++·面试
码农水水8 小时前
米哈游Java面试被问:Shenandoah GC的Brooks Pointer实现机制
java·开发语言·jvm·spring boot·redis·安全·面试