Comprehensive User Testing Checklist For SAGE Features

by Editorial Team 55 views
Iklan Headers

Hey guys! This is the ultimate guide to user testing for all the SAGE features before we launch them. This checklist is your go-to resource for making sure everything is running smoothly. Each section below breaks down a specific feature area that needs validation. Let's dive in and make sure we've got everything covered, yeah?

Testing Instructions

  1. Work through each section below. Go through each feature and make sure it works as expected. Don't be shy; try everything!
  2. Check off items as you test them. Use the checklist to mark off each item as you complete it. This keeps you organized and helps us track progress.
  3. Comment on any issues found with specific reproduction steps. If you find any problems, be sure to note them with detailed steps on how to reproduce them. The more info, the better!
  4. Create linked issues for any bugs discovered. For any bugs you find, create a linked issue so we can track and fix them. This will make it easier to manage and resolve them.

1. Authentication & User Management

Alright, let's start with the basics: authentication and user management. This is the foundation of our app, so we need to make sure it's solid. Here's what we need to test:

Registration

  • Create account with email, name, and password. Make sure you can easily create a new account with the required information.
  • Password validation (minimum 8 characters). Check that the password requirements are correctly enforced.
  • Password confirmation validation. Ensure that the password confirmation matches the password.
  • Email validation. Verify that the email format is valid (e.g., includes @ and a domain).
  • Duplicate email handling. Test what happens when you try to register with an email that already exists. Is there a clear error message?
  • Auto sign-in after registration. After registration, does the user automatically get signed in?
  • Redirect to chat after registration. Does the user get redirected to the chat interface after registration?

Login

  • Login with email and password. Test the basic login functionality.
  • Invalid credentials error message. What happens when you enter the wrong email or password? Is the error message clear?
  • Session persistence across page refresh. Can you refresh the page and stay logged in?
  • Link to registration for new users. Is there an easy way for new users to register?

2. Chat & Dialogue

Next up, let's look at the chat and dialogue features. This is where the magic happens, so it's super important to test these features thoroughly.

Basic Chat

  • Send text messages. Can you send and receive basic text messages?
  • Message history displays correctly. Is the message history displayed correctly?
  • AI responses stream smoothly. Do the AI responses appear smoothly, or are there any delays or glitches?
  • Chat input disabled while connecting. Is the input disabled when connecting to prevent issues?
  • Enter to send, Shift+Enter for newline. Can you send messages with Enter and create new lines with Shift+Enter?
  • Auto-resize textarea. Does the text input area automatically resize to accommodate more text?
  • Empty state with suggestions. What does the chat look like when there are no messages? Are there helpful suggestions?

Rich Content

  • Markdown formatting renders. Does the chat support markdown? Test with bold, italics, lists, etc.
  • Code blocks with syntax highlighting. Does the chat correctly display code blocks with syntax highlighting?
  • Math expressions (KaTeX). Can you render math equations using KaTeX?
  • Mermaid diagrams. Does the chat render Mermaid diagrams?
  • Tables render correctly. Make sure tables are displayed correctly.
  • Images display with loading states. When images are sent, do they display a loading state?
  • Links are clickable. Are links clickable?

Connection Status

  • WebSocket connects on page load. Does the WebSocket connection establish successfully when the page loads?
  • Status indicator shows connection state. Is there a visual indicator for the connection status (online/offline)?
  • Visual feedback on connection loss. Is there visual feedback if the connection is lost?
  • Automatic reconnection attempts. Does the system automatically try to reconnect if the connection drops?
  • Error messages on connection failure. Are there clear error messages if the connection fails?

3. Voice Mode

Now, let's explore voice mode. This adds a cool new way for users to interact, so we need to make sure everything works perfectly.

Voice Input

  • Microphone button toggles listening. Does the microphone button work correctly to start and stop listening?
  • Visual feedback while listening (red button, waveform). Does the user get visual feedback while speaking (e.g., a red button or a waveform)?
  • Interim transcript displays while speaking. Does the system display a real-time transcript of what the user is saying?
  • Final transcript submits on pause. Does the system submit the final transcript when the user pauses speaking?
  • Voice activity detection works. Does the voice activity detection work well? Does it accurately detect when the user is speaking?

Voice Output

  • Toggle enables/disables voice output. Can you easily enable and disable voice output?
  • AI responses spoken aloud. Do the AI responses get spoken aloud?
  • Voice selection dropdown works. Does the voice selection dropdown work correctly?
  • Can change voice mid-conversation. Can you change the voice mid-conversation?
  • Fallback when voice unavailable. What happens if voice output is unavailable? Is there a fallback?

4. Session Management

Next, let's test session management. This is important for keeping everything organized and making sure the app remembers your preferences.

Check-In Modal

  • Modal appears when starting new session. Does the check-in modal appear when you start a new session?
  • Input mode selector (Form/Voice/Both). Can you select the input mode (Form, Voice, or Both)?
  • Time available selection. Can you select how much time you have available?
  • Energy level slider. Does the energy level slider work?
  • Mindset text field. Can you enter your mindset in the text field?
  • Form prefill from voice input. Does the form prefill from voice input?

Session Context

  • Context persists throughout session. Does the context persist throughout the session?
  • AI adapts based on context. Does the AI adapt its responses based on the context?
  • State survives page refresh. Does the session state survive page refresh?
  • Modality preference persists. Does the modality preference persist?
  • Cross-modality sync works. Does the cross-modality sync work?

5. Practice/Roleplay Mode

Let's get into the practice and roleplay mode. This is where users can sharpen their skills, so it's vital to test it thoroughly.

Setup

  • Practice button visible in chat header. Is the practice button visible in the chat header?
  • Practice setup modal displays. Does the practice setup modal display correctly?
  • Select from predefined scenarios. Can you select from predefined scenarios?
  • AI generates opening message. Does the AI generate an opening message?

Conversation

  • Character responds realistically. Does the AI character respond realistically?
  • Different styling for practice messages. Are the practice messages styled differently?
  • Hints available during practice. Are hints available during practice?
  • End Practice button works. Does the End Practice button work?

Feedback

  • Feedback modal after practice ends. Does the feedback modal appear after the practice ends?
  • Shows positives and improvements. Does it show positives and improvements?
  • Reveals discovered gaps. Does it reveal discovered gaps?
  • Option to practice again. Is there an option to practice again?

6. Knowledge Graph

Now, let's test the knowledge graph. This is an exciting feature, so we need to ensure everything works as intended.

Display

  • Graph loads on /graph page. Does the graph load correctly on the /graph page?
  • Empty state when no data. What happens when there's no data? Is there an empty state message?
  • Nodes color-coded by type. Are the nodes color-coded by type?
  • Node labels visible/hideable. Can you toggle the node labels?
  • Obsidian-style visualization. Does the visualization look good?

Interactions

  • Click node shows detail panel. Does clicking a node show the detail panel?
  • Node selection highlights connections. Does selecting a node highlight its connections?
  • Bidirectional highlighting works. Does bidirectional highlighting work?
  • Detail panel closes properly. Does the detail panel close properly?

Navigation

  • Zoom in/out buttons work. Do the zoom in/out buttons work?
  • Reset view button works. Does the reset view button work?
  • Pan by dragging. Can you pan by dragging?
  • Depth limit filter works. Does the depth limit filter work?

Filtering

  • Filter by outcome. Can you filter by outcome?
  • Filter by status. Can you filter by status?
  • Toggle concepts/outcomes visibility. Can you toggle the visibility of concepts and outcomes?
  • Text search works. Does the text search work?
  • Labels toggle works. Does the labels toggle work?

7. Sidebar & Navigation

Let's check the sidebar and navigation. This is important for ensuring users can easily navigate the app.

Layout

  • Sidebar visible on all pages. Is the sidebar visible on all pages?
  • Navigation links work. Do the navigation links work?
  • Current page highlighted. Is the current page highlighted in the sidebar?
  • Responsive on mobile. Does the sidebar and navigation work well on mobile devices?

Information Display

  • Knowledge stats display. Do the knowledge stats display correctly?
  • Progress toward current goal. Does the progress toward the current goal display correctly?
  • Current goal card. Is the current goal card displayed correctly?
  • Upcoming applications. Are the upcoming applications displayed correctly?

8. Error Handling

We need to make sure the app handles errors gracefully. Let's test error handling.

Connection Errors

  • Graceful messages if server unavailable. Do users get a helpful message if the server is unavailable?
  • Reconnection feedback. Is there feedback when the system is trying to reconnect?
  • Voice fallback works. Does voice fallback work in case of an issue?

Input Validation

  • Empty messages rejected. Are empty messages rejected?
  • Special characters handled. Are special characters handled correctly?
  • Unicode/emoji support. Does the app support Unicode and emojis?

API Errors

  • 401 redirects to login. Does the user get redirected to the login page for 401 errors?
  • 403 shows error message. Does the user see an error message for 403 errors?
  • 404 handled gracefully. Are 404 errors handled gracefully?
  • 500 shows friendly message. Does the user see a friendly message for 500 errors?

9. Complete User Journeys

Finally, let's test some complete user journeys. This tests multiple features together to make sure everything works smoothly from start to finish.

Journey 1: Learning New Skill

  • Register -> Login -> Check-in -> Define outcome -> Learn -> Verify -> View progress

Journey 2: Practice Scenario

  • Chat -> Practice -> Roleplay -> Hints -> End -> Feedback -> Return

Journey 3: Cross-Modality

  • Voice check-in -> Form mode (prefilled) -> Text chat -> Voice output

Issues Found

Document any issues discovered during testing here:

[Issue Title]
- Steps to reproduce:
- Expected behavior:
- Actual behavior:
- Screenshot/Recording (if applicable):

Sign-off

  • All critical features tested. Make sure all the core features have been tested.
  • No blocking issues remaining. Ensure there are no major issues that would prevent deployment.
  • Ready for deployment. Are you ready to deploy?

Tested by: _______________

Date: _______________