Tạo Dummy Files Cho QA Testing: Hướng Dẫn & File Mẫu Miễn Phí
Cách tạo và sử dụng dummy files cho QA testing: kiểm thử upload form, giới hạn kích thước, parsing pipeline và load test. Kèm file mẫu miễn phí.
Khi kiểm thử form tải lên tệp, pipeline phân tích, đồng bộ cloud storage và edge proxy, việc có các tệp test đáng tin cậy với kích thước byte chính xác và các định dạng khác nhau là yếu tố quan trọng. Hướng dẫn này trình bày các quy tắc tốt nhất để tạo và sử dụng dummy file trong quy trình kiểm thử QA.
Tại Sao Dummy File Thực Sự Quan Trọng Trong Kiểm Thử QA
Sử dụng mock object trong bộ nhớ hoặc tệp placeholder zero-byte thường che giấu các edge case chỉ xuất hiện trên môi trường production:
- Phân tích ranh giới multipart: Web server và S3 proxy phải phân tích các marker ranh giới qua các buffer chunk.
- Phát hiện MIME type và magic byte: Tường lửa hiện đại và bộ xác thực tải lên kiểm tra 512 byte đầu tiên của tệp. Tệp zero-filled không vượt qua được phát hiện magic-number.
- Dung lượng bộ nhớ và garbage collection: Tải xuống tệp lớn truyền dữ liệu qua Node.js Buffer hoặc trình duyệt Blob. Nếu stream được xử lý sai, bộ nhớ tăng đột biến gây crash.
Tải file PDF test 10MB thực với header và cấu trúc hợp lệ để kiểm thử pipeline tải lên.
Tải File Test 10MB PDF →Các Kịch Bản Kiểm Thử Tệp Phổ Biến Trong QA
1. Kiểm Thử Ranh Giới Kích Thước Tệp
Luôn kiểm thử cả giới hạn trên và dưới của quy tắc tải lên:
- Tệp 0 byte: Xác minh backend từ chối tệp rỗng nhẹ nhàng với HTTP 400 hoặc 422.
- Đúng giới hạn (ví dụ 10MB): Đảm bảo tệp có đúng 10.485.760 byte vượt qua xác thực.
- Vượt giới hạn 1 byte: Đảm bảo tệp 10.485.761 byte bị từ chối với HTTP 413 Payload Too Large trước khi toàn bộ upload được stream.
2. Xác Minh Định Dạng Tệp và Content-Type
Không bao giờ chỉ tin tưởng phần mở rộng tệp. Kiểm thử cách ứng dụng xử lý:
- Tệp PDF hợp lệ với header
%PDF-1.4đúng. - Đổi tên phần mở rộng (ví dụ: tệp
.exeđổi tên thành.pdf). - Header tệp bị hỏng và luồng tệp không đầy đủ.
// Ví dụ: Xác thực kích thước tệp trước khi bắt đầu tải lên
function validateFileSize(file, maxSizeBytes = 10 * 1024 * 1024) {
if (file.size === 0) {
throw new Error("Tệp không thể rỗng");
}
if (file.size > maxSizeBytes) {
throw new Error(`Tệp vượt quá kích thước tối đa cho phép ${maxSizeBytes / (1024 * 1024)}MB`);
}
return true;
}
Tự Động Tải Dummy File Trong CI/CD
Thay vì tạo tệp tổng hợp bằng lệnh shell như dd hoặc truncate thiếu metadata định dạng hợp lệ, bạn có thể lấy các tệp mẫu xác định trực tiếp trong test runner tự động.
# Tải file PDF mẫu trong GitHub Actions hoặc script test
curl -o test-sample.pdf "https://filedummy.dev/api/download?type=pdf&size=10mb"
Bằng cách chuẩn hóa trên các tệp test được hình thành tốt, đội QA loại bỏ false positive gây ra bởi cấu trúc tệp bị lỗi và tập trung vào logic ứng dụng thực sự.
Nguyễn Đại Long
Tác GiảBackend Lead • Chuyên gia Kiến trúc Hệ thống Phân tán & Lưu trữ Đám mây
Hơn 4 năm kinh nghiệm thiết kế các hệ thống xử lý tệp tải lên thông lượng lớn, tối ưu hóa cơ sở dữ liệu và hạ tầng phân tán Cloudflare R2 / AWS S3. Người sáng lập FileDummy và Mạng lưới Hệ sinh thái NDL.
Bài viết này có hữu ích không?
Bấm Thích để ủng hộ tác giả và giúp bài viết lan tỏa tới cộng đồng lập trình viên.
Thảo Luận Kỹ Thuật & Đóng Góp Ý Kiến (0)
Chia sẻ kết quả benchmark, phản hồi các trường hợp biên hoặc đặt câu hỏi chuyên môn.
Chưa có bình luận nào. Hãy là lập trình viên đầu tiên bắt đầu cuộc thảo luận!
Câu Hỏi Thường Gặp (FAQ)
What is the easiest way to create a dummy file of a specific size?▾
On macOS/Linux: dd if=/dev/zero of=test-100mb.bin bs=1M count=100. On Windows PowerShell: fsutil file createnew test-100mb.bin 104857600. For format-valid files (PDF, DOCX), use FileDummy.dev which serves structurally valid files at exact sizes.
What is the difference between a dummy file and a sample file?▾
A dummy file is any file of a specific size, often with zero or random bytes — used to test storage quotas and bandwidth. A sample file is a valid format file containing representative content — used to test parsers, viewers, and content handling. FileDummy.dev provides both.
Why should I not use /dev/urandom to generate test files?▾
Files from /dev/urandom are random bytes with no format structure. They fail MIME type validation, PDF parsers, and any code that validates file content beyond the extension. For testing file processing, you need format-valid files.