As Staff Software Engineer – Test, you are responsible for designing and implementation of Test Automation features/functionalities, required tools as well as executing the overall test activities. You will work independently and contribute to the immediate team and to other teams across business. You will Lead test design discussion in a limited manner.
Roles and Responsibilities
In this role, you will:
- Identify the scope of the work, provide initial estimate, and justify the estimate with facts
- Demonstrate the understanding of Agile software Test and Development lifecycle and able to distinguish the core inputs and outputs in each cycle.
- Demonstrate high level of technical expertise in developing test automation code with high rigor on code quality.
- Engage in technical discussions; participate in technical designs and present technical ideas through white boarding.
- Understand the product & feature better to come up with optimal test scenarios using advanced test design techniques.
- Plan and update/create test procedures for the new features and improvements.
- Setup the test environment, maintain test setups, execute tests - both automation and manual.
- Execute in a fast-paced delivery mode and focus in delivering tasks to meet the product release goal
- Participate & Provide inputs in technical discussions along with Leads & Architects.
- Out of box thinking in demonstrating the Design, implement, enhance, and maintain test harnesses, libraries, test cases corresponding to various product areas.
- Continuous integration related process changes and improvements throughout engineering lifecycle.
- Execute on the Automation Infrastructure & Tools roadmap and build/enhance test infrastructure.
- Work with the engineering team during the feature design and implementation phases to ensure that:
- The feature has test hooks that can be leveraged to automate test cases.
- The feature is debug enabled.
- Participate in code reviews
- Analyze failures and root cause issues, file defects, follow up with developers and other teams on the resolution if product issues are found
- Maintain code quality through best practices.
- Be an expert in assessing the performance of the system and provide inputs for optimizing/improving it through design and best coding practices
- Seek and provide feedback on design and development
- Demonstrate the ability to make informed technology choices after due diligence and impact assessment
- Understand whole product, its modules and the interrelationship between them while being an expert in the assigned component or module
- Be responsible for providing technical leadership in defining, developing, and evolving test automation framework in a fast paced and agile development environment using the latest technologies and infrastructure
- Work with Product Line Leaders (PLLs) to understand product requirements & vision
Education Qualification and Technical Expertise:
- Bachelor's Degree in Computer Science or “STEM” Majors (Science, Technology, Engineering and Math) with a minimum of 10 years’ experience in software testing
- Knowledge and hands on experience of Test Design techniques, Test Planning, Test Execution – Manual and Automation
- Test automation development experience within BDD, Data driven and Hybrid automation frameworks (preferably cucumber & JBehave and not only limited to Selenium)
- Experience in test automation of micro-services based application
- Hands-on experience in developing software automation testing related to Core Java with knowledge of data structures, multithreading, concurrency, collections, OOAD, Test design patterns.
- Experience using source code management tools such as: Git, GitLab or SVN to perform operations such as branching, merging, and labelling.
- Experience in unit framework such as Junit, TestNG.
- Experience using build tools such as: Gradle, Maven etc
- Have strong understanding of Linux OS and experience installing operating systems, installing software applications, and troubleshooting on both Linux and Windows operating systems.
- Good knowledge of network protocols with the ability to troubleshoot network issues that could be due to hardware, software, or network faults.
- Experience working within Agile/Scrum software development framework
- Strong Debugging and Troubleshooting Expertise.
- Expert in breaking down the problem, planning the test sequences and estimate time for verification tasks
Desired (Good to Have) Skills:
- Self-starter, energizing, results oriented and able to multi-task; tenacious and organized
- Technical experience in global software development and solid understanding of healthcare products and software platforms to come up with best test design strategies
- Familiarity with the full software development lifecycle; including requirement and defect management tools.
- Strong written and oral communication skills including the ability to collaborate with developers both locally and remote
- Understanding of different levels testing and behavioural driven design testing techniques
- Experience configuring builds within continuous integration tools such as Jenkins or TeamCity
- Exposure to other automation tools will an added advantage
- Exposure on scripting languages such as Shell, PowerShell, Perl & python etc will be an added advantage
- Knowledge or experience in containerization platforms like Docker & Kubernetes will be an added advantage
Leadership:
- Demonstrates clarity of thinking to work through limited information and vague problem definitions
- Proactively identifies and removes project obstacles or barriers on behalf of the team
- Shares knowledge, power, and credit, establishing trust, credibility, and goodwill
Personal Attributes:
- Able to work under minimal supervision
- Excellent communication skills and the ability to interface with senior leadership with confidence and clarity
- Able to work well with global teams, including time-zone flexibility
- Skilled in providing oversight and mentoring team members. Shows ability to effectively delegate work