Skip to content

Quality Attributes

Functional Suitability

Functional Correctness

Importance

Functional correctness ensures that the Daha platform delivers accurate course information and reliable functionality, which is critical for high school students making academic decisions. Inaccurate filtering, course details, or user registration processes could mislead users, erode trust, and reduce platform adoption. Confirmed with the customer, this sub-characteristic is vital for maintaining credibility and supporting students’ educational goals.

Tests

  1. Filter Functionality
  2. Source: User
  3. Stimulus: A user applies a filter for "Mathematics" courses at the "Advanced" level.
  4. Artifact: Filter feature (Frontend and Backend).
  5. Environment: Production environment at https://daha-git.vercel.app with real course data.
  6. Response: The system returns a list of courses matching the "Mathematics" subject and "Advanced" level, excluding irrelevant courses.
  7. Response Measure: 100% of returned courses match the filter criteria.
  8. Execution: Manually apply filters for known criteria (e.g., "Mathematics" and "Advanced") and verify results against database entries using a SQL query (e.g., SELECT * FROM courses WHERE subject = 'Mathematics' AND level = 'Advanced'). Run automated tests with Jest (frontend/tests/filter.test.js) to simulate filter inputs and Pytest (backend/tests/test_filter.py) to validate API responses against expected database outputs. Results are logged in the CI pipeline (Pipeline).

  9. Course Details Display

  10. Source: User
  11. Stimulus: A user clicks on a course to view its details.
  12. Artifact: Course detail page (Frontend and Backend).
  13. Environment: Production environment at https://daha-git.vercel.app.
  14. Response: The page displays all required information (e.g., course name, description, instructor, schedule) accurately and completely.
  15. Response Measure: All displayed fields match the database record with 100% accuracy.
  16. Execution: Manually select multiple courses and compare displayed details with database records via SQL queries. Use automated Jest tests (frontend/tests/course_details.test.js) to fetch course details via API and Pytest tests (backend/tests/test_course_details.py) to verify API responses against database entries. Results are logged in the CI pipeline.

  17. User Registration

  18. Source: User
  19. Stimulus: A new user submits valid registration credentials.
  20. Artifact: Registration form (Frontend and Backend).
  21. Environment: Production environment at https://daha-git.vercel.app.
  22. Response: The system creates a new user account and sends a confirmation email (if applicable).
  23. Response Measure: Account is created successfully, and the email (if configured) is sent within 5 seconds.
  24. Execution: Manually test registration with valid and invalid inputs, checking account creation in the database and email delivery (if applicable). Run automated Pytest tests (backend/tests/test_registration.py) to simulate registration requests and verify database updates. Results are logged in the CI pipeline.

Performance Efficiency

Time Behavior

Importance

Time behavior is crucial for user satisfaction, as high school students expect quick responses when filtering courses or accessing information. Slow performance can frustrate users, reducing engagement and adoption. Confirmed with the customer, fast response times are essential to compete with other educational platforms and ensure a seamless experience.

Tests

  1. Filter Response Time
  2. Source: User
  3. Stimulus: A user applies a filter for "Science" courses.
  4. Artifact: Filter feature (Frontend and Backend).
  5. Environment: Production environment with typical load at https://daha-git.vercel.app.
  6. Response: The system returns results within 2 seconds.
  7. Response Measure: Response time is ≤ 2 seconds for 95% of filter requests.
  8. Execution: Use Chrome DevTools to measure time from filter submission to result display. Employ JMeter (https://jmeter.apache.org/) to simulate 50 concurrent filter requests and measure average response time. Log results in the CI pipeline and document in docs/quality-assurance/performance-report.md.

  9. Page Load Time

  10. Source: User
  11. Stimulus: A user navigates to the homepage or a course detail page.
  12. Artifact: Web pages (Frontend).
  13. Environment: Production environment at https://daha-git.vercel.app.
  14. Response: Pages load within 3 seconds.
  15. Response Measure: Load time is ≤ 3 seconds for 95% of page requests.
  16. Execution: Use Google PageSpeed Insights (https://pagespeed.web.dev/) to measure load times for the homepage and course detail pages. Optimize assets (e.g., images) if needed. Log results in the CI pipeline and document in docs/quality-assurance/performance-report.md.

  17. API Response Time

  18. Source: Frontend or Admin Portal
  19. Stimulus: The Frontend makes an API call to fetch course data.
  20. Artifact: API endpoints (e.g., /api/courses).
  21. Environment: Production environment at https://daha.linkpc.net/api/courses.
  22. Response: API responds within 500 ms.
  23. Response Measure: Response time is ≤ 500 ms for 95% of requests.
  24. Execution: Use Postman (https://www.postman.com/) to measure response times for multiple endpoints. Add logging to the Backend (Python’s time module) to monitor API performance. Log results in the CI pipeline and document in docs/quality-assurance/performance-report.md.

Usability

Learnability

Importance

Learnability is essential for the Daha platform, as high school students, often novice users, need to quickly understand how to navigate and use the platform. An intuitive interface reduces the learning curve, encouraging adoption and sustained use. Confirmed with the customer, learnability is critical for ensuring students can independently find and explore courses.

Tests

  1. First-Time User Task Completion
  2. Source: New User
  3. Stimulus: A new user is tasked with finding all Mathematics courses.
  4. Artifact: User interface (Frontend).
  5. Environment: First-time use at https://daha-git.vercel.app with no prior training.
  6. Response: The user completes the task within 5 minutes without assistance.
  7. Response Measure: 80% of users complete the task within 5 minutes.
  8. Execution: Conduct user testing with 5-10 high school students new to the platform. Provide the task, measure completion time, and collect feedback via a survey. Record sessions for analysis and document in docs/quality-assurance/usability-report.md.

  9. Intuitive Navigation

  10. Source: New User
  11. Stimulus: A new user navigates to the course filter page.
  12. Artifact: Navigation menu (Frontend).
  13. Environment: First-time use at https://daha-git.vercel.app.
  14. Response: The user finds the filter page within 2 minutes.
  15. Response Measure: 80% of users reach the filter page within 2 minutes.
  16. Execution: During user testing, observe 5-10 participants navigating to the filter page. Time their actions and note difficulties. Use feedback to improve navigation. Document in docs/quality-assurance/usability-report.md.

  17. Help and Documentation

  18. Source: User
  19. Stimulus: A user seeks help on filtering courses.
  20. Artifact: Help section or tooltips (Frontend).
  21. Environment: During use at https://daha-git.vercel.app.
  22. Response: The user finds relevant help information and applies it to complete the task.
  23. Response Measure: 80% of users successfully use help resources to filter courses.
  24. Execution: Test the help section with 5-10 users attempting to filter courses using documentation or tooltips. Verify task completion without external assistance. Document feedback and session recordings in docs/quality-assurance/usability-report.md.