Test team dynamics, Антон Мужайло
- 1. Test Team Dynamics
Anton Muzhailo,
Senior Automation Engineer / Consultant, GlobalLogic
Certified ISTQB Test Manager
Kyiv 2017
- 2. About me
AntonMuzhailo
Senior Automation Engineer/ Consultant, GlobalLogic
• ISTQBCertifiedTest Manager
• ISTQBCertifiedTrainingsCoachin CodeSpace.com.ua
• 3 yearsof mentoringexperience, 250+students
in/muzhailo/
- 4. Agenda
The reason of this speech is to expand the view on the root causes of
project / product issues
• Do you really fix the most important issue?
• There are also formal approaches to build the test team
• What can you do wrong in building test team?
• Gap analysis – a technique to deal with test team dynamics
- 5. Have you seen such situations? (1/3)
What do we invest What do we receive
Ideal agile process defined with all
needed tools and activities
Unpredictable releases Complex process
Metrics doesn’t show real situation
- 6. Have you seen such situations? (2/3)
What do we invest What do we receive
Formal retrospectives and reviews with
everybody present.
Establishing and implementing improvements
Continue making the same mistakes
Everything seems awesome on paper only
- 7. Have you seen such situations? (3/3)
What do we invest What do we receive
Canonical planning with pointing poker.
Regular grooming and brainstorming, even formal
estimation techniques application.
Last minute changes
If we fail in planning
we say “We should be agile”
- 8. The biggest challenge
- Now in this world of cool frameworks and approaches, people remains to be
the most often bottleneck
- You can’t build effective processes before building the team
- Every process should be in engineers’ mind rather than on paper
- You must hire right people
- 9. In role of Architecting QA processes, we expect
you to be responsible for such scope of tasks:
* Act as a driving force for all test automation
initiatives
* Architect and develop overall QA processes
* Maintain and document automation scripts
* Design and code review for automated tests
* Define test strategy for particular use case
* Share Automation experience with stakeholders
* Drive continuous process improvements for the
QA department by providing consistent feedback
on current standards and best practices
QA Team Lead responsibilities will include:
* Lead, mentor and motivate QA Automation team
* Execute, support and improve multi-team
strategy for development testing on team level
* Coordinate between project teams on quality
related efforts as needed
* Improve the overall efficiency of the QA team
* Measure and report on QA operational KPI's to
Management
* Prioritize QA testing and profiling assignments,
monitor tasks through completion, and ensure
testing schedules are met and releases go out on
time
* Manage the development of the QA pipeline, test
plans, and checklists to verify the functionality and
performance of new features
Execution of QA processes:
* Execute of all quality assurance processes
* Maintain, execute and analyze test automation scripts,
frameworks, programs and utilities
* Create test documentation
* Collaboration with developers on technical aspects
We expect You to have the following experience:
* 3+ years of experience working in test automation
* Experience in managing and coordinating QA teams
* Proficient expertise in the full Quality Assurance life cycle,
testing methodologies, and test automation
* Understanding of software testing principles
* Knowledge of object oriented language (C# or similar)
* Knowledge of scripting languages (Python, Groovy or
similar)
* Experience in building large and scalable multi-threaded
applications
* Experience in creating well designed APIs and interfaces
* Knowledge of UI development principles/UI testing
experience
* Knowledge of Source Control software like Perforce, GIT,
SVN or else
* Good knowledge and understanding of Agile (scrum)
* Strong organizational, planning and problem-solving skills
* Upper-intermediate English level, both spoken and written
Lead QA Automation Engineer
WFT??
LOL
- 10. What I’ve learned from this vacancy
1. Probably frontend/backend testing written on ??? with ??? frameworks
2. Leading several teams?? How many teams/people?
3. Lots of word ‘improvement’, does it mean to build processes from scratch?
4. Why they require experience in building large multithreaded apps and
API/interfaces. Will it be my responsibility? Performance testing too?
Overall opinion: They want a person, that will do everything
- Managing several (!) teams with total ?? people.
- Improve and setup all the processes on project
- 11. Two types of team structure
Dominion model Communion model
Clear responsibility/reporting chain
Works with any people
Easy to implement
X One can block others/everyone
X Always require skilled leader
Multiple leaders in their own domains
Resistant to bottlenecks
More “agile”
X Doesn’t work without strong engineers
X People aren’t used to it
- 12. How to build the test team right?
The ideal test team has:
1. a mix of skills (hard and soft) and experience levels
2. common goals
3. willingness and ability to teach and learn
4. clear communication
5. respect & trust
You can teach monkey how to code at some point
but you will never teach human how to be human
- 13. Soft skills in 90% >> Hard skills
Test Manager/Lead should hire the people that are able to:
• Learn (Ask to use some new FW with the help of Google)
• Share knowledge (Ask to tell something or write some documentation)
• Explain (Ask to proof his point of view with evidences and arguments)
• Negotiate (Prepare needed circumstances and negotiate)
• Review and be reviewed (Place in appropriate situation)
• Separate work conflicts from personal (Ask the thoughts)
- 14. How to define the hard skills
1. List all your skills and mark those applicable for a project
2. Compare this with the list of skills provided by customer and add needed
3. Think about other skills that will be also helpful. (You may use job vacancies
web sites or linkedin )
4. Prioritize the value of each skill you marked applicable. Assign them with a
priority level: Must have, Better to have, Will be a plus
5. Generate vacancy description based on this list
- 15. Skill set definition
Testing Skills
SDLC/STLC activities
Test Design
Test Management
Static Testing (Reqs, Specs)
Black-box Testing
White-box Testing
Performance Testing
Risk Based Test Strategy
Code Coverage
Test Automation
Test Planning / Estimation
Technical Skills
Win / Linux / OSX
C++ / Python / Shell
TCP/IP, networking
Patterns, O(n), SW design
Databases (Oracle, MongoDB)
Continuous Integration toolset
UI testing with Selenium
Hardware maintenance
C#-based servers
Cloud (Azure)
Unit Test frameworks
Soft skills
Mentoring
Learning
Public Speaking
Assessment / Audit
Negotiations
Customer communications
Interviewing
English
Review skills
Presenting (ppt, graphs etc)
Conflicts handling
- 16. Project description
Hi-load cloud-based software for smth
- FrondEnd / BackEnd: Angular 2 with Java and Oracle on AWS
- Android and iOS apps
- Fast iterations based on Agile/Scrum
- Custom automation framework on Ruby+Cucumber
- CI/CD on Jenkins/Docker
- Performance testing required from scratch
- 3 major releases during 1 year, additional 50% resources decided to hire
- Main problems are: critical defects found on RCs, metrics doesn’t show real
picture, big staff turnover, severe dependence on several people, low skill
level of a test team
- 17. Final skills needed
Testing Skills
SDLC/STLC activities
Test Design
Test Management
Static Testing (Reqs, Specs)
Black-box Testing
White-box Testing
Performance Testing
Risk Based Test Strategy
Code Coverage
Test Automation
Test Planning / Estimation
Technical Skills
Win / Linux / OSX
C++ / Python / Shell
TCP/IP, networking
Patterns, O(n), SW design
Databases (Oracle, MongoDB)
Continuous Integration toolset
UI testing with Selenium
Hardware maintenance
C#-based servers
Cloud (Azure)
Unit Test frameworks
Additional Skills
C# backend
Cloud (AWS)
Ruby Automation + Cucumber
Mobile manual testing
experience (Android + iOS)
Dynamic testing (DynaTrace)
Because TM is
you already
Duplicated
with Ruby
0 – no experience, 3 – able to use with some help, 5 –
able to solve anything independently
- 18. Skills Required/Desired Jeremy Lucy Michael
SDLC/STLC activities R3 4 3 2
Test Design R3 4 3 2
Black-box Testing R4 4 2 2
Performance Testing 0 2 0 3
Code Coverage 0 0 2 3
Win / Linux / OSX R3 3 4 4
TCP/IP, networking D3 2 3 4
Databases (Oracle) D2 0 0 3
Continuous Integration toolset D2 1 2 3
UI testing with Selenium 0 0 3 3
C# backend 0 0 0 2
Cloud (AWS) D4 4 1 4
Ruby Automation + Cucumber 0 0 0 1
Android + iOS manual testing D4 1 4 0
Dynamic testing (DynaTrace) 0 0 0 2
TOTAL POINTS 25 27 35
Manual QA
- 19. 0
1
2
3
4
5
SDLC/STLC activities
Test Design
Black-box Testing
Performance Testing
Code Coverage
Win / Linux / OSX
TCP/IP, networking
Databases (Oracle)
Continuous
Integration toolset
UI testing with
Selenium
C# backend
Cloud (AWS)
Ruby Automation +
Cucumber
Android + iOS manual
testing
Dynamic testing
(DynaTrace)
Manual QA
Jeremy Lucy Michael
- Lucy is needed because only she has
Android + iOS testing skills
- Michael has more automation skills and will
be proposed to apply for automation
- If we hire Jeremy and Lucy we will have
following manual qa team:
0
1
2
3
4
5
SDLC/STLC
activities
Test Design
Black-box
Testing
Win / Linux /
OSX
TCP/IP,
networking
Databases
(Oracle)
Continuous
Integration…
Cloud (AWS)
Android + iOS
manual testing
Manual QA
Ideal Minimum Team has max
- 20. Skills Required/Desired Susan Rick Bob
SDLC/STLC activities R3 3 3 4
Test Design R3 3 2 4
Black-box Testing 0 0 0 2
Performance Testing D2 0 3 0
Code Coverage R3 0 3 0
Win / Linux / OSX R3 3 4 4
TCP/IP, networking R3 2 4 4
Databases (Oracle) R3 4 3 2
Continuous Integration toolset R4 4 3 1
UI testing with Selenium R4 4 1 2
C# backend D3 0 4 1
Cloud (AWS) R3 2 3 3
Ruby Automation + Cucumber R4 2 4 2
Android + iOS manual testing 0 0 0 2
Dynamic testing (DynaTrace) D2 2 0 0
TOTAL POINTS 29 37 31
Automation QA
- 21. 0
1
2
3
4
5
SDLC/STLC activities
Test Design
Black-box Testing
Performance Testing
Code Coverage
Win / Linux / OSX
TCP/IP, networking
Databases (Oracle)
Continuous
Integration toolset
UI testing with
Selenium
C# backend
Cloud (AWS)
Ruby Automation +
Cucumber
Android + iOS manual
testing
Dynamic testing
(DynaTrace)
Automation QA
Susan Rick Josh
- Bob is totally lower than our expectations
- Susan and Rick covers the gaps of each other
like a perfect mates if we hire them, we will
have following automation qa team:
0
1
2
3
4
5
SDLC/STLC…
Test Design
Black-box…
Performance…
Code…
Win / Linux…
TCP/IP,…
Databases…Continuous…
UI testing…
C# backend
Cloud (AWS)
Ruby…
Android +…
Dynamic…
Automation QA
Ideal Minimum Team max
- 22. Think about the people in a team as a whole.
The team has weaknesses and advantages, not people.
Team cares about itself as human does about its body.
Team has the development plan, consisting of personal development plans.
Terms does everything
- 23. Skills Jeremy Lucy Susan Rick Average Max Total
SDLC/STLC activities 4 3 3 3 3.25 4 13
Test Design 4 3 3 2 3 4 12
Black-box Testing 4 2 0 0 1.5 4 6
Performance Testing 2 0 0 3 1.25 3 5
Code Coverage 0 2 0 3 1.25 3 5
Win / Linux / OSX 3 4 3 4 3.5 4 14
TCP/IP, networking 2 3 2 4 2.75 4 11
Databases (Oracle) 0 0 4 3 1.75 4 7
Continuous Integration toolset 1 2 4 3 2.5 4 10
UI testing with Selenium 0 3 4 1 2 4 8
C# backend 0 0 0 4 1 4 4
Cloud (AWS) 4 1 2 3 2.5 4 10
Ruby Automation + Cucumber 0 0 2 4 1.5 4 6
Android + iOS manual testing 1 4 0 0 1.25 4 5
Dynamic testing (DynaTrace) 0 0 2 0 0.5 2 2
TOTAL POINTS 25 27 29 37 118
The Team
- 24. 0
1
2
3
4
5
SDLC/STLC activities
Test Design
Black-box Testing
Performance Testing
Code Coverage
Win / Linux / OSX
TCP/IP, networking
Databases (Oracle)Continuous Integration toolset
UI testing with Selenium
C# backend
Cloud (AWS)
Ruby Automation + Cucumber
Android + iOS manual testing
Dynamic testing (DynaTrace)
Test Team Dynamic
Jeremy Lucy Susan Rick Max