hackathon / tests /QA_CHECKLIST.md
thieuluan's picture
init first spec
191645f
|
Raw
History Blame Contribute Delete
4.5 kB
# Manual QA Checklist for PDF Ingestion Pipeline
## Test Environment Setup
- [ ] Python 3.8+ installed
- [ ] All dependencies from requirements.txt installed
- [ ] Streamlit app accessible at http://localhost:8501
- [ ] Test PDFs available in test-data/ directory
## 1. PDF Upload Functionality
### Basic Upload
- [ ] Can upload PDF via drag-and-drop
- [ ] Can upload PDF via file browser
- [ ] File size limitations work correctly
- [ ] Non-PDF files are rejected with appropriate error
### Multiple File Scenarios
- [ ] Can re-upload different PDFs in same session
- [ ] Previous upload is properly cleaned up
## 2. Parser Testing
### PyPDF Parser
- [ ] Successfully extracts text from short_story.pdf
- [ ] Successfully extracts text from technical_doc.pdf
- [ ] Handles multi-page documents correctly
- [ ] Page numbers are preserved in extraction
### PDFPlumber Parser
- [ ] Successfully extracts text from short_story.pdf
- [ ] Successfully extracts text from technical_doc.pdf
- [ ] Fallback mechanism works when primary parser fails
- [ ] Retry button switches parsers correctly
## 3. Text Processing
### Normalization
- [ ] Special characters are handled properly
- [ ] Unicode text is preserved where valid
- [ ] Control characters are removed
- [ ] Excessive whitespace is normalized
- [ ] Line breaks are preserved appropriately
### Chunking
- [ ] Chunks respect configured size limits
- [ ] Overlap setting creates proper text overlap
- [ ] No data loss between chunks
- [ ] Empty pages don't create empty chunks
## 4. Configuration Settings
### Chunk Size
- [ ] Minimum value (500) enforced
- [ ] Maximum value (10000) enforced
- [ ] Changes apply to new ingestions
- [ ] Default value (4000) works well
### Overlap Size
- [ ] Minimum value (0) works correctly
- [ ] Maximum value (2000) enforced
- [ ] Overlap doesn't exceed chunk size
- [ ] Default value (400) provides good context
## 5. UI/UX Testing
### Progress Indicators
- [ ] "Processing..." status shown during ingestion
- [ ] Success message displays after completion
- [ ] Error messages are clear and actionable
- [ ] Chunk count is displayed correctly
### Session Management
- [ ] Session ID remains stable during use
- [ ] Session ID displayed in sidebar
- [ ] Output path shown after processing
### Preview Functionality
- [ ] First chunk preview displays correctly
- [ ] Preview is truncated appropriately (2000 chars)
- [ ] Special characters display properly in preview
## 6. Performance Testing
### Small PDFs (<5 pages)
- [ ] Processing completes in <2 seconds
- [ ] Memory usage remains reasonable
### Medium PDFs (10-50 pages)
- [ ] Processing completes in <10 seconds
- [ ] UI remains responsive during processing
### Large PDFs (100+ pages)
- [ ] Processing completes without timeout
- [ ] Background processing doesn't block UI
- [ ] Memory usage scales appropriately
## 7. Error Handling
### File Errors
- [ ] Corrupted PDF shows meaningful error
- [ ] Password-protected PDF handled gracefully
- [ ] Missing file error is clear
### Processing Errors
- [ ] Parser failures trigger fallback option
- [ ] Out of memory errors are caught
- [ ] Network/disk errors handled appropriately
## 8. Data Persistence
### Output Files
- [ ] JSON files created in .tmp/ingestion/
- [ ] File naming uses session ID correctly
- [ ] JSON structure is valid and complete
- [ ] Files can be loaded back successfully
### Cleanup
- [ ] Temporary PDF files are removed after processing
- [ ] Old session files don't accumulate indefinitely
## 9. Edge Cases
### Empty PDFs
- [ ] Empty PDF files handled without crash
- [ ] Appropriate message shown to user
### Special Content
- [ ] PDFs with images only show appropriate message
- [ ] PDFs with tables maintain some structure
- [ ] PDFs with forms extract visible text
### Encoding Issues
- [ ] Non-UTF8 text is handled gracefully
- [ ] Mixed encoding documents process correctly
## 10. Integration Testing
### End-to-End Flow
- [ ] Upload → Process → Preview → Persist works smoothly
- [ ] Multiple sequential ingestions work correctly
- [ ] Parser switching mid-session works properly
- [ ] All settings apply correctly to processing
## Test Execution Log
| Date | Tester | Version | Pass/Fail | Notes |
|------|--------|---------|-----------|-------|
| | | | | |
## Known Issues
- List any discovered issues here with reproduction steps
## Recommended Improvements
- List any UX or functionality improvements discovered during testing