AQA Skills Matrix_

This Tech Skills Matrix is aimed at helping assess Automation QA engineer skills in a common and unambiguous way. Each subsequent seniority level includes the skills from the previous level. This matrix extends manual QA skills.

01Development Principles_

Trainee
Junior
Middle
Senior
Expert
Trainee
  • Has theoretical knowledge of what the OOP paradigm is; able to name at least one development principle (SOLID, DRY, KISS, etc.)
  • Knows what a pattern is, the types of patterns, and the benefits of using them
  • Knows DEV language basics: knows basic types
  • Has basic knowledge of data types for a given programming language (PL) (primitive types)
Junior
  • Has practical experience and can provide examples of development principles (DRY/DIE, KISS, YAGNI)
  • Knows at least one design pattern and is able to describe it
  • Knows basic types and the difference between value and reference types
  • Can read, understand, and analyze existing code and automated tests
  • Can develop a simple automated test
  • Knows 3+ different assertions and is able to use them
  • Knows about complex data types and the differences between them for a given PL
  • Able to perform data sorting and grouping
Middle
  • Can apply design patterns to the provided case
  • Able to describe OOP principles applicable to a given PL (if applicable to the project)
  • Can name and briefly describe each component of SOLID
  • Understands different types of frameworks (Data-Driven, Keyword-Driven, Behavior-Driven, Object-Based)
  • Can describe the test automation project structure and explain the purpose of each layer; understands how to set up the project from scratch
  • Can read, understand, and refactor an existing automated test
  • Able to describe 4+ complex data structures for a given language and compare complex data structures in terms of efficiency for a given task (e.g., Map vs. HashMap, or ArrayList vs. LinkedList)
  • Can perform data operations like sorting, filtering, mapping, and serialization/deserialization
Senior
  • Can demonstrate or invent an example of a situation from experience when one or more of the SOLID principles were used
  • Able to calculate automation ROI
  • Has practical experience in building a test automation project from scratch
  • Can analyze an existing Test Framework and identify bottlenecks
  • Experienced in coding practices; uses efficient language features, language standards, and patterns
  • Has experience on 2+ projects in developing and maintaining test frameworks; knows aspects of a given toolkit, such as libraries, modules, and passing and accepting variables to/from a CI system
Expert
  • Uses advanced development strategies and principles
  • Understands the tradeoffs of various architecture solutions; can identify risks in the architecture of an existing test automation project and provide a plan to mitigate them
  • Able to explain/sell the benefits of the selected architecture to stakeholders
  • Takes responsibility for code stability, performance, and build/test execution time; improves metrics using recent PL features and IDE functionality

02OS and Networking_

Trainee
Junior
Middle
Senior
Expert
Trainee
  • Knows the differences between Windows and UNIX-family operating systems
Junior
  • Has a basic understanding of how OS works (programs, services, files, access): UNIX-family, Windows, Android, macOS
  • Knows the main differences between Windows and UNIX-family; familiar with access management policies
  • Knows protocol models like OSI/DoD; knows tools to work with TCP/HTTP; knows in general how systems communicate over the network; additional protocol knowledge is a plus
  • Can perform basic CLI commands for working with files and directories: navigate through the file system, change permissions for users and files, move and copy, edit files, extract info from files, etc.
Middle
  • Has practical experience with several OS: UNIX-family, Windows, Android, macOS; able to install and configure packages and apps
  • Knows how OS interacts with programs (automated tests), which resources are consumed, and what the possible outcomes are
  • Able to read and write CLI scripts
  • Has good experience with toolsets for specific OS
  • Familiar with the concepts of firewall, proxy, tunneling, NAT
Senior
  • Has practical experience in scripting (CLI) from scratch and troubleshooting
  • Able to use system monitors and tools for OS analysis (like performance monitor)
  • Can perform advanced operations within files (find using regexp, use pipes concept)
  • Knows advanced aspects of protocols: security methods, types of payloads, encapsulation principles, etc.
Expert
  • Able to compare and evaluate OS performance for specific project needs
  • Can identify risks and bottlenecks in using specific OS and protocols; able to provide a plan to mitigate them
  • Able to analyze network infrastructure

03Development and Support_

Trainee
Junior
Middle
Senior
Expert
Trainee
  • Able to develop and run a "Hello world" application
  • Knows the purpose of SCM and IDE
  • Familiar with the development process; knows the difference between code coverage and test coverage
Junior
  • Able to use the main commands of SCM applicable to the project's needs
  • Understands how to use a language-specific IDE; familiar with IDE functionality
  • Can read existing tests and write new autotests in accordance with the existing test automation project; knows how to launch automated tests via the corresponding CLI
  • Able to perform basic debugging for non-complex issues
  • Can identify coverage based on automated test cases
  • Able to analyze a test report
Middle
  • Familiar with extra SCM commands (e.g., conflict resolution, collaborative development)
  • Knows how to configure an IDE from scratch or based on provided configuration sources (install plugins, SDK, build tools, environment variables, etc.)
  • Able to perform automated test coverage analysis
  • Able to set up the reporting process for the project's needs
  • Can execute existing tests, prepare test suites using test tool capabilities, and run tests from IDE, console, and external systems (CI)
  • Can support, update, and extend an existing test automation project
Senior
  • Able to create a test automation project from scratch
  • Can identify potential risks in an existing test automation project based on advanced knowledge of tools, libraries, and programming languages
  • Able to select and configure IDE/SCM/Dev Tools based on specific project needs; able to configure IDE to work with build/package management tools
  • Uses IDE features like isolated compiler/interpreter settings, package management, performance analysis, real-time debugging, and variable inspection
Expert
  • Can identify bottlenecks in the existing test automation process and improve them
  • Knows the advantages and disadvantages of different toolsets; able to select toolsets for project needs and define the most suitable toolsets for projects
  • Able to establish, maintain, and improve execution and reporting flows in terms of clarity, speed, and reliability
  • Takes responsibility for test coverage; applies general testing principles and organizes automated tests to reflect the purpose and provide manageability within the test project

04DevOps Practice_

Trainee
Junior
Middle
Senior
Expert
Trainee
  • Knows why the CI/CD process is set up
  • Has theoretical knowledge about IT infrastructure: what configuration is and how the config files can be stored
  • Is familiar with the concept of virtualization
Junior
  • Able to read, understand, and describe CI/CD flow
  • Can run a virtual instance or an existing image as a container; can use basic commands of virtualization tools (run container, read logs, scale pod) using a given project-specific tool or at least has some experience with an analogue
  • Knows the purpose of orchestrators
  • Has theoretical knowledge about clouds
  • Familiar with the artifact concept; knows what an artifact should include for a given PL
Middle
  • Able to work with different artifacts, storages, and registries: create, update, support; knows what the versioning concept is (e.g., semantic versioning) and is able to apply it
  • Has experience working with configuration; is able to pass/retrieve variables to/from external agents
  • Familiar with configuration management approaches; knows about security aspects of keeping sensitive data in the configuration
  • Able to prepare a snapshot/image for specific needs and store it in a shared repository
  • Familiar with at least one monitoring tool
  • Able to work via SSH
  • Has experience with CI/CD tools and is able to configure CI/CD pipelines; able to set up a virtual environment (with VMs or via docker-compose) – this will be an advantage
Senior
  • Has solid experience with configuring CI/CD pipelines; knows common issues and is able to prevent them – this will be an advantage
  • Able to select and justify tools for CI/CD, Monitoring, and Virtualization – this will be an advantage
  • Chooses efficient approaches for configuration management for specific project needs – this will be an advantage
Expert
  • Able to analyze DevOps processes and suggest improvements based on best practices
  • Able to design and configure the testing part within the CI/CD process from scratch