File size: 4,500 Bytes
191645f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 | # 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
|