| # 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 |
|
|