Senior Software Test Automation Engineer

San Diego, CA

The Senior Software Test Automation Engineer is instrumental in creating and maintaining test automation infrastructure that automatically validates each new release candidate of the various software artifacts that make up the sensemetrics Industrial IoT platform. This is a hands-on coding role that requires writing JUnit tests, custom Java test frameworks or test mocks, as well as Cucumber test cases and step definitions. It is not a manual software quality assurance role, though, initially, the responsibilities of this role may also involve manual test case execution managed via TestRail. However, the end goal is to eliminate all manual steps from the testing process and create an environment that provides high confidence that a software release will work as desired.

Successful candidates for this role understand that writing test code is subject to the same best practices as production code and value clean code without unnecessary statements or duplication. Also included in this role is the maintenance and improvement of test-related Continuous Integration and quality metrics systems.

Though this role is by and large focused on software, it will also involve setting up and testing actual hardware devices, which are an integral part of the sensemetrics platform as well.

This role is the first full-time, dedicated test automation role within the company, and whereas the initial responsibilities will be 100% hands-on, this role could later evolve into a leadership role for sensemetrics’ test automation and software quality assurance.

The Work:

  • Write unit-, integration- and end-to-end tests for areas of critical importance and/or insufficient coverage
  • Create custom test frameworks and test mocks
  • Set up test harnesses and physical test devices
  • Design and perform load tests to ensure sufficient application performance
  • Integrate test automation into the CI/CD process to ensure reporting of test results
  • Perform manual test runs in TestRail for test scenarios that are not automated yet
  • Contribute to innovation and continuous improvements of products and processes

Minimum Qualifications:

  • BS (or higher) in Computer Science or Computer Engineering
  • 3+ years in a software test automation role involving hands-on development
  • Good Java development skills (preferably Java 8) and an understanding of Java’s ecosystem and tool chain
  • A strong commitment to Test-Driven Development (TDD)
  • Mastery of the JUnit framework including advanced techniques like parameterization, rules, and theories
  • Expertise in using the Mockito mocking framework
  • Working knowledge of Maven, git, and UNIX/Linux command-line tools
  • Good understanding of multi-threaded Java applications and how to test them
  • Understanding of unit-, integration- and end-to-end tests and knowing when to use them
  • Experience with testing dynamic web applications and embedded software systems
  • Experience with web application load testing
  • Good understanding of Behavior-Driven Development and its significance for testing and test automation
  • Expertise in writing BDD tests with Cucumber JVM, including step definition implementations
  • Experience with using the Selenium WebDriver Java API
  • Working knowledge of TestRail for managing manual test case execution
  • Knowledge of test coverage measurement with tools like JaCoCo, Clover or Cobertura
  • Familiarity with SonarQube or other tools for obtaining software quality metrics
  • Familiarity with JavaScript and front-end testing technologies like PhantomJS, chai/mocha, Karma, Jasmine or Protractor
  • Basic familiarity with Amazon Web Services (all of sensemetrics’ public-facing and internal services run on AWS)
  • Understanding of JSR-330 dependency injection frameworks (like Guice or Spring) and how to use them in JUnit tests
  • Working knowledge of MongoDB and Redis
  • Working knowledge of continuous integration and delivery (CI/CD) systems like Jenkins, Bamboo or TeamCity
  • Working knowledge of TCP/IP, HTTP(S), and WebSocket protocols
  • Working knowledge of object-oriented programming, SOLID principles, and common design patterns
  • Basic understanding of secure communications and public-key infrastructure (PKI)
  • Excellent analytical, problem solving and debugging skills
  • Strong oral and written communication skills

Preferred Qualifications:

  • Previous experience with Java-based embedded systems
  • Previous experience with testing asynchronous communication Java frameworks (e.g., Netty, vert.x, RxJava)
  • Previous experience with TestRail and Jira
  • Previous experience with test generation solutions (Jtest, Agitar, EvoSuite)
  • Previous experience with sensor technology or Industrial IoT (IIoT) applications
  • Familiar with using Scrum and other Agile Development methodologies

Benefits:

  • 99% company paid individual medical, dental and vision insurance coverage
  • Market competitive total compensation package, including meaningful equity ownership in the company
  • Company 401k plan

Travel: 0%

 

sensemetrics is an Equal Opportunity Employer, and all qualified applicants will receive consideration for employment, as sensemetrics does not discriminate on the basis of race, color, religion, sex, age, national origin, disability, veteran status, sexual orientation or any other classification protected by Federal, state, or local law.