JOB DESCRIPTION:
As a Software Quality Test Engineer, you will utilize your experience and technical expertise to make your mark in our software development’s life cycle. Relish the chance to create an impact in this key role where you will liaise with talented engineers and business experts. Your understanding of end to end testing life cycle will see you liaise seamlessly with a broad cross-section of colleagues, product owners and stakeholders, and contribute to process implementation improvements for advice delivery.
KEY RELATIONSHIPS:
Software Engineers.DevOps, and
Product Managers within existing product teams to deliver high quality software releases.
CORE RESPONSIBILITIES:
Expanding our existing test automation framework and test coverage.
Developing new tests and tools for our core products, backend APIs and services and CI/CD pipelines
Collaborating with a product and development teams to understand how new features should be tested and to contribute to automated tests for these new features.
Collaborate with other QA Engineers to perform quality planning and improve test coverage.
Participate in test pipeline on-call rotation to ensure timely triage, addressing, and communication of pipeline failures.
Contribute to improving test stability in both production and non-production environments.
Contribute to the development of new test framework tooling and provide feedback on proposed approaches. Enhance deploy processes, deployment scripts, and build pipelines in collaboration with other Software Engineers in Test.
Expand knowledge of provisioning and setup tools such as Omnibus, the Orchestrator, Terraform, Ansible, Kubernetes, Helm Charts, GCP, or AWS for effective test environment management.
Take ownership of tasks within assigned OKRs. Regularly manage project schedules, ensuring alignment with team and department goals. Exercise judgment and independently identify next steps.
Clearly document processes and knowledge in collaboration with team members to facilitate knowledge sharing and ensure information accessibility.
Collaborating with engineers to define and implement mechanisms to inject testing earlier into the software development process.
Identifying, sharing, and nurturing the adoption of best practices in code health, testing, testability, and maintainability in collaboration with the wider Quality Engineering department. You should champion clean code and the concept of the test pyramid.
Analyzing complex software systems and collaborating with others to improve the overall design, testability, and quality.
Striving for the fastest feedback possible. Test parallelization should be a top priority. You see distributed systems as a core challenge of good test automation infrastructure.
Configuring automated tests to execute reliably and efficiently in CI/CD environments.
Tracking and communicating test results in a timely, effective, and automated manner.
QUALIFICATIONS & EXPERIENCE:
Having obtained a Degree in a relevant Computer Science.
Qualified to ISEB/ISTQB Foundation Level or better.
You’ve got a working knowledge of Docker.
You’re interested in growing your knowledge and skills in Test Environment Provisioning and Configuring using technologies like Terraform, Ansible, Kubernetes, GCP, or AWS.h
Knowledge Continuous Integration systems (e.g., Jenkins, Travis, GitLab), Programming languages and tools: Python, Selenium, Java, XML, SQL, JavaScript and REST API testing tools such as Postman, SOAP UI, JMeter.
EXPERIENCE:
At least 5 years automated testing Experience.
Solid background in test automation, including experience with test automation frameworks, tools, and scripting languages (e.g., Selenium, Appium, JUnit, TestNG, Python, etc.).
Hands-on experience in testing backend APIs and services. This includes knowledge of API testing tools (e.g., Postman, REST Assured) and proficiency in designing and executing tests for API endpoints, data validation, error handling, and performance.
Experience with CI/CD pipelines and DevOps practices is crucial AND be adept at integrating automated tests into the CI/CD process, configuring test environments, and ensuring reliable and efficient test execution within these environments.
Be able to understand new feature requirements, contribute to test planning, and effectively communicate test results and progress to stakeholders.
Have a strong understanding of test design principles, including designing tests for complex software systems.
Be capable of analyzing system architecture and collaborating with others to improve testability, design efficient test cases, and identify areas for test automation.
Be well-versed in quality assurance best practices and be able to champion clean code, the test pyramid concept, and other relevant methodologies.
Actively promote code health, testing, testability, and maintainability within the wider Quality Engineering department.
Experience in tracking and communicating test results effectively and in an automated manner is important. The candidate should be capable of providing timely and accurate test reports, including metrics related to test coverage, test efficiency, defect tracking, and schedule variance.
SKILLS:
Test Framework Development.
Performance and Load Testing
Security Testing working with tools like OWASP ZAP or Burp Suite.
Test-Driven Development (TDD)
Cloud and Distributed Systems Testing
Mobile Testing- (iOS, Android) and devices with mobile testing frameworks (e.g., Appium, XCTest, Espresso) and testing mobile-specific functionalities (e.g., push notifications, geolocation) would be valuable.
Agile/Scrum Methodologies- particularly Scrum, would be beneficial to have experience with Agile-specific testing practices (e.g., sprint planning, user story refinement, retrospectives)
DESIREBALE TRAITS:
A keen eye for detail is essential in identifying potential issues, analyzing test results, and ensuring the accuracy and completeness of test coverage.
Strong problem-solving and critical thinking abilities are important for effectively analyzing complex systems, identifying root causes of issues, and proposing innovative solutions. .
Candidates should be self-driven, motivated, and able to work independently. They should take initiative in identifying areas for improvement, exploring new technologies or techniques, and continuously enhancing their own skills and knowledge.
The ability to adapt to changing priorities, requirements, and technologies is crucial in the fast-paced and evolving field of software engineering.
Strong collaboration and teamwork skills are essential for working effectively with cross-functional teams. Candidates should be able to communicate and collaborate seamlessly with developers, product managers, and other stakeholders to understand requirements, address issues, and contribute to a cohesive and efficient testing process.
Effective time management and organizational skills are important for meeting deadlines, prioritizing tasks, and managing multiple responsibilities.
Excellent verbal and written communication skills are essential for clearly conveying test results, progress, and challenges to both technical and non-technical stakeholders.
Demonstrate leadership qualities, such as taking ownership of tasks, guiding and mentoring junior team members, and acting as a subject matter expert, would bring additional value to the role.
A commitment to delivering high-quality software and ensuring thorough testing is crucial.
The field of software testing is constantly evolving, and candidates should have a curiosity and eagerness to learn. Being open to new ideas, embracing new technologies, and staying updated with industry trends can contribute to personal and professional growth.