This is not a traditional QA role. We are seeking skilled software developers with strong Python expertise and a deep understanding of software engineering principles to design and implement robust automation frameworks and tools. The role focuses on engineering solutions to replace repetitive manual testing workflows, leveraging advanced Python capabilities and test automation best practices.
Responsibilities
- Develop, enhance, and maintain test automation frameworks for complex systems, with a strong focus on pytest to create modular, reusable, and scalable automated test solutions.
- Automate end-to-end testing of APIs, databases, and system integrations, using pytest fixtures to efficiently manage test setup and teardown, and hooks to customize test execution behavior.
- Implement advanced Python automation techniques using tools like decorators to enhance test functions or add extra functionality, context managers for clean resource management (e.g., opening/closing connections), and iterators for controlling test data flows.
- Collaborate with development and product teams to ensure that automation solutions align with specifications and deliverables.
- Utilize pytest parametrization to efficiently run tests with different input sets and edge cases, enhancing test coverage and reducing redundancy.
- Work with CI/CD pipelines to integrate automated tests into the development pipeline using tools like Jenkins or GitHub Actions, ensuring that all tests are continuously run with every change.
- Troubleshoot and debug automation frameworks, addressing issues related to Python concurrency (e.g., asyncio or threading) and exception handling.
- Continuously improve test strategies and workflows, ensuring that automation remains efficient, maintainable, and easy to extend.
Qualifications
- Bachelor's degree in computer science, Software Engineering, or a related field.
- 5+ years of hands-on software development experience, with a strong emphasis on Python.
- Proficiency in pytest, including the creation and management of fixtures and hooks, and advanced features like parametrization for efficient test execution.
- Deep understanding of Python's advanced features, such as:
- Decorators: Creating reusable patterns for modifying or enhancing functions or methods.
- Context Managers: Efficient resource management using the with statement.
- Iterators: Implementing and using custom iterators to iterate over complex data structures or handle resource management during tests.
- Inheritance: Utilizing different types of inheritance to create a flexible and maintainable test framework.
- Exception Handling: Properly managing test failures and exceptions with custom handlers, ensuring tests remain resilient.
- Generators: Using generators to handle large sets of data efficiently during test execution.
- Experience with REST API testing, JSON schema validation, and HTTP protocols.
- Solid understanding of RDBMS concepts (preferably MySQL) and writing/optimizing queries for test data validation.
- Experience with version control systems (e.g., Git) and CI/CD tools (e.g., Jenkins, GitHub Actions).
- Strong problem-solving and debugging skills.
- Ability to work effectively in a collaborative, Agile development environment.
Preferred Skills
- Experience with Python concurrency (e.g., asyncio, threading) to write high-performance, non-blocking test solutions.
- Familiarity with cloud platforms (e.g., AWS) and related tools like CloudWatch for monitoring and debugging test environments.
- Experience working with containerized environments (e.g., Docker) and testing distributed systems effectively.