Job Description
Job Summary:
Automated test execution is a critical part of our product validation strategy and would provide improved test coverage. The Software Developer in Test requires a candidate to have working knowledge of Python and automated testing framework(s)/technologies. The candidate will work as part of a high performing software development team and will be encouraged to contribute ideas and solutions as part of their daily work. This position will provide the candidate with the unique opportunity to gain experience in helping to deliver cutting edge software and services that will ensure we deliver high quality software for our embedded devices. The candidate will play a key role in architecting, designing, developing, and maintaining automated test frameworks and test suites using industry-standard tools and programming languages. The Software Developer in Test will also be expected to create test protocols, codify, validate, and deploy them to a CI/CD mechanism. The Software Developer in Test coordinates with cross functional teams to ensure adequate test coverage of complex features.
Core Competencies:
- Strong communication skills (Oral and Written)
- Ability to think analytically, problem solve, and innovate
- Detail oriented
- Results oriented
- Collaborative and team oriented
- Adaptability / flexibility
- Decision making and judgment
- Demonstrates coaching and mentorship skills with team members and colleagues
- Has solid organizing skills
- Demonstrates initiative
- Demonstrates presence and is vocal, but is respectful and listens to others
- Acts with a clear sense of ownership and accountability
- Acts as subject matter expert in their field but is inclusive of other inputs
- Shares information, actively communicates and is transparent
- Methodical; capable of prioritizing work and working to tight deadlines
Job Duties & Responsibilities:
- Analyze product requirements; create requirements as necessary.
- Cross-functional collaboration with teams to design test plans and test setups for software solutions that span multiple domains.
- Identifying key areas for automation, unit tests, integration tests, and functional tests
- Design solutions to address test execution challenges for our products lines (including but not limited to the G4+ platform)
- Test coverage and failure analysis
- Come up with testing strategies that maximize component coverage with minimal manual intervention.
- Identify and create unit tests, integration tests, and functional tests to support software verification and validation activities.
- Develop and implement test automation for our technology and devices, with collaboration with software development teams, creating, and maintaining the automated tests using a variety of tools, such as, but not limited to: pytest and/or unittest for Python3, Squish for QT, Robot Framework (or other) for MQTT, AWS CloudWatch Synthetics to create canaries written in Typescript and/or
Python3.
- Design, implement, and maintain automated testing workflows/frameworks with CI/CD tools such as, but not limited to Jenkins and/or Teamcity
- Monitor for and troubleshoot failures identified by the automated testing system.
- Identify root causes of failures/bugs and develop code fixes and/or coordinate with software development team to get it fixed.
- Keep track of all outstanding bugs and identify opportunities to improve test coverage.
- Communicate with the Team Leads of the corresponding projects the state of the testing.
- Multi-task in a dynamic, fast-paced environment in Agile method
- Lead development of test plans
- Support creation, execution, and review of test protocols
- Support company processes in the generation of Engineering Change Requests, Engineering Test Requests, and Engineering Change Orders in alignment with the software development and release cycle
- Participate in team code reviews, design, and test discussions.
- Promote and educate the team on best practices for test automation, test-driven development (TDD), and continuous integration to improve the overall quality and efficiency of the development processDevelop and release test protocols for product software verification and validation.
- Develop and execute test cases for product software verification and validation.
- Review and approve test results for product software verification and validation.
- Stay up to date with the latest industry trends, tools, and techniques related to software testing and qualityOwn overall testing and quality of the product for which you are responsible.Educational and Experience Requirements:
- Bachelor's degree with STEM focus (Science, Technology, Engineering or Math)
- At least, eight (8) years relevant experience with software development and/or testing
- At least, five (5) years experience in testing embedded operating systems.
- Experience designing, selecting, configuring and maintaining automated testing frameworks.
- A minimum of five (5) years knowledge of or experience with various Software development and pro- ject management methodologies, such as Waterfall, Agile, Scrum or Kanban, required.
- Excellent knowledge and experience with test methodologies (unit testing, integration testing, perfor- mance testing, functional testing, etc)
- Experience with setting up CI/CD Technologies with a focus on Continuous Integration for multiple projects.
- Experience with the following technologies preferred: Qt, C/C++, Python, Yocto, Embedded Linux, Bash
- Experience with the following technologies desired: Node.js, Typescript, Javascript, RTOS, LabVIEW, Robot Framework, automatic code generation tools, HTML, CGI technologies.
- Familiarity with AWS, IoT and MQTT technologies are highly desirable.
- Familiarity with various Software development and project management processes, such as Waterfall, Agile, Scrum or Kanban
- Experience using JIRA.
- Experience using Version Control tools - such as Git, SVN
- Experience designing test reporting dashboards and reports.
- Strong hands-on experience with QA methodologies, life cycle, and best practices
- Prior experience developing Software Verification and Validation Test Plans in HelixALM is desirable.
Job Types: Full-time, Permanent
Benefits:
- Company events
- Dental care
- Extended health care
- Life insurance
- On-site parking
- Vision care
Flexible Language Requirement:
Schedule:
Experience:
- testing embedded operating systems.: 5 years (required)
- relevant experience with software development and/or testing: 8 years (required)
Work Location: In person
Apply
Go Back