software-engineering--roles-definition

Skill Description
Testing Coverage Analysis Is able to assure the Testing Coverage in terms of the execution for functional and non functional requirements
Test Execution Planning Is able to plan and prioritize the suite and the test cases properly for different testing levels and environments
Risk Management Is able to identify risks and their mitigation plans
Traceability Management Is able to implement traceability based on Requirements, User Stories, Test Cases, and Bugs and also the usage of the Traceability Matrix
Sign-Off Is able to provide Sign-Off according to the defined Exit Criteria
Tasks Estimation Is able to take active participation in the planning, estimating tasks properly and validating with other team members.
Test Automation Readiness Is able to define the project conditions to implement test automation activities on any level
Test Automation Strategy Is able to define, document, and implement the correct test automation strategy
Test Strategies Definition Is able to define test strategies for different types of problems
Behaviour Driven Development Is able to design and execute Behaviour Driven Development test cases using the Gherkin language
Test Driven Development Is able to implement and execute Test Driven Development test cases
Test Case Design Is able to design test cases, including preconditions, priority, and the complete structure; and execute them in any one test automation library/tool
Automation good practices Is able to design automated cases following good practices
UI Automated Testing Design Is able to design and execute automated cases oriented to UI
Alternate UI Testing Design Is capable to understand, define, and implement alternate UI testing techniques validations
Accessibility Testing Design Is able to understand W3C ARIA notions, relationships, and rules depending each country, implementing/using test automation tools or custom solutions
Test Data Support Is able to apply “Data-Driven-Testing” to inject test data into the test. Is able to understand and apply also mocking strategies
Peer Review Is able to perform Test Cases review with other peers
Configuration Management Is able to define and implement a generic and extensible configuration for test automation projects
Security Data Management Is able to define and implement procedures and functionality to guarantee secure data is properly managed
Logging Tools Is able to configure and implement logging mechanisms
Page/Component/View Orchestration and Injection Is able to implement a reusable and scalable strategy for page and/or view modulation, considering the process of injecting page/view dynamically (if required). Using Inheritance or Composition as needed. Fluent interfaces.
Dynamic capabilities and property Is able to design a solid architecture considering available capabilities to support cross browser testing and/or mobile testing using multi-threading mechanisms providing a thread-safe context.
Element Synchronization Is able to introduce intelligent wait operations to handle both page and elements synchronization
Caching Support Is able to design caching mechanisms for data processing, data utilization, and performance improvements
DI & IoC Support Is able to introduce Dependency Injection and Inversion of Control
Localization Testing Is able to support localization testing requirements, enabling test and test data reusability to avoid test duplication in multiple languages, markets, and/or channels.
Test Retrying Is able to introduce test execution retry in an effective and intelligent manner, retrying execution upon certain test conditions or failure situations
Test Listeners Is able to understand and use listeners correctly and/or hooks for handling test execution stages and information in runtime.
Test Management Tool Integration Is able to integrate test automation framework with third-party tools such as Test Management Tools
Database Integration Is able to configure and implement relational/non-relational database support for storing/reading test data or for enabling database validation
Test Runners Is able to develop and execute test suites using test runners, running test in sequential or parallel
Cross Browsing Testing Is able to design and execute cross-browser automated cases
Unit Testing Is able to understand the test concepts in order to provide assistance to the Dev Team about Unit Testing Generation, improving test strategies and coverage. Applying also Mutation Testing to ensure the quality of the Unit Tests.
Component Testing Is able to implement component testing using Standalone Mock servers and tested it
Integration Testing Is able to design and execute Integration test cases, from BE to FE, and Business validations
UI Automated Testing Is able to implement and execute automated test cases for the UI testing platforms
API Automated Testing Is able to implement and execute automated test cases for API/Webservices
L&P Testing Is able to implement and execute L&P test cases/scenarios
Defect Reporting Is able to report a bug properly with the correct structure
Defect Classification Is able to set the bug Severity and Priority properly
Bug Triage Is able to perform Bug Triage
Handle Defect Lifecycle Is able to handle the Bug lifecycle
Defect Verification Is able to perform confirmation testing (bug verification) of bugs reported by other team members
Agile Testing Is able to understand how to manage the task following an Agile / Embedded approach, using an Agile tool and follow workflow as expected.
Test Cases Execution Report Is able to implement automated testing reports to provide details of the execution, tests, steps, errors, and evidence
Defects Reports Is able to share defect status with the stakeholders
Percentage of broken builds Is able to identify actual real application failures vs Code Test Failures
Flaky Test Is able to identify and track the root cause of the test failures so that they can be fixed quickly. Additionally, is able to identify flaky tests and provide solutions to mitigate unexpected conditions. (bad/dynamic locators, unstable API calls, hardcoded waits)
Percentage automated test coverage of total coverage Is able to generate total automation coverage w.r.t. total manual test cases
Test Coverage Is able to understand and measure testing coverage and take actions to improve quality and testing performance
ROI Analysis Is able to perform cost-benefit analysis before a tool is sourced or built. The ROI analysis should include recurring as well as one-time expenses.
Automation Candidates Test Cases Is able to identify test cases which are good candidates for test automation
CI/CD Concepts Is able to understand CI and CD and build a plan to include test automation as part of CI pipelines
CI Infrastructure / DevOps Is able to perform Containers creation, setup, and orchestration, Virtual Machines creation, setup, and orchestration
Continuous Testing Design Is able to design the strategy/process for the different testing phases/environments on a CI/CD pipeline, understanding and setting quality gates.
Continuous Testing Orchestration Is able to create, configure and update CI/CD pipelines for continuous testing
OOP Is able to understand concepts for Object Oriented Programming
Design Patterns Is able to understand design patterns: creational, behavioral, and structural patterns, and use them correctly.
Programming Basics Is able to understand basic programming concepts for variables, objects, flow Structures and basic algorithms
Design Principles & Techniques Is able to understand and apply principles such as SOLID, YAGNI, DRY, KISS, etc.
Developing Good Practices Is able to apply good practices such as Documentation, Styling, Naming conventions, Clean Code, etc.
Debugging Is able to debug code and understand errors and stack traces
Building/Packaging Is able to manage building tools and plugins to configure the project and its dependencies, understanding the building life-cycle tasks such as clean, compile, test, package, publish, etc.
VCS (Version Control System) Is able to manage VCS tool to track changes in software project and coordinate work among programmers such as committing files, pushing files, pulling changes and merging/rebasing.
Communicator Is able to communicate in a clear and concise way ideas to technical and non-technical audiences and with colleagues across all areas
Forward Thinker Is able to define a purpose/objective and pursue it, regardless of the problems, obstacles, and frustration that might appear. It is related to planning, organization and being a forward thinker.
Risk Communicator Is able to clearly communicate project status and issues to the right audiences to get the desired outcome. Is able to communicate with the team and the client identifying risks and contingency plans.
Constructive Outcomer Is efficient and nimble when solving problems, with indicative, corrective actions and common sense to facilitate the pursuit of constructive outcome and shared understanding.
Satisfactory Agreements Is able to identify the position in the negotiation of every party involved, takes into account different points of view, and reaches satisfactory agreements based on a win-win approach.
Fast Learner Is able to work without the need for direct guidance applies proper judgment to difficult situations and makes decisions, performing the assigned responsibilities with independence.
Agile Learner Is able to adapt and adjust to changing circumstances or environment, using effective mechanisms to be able to handle pressure, learning from experience and keeping up the performance level.
Proactive Action Is able to fully engage with the role and project goals. Is proactive and has positive attitude when new challenges arise onto the project.Is able take corrective action based on the lessons learned.
Test Management Activities Is able to manage the testing activities during a SDLC
Test Plan Management Is able to create a Test Plan, identify its different components and work based on it