SlideShare a Scribd company logo
Exigen Services confidential Exigen Services confidential
Testing your code
For Java developers
Anna Khasanova
Anna.Khasanova@exigenservices.com
20 July 2015
Exigen Services confidential
Agenda
• Testing basics
• TDD approach
• Testing in action
• Best practices
2
Exigen Services confidential
What is a test? Why do we need it?
• What is test?
• Why do we need testing?
• Automation
3
Exigen Services confidential
Automatic testing
Write once run often:
• Write test once
• Run frequently:
• After each change
• Continuous integration
• No human input
4
Exigen Services confidential
TDD THEORY
What is Test Driven Development?
5
Exigen Services confidential
Test Driven Development
• Software development approach
• Test before code
• Test - code requirements
6
Exigen Services confidential
Advantages
• Increase requirements quality
• Increase code quality
• No unnecessary code
7
Exigen Services confidential
New change request?
8
Test fails
Write
test
Run test
Test succeeds
Design
Write
code
Test
succeeds
Run test
Test fails
Whole story covered
Test
succeeds
Refactor
code
Run test
Test fails
All tests succeed
Exigen Services confidential
Bugfix?
• Get bug report
• Turn it into a test
• Test should fail
• Fix bug
• Test should pass
9
Exigen Services confidential
THE PRACTICE
How should I work?
How to write tests?
10
Exigen Services confidential
What is Unit Test?
• Automated test for
• One business unit
• One business case
• Isolated
11
Exigen Services confidential
Unit Test is
• Small
• Fast
• Self documented
12
Exigen Services confidential
3 parts of Unit-test
unitTest() {
// set preconditions: “arrange”
// call tested method: “act”
// assert results are as expected: “assert”
}
13
Exigen Services confidential
Unit-Test libraries
• xUnit – collective naming: dbUnit,
htmlUnit, qUnit, etc.
• Java: jUnit
• Java: TestNG
• Javascript: jasmine
14
Exigen Services confidential
Example of TDD
Telephone field validator:
• Allowed characters:
• numbers: [0-9]
• minus, space: “-” , “ ”
• Length: 10 digits (ignore spaces and minuses)
• Leading and trailing spaces are allowed
15
Exigen Services confidential
REAL LIFE
Mock all dependencies
16
Exigen Services confidential
We have a problem!
• Method uses web service
• or some other class/function
• We don’t want to test it
17
Exigen Services confidential
Mock
• Fake implementation
• We set what mock returns
• Useful for unit-testing
18
Exigen Services confidential
Mock libraries
• Mockito
• EasyMock
• jMock
19
Exigen Services confidential
Example
20
PicturesService
+getSquarePictures()
Repository
+getAllPictures()
Exigen Services confidential
Example
@Test
public void testGetSquarePicturesEmptyResult() {
PicturesService testedService = new PicturesService();
Repository repository = mock(Repository.class);
when(repository.getAllPictures())
.thenReturn(Collections.<Picture>emptyList());
testedService.setRepository(repository);
Set<Picture> result = testedService.getSquarePictures();
assertTrue(result.isEmpty());
}
21
//create fake Repository, returning empty list of pictures
Exigen Services confidential
How to verify external calls?
• What to do if:
• Tested method should call externals
• We need to ensure that it was called?
• Mocks scenario verification
22
Exigen Services confidential
Example
@Test
public void testDeleteSquarePicturesEmptyResult() {
PicturesService testedService = new PicturesService();
Repository repository = mock(Repository.class);
Mockito.when(repository.getAllPictures())
.thenReturn(Collections.<Picture>emptyList());
testedService.setRepository(repository);
testedService.deleteSquarePictures();
verify(repository, never()).deletePictures(any());
}
23
Exigen Services confidential
How to verify arguments?
• What to do if:
• Mocked method is called with parameters
• We need to test passed parameters?
• Argument Captor
• Matchers
24
Exigen Services confidential
Example
@Test
public void testDeleteSquarePictures_captor() {
…
ArgumentCaptor<Iterable> captor =
ArgumentCaptor.forClass(Iterable.class);
verify(repository).deletePictures(captor.capture());
Iterable<Picture> result = captor.getValue();
…
}
25
Exigen Services confidential
How to verify exceptional cases?
• What to do if:
• Tested method should throw exception in
some case
• We need to test this case?
• Expected exceptions
@Test(expected = IllegalArgumentException.class)
public void testFactorialNegative() {
Factorial.factorial(-2);
}
26
Exigen Services confidential
How to verify exceptional cases?
• What to do if:
• We need to test time of execution?
• Timeout parameter
@Test(timeout = 1000)
public void infinity() {
while (true) ;
}
27
Exigen Services confidential
OTHER USEFUL FEATURES
28
Exigen Services confidential
Other features: matchers
Matchers
• when(…), verify(…)
• assertThat(…)
• See hamcrest library
• Write your own
29
Exigen Services confidential
Other features: runners
Test runners
• @RunWith
• Spring: SpringJUnit4ClassRunner
• Parameterized
• Any other
30
Exigen Services confidential
SUMMARY. GUIDELINES.
To sum this all up…
31
Exigen Services confidential
Coverage
• Coverage: what needs to be covered
• Setters-getters
32
Exigen Services confidential
Above all
1. Understand requirements
2. Commit your understanding
• Java docs
• Any other
33
Exigen Services confidential
Unit test
• One test – one case
• Each use case – covered
• Unit test != trash
34
Exigen Services confidential
Write testable code
• Statics are evil
• Extract interfaces
• One method must not do “everything”
35
Exigen Services confidential
Use framework’s features
• Parameterized tests
• Expected exceptions, timeouts
• Mock objects scenarios
• Matchers
36
Exigen Services confidential
Finally
• Automatic testing – difficult to start, but…
• Don’t give up!
37
Exigen Services confidential
QUESTIONS?
Your turn
38

More Related Content

What's hot

Automate test, tools, advantages, and disadvantages
Automate test, tools, advantages,  and disadvantagesAutomate test, tools, advantages,  and disadvantages
Automate test, tools, advantages, and disadvantages
Majid Hosseini
 
JavaScript Metaprogramming with ES 2015 Proxy
JavaScript Metaprogramming with ES 2015 ProxyJavaScript Metaprogramming with ES 2015 Proxy
JavaScript Metaprogramming with ES 2015 Proxy
Alexandr Skachkov
 
Principles and patterns for test driven development
Principles and patterns for test driven developmentPrinciples and patterns for test driven development
Principles and patterns for test driven development
Stephen Fuqua
 
Intro to TDD and BDD
Intro to TDD and BDDIntro to TDD and BDD
Intro to TDD and BDD
Jason Noble
 
Refactoring Legacy Web Forms for Test Automation
Refactoring Legacy Web Forms for Test AutomationRefactoring Legacy Web Forms for Test Automation
Refactoring Legacy Web Forms for Test Automation
Stephen Fuqua
 
Building large and scalable mission critical applications with React
Building large and scalable mission critical applications with ReactBuilding large and scalable mission critical applications with React
Building large and scalable mission critical applications with React
Maurice De Beijer [MVP]
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
Daniel Stange
 
Agile2013 - Integration testing in enterprises using TaaS - via Case Study
Agile2013 - Integration testing in enterprises using TaaS - via Case StudyAgile2013 - Integration testing in enterprises using TaaS - via Case Study
Agile2013 - Integration testing in enterprises using TaaS - via Case Study
Anand Bagmar
 
Testing - Is This Even a Thing?
Testing - Is This Even a Thing?Testing - Is This Even a Thing?
Testing - Is This Even a Thing?
Nick George
 
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Fwdays
 
Unit testing - A&BP CC
Unit testing - A&BP CCUnit testing - A&BP CC
Unit testing - A&BP CC
JWORKS powered by Ordina
 
TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​
HTC
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
Fwdays
 
Putting Quality First through Continuous Testing
Putting Quality First through Continuous TestingPutting Quality First through Continuous Testing
Putting Quality First through Continuous Testing
TechWell
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita GalkinTesting in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita Galkin
Sigma Software
 
JavaScript Fetch API
JavaScript Fetch APIJavaScript Fetch API
JavaScript Fetch API
Xcat Liu
 
Unit Testing your React / Redux app (@BucharestJS)
Unit Testing your React / Redux app (@BucharestJS)Unit Testing your React / Redux app (@BucharestJS)
Unit Testing your React / Redux app (@BucharestJS)
Alin Pandichi
 
Karate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter ThomasKarate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter Thomas
intuit_india
 
I am hooked on React
I am hooked on ReactI am hooked on React
I am hooked on React
Maurice De Beijer [MVP]
 
Ntd2015_pt_kanban_ppt
Ntd2015_pt_kanban_pptNtd2015_pt_kanban_ppt
Ntd2015_pt_kanban_ppt
Jokin Aspiazu
 

What's hot (20)

Automate test, tools, advantages, and disadvantages
Automate test, tools, advantages,  and disadvantagesAutomate test, tools, advantages,  and disadvantages
Automate test, tools, advantages, and disadvantages
 
JavaScript Metaprogramming with ES 2015 Proxy
JavaScript Metaprogramming with ES 2015 ProxyJavaScript Metaprogramming with ES 2015 Proxy
JavaScript Metaprogramming with ES 2015 Proxy
 
Principles and patterns for test driven development
Principles and patterns for test driven developmentPrinciples and patterns for test driven development
Principles and patterns for test driven development
 
Intro to TDD and BDD
Intro to TDD and BDDIntro to TDD and BDD
Intro to TDD and BDD
 
Refactoring Legacy Web Forms for Test Automation
Refactoring Legacy Web Forms for Test AutomationRefactoring Legacy Web Forms for Test Automation
Refactoring Legacy Web Forms for Test Automation
 
Building large and scalable mission critical applications with React
Building large and scalable mission critical applications with ReactBuilding large and scalable mission critical applications with React
Building large and scalable mission critical applications with React
 
Setting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce AppsSetting Up CircleCI Workflows for Your Salesforce Apps
Setting Up CircleCI Workflows for Your Salesforce Apps
 
Agile2013 - Integration testing in enterprises using TaaS - via Case Study
Agile2013 - Integration testing in enterprises using TaaS - via Case StudyAgile2013 - Integration testing in enterprises using TaaS - via Case Study
Agile2013 - Integration testing in enterprises using TaaS - via Case Study
 
Testing - Is This Even a Thing?
Testing - Is This Even a Thing?Testing - Is This Even a Thing?
Testing - Is This Even a Thing?
 
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
Алексей Ященко и Ярослав Волощук "False simplicity of front-end applications"
 
Unit testing - A&BP CC
Unit testing - A&BP CCUnit testing - A&BP CC
Unit testing - A&BP CC
 
TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​TestCorner #22 - How DevOps helps QA daily works​
TestCorner #22 - How DevOps helps QA daily works​
 
Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"Никита Галкин "Testing in Frontend World"
Никита Галкин "Testing in Frontend World"
 
Putting Quality First through Continuous Testing
Putting Quality First through Continuous TestingPutting Quality First through Continuous Testing
Putting Quality First through Continuous Testing
 
Testing in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita GalkinTesting in FrontEnd World by Nikita Galkin
Testing in FrontEnd World by Nikita Galkin
 
JavaScript Fetch API
JavaScript Fetch APIJavaScript Fetch API
JavaScript Fetch API
 
Unit Testing your React / Redux app (@BucharestJS)
Unit Testing your React / Redux app (@BucharestJS)Unit Testing your React / Redux app (@BucharestJS)
Unit Testing your React / Redux app (@BucharestJS)
 
Karate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter ThomasKarate for Complex Web-Service API Testing by Peter Thomas
Karate for Complex Web-Service API Testing by Peter Thomas
 
I am hooked on React
I am hooked on ReactI am hooked on React
I am hooked on React
 
Ntd2015_pt_kanban_ppt
Ntd2015_pt_kanban_pptNtd2015_pt_kanban_ppt
Ntd2015_pt_kanban_ppt
 

Viewers also liked

Fast start tv b#1 p11_mvp_produto_minimo_viavel
Fast start tv b#1 p11_mvp_produto_minimo_viavelFast start tv b#1 p11_mvp_produto_minimo_viavel
Fast start tv b#1 p11_mvp_produto_minimo_viavelfabricastartups
 
3.formulario de agenda telefonica
3.formulario de agenda telefonica3.formulario de agenda telefonica
3.formulario de agenda telefonicamafemoseco
 
Dr Heather Williams
Dr Heather WilliamsDr Heather Williams
Dr Heather Williams
Sabrina Downey
 
JavaScript
JavaScriptJavaScript
JavaScript
Matheus Soares
 
Extra clase de religión
Extra clase de religiónExtra clase de religión
Extra clase de religiónJeremy GF
 
SLIDE FINAL PAPER PALEMBANG
SLIDE FINAL PAPER PALEMBANGSLIDE FINAL PAPER PALEMBANG
SLIDE FINAL PAPER PALEMBANGRSCM Jakarta
 
Jakub Cimoradsky
Jakub CimoradskyJakub Cimoradsky
Jakub Cimoradsky
Sabrina Downey
 
Reittiluokitus of 2013 suomen latu
Reittiluokitus of 2013 suomen latuReittiluokitus of 2013 suomen latu
Reittiluokitus of 2013 suomen latu
Pirjo Räsänen
 
First class Testing
First class TestingFirst class Testing
First class Testing
Return on Intelligence
 
Extra clase de religión4654
Extra clase de religión4654Extra clase de religión4654
Extra clase de religión4654Jeremy GF
 
Relatório agosto - Quem se Importa
Relatório agosto - Quem se ImportaRelatório agosto - Quem se Importa
Relatório agosto - Quem se Importa
GeneTatuapé
 
Resolving conflicts
Resolving conflictsResolving conflicts
Resolving conflicts
Return on Intelligence
 
Introduction to selenium web driver
Introduction to selenium web driverIntroduction to selenium web driver
Introduction to selenium web driver
Return on Intelligence
 
Gps -paikantimen datan syöttäminen Garmin BaseCampiin
Gps -paikantimen datan syöttäminen Garmin BaseCampiinGps -paikantimen datan syöttäminen Garmin BaseCampiin
Gps -paikantimen datan syöttäminen Garmin BaseCampiin
Pirjo Räsänen
 
Graphs of Log functions
Graphs of Log functionsGraphs of Log functions
Graphs of Log functions
lesurhommemega
 
P1 disenho antena
P1 disenho antenaP1 disenho antena
Aprendisaje en las materias durate el semestre
Aprendisaje en las materias durate el semestreAprendisaje en las materias durate el semestre
Aprendisaje en las materias durate el semestremarioblog
 

Viewers also liked (20)

Fast start tv b#1 p11_mvp_produto_minimo_viavel
Fast start tv b#1 p11_mvp_produto_minimo_viavelFast start tv b#1 p11_mvp_produto_minimo_viavel
Fast start tv b#1 p11_mvp_produto_minimo_viavel
 
3.formulario de agenda telefonica
3.formulario de agenda telefonica3.formulario de agenda telefonica
3.formulario de agenda telefonica
 
Dr Heather Williams
Dr Heather WilliamsDr Heather Williams
Dr Heather Williams
 
CORLEE BOB LARENA
CORLEE BOB LARENACORLEE BOB LARENA
CORLEE BOB LARENA
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Extra clase de religión
Extra clase de religiónExtra clase de religión
Extra clase de religión
 
Social Engineering and Identity Theft
Social Engineering and Identity TheftSocial Engineering and Identity Theft
Social Engineering and Identity Theft
 
SLIDE FINAL PAPER PALEMBANG
SLIDE FINAL PAPER PALEMBANGSLIDE FINAL PAPER PALEMBANG
SLIDE FINAL PAPER PALEMBANG
 
Jakub Cimoradsky
Jakub CimoradskyJakub Cimoradsky
Jakub Cimoradsky
 
Reittiluokitus of 2013 suomen latu
Reittiluokitus of 2013 suomen latuReittiluokitus of 2013 suomen latu
Reittiluokitus of 2013 suomen latu
 
Licen
LicenLicen
Licen
 
First class Testing
First class TestingFirst class Testing
First class Testing
 
Extra clase de religión4654
Extra clase de religión4654Extra clase de religión4654
Extra clase de religión4654
 
Relatório agosto - Quem se Importa
Relatório agosto - Quem se ImportaRelatório agosto - Quem se Importa
Relatório agosto - Quem se Importa
 
Resolving conflicts
Resolving conflictsResolving conflicts
Resolving conflicts
 
Introduction to selenium web driver
Introduction to selenium web driverIntroduction to selenium web driver
Introduction to selenium web driver
 
Gps -paikantimen datan syöttäminen Garmin BaseCampiin
Gps -paikantimen datan syöttäminen Garmin BaseCampiinGps -paikantimen datan syöttäminen Garmin BaseCampiin
Gps -paikantimen datan syöttäminen Garmin BaseCampiin
 
Graphs of Log functions
Graphs of Log functionsGraphs of Log functions
Graphs of Log functions
 
P1 disenho antena
P1 disenho antenaP1 disenho antena
P1 disenho antena
 
Aprendisaje en las materias durate el semestre
Aprendisaje en las materias durate el semestreAprendisaje en las materias durate el semestre
Aprendisaje en las materias durate el semestre
 

Similar to Testing your code

Patterns and practices for building enterprise-scale HTML5 apps
Patterns and practices for building enterprise-scale HTML5 appsPatterns and practices for building enterprise-scale HTML5 apps
Patterns and practices for building enterprise-scale HTML5 apps
Phil Leggetter
 
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Codecamp Romania
 
JavaScript Unit Testing
JavaScript Unit TestingJavaScript Unit Testing
JavaScript Unit Testing
Keir Bowden
 
Unit testing basics
Unit testing basicsUnit testing basics
Rethinking Testing
Rethinking TestingRethinking Testing
Rethinking Testing
pdejuan
 
C++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ LondonC++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ London
Clare Macrae
 
Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5
Jimmy Lu
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFX
Hendrik Ebbers
 
Angular Application Testing
Angular Application TestingAngular Application Testing
Angular Application Testing
Troy Miles
 
Cpp Testing Techniques Tips and Tricks - Cpp Europe
Cpp Testing Techniques Tips and Tricks - Cpp EuropeCpp Testing Techniques Tips and Tricks - Cpp Europe
Cpp Testing Techniques Tips and Tricks - Cpp Europe
Clare Macrae
 
Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014
Red Gate Software
 
Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014
Justin Ison
 
Testing JavaScript
Testing JavaScriptTesting JavaScript
Testing JavaScript
dhtml
 
Building reliable web applications using Cypress
Building reliable web applications using CypressBuilding reliable web applications using Cypress
Building reliable web applications using Cypress
Maurice De Beijer [MVP]
 
Qt test framework
Qt test frameworkQt test framework
Qt test framework
ICS
 
Testing Tools Online Training.pdf
Testing Tools Online Training.pdfTesting Tools Online Training.pdf
Testing Tools Online Training.pdf
SpiritsoftsTraining
 
Testing Tools course training institute hyderabad – Best software training in...
Testing Tools course training institute hyderabad – Best software training in...Testing Tools course training institute hyderabad – Best software training in...
Testing Tools course training institute hyderabad – Best software training in...
Jaya Suresh Nunna
 
Test driven development
Test driven developmentTest driven development
Test driven development
christoforosnalmpantis
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
rdekleijn
 
Devday2016 real unittestingwithmockframework-phatvu
Devday2016 real unittestingwithmockframework-phatvuDevday2016 real unittestingwithmockframework-phatvu
Devday2016 real unittestingwithmockframework-phatvu
Phat VU
 

Similar to Testing your code (20)

Patterns and practices for building enterprise-scale HTML5 apps
Patterns and practices for building enterprise-scale HTML5 appsPatterns and practices for building enterprise-scale HTML5 apps
Patterns and practices for building enterprise-scale HTML5 apps
 
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
Iasi code camp 20 april 2013 marian chicu - database unit tests in the sql se...
 
JavaScript Unit Testing
JavaScript Unit TestingJavaScript Unit Testing
JavaScript Unit Testing
 
Unit testing basics
Unit testing basicsUnit testing basics
Unit testing basics
 
Rethinking Testing
Rethinking TestingRethinking Testing
Rethinking Testing
 
C++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ LondonC++ Testing Techniques Tips and Tricks - C++ London
C++ Testing Techniques Tips and Tricks - C++ London
 
Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5Renaissance of JUnit - Introduction to JUnit 5
Renaissance of JUnit - Introduction to JUnit 5
 
Test Driven Development with JavaFX
Test Driven Development with JavaFXTest Driven Development with JavaFX
Test Driven Development with JavaFX
 
Angular Application Testing
Angular Application TestingAngular Application Testing
Angular Application Testing
 
Cpp Testing Techniques Tips and Tricks - Cpp Europe
Cpp Testing Techniques Tips and Tricks - Cpp EuropeCpp Testing Techniques Tips and Tricks - Cpp Europe
Cpp Testing Techniques Tips and Tricks - Cpp Europe
 
Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014Get Testing with tSQLt - SQL In The City Workshop 2014
Get Testing with tSQLt - SQL In The City Workshop 2014
 
Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014Helpful Automation Techniques - Selenium Camp 2014
Helpful Automation Techniques - Selenium Camp 2014
 
Testing JavaScript
Testing JavaScriptTesting JavaScript
Testing JavaScript
 
Building reliable web applications using Cypress
Building reliable web applications using CypressBuilding reliable web applications using Cypress
Building reliable web applications using Cypress
 
Qt test framework
Qt test frameworkQt test framework
Qt test framework
 
Testing Tools Online Training.pdf
Testing Tools Online Training.pdfTesting Tools Online Training.pdf
Testing Tools Online Training.pdf
 
Testing Tools course training institute hyderabad – Best software training in...
Testing Tools course training institute hyderabad – Best software training in...Testing Tools course training institute hyderabad – Best software training in...
Testing Tools course training institute hyderabad – Best software training in...
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Structured Functional Automated Web Service Testing
Structured Functional Automated Web Service TestingStructured Functional Automated Web Service Testing
Structured Functional Automated Web Service Testing
 
Devday2016 real unittestingwithmockframework-phatvu
Devday2016 real unittestingwithmockframework-phatvuDevday2016 real unittestingwithmockframework-phatvu
Devday2016 real unittestingwithmockframework-phatvu
 

More from Return on Intelligence

Clean Code Approach
Clean Code ApproachClean Code Approach
Clean Code Approach
Return on Intelligence
 
Code Coverage
Code CoverageCode Coverage
Code Coverage
Return on Intelligence
 
Effective Communication in english
Effective Communication in englishEffective Communication in english
Effective Communication in english
Return on Intelligence
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
Return on Intelligence
 
Conflicts Resolving
Conflicts ResolvingConflicts Resolving
Conflicts Resolving
Return on Intelligence
 
Database versioning with liquibase
Database versioning with liquibaseDatabase versioning with liquibase
Database versioning with liquibase
Return on Intelligence
 
Effective Feedback
Effective FeedbackEffective Feedback
Effective Feedback
Return on Intelligence
 
English for Negotiations 2016
English for Negotiations 2016English for Negotiations 2016
English for Negotiations 2016
Return on Intelligence
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
Return on Intelligence
 
Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!
Return on Intelligence
 
Quick Start to AngularJS
Quick Start to AngularJSQuick Start to AngularJS
Quick Start to AngularJS
Return on Intelligence
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.js
Return on Intelligence
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classification
Return on Intelligence
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
Return on Intelligence
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
Return on Intelligence
 
Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)
Return on Intelligence
 
Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)
Return on Intelligence
 
Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)
Return on Intelligence
 
Career development in exigen services
Career development in exigen servicesCareer development in exigen services
Career development in exigen services
Return on Intelligence
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
Return on Intelligence
 

More from Return on Intelligence (20)

Clean Code Approach
Clean Code ApproachClean Code Approach
Clean Code Approach
 
Code Coverage
Code CoverageCode Coverage
Code Coverage
 
Effective Communication in english
Effective Communication in englishEffective Communication in english
Effective Communication in english
 
Anti-patterns
Anti-patternsAnti-patterns
Anti-patterns
 
Conflicts Resolving
Conflicts ResolvingConflicts Resolving
Conflicts Resolving
 
Database versioning with liquibase
Database versioning with liquibaseDatabase versioning with liquibase
Database versioning with liquibase
 
Effective Feedback
Effective FeedbackEffective Feedback
Effective Feedback
 
English for Negotiations 2016
English for Negotiations 2016English for Negotiations 2016
English for Negotiations 2016
 
Lean Software Development
Lean Software DevelopmentLean Software Development
Lean Software Development
 
Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!Unit Tests? It is Very Simple and Easy!
Unit Tests? It is Very Simple and Easy!
 
Quick Start to AngularJS
Quick Start to AngularJSQuick Start to AngularJS
Quick Start to AngularJS
 
Introduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.jsIntroduction to Backbone.js & Marionette.js
Introduction to Backbone.js & Marionette.js
 
Types of testing and their classification
Types of testing and their classificationTypes of testing and their classification
Types of testing and their classification
 
Introduction to EJB
Introduction to EJBIntroduction to EJB
Introduction to EJB
 
Enterprise Service Bus
Enterprise Service BusEnterprise Service Bus
Enterprise Service Bus
 
Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)Apache cassandra - future without boundaries (part3)
Apache cassandra - future without boundaries (part3)
 
Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)Apache cassandra - future without boundaries (part2)
Apache cassandra - future without boundaries (part2)
 
Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)Apache cassandra - future without boundaries (part1)
Apache cassandra - future without boundaries (part1)
 
Career development in exigen services
Career development in exigen servicesCareer development in exigen services
Career development in exigen services
 
Enterprise service bus part 2
Enterprise service bus part 2Enterprise service bus part 2
Enterprise service bus part 2
 

Recently uploaded

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
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
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
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Globus
 
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
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
Safe Software
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
Globus
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
Globus
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
abdulrafaychaudhry
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
Philip Schwarz
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Globus
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
Globus
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Yara Milbes
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
QuickwayInfoSystems3
 

Recently uploaded (20)

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|...
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
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 ...
 
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
Climate Science Flows: Enabling Petabyte-Scale Climate Analysis with the Eart...
 
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...
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Essentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FMEEssentials of Automations: The Art of Triggers and Actions in FME
Essentials of Automations: The Art of Triggers and Actions in FME
 
Vitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume MontevideoVitthal Shirke Microservices Resume Montevideo
Vitthal Shirke Microservices Resume Montevideo
 
GlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote sessionGlobusWorld 2024 Opening Keynote session
GlobusWorld 2024 Opening Keynote session
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
How to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good PracticesHow to Position Your Globus Data Portal for Success Ten Good Practices
How to Position Your Globus Data Portal for Success Ten Good Practices
 
Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)Introduction to Pygame (Lecture 7 Python Game Development)
Introduction to Pygame (Lecture 7 Python Game Development)
 
A Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of PassageA Sighting of filterA in Typelevel Rite of Passage
A Sighting of filterA in Typelevel Rite of Passage
 
Vitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdfVitthal Shirke Java Microservices Resume.pdf
Vitthal Shirke Java Microservices Resume.pdf
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...Developing Distributed High-performance Computing Capabilities of an Open Sci...
Developing Distributed High-performance Computing Capabilities of an Open Sci...
 
Understanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSageUnderstanding Globus Data Transfers with NetSage
Understanding Globus Data Transfers with NetSage
 
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi ArabiaTop 7 Unique WhatsApp API Benefits | Saudi Arabia
Top 7 Unique WhatsApp API Benefits | Saudi Arabia
 
Enterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptxEnterprise Software Development with No Code Solutions.pptx
Enterprise Software Development with No Code Solutions.pptx
 

Testing your code