London, London, United Kingdom
5 days ago
Test Automation Engineer - Microservices Backend & BDD

As a Test Engineer with Microservice Backend and BDD experience, your primary responsibility will be to design, implement, and execute automated test cases for microservices-based applications. You will use BDD methodologies to write tests in a way that is easily understandable by both technical and non-technical stakeholders. The goal is to ensure that microservices meet both the functional requirements and performance expectations while maintaining a high level of quality.

You will work closely with cross-functional teams, including developers, product owners, and business analysts, to define acceptance criteria and test scenarios that align with business goals.

Key Responsibilities: Behaviour-Driven Development (BDD): Collaborate with Product Owners, Developers, and Stakeholders to define clear Acceptance Criteria for features in terms of user stories. Write Gherkin-style BDD scenarios (Given-When-Then) that define how microservices should behave under different conditions. Implement automated tests using BDD frameworks such as Cucumber, SpecFlow, or JBehave, integrating these into the CI/CD pipeline. Ensure that the tests are aligned with business requirements and customer expectations. Help stakeholders understand how to read and use BDD scenarios to test business logic. Microservice API Testing: Design and execute automated tests for RESTful APIs or gRPC services to validate the functionality and behaviour of microservices. Validate data integrity, correct handling of HTTP responses, error codes, and edge cases in the context of distributed systems. Ensure that microservices interact correctly with other services and external systems through APIs, message queues, and databases. Verify that API contracts are adhered to using contract testing tools such as Pact or Spring Cloud Contract. Test Automation & Continuous Integration: Develop automated test scripts for microservices using testing tools such as Cucumber, JUnit, RestAssured, and Mockito. Integrate automated tests into the CI/CD pipeline using tools like Jenkins, GitLab CI, or CircleCI to enable continuous testing. Ensure that tests run efficiently in parallel across different environments (e.g., local, staging, production) and validate the behaviour of microservices end-to-end. Performance & Load Testing: Perform performance testing to assess how well microservices handle different loads. Use tools like JMeter, Gatling, or Locust to simulate high volumes of requests. Measure response times, throughput, and resource usage under stress and load testing scenarios, identifying any bottlenecks in the system. Security Testing: Perform basic security testing on microservices to identify vulnerabilities in APIs and backend services (e.g., SQL injection, XSS, rate limiting). Ensure that authentication (e.g., OAuth2, JWT) and authorization mechanisms are implemented correctly. Validate that sensitive data is encrypted and that APIs are resilient to attacks. Data Validation: Ensure that microservices properly interact with databases (SQL/NoSQL) by validating data consistency and integrity. Write complex SQL queries to verify that data is correctly processed and stored across distributed services. Verify that microservices handle data validation, transformation, and persistence properly. Collaboration: Act as a liaison between business stakeholders, developers, and the QA team to ensure that business requirements are translated into testable behaviour. Review user stories and acceptance criteria to ensure that they are clear, complete, and testable. Participate in Agile ceremonies such as sprint planning, stand-ups, and retrospectives to provide feedback on test coverage and quality metrics. Error Handling & Fault Tolerance Testing: Test the resilience of microservices by simulating failure scenarios (e.g., timeouts, service unavailability, network latency). Validate that services correctly implement circuit breakers, fallbacks, and retry mechanisms in case of failure. Regression Testing: Perform regression testing to ensure that new features and bug fixes do not introduce defects in previously working parts of the system. Automate repetitive regression tests to reduce the manual testing effort over time. Skills & Qualifications: Technical Skills: BDD Frameworks: Experience with Cucumber, SpecFlow, JBehave for writing automated tests in Gherkin syntax (Given-When-Then). Familiar with tools that integrate BDD with other testing tools like RestAssured for API testing. Microservices Testing: Strong experience in API testing (REST/gRPC), including API contract testing, data validation, and error handling. Knowledge of microservices architecture, including service-to-service communication, asynchronous processing, and distributed data management. Test Automation: Experience in test automation using JUnit, TestNG, Mockito, and RestAssured for backend testing. Familiarity with mocking tools (e.g., Mockito, WireMock) for simulating dependencies in microservices testing. CI/CD: Experience with CI/CD tools like Jenkins, GitLab CI, or CircleCI to automate the testing and deployment pipeline. Performance Testing: Knowledge of performance testing tools like JMeter, Gatling, or Locust to measure the load and scalability of microservices. Database Testing: Proficiency in SQL and NoSQL databases for validating data integrity and consistency across distributed services (e.g., PostgreSQL, MongoDB, Cassandra). Security Testing: Familiarity with security testing techniques, such as validating JWT authentication, OAuth2, input validation, and rate limiting. Soft Skills: Communication: Excellent verbal and written communication skills, with the ability to collaborate effectively with business stakeholders, developers, and QA teams. Collaboration: Ability to work effectively in an Agile environment, participating in sprints and understanding user stories to ensure the team builds the right solution. Problem-Solving: Strong analytical skills to troubleshoot complex issues in microservices interactions and behaviour. Attention to Detail: Strong attention to detail in test design and execution, ensuring the system behaves as expected under various conditions. Experience: 5+  years of experience in testing microservices and backend services, with hands-on experience in BDD. Previous experience in an Agile development environment, working alongside developers, product owners, and business analysts. Tools & Technologies: BDD Frameworks: Cucumber, SpecFlow, JBehave for writing and running BDD tests. Gherkin syntax for behavior specification. API Testing: Postman, SoapUI, RestAssured for REST API testing. Pact for contract testing. Test Automation: JUnit, TestNG for unit and integration testing. Mockito, WireMock for mocking and stubbing service dependencies. Performance Testing: JMeter, Gatling, Locust for load and performance testing. CI/CD: Jenkins, GitLab CI, CircleCI for integrating tests in the continuous delivery pipeline. Version Control: Git, GitHub, Bitbucket for code management and collaboration. Databases: SQL (PostgreSQL, MySQL) and NoSQL (MongoDB, Cassandra) for database validation. Security Testing: OWASP ZAP, Burp Suite for security testing.
Confirm your E-mail: Send Email