Verifying handling of user files.
WHAT TO TEST ABOUT UPLOAD
Accepted types Rejected types Size limits, at and above Empty files Very large files Files with unusual names
WHY UNUSUAL NAMES MATTER
They cause path problems, and are a security route.
WHAT TO TEST SECURITY-WISE
Files disguised as permitted types Files that could be executed Files exceeding limits by streaming
WHAT TO VERIFY ABOUT STORAGE
Where files are placed Whether they are reachable by others Whether names collide
WHAT TO TEST ABOUT PROCESSING
Valid files of each type Corrupted files Files with unexpected structure Files in unexpected encodings
WHAT TO VERIFY
That failure is handled rather than crashing.
WHAT TO TEST ABOUT LARGE FILES
Memory use during processing Timeouts Behaviour when processing takes longer than a request allows
WHAT TO VERIFY ABOUT CONCURRENCY
Several uploads at once.
WHAT TO TEST ABOUT CLEANUP
That temporary files are removed That failed uploads leave nothing
WHY
Accumulating temporary files exhaust storage eventually.
WHAT TO TEST ABOUT INTERRUPTION
Upload failing partway.