|
Download tests/QA_CHECKLIST.md from thieuluan/hackathon: direct link, hf CLI and curl.
- Browser
- Download file 4.5 kB
-
https://huggingface.co/spaces/thieuluan/hackathon/resolve/main/tests/QA_CHECKLIST.md
- Command line
-
hf download hf://spaces/thieuluan/hackathon/tests/QA_CHECKLIST.md
-
curl -L -o QA_CHECKLIST.md https://huggingface.co/spaces/thieuluan/hackathon/resolve/main/tests/QA_CHECKLIST.md
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 | |