What would be the skill set you’d like the people driving the quality culture in an organization to 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
- Understanding core problem the product is solving
- Building and communicating product context for testers
- Make sure testing activities are in line with the core problem to solve
- Facilitate UAT and collaborate to making the process effective
Enterprise Management
- Socialize & collaborate with Senior Execs
- Voice quality related concerns
- Ability to make a point and get agreement from C-level executives
- 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.
Productive list of items for the testing.
Good work!
Thank you Nayyar.