📤 软件测试面试:图片上传功能测试

核心思路:先验证正常功能可用性,再覆盖异常 / 边界场景,最后防范性能 / 安全风险,全维度确保上传功能稳定可靠。

🎯 一、功能测试(核心重点)

✅ 正常上传场景

  • 格式合规:JPG/PNG/GIF 等预期支持格式,上传后预览、存储、访问正常;
  • 大小合规:上传≤最大限制(如 5MB)的图片,无卡顿、成功落地;
  • 批量上传:按需求验证单张 / 多张(如最多 10 张)上传,顺序 / 结果无误;
  • 特殊格式:WebP/SVG/ 透明背景 PNG、带水印图片,按产品需求验证是否支持。

❌ 异常上传场景

  • 格式非法:上传 TXT/EXE/MP4 等非图片格式,提示 “仅支持 JPG/PNG/GIF 格式”;
  • 大小超限:上传>限制(如 6MB)的图片,提示 “图片大小不能超过 5MB”;
  • 无效文件:损坏图片(后缀篡改、文件不完整)、空文件,上传失败且提示清晰;
  • 重复上传:相同名称 / 内容的图片,验证 “覆盖原文件 / 自动重命名(xxx_1.jpg)/ 提示重复” 逻辑。

🔌 二、兼容性测试

  • 💻 设备兼容:PC 端(Chrome/Firefox/Edge)、移动端(iOS/Android 浏览器 / APP)均能正常上传;
  • 🖥️ 系统兼容:Windows/Mac/iOS/Android 不同系统,无格式解析、路径存储差异;
  • 🌐 浏览器兼容:不同浏览器对特殊格式(如 WebP)、大文件的支持一致性。

⚡ 三、性能测试

  • 📶 网络适配:WiFi/4G/5G / 弱网(卡顿 / 延迟)下,上传速度合理、无超时;
  • 🌪️ 并发上传:多用户(如 100 人)同时上传,服务器无崩溃、无数据丢失;
  • 📦 大文件上传:接近最大限制(如 4.9MB)的图片,上传稳定、进度条显示准确;
  • 🔄 断点续传:上传中断网 / 刷新页面 / 关闭窗口,重连后能否恢复上传进度。

🎨 四、UI / 交互测试

  • 按钮交互:上传按钮样式正常、点击触发文件选择,禁用状态(如未登录)不可点击;
  • 进度提示:上传中显示进度条 / 百分比,支持暂停、取消上传(取消后清理临时文件);
  • 预览交互:上传后显示缩略图,点击可查看原图,支持删除已上传图片;
  • 状态反馈:成功 / 失败 / 上传中,文案 + 图标提示清晰(如绿色对勾、红色感叹号)。

🛡️ 五、安全测试

  • 🔍 文件名注入:上传含特殊字符(/ \ : * ? " < > |)的图片,验证是否自动过滤 / 重命名;
  • 🦠 恶意文件:上传伪装成图片的病毒文件(如.jpg 后缀的 EXE),服务器能拦截并提示;
  • 🚫 路径遍历:上传含 “../” 的文件名,防止服务器文件路径被篡改(如避免访问 /root/ 系统文件);
  • 🔐 权限控制:未登录用户、低权限用户(如游客)上传,验证是否限制操作并提示 “请登录后上传”。

📏 六、边界与其他测试

  • 尺寸边界:超小尺寸(1x1 像素)、超大尺寸(10000x10000 像素)图片,能否正常上传 / 预览;
  • 📂 存储边界:服务器存储满时上传,提示 “存储空间不足,请稍后再试”;
  • 🌍 特殊场景:中文 / 特殊字符文件名(如 “测试图片_🔥.jpg”),上传后文件名无乱码、可正常访问。

🎯 面试答题技巧

  1. 逻辑优先:先讲核心功能(正常 + 异常),再讲兼容 / 性能 / 安全,符合测试执行优先级;
  2. 实操体现:举例 “用 1x1 像素超小图、5.1MB 超大图测边界,用含‘../’的文件名测路径遍历风险”;
  3. 加分点:提到 “断点续传”“并发控制”“恶意文件拦截”,体现对实际场景的深入考虑;
  4. 简洁记忆:用 “功能(正常 + 异常)→ 兼容→ 性能→ 交互→ 安全→ 边界” 六维度快速串联。
全部评论
点赞 回复 分享
发布于 2025-12-03 07:12 上海

相关推荐

2025-12-23 16:30
蚌埠坦克学院 Java
1.自我介绍(拷打实习项目)2.对实习中用到的技术栈,哪些比较熟悉呢?3.在你的项目里,ES一般用来做什么?4.用ES做搜索引擎主要是用它的全文检索吗?(?)5.ES作为搜索引擎来说,它的数据是怎么去存储的呢?6.ES是怎么做的快速检索功能?7.你知道ES的倒排索引吗?8.ES作为向量数据库是只有一个索引吗,还是说按照时间去分?9.ES作为向量数据库,它的重要字段是哪些?10.文章的内容是存在哪的?11.用户从对内容进行检索到获取反馈,链路是什么?12.进行关键词检索的时候,具体是怎么做的?13.一次完整的从文件上传到文件存储是怎么实现的?14.ES作为向量数据库,到底存哪些东西,文章标题会存进去吗?15.项目里哪些地方用到了Redis?16.Redis的过期时间是怎么设置的呢?17.用Redis存储分片上传状态的话,过期时间是怎么设置的呢?18.进行文件拆分的话,是异步处理的吗?19.在异步处理的时候,如果失败了,客户怎么感知呢?(面试官以为有个任务中心)(拷打练手项目,Tech-pai)1.项目里ES用来做什么的,也存了向量的吗?2.ES的模糊匹配怎么实现的呢?3.ES的分页展示是怎么做的?4.如果超过一万条数据进行分页展示,会有什么问题?5.为什么ES能实现搜索引擎的功能?6.ES查询为什么快?(八股)20.MySQL的索引了解吗?21.联合索引的数据结构是什么样的?22.B+树的叶子节点和非叶子节点分别存的什么东西?23.联合索引的叶子节点会存具体的数据吗?24.什么情况下会回表,什么情况下不会回表呢?25.联合索引的索引失效有哪几种情况?26.MySQL的事务中,什么情况下会发生死锁?(场景题)1.MySQL中,事务A和事务B同时修改同一条数据,会出现死锁问题吗?不会的话,现象是什么?反问
点赞 评论 收藏
分享
2025-12-25 03:20
门头沟学院 测试开发
查看21道真题和解析
点赞 评论 收藏
分享
评论
点赞
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务