SlideShare a Scribd company logo
1 of 14
Implementing a
Testing Strategy
Chapter 4
Who is in charge of testing and when to
do it.
 Testing is a cross-functional activity that involves the whole team, and should
be done continuously from the beginning of the project. Building quality in
means writing automated tests at multiple levels (unit, component, and
acceptance) and running them as part of the deployment pipeline, which is
triggered every time a change is made to your application, its configuration,
or the environment and software stack that it runs on.
 Testers collaborate with developers and users to write automated tests from
the start of the project. These tests are written before developers start work
on the features that they test. Together, these tests form an executable
specification of the behavior of the system, and when they pass, they
demonstrate that the functionality required by the customer has been
implemented completely and correctly.
What is the purpouse of a testing
strategy?
 The design of a testing strategy is primarily a process of identifying and
prioritizing project risks and deciding what actions to take to mitigate them.
A good testing strategy has many positive effects. Testing establishes
confidence that the software is working as it should, which means fewer bugs,
reduced support costs, and improved reputation.
 Testing also provides a constraint on the development process which
encourages good development practices. A comprehensive automated test
suite even provides the most complete and up-to-date form of application
documentation, in the form of an executable specification not just of how the
system should work, but also of how it actually does work.
Types of tests
Business-Facing Tests That Support the
Development Process
 The tests in this quadrant are more commonly known as functional or
acceptance tests. Acceptance testing ensures that the acceptance criteria for
a story are met. Acceptance tests should be written, and ideally automated,
before development starts on a story.
 Acceptance tests are critical in an agile environment because they answer the
questions, “How do I know when I am done?” for developers and “Did I get
what I wanted?” for users.
Technology-Facing Tests That Support
the Development Process
 These automated tests are written and maintained exclusively by developers.
There are three kinds of tests that fall into this category: unit tests,
component tests, and deployment tests.
 Unit tests test a particular piece of the code in isolation. For this reason, they
often rely on simulating other parts of the system using test doubles.
 Unit tests should not involve calling the database, using the filesystem,
talking to external systems, or, in general, interaction between components
of a system.
 Component tests test larger clusters of functionality, so that they can catch
problems like these. They are typically slower, since they can require more
involved setup and perform more I/O, talking to databases, the filesystem, or
other systems. Sometimes, component tests are known as “integration tests”
Technology-Facing Tests That Support
the Development Process
 Deployment tests are performed whenever you deploy your application. They
check that the deployment worked—in other words, that your application is
correctly installed, correctly configured, able to contact any services it
requires, and that it is responding.
Business-Facing Tests That Critique the
Project
 These manual tests verify that the application will in fact deliver to the users
the value they are expecting. This is not just a matter of verifying that the
application meets its specifications; it is also about checking that the
specifications are correct.
 A particularly important form of business-facing, project-critique tests are
showcases. Agile teams perform showcases to users at the end of every
iteration to demonstrate the new functionality that they have delivered.
Technology-Facing Tests That Critique
the Project
 Although users rarely spend a lot of time specifying capacity and security
characteristics up front, they will certainly be very upset if their credit card
details are stolen or if a website is constantly down due to capacity problems.
 These tests often require considerable resources such as special environments
to run on and specialized knowledge to set up and implement, and they often
take a long time to run (whether or not they are automated). Therefore, their
implementation tends to be deferred. Even when they are fully automated,
they tend to be run less frequently and further down the deployment pipeline
than the functional acceptance tests.
Real-Life Situations and Strategies:
New Projects.
 At this stage, the cost of change is low and, by establishing some relatively
simple ground rules and creating some relatively simple test infrastructure,
you can give a great start to your process of continuous integration. In this
situation, the important thing is to start writing automated acceptance tests
from the very beginning.
Real-Life Situations and Strategies:
Midproject
 Although it’s always pleasant to be starting a project from scratch, the reality
is that we often find ourselves working on a large, resource-starved team
developing a rapidly changing codebase, under pressure to deliver.
 The best way to introduce automated testing is to begin with the most
common, important, and high-value use cases of the application. This will
require conversations with your customer to clearly identify where the real
business value lies, and then defending this functionality against regressions
with tests. Based on these conversations you should automate happy path
tests that cover these high-value scenarios.
Real-Life Situations and Strategies:
Integration
 If your application is conversing with a variety of external systems through a
series of different protocols, or if your application itself consists of a series of
loosely coupled modules with complex interactions between them, then
integration tests become very important.
 It is essential to ensure that you don’t hit a real external system unless you
are in production, or you have some way of telling the service that you are
sending it dummy transactions for testing purposes.
Real-Life Situations and Strategies:
Process
 The production of acceptance tests can be an expensive and even laborious
task if communication between the team members isn’t effective. Many
projects rely on testers examining upcoming requirements in detail, going
through all possible scenarios, and designing complex test scripts they will
follow later. The results of this process might be sent to the customer for
approval, following which the tests are implemented.
 There are several points at which this process can be very simply optimized.
We find that the best solution is to have a single meeting with all of the
stakeholders at the beginning of each iteration, or about a week before a
story will start development if you’re not using iterations.
Summary
 In many projects, testing is treated as a distinct
phase carried out by specialists. However, high-
quality software is only possible if testing
becomes the responsibility of everybody involved
in delivering software and is practiced right from
the beginning of the project and throughout its
life.

More Related Content

What's hot

Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
medsherb
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
sonukalpana
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
Komal Garg
 
Requierement traceability matrix
Requierement traceability matrixRequierement traceability matrix
Requierement traceability matrix
Luthfia Ulinnuha
 

What's hot (20)

Software Test Metrics and Measurements
Software Test Metrics and MeasurementsSoftware Test Metrics and Measurements
Software Test Metrics and Measurements
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Test automation framework
Test automation frameworkTest automation framework
Test automation framework
 
Basic software-testing-concepts
Basic software-testing-conceptsBasic software-testing-concepts
Basic software-testing-concepts
 
11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot11 steps of testing process - By Harshil Barot
11 steps of testing process - By Harshil Barot
 
Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3Software Testing and Quality Assurance Assignment 3
Software Testing and Quality Assurance Assignment 3
 
Types of software testing
Types of software testingTypes of software testing
Types of software testing
 
Basic Guide to Manual Testing
Basic Guide to Manual TestingBasic Guide to Manual Testing
Basic Guide to Manual Testing
 
Software testing
Software testingSoftware testing
Software testing
 
Automated vs manual testing
Automated vs manual testingAutomated vs manual testing
Automated vs manual testing
 
Performance and load testing
Performance and load testingPerformance and load testing
Performance and load testing
 
Software engineering
Software engineeringSoftware engineering
Software engineering
 
JMeter workshop
JMeter workshopJMeter workshop
JMeter workshop
 
Testing methodology
Testing methodologyTesting methodology
Testing methodology
 
Types of Software Testing | Edureka
Types of Software Testing | EdurekaTypes of Software Testing | Edureka
Types of Software Testing | Edureka
 
Manual Vs Automation Testing
Manual Vs Automation TestingManual Vs Automation Testing
Manual Vs Automation Testing
 
Software testing.ppt
Software testing.pptSoftware testing.ppt
Software testing.ppt
 
Requierement traceability matrix
Requierement traceability matrixRequierement traceability matrix
Requierement traceability matrix
 
End to end testing - strategies
End to end testing - strategiesEnd to end testing - strategies
End to end testing - strategies
 
Software maintenance
Software maintenanceSoftware maintenance
Software maintenance
 

Viewers also liked

Trishweb
TrishwebTrishweb
Trishweb
gscoons
 
2 tema 4 estructuras organizativas del centro escolar-1
2 tema 4 estructuras organizativas del centro escolar-12 tema 4 estructuras organizativas del centro escolar-1
2 tema 4 estructuras organizativas del centro escolar-1
Paco Pérez-Fernández
 

Viewers also liked (20)

Design patterns
Design patternsDesign patterns
Design patterns
 
Continuous delivery
Continuous deliveryContinuous delivery
Continuous delivery
 
Continuos Delivery
Continuos DeliveryContinuos Delivery
Continuos Delivery
 
Continuos Delivery Commit stage
Continuos Delivery Commit stageContinuos Delivery Commit stage
Continuos Delivery Commit stage
 
Expo 2 parametros
Expo 2   parametrosExpo 2   parametros
Expo 2 parametros
 
Construir tests
Construir testsConstruir tests
Construir tests
 
Capitulo 7 moving features between objects
Capitulo 7  moving features between objectsCapitulo 7  moving features between objects
Capitulo 7 moving features between objects
 
Chapter 5 refactoring
Chapter 5 refactoringChapter 5 refactoring
Chapter 5 refactoring
 
Chapter 8
Chapter 8Chapter 8
Chapter 8
 
Refactoring: Improving the design of existing code. Chapter 6.
Refactoring: Improving the design of existing code. Chapter 6.Refactoring: Improving the design of existing code. Chapter 6.
Refactoring: Improving the design of existing code. Chapter 6.
 
Capitulo 2
Capitulo 2Capitulo 2
Capitulo 2
 
Refactoring: improving the desing of existing code Cap 1
Refactoring: improving the desing of existing code Cap 1Refactoring: improving the desing of existing code Cap 1
Refactoring: improving the desing of existing code Cap 1
 
Chapter 9
Chapter 9Chapter 9
Chapter 9
 
Making method calls_simpler
Making method calls_simplerMaking method calls_simpler
Making method calls_simpler
 
Trishweb
TrishwebTrishweb
Trishweb
 
2 tema 4 estructuras organizativas del centro escolar-1
2 tema 4 estructuras organizativas del centro escolar-12 tema 4 estructuras organizativas del centro escolar-1
2 tema 4 estructuras organizativas del centro escolar-1
 
SECON'2016. Иовлев Роман, JDI is UI Automation Future
SECON'2016. Иовлев Роман, JDI is UI Automation FutureSECON'2016. Иовлев Роман, JDI is UI Automation Future
SECON'2016. Иовлев Роман, JDI is UI Automation Future
 
Future of UI Automation testing and JDI
Future of UI Automation testing and JDIFuture of UI Automation testing and JDI
Future of UI Automation testing and JDI
 
карта IT профессий
карта IT профессийкарта IT профессий
карта IT профессий
 
А давайте будем многопоточить и масштабировить! - записки сумасшедшего №0
А давайте будем многопоточить и масштабировить! - записки сумасшедшего №0А давайте будем многопоточить и масштабировить! - записки сумасшедшего №0
А давайте будем многопоточить и масштабировить! - записки сумасшедшего №0
 

Similar to Implementing a testing strategy

Similar to Implementing a testing strategy (20)

An Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdfAn Ultimate Guide to Continuous Testing in Agile Projects.pdf
An Ultimate Guide to Continuous Testing in Agile Projects.pdf
 
Automated testing-whitepaper
Automated testing-whitepaperAutomated testing-whitepaper
Automated testing-whitepaper
 
5 Essential Tools for a Successful QA Process in Your Startup
5 Essential Tools for a Successful QA Process in Your Startup5 Essential Tools for a Successful QA Process in Your Startup
5 Essential Tools for a Successful QA Process in Your Startup
 
Software testing & Quality Assurance
Software testing & Quality Assurance Software testing & Quality Assurance
Software testing & Quality Assurance
 
programming testing.pdf
programming testing.pdfprogramming testing.pdf
programming testing.pdf
 
programming testing.pdf
programming testing.pdfprogramming testing.pdf
programming testing.pdf
 
programming testing.pdf
programming testing.pdfprogramming testing.pdf
programming testing.pdf
 
Test Case Prioritization Techniques
Test Case Prioritization TechniquesTest Case Prioritization Techniques
Test Case Prioritization Techniques
 
Mastering Continuous Testing_ A Definitive Guide to Seamless Software Deliver...
Mastering Continuous Testing_ A Definitive Guide to Seamless Software Deliver...Mastering Continuous Testing_ A Definitive Guide to Seamless Software Deliver...
Mastering Continuous Testing_ A Definitive Guide to Seamless Software Deliver...
 
Tackling software testing challenges in the agile era
Tackling software testing challenges in the agile eraTackling software testing challenges in the agile era
Tackling software testing challenges in the agile era
 
Chapter 9 Testing Strategies.ppt
Chapter 9 Testing Strategies.pptChapter 9 Testing Strategies.ppt
Chapter 9 Testing Strategies.ppt
 
Exploratory Testing, A Guide Towards Better Test Coverage.pdf
Exploratory Testing, A Guide Towards Better Test Coverage.pdfExploratory Testing, A Guide Towards Better Test Coverage.pdf
Exploratory Testing, A Guide Towards Better Test Coverage.pdf
 
Testing overview
Testing overviewTesting overview
Testing overview
 
Software Testing Interview Questions For Experienced
Software Testing Interview Questions For ExperiencedSoftware Testing Interview Questions For Experienced
Software Testing Interview Questions For Experienced
 
Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)Testing throughout the software life cycle (test levels)
Testing throughout the software life cycle (test levels)
 
The Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated TestingThe Leaders Guide to Getting Started with Automated Testing
The Leaders Guide to Getting Started with Automated Testing
 
Testing throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & ImplementationTesting throughout the software life cycle - Testing & Implementation
Testing throughout the software life cycle - Testing & Implementation
 
7 QA Tests You Should Be Running
7 QA Tests You Should Be Running7 QA Tests You Should Be Running
7 QA Tests You Should Be Running
 
Software Development Models by Graham et al
Software Development Models by Graham et alSoftware Development Models by Graham et al
Software Development Models by Graham et al
 
Software Development Models
Software Development ModelsSoftware Development Models
Software Development Models
 

Recently uploaded

Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
Kamal Acharya
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
AldoGarca30
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
chumtiyababu
 

Recently uploaded (20)

Introduction to Serverless with AWS Lambda
Introduction to Serverless with AWS LambdaIntroduction to Serverless with AWS Lambda
Introduction to Serverless with AWS Lambda
 
Hospital management system project report.pdf
Hospital management system project report.pdfHospital management system project report.pdf
Hospital management system project report.pdf
 
Hostel management system project report..pdf
Hostel management system project report..pdfHostel management system project report..pdf
Hostel management system project report..pdf
 
data_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdfdata_management_and _data_science_cheat_sheet.pdf
data_management_and _data_science_cheat_sheet.pdf
 
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
1_Introduction + EAM Vocabulary + how to navigate in EAM.pdf
 
Computer Networks Basics of Network Devices
Computer Networks  Basics of Network DevicesComputer Networks  Basics of Network Devices
Computer Networks Basics of Network Devices
 
AIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech studentsAIRCANVAS[1].pdf mini project for btech students
AIRCANVAS[1].pdf mini project for btech students
 
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptxA CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
A CASE STUDY ON CERAMIC INDUSTRY OF BANGLADESH.pptx
 
Verification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptxVerification of thevenin's theorem for BEEE Lab (1).pptx
Verification of thevenin's theorem for BEEE Lab (1).pptx
 
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best ServiceTamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
Tamil Call Girls Bhayandar WhatsApp +91-9930687706, Best Service
 
Employee leave management system project.
Employee leave management system project.Employee leave management system project.
Employee leave management system project.
 
Double Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torqueDouble Revolving field theory-how the rotor develops torque
Double Revolving field theory-how the rotor develops torque
 
Moment Distribution Method For Btech Civil
Moment Distribution Method For Btech CivilMoment Distribution Method For Btech Civil
Moment Distribution Method For Btech Civil
 
Block diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.pptBlock diagram reduction techniques in control systems.ppt
Block diagram reduction techniques in control systems.ppt
 
Wadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptxWadi Rum luxhotel lodge Analysis case study.pptx
Wadi Rum luxhotel lodge Analysis case study.pptx
 
DC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equationDC MACHINE-Motoring and generation, Armature circuit equation
DC MACHINE-Motoring and generation, Armature circuit equation
 
Generative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPTGenerative AI or GenAI technology based PPT
Generative AI or GenAI technology based PPT
 
Unleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leapUnleashing the Power of the SORA AI lastest leap
Unleashing the Power of the SORA AI lastest leap
 
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptxS1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
S1S2 B.Arch MGU - HOA1&2 Module 3 -Temple Architecture of Kerala.pptx
 
Design For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the startDesign For Accessibility: Getting it right from the start
Design For Accessibility: Getting it right from the start
 

Implementing a testing strategy

  • 2. Who is in charge of testing and when to do it.  Testing is a cross-functional activity that involves the whole team, and should be done continuously from the beginning of the project. Building quality in means writing automated tests at multiple levels (unit, component, and acceptance) and running them as part of the deployment pipeline, which is triggered every time a change is made to your application, its configuration, or the environment and software stack that it runs on.  Testers collaborate with developers and users to write automated tests from the start of the project. These tests are written before developers start work on the features that they test. Together, these tests form an executable specification of the behavior of the system, and when they pass, they demonstrate that the functionality required by the customer has been implemented completely and correctly.
  • 3. What is the purpouse of a testing strategy?  The design of a testing strategy is primarily a process of identifying and prioritizing project risks and deciding what actions to take to mitigate them. A good testing strategy has many positive effects. Testing establishes confidence that the software is working as it should, which means fewer bugs, reduced support costs, and improved reputation.  Testing also provides a constraint on the development process which encourages good development practices. A comprehensive automated test suite even provides the most complete and up-to-date form of application documentation, in the form of an executable specification not just of how the system should work, but also of how it actually does work.
  • 5. Business-Facing Tests That Support the Development Process  The tests in this quadrant are more commonly known as functional or acceptance tests. Acceptance testing ensures that the acceptance criteria for a story are met. Acceptance tests should be written, and ideally automated, before development starts on a story.  Acceptance tests are critical in an agile environment because they answer the questions, “How do I know when I am done?” for developers and “Did I get what I wanted?” for users.
  • 6. Technology-Facing Tests That Support the Development Process  These automated tests are written and maintained exclusively by developers. There are three kinds of tests that fall into this category: unit tests, component tests, and deployment tests.  Unit tests test a particular piece of the code in isolation. For this reason, they often rely on simulating other parts of the system using test doubles.  Unit tests should not involve calling the database, using the filesystem, talking to external systems, or, in general, interaction between components of a system.  Component tests test larger clusters of functionality, so that they can catch problems like these. They are typically slower, since they can require more involved setup and perform more I/O, talking to databases, the filesystem, or other systems. Sometimes, component tests are known as “integration tests”
  • 7. Technology-Facing Tests That Support the Development Process  Deployment tests are performed whenever you deploy your application. They check that the deployment worked—in other words, that your application is correctly installed, correctly configured, able to contact any services it requires, and that it is responding.
  • 8. Business-Facing Tests That Critique the Project  These manual tests verify that the application will in fact deliver to the users the value they are expecting. This is not just a matter of verifying that the application meets its specifications; it is also about checking that the specifications are correct.  A particularly important form of business-facing, project-critique tests are showcases. Agile teams perform showcases to users at the end of every iteration to demonstrate the new functionality that they have delivered.
  • 9. Technology-Facing Tests That Critique the Project  Although users rarely spend a lot of time specifying capacity and security characteristics up front, they will certainly be very upset if their credit card details are stolen or if a website is constantly down due to capacity problems.  These tests often require considerable resources such as special environments to run on and specialized knowledge to set up and implement, and they often take a long time to run (whether or not they are automated). Therefore, their implementation tends to be deferred. Even when they are fully automated, they tend to be run less frequently and further down the deployment pipeline than the functional acceptance tests.
  • 10. Real-Life Situations and Strategies: New Projects.  At this stage, the cost of change is low and, by establishing some relatively simple ground rules and creating some relatively simple test infrastructure, you can give a great start to your process of continuous integration. In this situation, the important thing is to start writing automated acceptance tests from the very beginning.
  • 11. Real-Life Situations and Strategies: Midproject  Although it’s always pleasant to be starting a project from scratch, the reality is that we often find ourselves working on a large, resource-starved team developing a rapidly changing codebase, under pressure to deliver.  The best way to introduce automated testing is to begin with the most common, important, and high-value use cases of the application. This will require conversations with your customer to clearly identify where the real business value lies, and then defending this functionality against regressions with tests. Based on these conversations you should automate happy path tests that cover these high-value scenarios.
  • 12. Real-Life Situations and Strategies: Integration  If your application is conversing with a variety of external systems through a series of different protocols, or if your application itself consists of a series of loosely coupled modules with complex interactions between them, then integration tests become very important.  It is essential to ensure that you don’t hit a real external system unless you are in production, or you have some way of telling the service that you are sending it dummy transactions for testing purposes.
  • 13. Real-Life Situations and Strategies: Process  The production of acceptance tests can be an expensive and even laborious task if communication between the team members isn’t effective. Many projects rely on testers examining upcoming requirements in detail, going through all possible scenarios, and designing complex test scripts they will follow later. The results of this process might be sent to the customer for approval, following which the tests are implemented.  There are several points at which this process can be very simply optimized. We find that the best solution is to have a single meeting with all of the stakeholders at the beginning of each iteration, or about a week before a story will start development if you’re not using iterations.
  • 14. Summary  In many projects, testing is treated as a distinct phase carried out by specialists. However, high- quality software is only possible if testing becomes the responsibility of everybody involved in delivering software and is practiced right from the beginning of the project and throughout its life.