Skip to content

Document testing #1

@EficodeRjpalt

Description

@EficodeRjpalt

You are tasked to document the tests in this project. They are found in tests folder.

Use this template:
[Project Name] - Testing Strategy & Plan
Author: [Name of Person Documenting This]
Date: [Date]
Version: 1.0

  1. Purpose 🎯
    Goal: Briefly describe the purpose of this document. Outline the project's commitment to quality and the main goals of the testing strategy (e.g., "to ensure application stability," "prevent regressions," "verify new features meet requirements").

  2. Scope of Testing
    In Scope: List the features, modules, or parts of the application that will be tested.

Example: User authentication (login, registration, password reset)

Example: Core API endpoints

Example: Main user workflows

Out of Scope: List any features or areas that will not be tested and briefly explain why.

Example: Third-party API integrations (we only test our connection to them)

Example: Legacy admin panel (scheduled for deprecation)

  1. Types of Testing
    Describe the different kinds of testing we will perform.

Unit Tests:

Purpose: To test individual functions or components in isolation.

Tools: [e.g., PHPUnit, Jest, Vitest]

Location: [e.g., tests/Unit]

Integration Tests:

Purpose: To test how multiple components work together.

Tools: [e.g., PHPUnit with a test database, Pest]

Location: [e.g., tests/Integration]

End-to-End (E2E) / UI Tests:

Purpose: To test complete user flows from the user's perspective in a browser.

Tools: [e.g., Cypress, Playwright, Laravel Dusk]

Location: [e.g., tests/E2E]

Manual QA Testing:

Purpose: To manually verify complex user workflows, check the user experience, and perform exploratory testing.

Process: [Describe the process, e.g., "Run through the test cases in Jira before each release."]

  1. Tools & Environment 🛠️
    Testing Frameworks: [List all frameworks, e.g., PHPUnit, Cypress]

Bug Tracking: [e.g., Jira, GitHub Issues, Asana]

CI/CD (Automation): [e.g., GitHub Actions, GitLab CI, Jenkins]

Test Environment: Describe the setup required for testing.

Example: "Tests are run against a dedicated testing database that is reset before each run. Environment variables are managed in a .env.testing file."

  1. Test Execution & Automation ⚙️
    When are tests run?

Example: "Unit and integration tests are run automatically by GitHub Actions on every push to any branch."

Example: "E2E tests are run nightly against the staging environment."

Example: "Manual QA is performed before a production deployment."

How to run tests locally?

Provide the specific commands for developers to run tests on their own machines.

Example:

Run all unit and integration tests

./vendor/bin/phpunit

Run all E2E tests

npm run cypress:run

  1. Bug & Defect Management 🐞
    Outline the process for handling failed tests or found bugs.

Discovery: A bug is found either through a failed automated test or during manual QA.

Reporting: A ticket is created in [Jira/GitHub Issues] with a clear title, steps to reproduce, expected vs. actual results, and relevant screenshots.

Prioritization: The Product Manager or Team Lead assigns a priority (e.g., High, Medium, Low).

Assignment: The ticket is assigned to a developer to fix.

Resolution & Verification: The developer fixes the bug and writes a test to prevent it from happening again. The fix is then verified by the QA team or another developer.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions