SlideShare a Scribd company logo
Testing in a Scrum Team
In this article I will discuss what types of testing I think should be done by a
Scrum Team, and what types could be done by someone outside of the team. To
be able to have this discussion, I will first need to define the different types of
testing I intend to use.
This model is an overview of the nomenclature I will use, and how I think the
different types of testing should be divided between the Scrum Team and the
rest of the organization.
Here are some quotes to better understand what the test types the Scrum Team
is responsible for mean:
“An integrated test is any (low level) test where when it fails you cannot pinpoint
exactly what went wrong.“ [1] [4]
“Integration testing is the phase in software testing in which individual software
modules are combined and tested as a group.” [4]
“Contract Tests explain how a class should extend a superclass or implement an
interface…” [1] [2]
Scrum Team
Scrum Team
Scrum Team
Scrum Team
Outside of Scrum Team
Isolated Tests
Contract/Collaboration Tests
Integrated Tests
System Tests
Equipment & Competence Specific Tests
“Collaboration Tests checks if a component talks to the next layer correctly.” [1]
[3]
“Collaboration tests are also called interaction tests to differentiate them from
state based tests.” [1] [3]
“The real benefit of isolated tests, of tests for one function at the time, is that
those tests put tremendous preassure on our designs.” [1][6]
“…unit testing (isolated tests) is a software testing method by which individual
units of source code, sets of one or more computer program modules together
with associated control data, usage procedures, and operating procedures, are
tested to determine whether they are fit for use.” [6]
This way the responsibility of the Scrum Team is pretty clear. How they do it; if
they do it with manual tests through the UI or using automated test, is up to the
team. Though the nomenclature obviously encourages writing automated tests.
The Scrum Team is responsible for the quality (shippable state [7]) of every
component they develop, how they communicate with each other, and that those
components work together as a group.
But there are some exceptions, and also some additional testing that must be
done before we can be confident that our test coverage is sufficiently mitigating
all relevant risks.
Let us start with the exceptions. If we have multiple Scrum Teams (if we don’t
then the following could, dependent on context, be included in the Scrum Teams
responsibility) then we may have tests that require certain tools or competence
that is not readily available to all Scrum Teams. To be able to scale, it can be a
reasonable approach to centralize these tests to a specific group of people that
serve all the Scrum Teams. One of the most obvious and simple examples can be
localization and culturalization [8] testing of features. Every Scrum Team cannot
be expected to know all languages and cultures that the product will be shipped
to, and thus will have problems testing these areas. There can be many tests with
similar competence or tool dependencies that must be moved out of the Scrum
Team, but exactly which these tests are is dependent on context.
Let’s move on to what additional tests must be performed after the Scrum Team
has done their part. If we have multiple Scrum Teams (if we don’t, then again this
will fall on the responsibility of the Scrum Team) and they all deliver their
perfectly (in theory) tested groups of components, then we might still end up in a
situation where the system does not work. But if we put this work on the Scrum
Team we will not only reduce their velocity, but also require them to test other
teams’ groups of components when they integrate their code. This will cause
ownership problems. In this case, one option is to have testers specialized in this
kind of testing taking responsibility for testing the complete system. Each Scrum
Team still has ownership of the quality of their code, and responsibility for fixing
any problems found during this test, but the responsibility for testing the whole
system can be transferred to this group of professional testers. The complexity of
this kind of system test also requires a different skillset than less complex low
level testing, which makes it suitable to have testers with this skillset handle the
task. I say that low level testing is less complex, but that in no way means that it
is easier, or less valuable.
With this nomenclature and division of different test types between the Scrum
Teams and other roles, I believe that it makes it clear what responsibility the
Scrum Teams have when it comes to testing, and what they can expect other
roles to help them with. I am not claiming that my way is in any way better than
other existing models, but it has helped me in my understanding of how to
efficiently work with test in Scrum.
/Johan Hoberg
References
[1] Integration tests are a scam
https://vimeo.com/80533536
http://www.infoq.com/presentations/integration-tests-scam
[2] Contract tests
http://thecodewhisperer.tumblr.com/post/1325859246/in-brief-contract-tests
http://thecodewhisperer.tumblr.com/post/1172613515/stub-your-data-
access-layer-it-wont-hurt
http://sharkzp.github.io/blog/2014/01/20/contract-tests/
[3] Collaboration Tests (Interaction Tests)
http://googletesting.blogspot.se/2013/03/testing-on-toilet-testing-state-
vs.html
[4] Integrated Tests / Integration Tests
http://en.wikipedia.org/wiki/Integration_testing
[5] System Tests
http://en.wikipedia.org/wiki/System_testing
[6] Unit Tests / Isolated Tests
http://en.wikipedia.org/wiki/Unit_testing
[7] Shippable State
http://www.infoq.com/news/2008/02/done-shippable-quality
[8] Localization vs. Culturalization
http://www.hitcents.com/blog/post/localization-vs-culturalization

More Related Content

What's hot

Test driven development
Test driven developmentTest driven development
Test driven development
lukaszkujawa
 
Unit testing and test driven development using vs
Unit testing and test driven development using vsUnit testing and test driven development using vs
Unit testing and test driven development using vs
Abhimanyu Singhal
 

What's hot (20)

Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...
Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...
Introduction to testing with MSTest, Visual Studio, and Team Foundation Serve...
 
.Net Unit Testing with Visual Studio 2010
.Net Unit Testing with Visual Studio 2010.Net Unit Testing with Visual Studio 2010
.Net Unit Testing with Visual Studio 2010
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
 
Building an Automation Framework
Building an Automation FrameworkBuilding an Automation Framework
Building an Automation Framework
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Unit testing and test driven development using vs
Unit testing and test driven development using vsUnit testing and test driven development using vs
Unit testing and test driven development using vs
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
 
How and what to unit test
How and what to unit testHow and what to unit test
How and what to unit test
 
20070514 introduction to test ng and its application for test driven gui deve...
20070514 introduction to test ng and its application for test driven gui deve...20070514 introduction to test ng and its application for test driven gui deve...
20070514 introduction to test ng and its application for test driven gui deve...
 
Nunit
NunitNunit
Nunit
 
TestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKETestNG Session presented in Xebia XKE
TestNG Session presented in Xebia XKE
 
Test ng for testers
Test ng for testersTest ng for testers
Test ng for testers
 
An Introduction to Unit Test Using NUnit
An Introduction to Unit Test Using NUnitAn Introduction to Unit Test Using NUnit
An Introduction to Unit Test Using NUnit
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Unit Testing in WordPress
Unit Testing in WordPressUnit Testing in WordPress
Unit Testing in WordPress
 
TDD And Refactoring
TDD And RefactoringTDD And Refactoring
TDD And Refactoring
 
Agile test practices
Agile test practicesAgile test practices
Agile test practices
 
Test link
Test linkTest link
Test link
 
VodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoniVodQA3_ATDD_KetanSoni
VodQA3_ATDD_KetanSoni
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 

Viewers also liked

Evaluation dual[1][1]
Evaluation dual[1][1]Evaluation dual[1][1]
Evaluation dual[1][1]
Shaneen Verma
 
Zaragoza Turismo 29
Zaragoza Turismo 29Zaragoza Turismo 29
Zaragoza Turismo 29
Saucepolis blog & Hotel Sauce
 
Business Conference
Business ConferenceBusiness Conference
Business Conference
iteclearners
 
Arab Eating
Arab EatingArab Eating
Arab Eating
pishgo
 

Viewers also liked (20)

Ipsos MORI Political Monitor: Immigration and Asylum
Ipsos MORI Political Monitor: Immigration and AsylumIpsos MORI Political Monitor: Immigration and Asylum
Ipsos MORI Political Monitor: Immigration and Asylum
 
Evaluation dual[1][1]
Evaluation dual[1][1]Evaluation dual[1][1]
Evaluation dual[1][1]
 
Zaragoza Turismo 29
Zaragoza Turismo 29Zaragoza Turismo 29
Zaragoza Turismo 29
 
Business Conference
Business ConferenceBusiness Conference
Business Conference
 
3º básico a semana 25 al 29 abril
3º básico a  semana 25  al 29 abril3º básico a  semana 25  al 29 abril
3º básico a semana 25 al 29 abril
 
Visionaria Mesa Redonda SDI Cointer
Visionaria Mesa Redonda SDI CointerVisionaria Mesa Redonda SDI Cointer
Visionaria Mesa Redonda SDI Cointer
 
Английский сленг (J-L)
Английский сленг (J-L)Английский сленг (J-L)
Английский сленг (J-L)
 
Aнглийский сленг (D-F)
Aнглийский сленг (D-F)Aнглийский сленг (D-F)
Aнглийский сленг (D-F)
 
Perfil estadístico de la educación
Perfil estadístico de la educaciónPerfil estadístico de la educación
Perfil estadístico de la educación
 
Job Description for Operations Executive
Job Description for Operations ExecutiveJob Description for Operations Executive
Job Description for Operations Executive
 
3a secundariacte2016
3a secundariacte20163a secundariacte2016
3a secundariacte2016
 
1ra clase tm 2014
1ra clase tm 20141ra clase tm 2014
1ra clase tm 2014
 
Arab Eating
Arab EatingArab Eating
Arab Eating
 
SIEMBRA DE FRIJOL EN LAS VEREDAS CHURIMBO, TONUSCO Y EL PESCADO DEL MUNICIPIO...
SIEMBRA DE FRIJOL EN LAS VEREDAS CHURIMBO, TONUSCO Y EL PESCADO DEL MUNICIPIO...SIEMBRA DE FRIJOL EN LAS VEREDAS CHURIMBO, TONUSCO Y EL PESCADO DEL MUNICIPIO...
SIEMBRA DE FRIJOL EN LAS VEREDAS CHURIMBO, TONUSCO Y EL PESCADO DEL MUNICIPIO...
 
Cálculo diferencial matlab
Cálculo diferencial matlabCálculo diferencial matlab
Cálculo diferencial matlab
 
Tracking Multi-Channel Marketing Effectiveness
Tracking Multi-Channel Marketing EffectivenessTracking Multi-Channel Marketing Effectiveness
Tracking Multi-Channel Marketing Effectiveness
 
Analytics for manufacturers: The three-minute guide
Analytics for manufacturers: The three-minute guideAnalytics for manufacturers: The three-minute guide
Analytics for manufacturers: The three-minute guide
 
Conditions d'accès aux données
Conditions d'accès aux donnéesConditions d'accès aux données
Conditions d'accès aux données
 
Variable cycle engine ppt.
Variable cycle engine ppt. Variable cycle engine ppt.
Variable cycle engine ppt.
 
Reaching 1 Million APIs and what to do when we get there
Reaching 1 Million APIs and what to do when we get thereReaching 1 Million APIs and what to do when we get there
Reaching 1 Million APIs and what to do when we get there
 

Similar to Testing in a scrum team

Similar to Testing in a scrum team (20)

Scrum an extension pattern language for hyperproductive software development
Scrum an extension pattern language  for hyperproductive software developmentScrum an extension pattern language  for hyperproductive software development
Scrum an extension pattern language for hyperproductive software development
 
Testing Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation FrameworksTesting Experience - Evolution of Test Automation Frameworks
Testing Experience - Evolution of Test Automation Frameworks
 
Scrum in IT Industry Part 2
Scrum in IT Industry Part 2Scrum in IT Industry Part 2
Scrum in IT Industry Part 2
 
utplsql.pdf
utplsql.pdfutplsql.pdf
utplsql.pdf
 
Software engg unit 4
Software engg unit 4 Software engg unit 4
Software engg unit 4
 
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
A Software Tester's Travels from the Land of the Waterfall to the Land of Agi...
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
Agile testing coach Agile Lean Ireland 2017
Agile testing coach   Agile Lean Ireland 2017Agile testing coach   Agile Lean Ireland 2017
Agile testing coach Agile Lean Ireland 2017
 
Do we really need game testers?
Do we really need game testers?Do we really need game testers?
Do we really need game testers?
 
Unit & integration testing
Unit & integration testingUnit & integration testing
Unit & integration testing
 
Driven to Tests
Driven to TestsDriven to Tests
Driven to Tests
 
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
Testing Hourglass at Jira Frontend - by Alexey Shpakov, Sr. Developer @ Atlas...
 
Testing frameworks
Testing frameworksTesting frameworks
Testing frameworks
 
Bt0081 software engineering2
Bt0081 software engineering2Bt0081 software engineering2
Bt0081 software engineering2
 
Effective QA in Scrum
Effective QA in ScrumEffective QA in Scrum
Effective QA in Scrum
 
Testing throughout the software life cycle (test types)
Testing throughout the software life cycle (test types)Testing throughout the software life cycle (test types)
Testing throughout the software life cycle (test types)
 
Object Oriented Testing
Object Oriented TestingObject Oriented Testing
Object Oriented Testing
 
Chaos engineering
Chaos engineering Chaos engineering
Chaos engineering
 
Qa Faqs
Qa FaqsQa Faqs
Qa Faqs
 
Evil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile TestingEvil Tester's Guide to Agile Testing
Evil Tester's Guide to Agile Testing
 

More from Johan Hoberg

More from Johan Hoberg (20)

Approaches to unraveling a complex test problem
Approaches to unraveling a complex test problemApproaches to unraveling a complex test problem
Approaches to unraveling a complex test problem
 
A business case for a modern QA organization
A business case for a modern QA organizationA business case for a modern QA organization
A business case for a modern QA organization
 
Signing off on Quality
Signing off on QualitySigning off on Quality
Signing off on Quality
 
Quality Information Coverage - A QI Concept
Quality Information Coverage - A QI ConceptQuality Information Coverage - A QI Concept
Quality Information Coverage - A QI Concept
 
The Bug Backlog - An Evergrowing Mountain
The Bug Backlog - An Evergrowing MountainThe Bug Backlog - An Evergrowing Mountain
The Bug Backlog - An Evergrowing Mountain
 
Quality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & VisibilityQuality Intelligence: Transparency & Visibility
Quality Intelligence: Transparency & Visibility
 
Building a QA Mindset
Building a QA Mindset Building a QA Mindset
Building a QA Mindset
 
What is QI?
What is QI?What is QI?
What is QI?
 
Building High Quality Software
Building High Quality Software Building High Quality Software
Building High Quality Software
 
Testit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for EveryoneTestit 2017 - Exploratory Testing for Everyone
Testit 2017 - Exploratory Testing for Everyone
 
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
Don’t celebrate failure. Don’t celebrate success. Celebrate commitment, owner...
 
Moving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testingMoving from scripted regression testing to exploratory testing
Moving from scripted regression testing to exploratory testing
 
Building High Quality Software
Building High Quality SoftwareBuilding High Quality Software
Building High Quality Software
 
Quality, Testing & Agile Methodologies
Quality, Testing & Agile MethodologiesQuality, Testing & Agile Methodologies
Quality, Testing & Agile Methodologies
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Why all deadlines are bad for quality
Why all deadlines are bad for qualityWhy all deadlines are bad for quality
Why all deadlines are bad for quality
 
QI, not QA
QI, not QAQI, not QA
QI, not QA
 
Hardware/Software Integration Testing
Hardware/Software Integration TestingHardware/Software Integration Testing
Hardware/Software Integration Testing
 
Defining Test Competence
Defining Test CompetenceDefining Test Competence
Defining Test Competence
 
Giving feedback & Scrum
Giving feedback & ScrumGiving feedback & Scrum
Giving feedback & Scrum
 

Recently uploaded

RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
Atif Razi
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
AbrahamGadissa
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
Kamal Acharya
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
Kamal Acharya
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
Kamal Acharya
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
Neometrix_Engineering_Pvt_Ltd
 

Recently uploaded (20)

RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical SolutionsRS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
RS Khurmi Machine Design Clutch and Brake Exercise Numerical Solutions
 
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptxCloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
Cloud-Computing_CSE311_Computer-Networking CSE GUB BD - Shahidul.pptx
 
HYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generationHYDROPOWER - Hydroelectric power generation
HYDROPOWER - Hydroelectric power generation
 
Digital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdfDigital Signal Processing Lecture notes n.pdf
Digital Signal Processing Lecture notes n.pdf
 
Courier management system project report.pdf
Courier management system project report.pdfCourier management system project report.pdf
Courier management system project report.pdf
 
Immunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary AttacksImmunizing Image Classifiers Against Localized Adversary Attacks
Immunizing Image Classifiers Against Localized Adversary Attacks
 
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdfA CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
A CASE STUDY ON ONLINE TICKET BOOKING SYSTEM PROJECT.pdf
 
Online blood donation management system project.pdf
Online blood donation management system project.pdfOnline blood donation management system project.pdf
Online blood donation management system project.pdf
 
Natalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in KrakówNatalia Rutkowska - BIM School Course in Kraków
Natalia Rutkowska - BIM School Course in Kraków
 
Hall booking system project report .pdf
Hall booking system project report  .pdfHall booking system project report  .pdf
Hall booking system project report .pdf
 
İTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering WorkshopİTÜ CAD and Reverse Engineering Workshop
İTÜ CAD and Reverse Engineering Workshop
 
WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234WATER CRISIS and its solutions-pptx 1234
WATER CRISIS and its solutions-pptx 1234
 
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdfRESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
RESORT MANAGEMENT AND RESERVATION SYSTEM PROJECT REPORT.pdf
 
Furniture showroom management system project.pdf
Furniture showroom management system project.pdfFurniture showroom management system project.pdf
Furniture showroom management system project.pdf
 
A case study of cinema management system project report..pdf
A case study of cinema management system project report..pdfA case study of cinema management system project report..pdf
A case study of cinema management system project report..pdf
 
Architectural Portfolio Sean Lockwood
Architectural Portfolio Sean LockwoodArchitectural Portfolio Sean Lockwood
Architectural Portfolio Sean Lockwood
 
Fruit shop management system project report.pdf
Fruit shop management system project report.pdfFruit shop management system project report.pdf
Fruit shop management system project report.pdf
 
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWINGBRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
BRAKING SYSTEM IN INDIAN RAILWAY AutoCAD DRAWING
 
Standard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - NeometrixStandard Reomte Control Interface - Neometrix
Standard Reomte Control Interface - Neometrix
 
Explosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdfExplosives Industry manufacturing process.pdf
Explosives Industry manufacturing process.pdf
 

Testing in a scrum team

  • 1. Testing in a Scrum Team In this article I will discuss what types of testing I think should be done by a Scrum Team, and what types could be done by someone outside of the team. To be able to have this discussion, I will first need to define the different types of testing I intend to use. This model is an overview of the nomenclature I will use, and how I think the different types of testing should be divided between the Scrum Team and the rest of the organization. Here are some quotes to better understand what the test types the Scrum Team is responsible for mean: “An integrated test is any (low level) test where when it fails you cannot pinpoint exactly what went wrong.“ [1] [4] “Integration testing is the phase in software testing in which individual software modules are combined and tested as a group.” [4] “Contract Tests explain how a class should extend a superclass or implement an interface…” [1] [2] Scrum Team Scrum Team Scrum Team Scrum Team Outside of Scrum Team Isolated Tests Contract/Collaboration Tests Integrated Tests System Tests Equipment & Competence Specific Tests
  • 2. “Collaboration Tests checks if a component talks to the next layer correctly.” [1] [3] “Collaboration tests are also called interaction tests to differentiate them from state based tests.” [1] [3] “The real benefit of isolated tests, of tests for one function at the time, is that those tests put tremendous preassure on our designs.” [1][6] “…unit testing (isolated tests) is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use.” [6] This way the responsibility of the Scrum Team is pretty clear. How they do it; if they do it with manual tests through the UI or using automated test, is up to the team. Though the nomenclature obviously encourages writing automated tests. The Scrum Team is responsible for the quality (shippable state [7]) of every component they develop, how they communicate with each other, and that those components work together as a group. But there are some exceptions, and also some additional testing that must be done before we can be confident that our test coverage is sufficiently mitigating all relevant risks. Let us start with the exceptions. If we have multiple Scrum Teams (if we don’t then the following could, dependent on context, be included in the Scrum Teams responsibility) then we may have tests that require certain tools or competence that is not readily available to all Scrum Teams. To be able to scale, it can be a reasonable approach to centralize these tests to a specific group of people that serve all the Scrum Teams. One of the most obvious and simple examples can be localization and culturalization [8] testing of features. Every Scrum Team cannot be expected to know all languages and cultures that the product will be shipped to, and thus will have problems testing these areas. There can be many tests with similar competence or tool dependencies that must be moved out of the Scrum Team, but exactly which these tests are is dependent on context. Let’s move on to what additional tests must be performed after the Scrum Team has done their part. If we have multiple Scrum Teams (if we don’t, then again this will fall on the responsibility of the Scrum Team) and they all deliver their perfectly (in theory) tested groups of components, then we might still end up in a situation where the system does not work. But if we put this work on the Scrum Team we will not only reduce their velocity, but also require them to test other teams’ groups of components when they integrate their code. This will cause ownership problems. In this case, one option is to have testers specialized in this kind of testing taking responsibility for testing the complete system. Each Scrum Team still has ownership of the quality of their code, and responsibility for fixing any problems found during this test, but the responsibility for testing the whole
  • 3. system can be transferred to this group of professional testers. The complexity of this kind of system test also requires a different skillset than less complex low level testing, which makes it suitable to have testers with this skillset handle the task. I say that low level testing is less complex, but that in no way means that it is easier, or less valuable. With this nomenclature and division of different test types between the Scrum Teams and other roles, I believe that it makes it clear what responsibility the Scrum Teams have when it comes to testing, and what they can expect other roles to help them with. I am not claiming that my way is in any way better than other existing models, but it has helped me in my understanding of how to efficiently work with test in Scrum. /Johan Hoberg
  • 4. References [1] Integration tests are a scam https://vimeo.com/80533536 http://www.infoq.com/presentations/integration-tests-scam [2] Contract tests http://thecodewhisperer.tumblr.com/post/1325859246/in-brief-contract-tests http://thecodewhisperer.tumblr.com/post/1172613515/stub-your-data- access-layer-it-wont-hurt http://sharkzp.github.io/blog/2014/01/20/contract-tests/ [3] Collaboration Tests (Interaction Tests) http://googletesting.blogspot.se/2013/03/testing-on-toilet-testing-state- vs.html [4] Integrated Tests / Integration Tests http://en.wikipedia.org/wiki/Integration_testing [5] System Tests http://en.wikipedia.org/wiki/System_testing [6] Unit Tests / Isolated Tests http://en.wikipedia.org/wiki/Unit_testing [7] Shippable State http://www.infoq.com/news/2008/02/done-shippable-quality [8] Localization vs. Culturalization http://www.hitcents.com/blog/post/localization-vs-culturalization