Description 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. Responsibilities We’d all like amazing work to do, and real work-life balance. That’s waiting for you at Sainsbury’s. Think about the scale it takes for us to feed the nation. The level of data, transactions and variety it involves. Then you’ll realise that ours is a modern software engineering environment because it has to be. We’ve made serious investment into a Tech Academy and into setting standards and principles. We iterate, learn, experiment and push ways of working such as Agile, Scrum and XP. So you can look forward to awesome opportunities in everything from AI to reusable tech. Qualifications We are committed to being a truly inclusive retailer, so you’ll be welcomed whoever you are and wherever you work. Around here, there’s always the chance to try something new - whether that’s as part of an evolving team or somewhere else across the business - and we take development seriously and promise to support you. We also recognise and celebrate colleagues when they go the extra mile and, where possible, offer flexible working. When you join our team, we’ll also offer you an amazing range of benefits. Here are some of them: Starting off with colleague discount, you'll be able to get 10% off at Sainsbury's, Argos, TU and Habitat after 4 weeks. This increases to 15% off at Sainsbury’s every Friday and Saturday and 15% off at Argos every pay day. We've also got you covered for your future with our pensions scheme and life cover. You'll also be able to share in our success as you may be eligible for a performance-related bonus of up to 10% of salary, depending on how we perform. Your wellbeing is important to us too. You'll receive an annual holiday allowance, and you can buy additional holiday. We also offer other benefits that will help your money go further such as season ticket loans, cycle to work scheme, health cash plans, pay advance (where you can access some of your pay before pay day) as well access to a great range of discounts from hundreds of other retailers. And if you ever need it there is also an employee assistance programme. Moments that matter are as important to us as they are to you which is why we give up to 26 weeks’ pay for maternity or adoption leave and up to 4 weeks’ pay for paternity leave. Please see www.sainsburys.jobs for a range of our benefits (note, length of service and eligibility criteria may apply).