Use this checklist to manually validate the application before releases.
Objective: Verify users can upload a text file and ask questions about it.
Prerequisites:
- Application running on http://localhost:9002
- Test file:
test-files/sample-article.txtavailable
Steps:
- Open application in browser
- Click sidebar toggle/hamburger menu
- Click "Upload File" or similar button
- Select
sample-article.txt - Wait for file to appear in sidebar
- In chat input, type: "When was the term artificial intelligence coined?"
- Press Enter or click Send
Expected Results:
- ✅ File appears in sidebar with correct name
- ✅ File icon shows it's a text file
- ✅ Question appears in chat as user message
- ✅ AI response appears mentioning "1956" and "John McCarthy"
- ✅ Response time < 10 seconds
- ✅ No error messages
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify PDF files can be parsed and queried.
Prerequisites:
- Convert
machine-learning-guide.htmlto PDF OR download a sample PDF - Application running
Steps:
- Open sidebar
- Upload a PDF file
- Wait for processing (may take 10-30 seconds)
- Ask: "What types of machine learning are there?"
Expected Results:
- ✅ PDF file appears in sidebar
- ✅ Processing indicator shown during upload
- ✅ AI answers mentioning supervised, unsupervised, reinforcement learning
- ✅ Content correctly extracted from PDF
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Scrape a simple, scraping-friendly website.
Prerequisites:
- Application running
- Internet connection
Steps:
- Open sidebar
- Find URL input field
- Enter:
http://quotes.toscrape.com/ - Click "Add URL" or similar
- Wait for scraping to complete
- Ask: "What are some quotes on this page?"
Expected Results:
- ✅ URL appears in sources list
- ✅ Title shows "Quotes to Scrape" or similar
- ✅ Scraping completes in < 5 seconds
- ✅ AI response mentions Einstein, Rowling, or specific quotes
- ✅ No error toast
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify graceful error handling for invalid URLs.
Prerequisites:
- Application running
Steps:
- Open sidebar
- Enter invalid URL:
not-a-valid-url - Click "Add URL"
- Observe behavior
Expected Results:
- ✅ Error toast appears
- ✅ Error message is clear and helpful
- ✅ URL not added to sources list
- ✅ Application remains stable
- ✅ User can try again
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Use multiple files and URLs simultaneously.
Prerequisites:
sample-article.txtandcompany-policies.txtavailable- Application running
Steps:
- Upload
sample-article.txt - Upload
company-policies.txt - Add URL:
http://quotes.toscrape.com/ - Verify all 3 sources in sidebar
- Ask: "What information do I have in my sources?"
Expected Results:
- ✅ All 3 sources visible in sidebar
- ✅ Different icons for files vs URLs
- ✅ AI acknowledges all sources in response
- ✅ Can reference content from each source
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify users can remove sources from their list.
Prerequisites:
- At least one source uploaded
Steps:
- Upload a file or add a URL
- Locate remove/delete button (usually X icon)
- Click remove button
- Confirm if prompted
Expected Results:
- ✅ Source disappears from sidebar
- ✅ Smooth animation/transition
- ✅ Confirmation if needed
- ✅ AI no longer uses that source in responses
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Ensure empty messages cannot be sent.
Prerequisites:
- Application running
Steps:
- Click in chat input
- Type only spaces: " "
- Press Enter
Expected Results:
- ✅ Message not sent
- ✅ Input cleared or no action taken
- ✅ No API call made
- ✅ No error message needed
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify loading indicators work correctly.
Prerequisites:
- Source uploaded
- Application running
Steps:
- Ask a question
- Immediately observe UI
- Watch for loading indicators
Expected Results:
- ✅ Input disabled while loading
- ✅ Loading skeleton or spinner appears
- ✅ User cannot send another message while loading
- ✅ Loading state clears when response arrives
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify conversation persists during session.
Prerequisites:
- Source uploaded
Steps:
- Ask: "What is AI?"
- Wait for response
- Ask: "When was it founded?"
- Wait for response
- Ask: "Who were the pioneers?"
- Scroll up to see all messages
Expected Results:
- ✅ All questions visible in order
- ✅ All AI responses visible
- ✅ Messages stay visible when scrolling
- ✅ Clear distinction between user and AI messages
- ✅ Later questions can reference earlier context
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify theme switching works.
Prerequisites:
- Application running
Steps:
- Locate theme toggle button
- Note current theme (dark or light)
- Click theme toggle
- Observe changes
Expected Results:
- ✅ Theme switches smoothly
- ✅ All components update colors
- ✅ Text remains readable
- ✅ Icons update appropriately
- ✅ Consistent theme across all UI elements
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Test custom theme generation feature.
Prerequisites:
- Application running
- Settings menu accessible
Steps:
- Open settings menu
- Find theme generation option
- Enter prompt: "ocean sunset with warm colors"
- Click generate
- Wait for theme to apply
Expected Results:
- ✅ Theme generation completes in < 5 seconds
- ✅ Colors change to match prompt
- ✅ Theme is visually pleasing
- ✅ All UI elements update
- ✅ No console errors
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify mobile layout works correctly.
Prerequisites:
- Application running
- Browser dev tools (F12)
Steps:
- Open browser DevTools (F12)
- Toggle device toolbar
- Select iPhone or Pixel viewport
- Test all major features
Expected Results:
- ✅ Sidebar collapses/hamburger menu shown
- ✅ Chat messages stack properly
- ✅ Input remains accessible
- ✅ Buttons are touch-friendly (min 44px)
- ✅ No horizontal scrolling
- ✅ Text is readable (min 16px)
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Test with large documents.
Prerequisites:
- Large PDF or long text file (5+ pages)
Steps:
- Upload large file
- Wait for processing
- Ask questions about content from beginning, middle, and end
Expected Results:
- ✅ File uploads successfully
- ✅ Processing completes (may take 30s)
- ✅ AI can answer questions from entire document
- ✅ No timeout errors
- ✅ Performance remains acceptable
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify appropriate messaging when no sources exist.
Prerequisites:
- Application freshly loaded
- No sources added
Steps:
- Open application
- Observe main chat area
- Try to ask a question
Expected Results:
- ✅ Empty state message shown
- ✅ Guidance to upload files or add URLs
- ✅ Clear call-to-action
- ✅ Professional, helpful tone
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Test in multiple browsers.
Prerequisites:
- Application running
- Access to Chrome, Firefox, Safari, or Edge
Steps:
- Open application in Chrome
- Test basic upload and chat
- Repeat in Firefox
- Repeat in Edge (if available)
Expected Results:
- ✅ Works in Chrome 90+
- ✅ Works in Firefox 88+
- ✅ Works in Edge 90+
- ✅ Consistent appearance across browsers
- ✅ No browser-specific bugs
Pass/Fail: ☐
Notes: _______________________________________________________________
Objective: Verify application recovers from errors.
Prerequisites:
- Application running
Steps:
- Trigger an error (invalid URL, network disconnect, etc.)
- Observe error handling
- Attempt to continue using app
Expected Results:
- ✅ Error message is clear
- ✅ Error doesn't crash the app
- ✅ User can dismiss error
- ✅ Can continue using app after error
- ✅ Error logged to console for debugging
Pass/Fail: ☐
Notes: _______________________________________________________________
Date: _______________ Tester: _______________ Version: _______________ Environment: _______________
| Scenario | Pass | Fail | Skip | Notes |
|---|---|---|---|---|
| 1. Basic File Upload | ☐ | ☐ | ☐ | |
| 2. PDF Upload | ☐ | ☐ | ☐ | |
| 3. URL Scraping | ☐ | ☐ | ☐ | |
| 4. Invalid URL | ☐ | ☐ | ☐ | |
| 5. Multiple Sources | ☐ | ☐ | ☐ | |
| 6. Remove Source | ☐ | ☐ | ☐ | |
| 7. Empty Message | ☐ | ☐ | ☐ | |
| 8. Loading States | ☐ | ☐ | ☐ | |
| 9. Conversation History | ☐ | ☐ | ☐ | |
| 10. Theme Toggle | ☐ | ☐ | ☐ | |
| 11. AI Theme Gen | ☐ | ☐ | ☐ | |
| 12. Mobile | ☐ | ☐ | ☐ | |
| 13. Large Docs | ☐ | ☐ | ☐ | |
| 14. No Sources | ☐ | ☐ | ☐ | |
| 15. Browser Compat | ☐ | ☐ | ☐ | |
| 16. Error Recovery | ☐ | ☐ | ☐ |
Total Passed: _____ / 16 Total Failed: _____ Total Skipped: _____
Overall Assessment: ☐ Ready for Release ☐ Needs Work ☐ Critical Issues
Critical Issues Found:
Recommendations:
Signature: _______________ Date: _______________