What would be the skill set you’d like the people driving the quality culture in an organization have? I’ve always been excited to find out what would be the skill set of a veteran tester. Who can interface with senior executives and at the same time lead and mentor quality best practices in testers. This is an attempt to classify the skills on a very high level I’d like to see.

This certainly will be subjective from person / organization to another, and I can’t imagine any person who would be an expert in all these skills. But helps to draw out the important skills.

Quality Engineering

Ways of working

  • Understanding of what a DevOps culture is
  • Designing and developing quality practices which are efficient and effective
  • Understands the practical implementation of Agile principles and implementing them in a team
  • Implementing scrum best practices
  • Experience in driving desired behavior in teams
  • Leading by example / servant leadership

KPIs, Reporting, Metrics

  • Designing quality metrics which provide indication of a build’s health
  • Developing team KPIs
  • Pitfalls in metrics and how to mitigate them
  • Expose and report risks in large product solutions

Facilitating Product Development

  1. Understanding core problem the product is solving
  2. Building and communicating product context for testers
  3. Make sure testing activities are in line with the core problem to solve
  4. Facilitate UAT and collaborate to making the process effective

Enterprise Management

  1. Socialize & collaborate with Senior Execs
  2. Voice quality related concerns
  3. Ability to make a point and get agreement from C-level executives
  4. Oral and written communication skills

Vendor management

  • Designing vendor contracts
  • Acceptance of test schedules
  • Managing offshore vendors goals and day to day activities

Testing

Test Strategy

  • Design test strategy in line with Tech stack, product / business use case & project constraints
  • Identify test coverage gaps / unexplored potential risky areas
  • How to push tests down to lower levels of tech stack
  • Strategy to leverage automation
  • Prioritize test scenarios
  • Design bug reporting flow

BDD

  • Using BDD to increase collaboration
  • Best practices for writing feature files
  • Cucumber / Serenity
  • Any other BDD tool

Exploratory Testing

  • Questioning requirements and assumptions
  • Developing testing heuristics
  • Using developed testing heuristics
  • Teaching testing heuristics
  • Usage of effective documentation methods (e.g. Mind Maps)

Test Cases

  • Writing test cases (efficient and easily maintainable)
  • Understanding of which test to automate
  • Using testing heuristics to develop test scenarios
  • Test management tools

Automation in test

Automation architecture design

  • Designing API automation frameworks
  • Designing UI automation frameworks
  • Developing test harnesses
  • Test data creation tools / programs
  • Developing synergies between automation teams
  • Automation best practices, design patterns and anti-patterns

Fundamentals of framework design

  • Develop Maintainability in framework design
  • Develop Reusability in framework design
  • Develop Scalability in framework design
  • Develop Robustness in framework design

Programming

  • Writing clean and professional code
  • Seasoned practitioner of coding patterns
  • Developed coding guidelines and principles for teams to follow
  • Usage of static analysis tools (e.g. SonarQube)
  • Skilled in any one strongly typed language (Java, C# etc.)
  • Skilled in any one loosely typed language (JavaScript, Python etc.)

Operational Acceptance Testing

  • Performance testing
  • JMeter
  • Gatling
  • Security testing
  • OWASP

API Automation

  • Hands on experience solving API automation challenges
  • In depth understanding of HTML methods
  • RestAssured
  • WebDriverIo
  • Any other API automation tools
  • JSON
  • XML

UI Automation

  • Hands on experience solving typical UI automation challenges
  • In depth understanding of how browser automation tools work
  • Open source browser automation tools / libraries (e.g. Selenium, Webdriver.io etc.)
  • Enterprise tools (e.g. UFT / TestComplete)
  • Junit, TestNG
  • Allure
  • Maven / Gradle

Mobile Automation

  • Experience solving typical mobile automation challenges
  • Understanding of how Android and iOS work and interactions during native apps automation
  • Appium
  • XCUITest

Continuous Integration

Git

  • Worked with Git using proper branching and merging strategies (e.g. BitBucket, GitHub etc..)
  • Raising and approving pull request
  • Collaborating on code reviews

Jenkins

  • Setting up Jenkins
  • Creating pipeline jobs
  • Configuring automation framework hooks in Jenkins (using maven, ant etc..)
  • Configure to generate telemetry
  • Troubleshoot jobs and familiarity with Jenkins logs
  • Configure and troubleshoot automation reports
  • Gather metrics from execution data in the pipeline

Environment management – Containers

  • How containers work
  • Docker – creating and using containers
  • Orchestration tools (e.g. Kubernetes)

Environment management – VMs

  • Setting up VMs
  • Worked with configuring OS & tools to setup test environments
  • Provisioning Network access etc.

Environment management – Cloud

  • Usage of test environment SaaS tools (e.g. Sauce Labs)
  • Setting up these tools (e.g. Sauce Labs)

Technical & Test leadership

Team Leadership

  • Leading by example / servant leadership
  • Developing an open culture where people are free to share their thoughts and fail fast
  • Developing confidence in team members
  • Leading teams under 10 people
  • Leading teams from an enterprise level
  • Provide positive and constructive feedback respectfully
  • Build positive relationships with team members
  • Planning, organizing, and follow-up skills
  • Hire and mentor Software Quality Engineers

Thought leadership

  • Sharing and learning in the testing community
  • Collaborating with other thought leaders
  • Familiar with latest trends in the software and testing community

Technical Acumen

  • How technology stack works – Presentation, business, persistence and database layers
  • Micro services architecture
  • Front end platforms architecture (e.g. Angualr, Node JS)
  • Web development fundamentals – HTML, CSS and JS
  • Back end platforms architecture (e.g. Spring boots, .Net)
  • HTTP messages
  • MVC architecture
  • SQL fundamentals and schema design

Collaborating with Architects / Senior devs

  • Ability to understand complex product design
  • Review product architecture and provide feedback related to quality and stability
  • Ensure product architecture allows for testability

I’d love to hear your thoughts and what skills you would add / edit in the list.