Software Quality Plan - bounswe/bounswe2024group6 GitHub Wiki
Software Quality Plan for Bulingo
1. Objectives
- Ensure the application meets functional requirements (e.g., quiz creation, user authentication).
- Maintain high reliability and minimize defects through thorough testing.
- Deliver a scalable and maintainable application.
2. Quality Standards
- All code changes must pass pre-defined test cases and achieve at least 90% unit test coverage for critical modules.
a. Unit Testing
Purpose: Test individual modules of the Bulingo for correctness.
Target Modules:
- User Authentication Module
- Test valid/invalid login credentials.
- Test register functionality
- Quiz Creation Module
- Validate input fields for quiz title, questions, and choices.
- Test multiple choice suggestions and evaluate.
- Test quiz submission and saving.
- Test quiz review .
- Quiz Attempt Module
- Verify question loading and answer submission.
- Test edge cases, such as submitting an incomplete quiz.
- Post Module
- Validate post views that would be compatible to follow/unfollow endpoints.
- Test Comment endpoints .
- Test Like/Unlike endpoints
- Search Module
- Verify searching results by title .
- Test edge cases for testing.
Tools:
- PyTest for Python backend.
- React Testing Library for the frontend.
Metrics:
- Code Coverage: Achieve 95% statement and branch coverage.
- Pass Rate: Ensure 100% of critical tests pass.
b. Integration Testing
Purpose: Test interactions between modules, ensuring seamless operation. Target Scenarios:
- User Authentication ↔ Quiz Feed:
- Verify that only authenticated users can access quizzes.
- Quiz Creation ↔ Database:
- Ensure quizzes are correctly saved and retrieved from the database.
- Ensure the multiple choices are relatable and correctly fetched from database.
- Quiz Attempt ↔ Results Module:
- Verify results are calculated and displayed accurately after quiz completion.
- Post Module ↔ Database:
- Ensure the related posts with chosen tags correctly fetched from database.
- Ensure that the user can visualize post that he is allowed to see.
- User Authentication ↔ Post Feed:
- Verify that only authenticated users can access the private posts.
Tools:
- Postman for API interaction testing.