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