Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

UI Automation Test Plan and Roadmap #1375

Open
SanaSalem01 opened this issue Nov 26, 2024 · 3 comments
Open

UI Automation Test Plan and Roadmap #1375

SanaSalem01 opened this issue Nov 26, 2024 · 3 comments

Comments

@SanaSalem01
Copy link

SanaSalem01 commented Nov 26, 2024

Overview

This Test Automation Plan provides a structured approach to automating the Portal using Cypress, an end-to-end testing framework. This plan focuses on creating an efficient, reliable, and maintainable test suite that integrates seamlessly with the development workflow.

Objective

The primary objective of the Cypress Test Automation Plan is to establish a comprehensive, efficient, and reliable automation framework that enhances the testing. The plan is designed to ensure the delivery of high-quality application by addressing key goals and areas of focus. Outline and list all core features and use cases prioritized based on their frequency and importance, focusing on repetitive tasks or test cases aligned with the system requirements.

Scope of Automation

Clearly outlining which areas of the application will be automated to maximize impact. The scope will include:

  • Automating critical user flows (e.g., login, Company Registration, App registration etc.).
  • Regression and smoke tests to ensure stability with each release.
  • Customer & CX-Admin/Operator facing e2e scenarios

Levels of Testing:

  • Integration Testing: Testing the interaction between integrated components.
  • System Testing: Testing the complete system as a whole to ensure it meets requirements.
  • Acceptance Testing: Testing whether the system meets the specified business requirements

Types of Tests

Functional

  • Testing Techniques
    • Happy paths (positive test cases)
    • Unhappy paths (negative test cases)

Lists of Core features & Tests

  • Login
  • Company Registration
    • Registraton without BPN
    • Registration with BPN (prefilled data)
    • Registration with BPN post submission
  • Application Requests
  • User Management
  • App access Management
  • App Marketplace
  • App Management
  • App registration (App Release Process)
  • App Subscription
  • App Request Management
  • Technical User creation
  • Connector Registration
  • Home Page
  • Service Management
  • Service Marketplace
  • Service Registration (Service Release Process)
  • Service Subcription
  • Service Request Management
  • Identity Provider Configuration
  • Use Case participation
  • Credential requests
  • Partner Network

Cross-Browser Compatibility

  • Cross-browser testing is crucial in automation to ensure a consistent and seamless user experience across different browsers and platforms
  • Test across multiple browsers (e.g.,chrome-family browsers, Firefox, and WebKit (Safari's browser engine) using Cypress’s cross-browser support.

Collaboration Practices and Workflows

Objective: Establish clear collaboration practices and workflows to ensure seamless integration of test automation across teams, fostering efficient communication and coordinated efforts between contributors

Shared Responsibility for Automation:

  • All contributors are responsible for maintaining and enhancing the automation codebase.
  • Collaboratively define the test strategy and establish clear guidelines for automation to ensure consistency.
  • Conduct thorough reviews of automation scripts to ensure quality, maintainability, and adherence to best practices.

Frequent Communication:

  • Hold regular sync meetings involving all the contributors to discuss progress and blockers.
  • Communicate through appropriate channels to ensure efficient information sharing, timely updates, and alignment across teams for more visibility.

Test Coverage

  • Define clear test coverage goals and prioritize high-risk, high-value areas for automation.
  • Track test coverage through tools like Cypress Dashboard or integrated reporting tools to measure the effectiveness of automation and identify areas for improvement.
  • Regularly review test coverage metrics to ensure all critical functionality is covered and gaps are addressed promptly.

Testing Strategy

Test Design Best Practices

Test Structure:

  • Follow the "Arrange-Act-Assert" pattern to structure tests for clarity and maintainability.
  • Group related tests into meaningful categories using describe and context blocks.

Data Management:

  • Use fixtures for test data to ensure consistency and avoid hardcoding.
  • Implement dynamic data generation for scenarios requiring unique data in each run.

Chai:

Test Runner and Assertions:

  • Assertion Library: Chai (already integrated with Cypress) is used for writing assertions. It allows to verify that the app's behavior matches the expected results.

Error Handling:

  • Use Cypress's built-in retry functionality for flaky tests.
  • Configure robust error-handling strategies to identify and isolate failures.

Additional Configuration

  • Custom Commands: Extend Cypress's capabilities by creating reusable custom commands in cypress/support/commands.js.
  • Parallel Testing: Enable parallelization to reduce execution time, especially for larger test suites.

Browser Compatibility Testing:

  • Test across multiple browsers (e.g., Chrome, Edge, Firefox) using Cypress’s cross-browser support.

Performance and Optimization

Test Run Optimization:

  • Categorize tests into smoke, regression, and critical path suites to run targeted test sets based on the need.
  • Use Cypress's "test retries" feature to rerun only failed tests.

Reporting and Debugging

  • Integrate plugins like Mochawesome or Allure to generate detailed, shareable test reports.
  • Include screenshots and videos of failed tests for better debugging. (Optional but good practice)

Logging and Insights:

  • Use Cypress's cy.log() and cy.task() commands for debugging and capturing runtime information.
  • Set up dashboards like Cypress Dashboard for real-time insights into test runs.

Risks and Dependencies

Details to be added

Exit Criteria

Details to be added

@github-project-automation github-project-automation bot moved this to NEW USER REQUEST in Portal Nov 26, 2024
@SanaSalem01
Copy link
Author

@charmi-v FYI
Shared more details on eclipse chat.

Thanks

@charmi-v
Copy link
Contributor

charmi-v commented Nov 28, 2024

As discussed in the portal meeting, priority test cases to begin with:

  • Login (implemented with setup of cypress)
  • Company Registration
  • Application approval process
  • Technical User creation (External & Internal)
  • Connector Registration
  • App registration (App Release Process)

@charmi-v
Copy link
Contributor

charmi-v commented Dec 2, 2024

I plan to start writing test cases for the following user flow:

  • Technical User Creation (External & Internal)

If anyone wants to contribute test cases in Cypress, feel free to pick a user flow other than the one mentioned above.

For reference: The basic PR for the Cypress setup is already created: #1357.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: NEW USER REQUEST
Development

No branches or pull requests

2 participants