SlideShare a Scribd company logo
Programming workshop
5:15 pm
Student program
Pycharm
jetbrains.com/pycharm
jetbrains.com/student
Intellij IDEA
jetbrains.com/idea
PhpStorm
jetbrains.com/phpstorm
And the list goes on…
Workshop samples code
https://github.com/aganezov/java-samples.git
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
What is TDD?
Test-driven development (TDD) is a software development
process that relies on the repetition of a very short development cycle:
first the developer writes an (initially failing) automated test case that
defines a desired improvement or new function, then produces the
minimum amount of code to pass that test, and finally refactors the
new code to acceptable standards. Kent Beck, who is credited with
having developed or 'rediscovered’ the technique, stated in 2003 that
TDD encourages simple designs and inspires confidence.
Wikipedia
See the test fail and then test pass
See the test fail and then test pass
See the test fail and then test pass
See the test fail and then test pass
Helps you find bugs in your test code!!!
Different types of tests
• Unit tests
• (Incremental) Integration tests
• API tests
• System testing
• End-to-end testing
Different types of tests
• Unit tests
• (Incremental) Integration tests
• API tests
• System testing
• End-to-end testing
• Regresstion testing
• Acceptance testing
• Stress / Perfromance testing
• Usability testing
• Install / unistall testing
• Compatibility testing
• Alpha / Beta testing
Unit testing
Unit testing
Xkcd.com
Unit testing
Intuitively, one can view a unit as the smallest testable part
of an application. In procedural programming, a unit could be
an entire module, but it is more commonly an individual
function or procedure. In object-oriented programming, a unit
is often an entire interface, such as a class, but could be an
individual method.
Wikipedia
Unit testing
Unit testing finds problems early in the development cycle. This
includes both bugs in the programmer's implementation and flaws
or missing parts of the specification for the unit.
Unit testing
• Separate common SetUp /
TearDown approach for test
refactoring
• Keep each test oracle
to focused on only the result
necessary to validate the test
• Treat you test code with the
same respect you would treat
your production code
• DO test reviews
DO DO NOT
• Make tests / class
state depend on the previously
executed tests
• Test implementation details
• Create slow running tests
• Create Interdependent tests
Integration testing
Integration testing
Simply, test that different component parts of your system
integrate correctly - for example - maybe you simulate a
web service request and check that the result comes
back. I would generally use real (ish) static data and
mocked dependencies to ensure that it can be
consistently verified.
Integration testing
1.Big Bang
2.Bottom Up
3.Top Dowm
Integration testing
Testing takes place from the
bottom of the control flow
upwards. Components or
systems are substituted by
drivers.
istqbexamcertification.com
Integration testing
• In this approach development
and testing can be done
together so that the product
or application will be
efficient and as per the
customer specifications
pros cons
• We can catch the Key interface
defects at the end of cycle
• It is required to create the
test drivers for modules at
all levels except the top
control
Bottom Up
Integration testing
Testing takes place from top to
bottom, following the control
flow or architectural structure
(e.g. starting from the GUI or
main menu). Components or
systems are substituted by
stubs
istqbexamcertification.com
Integration testing
• The tested product is very consistent
because the integration testing is
basically performed in an environment
that almost similar to that of reality
• Stubs can be written with lesser time
because when compared to the drivers
then Stubs are simpler to author.
pros cons
• Basic functionality is tested
at the end of cycle
Top Down
Acceptance testing
Acceptance testing
Acceptance tests are created from user stories. The
customer specifies scenarios to test when a user story has been
correctly implemented. A story can have one or many acceptance
tests, what ever it takes to ensure the functionality works.
Acceptance tests are black box system tests. Each acceptance test
represents some expected result from the system. Customers are
responsible for verifying the correctness of the acceptance tests
and reviewing test scores to decide which failed tests are of
highest priority.
Acceptance testing
Wikipedia
Acceptance testing
Wikipedia
Important notes
• Trust your tests
• Keep your tests maintainability
• Make your test readabile
Important notes
• Testing can not be done before knowing what the project
is in general. While test can be isolated, knowledge
about the system still must be present.
• Must be a constant skeptic. Don’t be a believer. Try to
screw everything with the test as much as you can. Do
everything you want, just don’t believe.
• Pseudocode might be wrong due to over simplification.
Next JetBrains GWU meeting
“VCS – Git – Part I”
December 3, 5:00 – 7:00 pm SEH room 2000
Facebook
https://www.facebook.com/groups/jetbrains.gwu/
Twitter
https://twitter.com/JetBrains_GWU
Email
jetbrains.gwu@gmail.com
aganezov@gwu.edu

More Related Content

What's hot

Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven Development
Ferdous Mahmud Shaon
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
nedirtv
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
Jon Kruger
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
priya_trivedi
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
Luis Sánchez Castellanos
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
eleksdev
 
Unit testing
Unit testing Unit testing
Unit testing
dubbu
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
Shaun Abram
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Md. Enamul Haque Chowdhury
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI
Leonard Fingerman
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
Sachithra Gayan
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
Kurt Bliefernich
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
François Camus
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
Pablo Villar
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
Christian Hujer
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
CodeOps Technologies LLP
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
Arslan Ali
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Leonard Fingerman
 

What's hot (19)

Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven Development
 
TDD (Test Driven Design)
TDD (Test Driven Design)TDD (Test Driven Design)
TDD (Test Driven Design)
 
Test-Driven Development In Action
Test-Driven Development In ActionTest-Driven Development In Action
Test-Driven Development In Action
 
Agile test practices
Agile test practicesAgile test practices
Agile test practices
 
Why Unit Testingl
Why Unit TestinglWhy Unit Testingl
Why Unit Testingl
 
TDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and JasmineTDD Basics with Angular.js and Jasmine
TDD Basics with Angular.js and Jasmine
 
#1 unit testing
#1 unit testing#1 unit testing
#1 unit testing
 
Unit testing
Unit testing Unit testing
Unit testing
 
Software Quality via Unit Testing
Software Quality via Unit TestingSoftware Quality via Unit Testing
Software Quality via Unit Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI Functional & Performance Test Automation with CI
Functional & Performance Test Automation with CI
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Software Testing, Everyone's responsibility
Software Testing, Everyone's responsibilitySoftware Testing, Everyone's responsibility
Software Testing, Everyone's responsibility
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier2016 10-04: tdd++: tdd made easier
2016 10-04: tdd++: tdd made easier
 
An Introduction to Test Driven Development
An Introduction to Test Driven Development An Introduction to Test Driven Development
An Introduction to Test Driven Development
 
A Concise QA Process
A Concise QA Process A Concise QA Process
A Concise QA Process
 
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile wayContinuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
Continuous Test Automation via CI (CodeMash 2012) - Automating the Agile way
 

Viewers also liked

Mf0013 internal audit & control
Mf0013 internal audit & controlMf0013 internal audit & control
Mf0013 internal audit & control
consult4solutions
 
Revisi karakteristik transistor
Revisi karakteristik transistorRevisi karakteristik transistor
Revisi karakteristik transistor
Malik Abdul
 
暑假活動設計
暑假活動設計暑假活動設計
暑假活動設計Ernest Chai
 
Gangehi Open Source Project
Gangehi Open Source ProjectGangehi Open Source Project
Gangehi Open Source Project
Michael Awizen
 
Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9
Angel Gustavo Santos Chunab
 
Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9
Angel Gustavo Santos Chunab
 
ισοτητα τριγωνων
ισοτητα τριγωνωνισοτητα τριγωνων
ισοτητα τριγωνων
Athanasios Maroglou
 
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Azoth Analytics
 
El peix irisat
El peix irisatEl peix irisat
El peix irisat
aurisaopaolo
 

Viewers also liked (11)

Mf0013 internal audit & control
Mf0013 internal audit & controlMf0013 internal audit & control
Mf0013 internal audit & control
 
Revisi karakteristik transistor
Revisi karakteristik transistorRevisi karakteristik transistor
Revisi karakteristik transistor
 
暑假活動設計
暑假活動設計暑假活動設計
暑假活動設計
 
Gangehi Open Source Project
Gangehi Open Source ProjectGangehi Open Source Project
Gangehi Open Source Project
 
Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9
 
Professional Work
Professional WorkProfessional Work
Professional Work
 
Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9Integradora bloque 3 equipo 9
Integradora bloque 3 equipo 9
 
ισοτητα τριγωνων
ισοτητα τριγωνωνισοτητα τριγωνων
ισοτητα τριγωνων
 
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
Global Rubber Testing Equipment Market: Trends, Opportunities and Forecasts (...
 
SBM (1)
SBM (1)SBM (1)
SBM (1)
 
El peix irisat
El peix irisatEl peix irisat
El peix irisat
 

Similar to Test Driven Development

Tdd
TddTdd
Software presentation
Software presentationSoftware presentation
Software presentation
JennaPrengle
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
Sahar Nofal
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
Heritage Institute Of Tech,India
 
Agile Testing - What is it?
Agile Testing - What is it?Agile Testing - What is it?
Agile Testing - What is it?
Intelliware Development Inc.
 
Agile Testing
Agile Testing  Agile Testing
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
Mohammed Moishin
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
nikhil sreeni
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
Alex Pop
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
Lilia Sfaxi
 
Software Testing
Software TestingSoftware Testing
Software Testing
Inocentshuja Ahmad
 
Week 14 Unit Testing.pptx
Week 14  Unit Testing.pptxWeek 14  Unit Testing.pptx
Week 14 Unit Testing.pptx
mianshafa
 
TDD Workshop UTN 2012
TDD Workshop UTN 2012TDD Workshop UTN 2012
TDD Workshop UTN 2012
Facundo Farias
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
Hong Le Van
 
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
weili_at_slideshare
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
ClareMcLennan
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
ShudipPal
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
jeffrey1ross
 
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
Mohamed Taman
 

Similar to Test Driven Development (20)

Lecture 21
Lecture 21Lecture 21
Lecture 21
 
Tdd
TddTdd
Tdd
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
An Introduction to Unit Testing
An Introduction to Unit TestingAn Introduction to Unit Testing
An Introduction to Unit Testing
 
Software testing ppt
Software testing pptSoftware testing ppt
Software testing ppt
 
Agile Testing - What is it?
Agile Testing - What is it?Agile Testing - What is it?
Agile Testing - What is it?
 
Agile Testing
Agile Testing  Agile Testing
Agile Testing
 
Tools for Software Testing
Tools for Software TestingTools for Software Testing
Tools for Software Testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Automated testing overview
Automated testing overviewAutomated testing overview
Automated testing overview
 
Testing Angular
Testing AngularTesting Angular
Testing Angular
 
Software Testing
Software TestingSoftware Testing
Software Testing
 
Week 14 Unit Testing.pptx
Week 14  Unit Testing.pptxWeek 14  Unit Testing.pptx
Week 14 Unit Testing.pptx
 
TDD Workshop UTN 2012
TDD Workshop UTN 2012TDD Workshop UTN 2012
TDD Workshop UTN 2012
 
Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++Test driven development and unit testing with examples in C++
Test driven development and unit testing with examples in C++
 
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
 
Agile Acceptance testing with Fitnesse
Agile Acceptance testing with FitnesseAgile Acceptance testing with Fitnesse
Agile Acceptance testing with Fitnesse
 
Software Engineering (Testing Overview)
Software Engineering (Testing Overview)Software Engineering (Testing Overview)
Software Engineering (Testing Overview)
 
Beginners overview of automated testing with Rspec
Beginners overview of automated testing with RspecBeginners overview of automated testing with Rspec
Beginners overview of automated testing with Rspec
 
Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.Unit testing & TDD concepts with best practice guidelines.
Unit testing & TDD concepts with best practice guidelines.
 

Recently uploaded

De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
Jelle | Nordend
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Anthony Dahanne
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
Sharepoint Designs
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
XfilesPro
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
Max Andersen
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Globus
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
takuyayamamoto1800
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
Matt Welsh
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
AMB-Review
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Shahin Sheidaei
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
ayushiqss
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
MayankTawar1
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
Tier1 app
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
informapgpstrackings
 

Recently uploaded (20)

De mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FMEDe mooiste recreatieve routes ontdekken met RouteYou en FME
De mooiste recreatieve routes ontdekken met RouteYou en FME
 
Prosigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology SolutionsProsigns: Transforming Business with Tailored Technology Solutions
Prosigns: Transforming Business with Tailored Technology Solutions
 
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
Paketo Buildpacks : la meilleure façon de construire des images OCI? DevopsDa...
 
Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024Explore Modern SharePoint Templates for 2024
Explore Modern SharePoint Templates for 2024
 
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, BetterWebinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
Webinar: Salesforce Document Management 2.0 - Smarter, Faster, Better
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Quarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden ExtensionsQuarkus Hidden and Forbidden Extensions
Quarkus Hidden and Forbidden Extensions
 
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
Exploring Innovations in Data Repository Solutions - Insights from the U.S. G...
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoamOpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
OpenFOAM solver for Helmholtz equation, helmholtzFoam / helmholtzBubbleFoam
 
Large Language Models and the End of Programming
Large Language Models and the End of ProgrammingLarge Language Models and the End of Programming
Large Language Models and the End of Programming
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdfDominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
Dominate Social Media with TubeTrivia AI’s Addictive Quiz Videos.pdf
 
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
Gamify Your Mind; The Secret Sauce to Delivering Success, Continuously Improv...
 
Why React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdfWhy React Native as a Strategic Advantage for Startup Innovation.pdf
Why React Native as a Strategic Advantage for Startup Innovation.pdf
 
Software Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdfSoftware Testing Exam imp Ques Notes.pdf
Software Testing Exam imp Ques Notes.pdf
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERRORTROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
TROUBLESHOOTING 9 TYPES OF OUTOFMEMORYERROR
 
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
Field Employee Tracking System| MiTrack App| Best Employee Tracking Solution|...
 

Test Driven Development

  • 4. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 5. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 6. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 7. What is TDD? Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: first the developer writes an (initially failing) automated test case that defines a desired improvement or new function, then produces the minimum amount of code to pass that test, and finally refactors the new code to acceptable standards. Kent Beck, who is credited with having developed or 'rediscovered’ the technique, stated in 2003 that TDD encourages simple designs and inspires confidence. Wikipedia
  • 8.
  • 9. See the test fail and then test pass
  • 10. See the test fail and then test pass
  • 11. See the test fail and then test pass
  • 12. See the test fail and then test pass Helps you find bugs in your test code!!!
  • 13.
  • 14. Different types of tests • Unit tests • (Incremental) Integration tests • API tests • System testing • End-to-end testing
  • 15. Different types of tests • Unit tests • (Incremental) Integration tests • API tests • System testing • End-to-end testing • Regresstion testing • Acceptance testing • Stress / Perfromance testing • Usability testing • Install / unistall testing • Compatibility testing • Alpha / Beta testing
  • 18. Unit testing Intuitively, one can view a unit as the smallest testable part of an application. In procedural programming, a unit could be an entire module, but it is more commonly an individual function or procedure. In object-oriented programming, a unit is often an entire interface, such as a class, but could be an individual method. Wikipedia
  • 19. Unit testing Unit testing finds problems early in the development cycle. This includes both bugs in the programmer's implementation and flaws or missing parts of the specification for the unit.
  • 20. Unit testing • Separate common SetUp / TearDown approach for test refactoring • Keep each test oracle to focused on only the result necessary to validate the test • Treat you test code with the same respect you would treat your production code • DO test reviews DO DO NOT • Make tests / class state depend on the previously executed tests • Test implementation details • Create slow running tests • Create Interdependent tests
  • 22. Integration testing Simply, test that different component parts of your system integrate correctly - for example - maybe you simulate a web service request and check that the result comes back. I would generally use real (ish) static data and mocked dependencies to ensure that it can be consistently verified.
  • 24. Integration testing Testing takes place from the bottom of the control flow upwards. Components or systems are substituted by drivers. istqbexamcertification.com
  • 25. Integration testing • In this approach development and testing can be done together so that the product or application will be efficient and as per the customer specifications pros cons • We can catch the Key interface defects at the end of cycle • It is required to create the test drivers for modules at all levels except the top control Bottom Up
  • 26. Integration testing Testing takes place from top to bottom, following the control flow or architectural structure (e.g. starting from the GUI or main menu). Components or systems are substituted by stubs istqbexamcertification.com
  • 27. Integration testing • The tested product is very consistent because the integration testing is basically performed in an environment that almost similar to that of reality • Stubs can be written with lesser time because when compared to the drivers then Stubs are simpler to author. pros cons • Basic functionality is tested at the end of cycle Top Down
  • 29. Acceptance testing Acceptance tests are created from user stories. The customer specifies scenarios to test when a user story has been correctly implemented. A story can have one or many acceptance tests, what ever it takes to ensure the functionality works. Acceptance tests are black box system tests. Each acceptance test represents some expected result from the system. Customers are responsible for verifying the correctness of the acceptance tests and reviewing test scores to decide which failed tests are of highest priority.
  • 32. Important notes • Trust your tests • Keep your tests maintainability • Make your test readabile
  • 33. Important notes • Testing can not be done before knowing what the project is in general. While test can be isolated, knowledge about the system still must be present. • Must be a constant skeptic. Don’t be a believer. Try to screw everything with the test as much as you can. Do everything you want, just don’t believe. • Pseudocode might be wrong due to over simplification.
  • 34. Next JetBrains GWU meeting “VCS – Git – Part I” December 3, 5:00 – 7:00 pm SEH room 2000 Facebook https://www.facebook.com/groups/jetbrains.gwu/ Twitter https://twitter.com/JetBrains_GWU Email jetbrains.gwu@gmail.com aganezov@gwu.edu