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