QA Automation Engineer (Java)

Местоположение и тип занятости

Санкт-ПетербургПолный рабочий день

Компания

Ведущая глобальная компания, оказывающая услуги по формированию digital стратегии и разработке программного обеспечения

Описание вакансии

Условия работы

Project Description:

Quality Assurance team in Virtual Machines and Interpreters world. Digging into VMs internals and covering all the development phases.

Dealing with Garbage Collectors, statically and dynamically typed languages, procedural and functional programming. Our products are under test run on different platforms including x86 hosts, Android devices.

We run distributed tests on devices, execute massive test suites, write frameworks to automate these processes, represent and analyze results of functional and performance testing. We use infrastructures of Android, Java and JavaScript platforms.

We do test generation and fuzzing. We appreciate ideas on using AI and ML for improving coverage, reducing test counts and result analysis.

Responsibilities:

  • writing tests, test suites and automation frameworks for testing different parts of new VM (Interpreter)
  • regression test suite and framework development
  • executing existing test suites for Java VM
  • writing plugins and tools for results representation
  • debugging and profiling tools testing
  • test failure analysis
  • test infrastructure improvements: Jenkins Pipelines, Allure TestOps, Grafana.

Mandatory Skills:

  • experience in testing
  • test framework development
  • test infrastructure improvements
  • test writing
  • Java knowledge
  • good Java programming skill

Nice-to-Have Skills:

  • kotlin knowledge and programming experience
  • groovy knowledge and programming experience
  • python knowledge
  • experience of compiler testing
  • experience of byte-code disassembly
  • Java application debugging experience
  • C++ test coverage collecting experience
  • Android applications development or automated testing experience

Big advantages

  • kotlin core development process knowledge
  • knowledge of VM specifics, testing experience
  • garbage collectors
  • memory management
  • stack or registry-based VMs
  • JVMTI knowledge
  • experience in usage of Language interoperability frameworks (JNI, FFI)