Team Wide Testing
Ethan Huang
An Integrated
Development and Testing Lifecycle
Ethan Huang
China Global Delivery Center
It’s about DEVELOPMENT
Tester A:
• Look at that bug; it’s pretty
straightforward that the
functionality doesn’t match
our test case. Why can’t
somebody do a quick smoke
test before checking in the
code?
Developer A:
• Well, yes I agree that’s a bug.
But we didn’t have enough
time, you know, the schedule
is tough, we did as much
verifications as we could
before we checked the code
in; but we didn’t have
enough time to cover that
functionality. It’s great that
the testing team found that
bug, we can fix it later.
A real conversation
Tester B (Test Lead) :
• But that costs a lot, we
spent a whole day to
manually execute all the
functional test cases and
found at least 5 obvious
bugs. They could be
identified even without
looking at the test cases.
Now we need another day
for regression test after
your team gets them fixed.
Developer B (Develop Lead) :
• But that’s the reality, isn’t
it? It’s normal to have bugs.
We cannot avoid delivering
bugs together with the
code. That’s why we have a
testing team.
A real conversation
Find
A BUG
1 h 2 h 4 h 2 h
1 d
1 h2 d1 d0.5 d
AT LEAST 1 week
Fix
This Bug
Smoke
Testing
Generate
A Dev Build
Push
To Test
Bug
Verification
Regression
Testing
Push
To Staging
UATPush
To Production
Rework/Cost
Bad quality
Team silos
And this conversations is
happening everywhere
on this planet…
Why can’t we do things right the first time?
What does
Do?
The REALITY
• 6 Developers : 1 Tester
• Non-structured narrative requirements
• Huge amount of legacy functionalities
• Few tests automated
• 13 weeks to deliver
The PROBLEM
After the planning the whole team was
feeling upset because of the predictable
BAD QUALITY
Team did root cause analysis
Team did root cause analysis
• 1 Tester cannot complete all testing work
• We might have to shrink testing phase
• Big, complicated features - long Dev cycle
needed to deliver one feature
• Huge Regression Testing effort needed to
cover legacy features as well
• Has no Requirements details , only
mockups
• Don’t know what details to
implement/write test cases
• Lots of dependencies – hard to test
80%
20%
• 1 Tester cannot complete all testing work
• We might have to shrink testing phase
• Big, complicated features - long Dev cycle
needed to deliver one feature
• Huge Regression Testing effort needed to
cover legacy features as well
• Has no Requirements details , only
mockups
• Don’t know what details to
implement/write test cases
• Lots of dependencies – hard to test
Team did root cause analysis - voted
Team decisions before kicking off
• Break the team silos – Team Wide Testing
• Do things right the first time – Create fewer bugs
Team
• Developers to be involved into all QA activities
• Let the only Tester organize the whole team
Process
• We don’t do waterfall
• We don’t do small waterfalls iteratively either
A new
V Model
Activities
• Represent Requirement using UAT Cases
• Write Automation Tests before development
• Test Driven Development
• CCR + Local Verification
• Check-In, CI + Continuous Automated Testing
• Daily Verification/Daily Demo
• Do UAT every Iteration
Break feature down to small stories
Every single story
is a development
cycle
Every Sprint
delivers some stories
Two Quality Gates
• Represent Requirement using UAT Cases
• Write Automation Tests before development
• Test Driven Development
• CCR + Local Verification - Quality Gate 1
• Check-In, CI + Continuous Automation Testing
• Daily Verification/Daily Demo - Quality Gate 2
• Do UAT every Iteration
What we achieved
12 Sprints for Development,
1 Sprint for Testing
What we achieved
We didn’t complete all the User Stories
But for those stories we delivered,
the client couldn't find even
ONE BUG
Takeaways
A new Team Model integrates Developers and Testers
A new Lifecycle Model integrates Development and Testing
New Development activities driven by Tests
http://blogs.perficient.com/multi-shoring/blog/author/ehuang/
View my posts on Perficient official blog:

Team wide testing

  • 1.
    Team Wide Testing EthanHuang An Integrated Development and Testing Lifecycle
  • 2.
  • 3.
  • 4.
  • 5.
    Tester A: • Lookat that bug; it’s pretty straightforward that the functionality doesn’t match our test case. Why can’t somebody do a quick smoke test before checking in the code? Developer A: • Well, yes I agree that’s a bug. But we didn’t have enough time, you know, the schedule is tough, we did as much verifications as we could before we checked the code in; but we didn’t have enough time to cover that functionality. It’s great that the testing team found that bug, we can fix it later. A real conversation
  • 6.
    Tester B (TestLead) : • But that costs a lot, we spent a whole day to manually execute all the functional test cases and found at least 5 obvious bugs. They could be identified even without looking at the test cases. Now we need another day for regression test after your team gets them fixed. Developer B (Develop Lead) : • But that’s the reality, isn’t it? It’s normal to have bugs. We cannot avoid delivering bugs together with the code. That’s why we have a testing team. A real conversation
  • 7.
    Find A BUG 1 h2 h 4 h 2 h 1 d 1 h2 d1 d0.5 d AT LEAST 1 week Fix This Bug Smoke Testing Generate A Dev Build Push To Test Bug Verification Regression Testing Push To Staging UATPush To Production Rework/Cost
  • 8.
  • 9.
  • 10.
    And this conversationsis happening everywhere on this planet…
  • 11.
    Why can’t wedo things right the first time?
  • 12.
  • 13.
    The REALITY • 6Developers : 1 Tester • Non-structured narrative requirements • Huge amount of legacy functionalities • Few tests automated • 13 weeks to deliver
  • 14.
    The PROBLEM After theplanning the whole team was feeling upset because of the predictable BAD QUALITY
  • 15.
    Team did rootcause analysis
  • 16.
    Team did rootcause analysis • 1 Tester cannot complete all testing work • We might have to shrink testing phase • Big, complicated features - long Dev cycle needed to deliver one feature • Huge Regression Testing effort needed to cover legacy features as well • Has no Requirements details , only mockups • Don’t know what details to implement/write test cases • Lots of dependencies – hard to test
  • 17.
    80% 20% • 1 Testercannot complete all testing work • We might have to shrink testing phase • Big, complicated features - long Dev cycle needed to deliver one feature • Huge Regression Testing effort needed to cover legacy features as well • Has no Requirements details , only mockups • Don’t know what details to implement/write test cases • Lots of dependencies – hard to test Team did root cause analysis - voted
  • 18.
    Team decisions beforekicking off • Break the team silos – Team Wide Testing • Do things right the first time – Create fewer bugs
  • 19.
    Team • Developers tobe involved into all QA activities • Let the only Tester organize the whole team
  • 20.
    Process • We don’tdo waterfall • We don’t do small waterfalls iteratively either
  • 21.
  • 22.
    Activities • Represent Requirementusing UAT Cases • Write Automation Tests before development • Test Driven Development • CCR + Local Verification • Check-In, CI + Continuous Automated Testing • Daily Verification/Daily Demo • Do UAT every Iteration
  • 23.
    Break feature downto small stories
  • 24.
    Every single story isa development cycle
  • 25.
  • 26.
    Two Quality Gates •Represent Requirement using UAT Cases • Write Automation Tests before development • Test Driven Development • CCR + Local Verification - Quality Gate 1 • Check-In, CI + Continuous Automation Testing • Daily Verification/Daily Demo - Quality Gate 2 • Do UAT every Iteration
  • 27.
    What we achieved 12Sprints for Development, 1 Sprint for Testing
  • 28.
    What we achieved Wedidn’t complete all the User Stories
  • 29.
    But for thosestories we delivered, the client couldn't find even ONE BUG
  • 30.
    Takeaways A new TeamModel integrates Developers and Testers A new Lifecycle Model integrates Development and Testing New Development activities driven by Tests http://blogs.perficient.com/multi-shoring/blog/author/ehuang/ View my posts on Perficient official blog: