SlideShare une entreprise Scribd logo
1  sur  45
Unit testing in practice Part I
Let's start
Unit test ,[object Object]
Unit testing  - What kind of monster is this ? ,[object Object],[object Object],[object Object]
[object Object],[object Object],[object Object],Unit testing  - What kind of monster is this ?
[object Object],[object Object],[object Object],Unit testing  - What kind of monster is this ?
[object Object],[object Object],[object Object],Unit testing  - What kind of monster is this ?
Unit testing  - What kind of monster is this ?
Unit testing  - What kind of monster is this ?
[object Object],Unit testing  - What kind of monster is this ?
[object Object],Unit testing  - What kind of monster is this ?
[object Object],Why is this happening? Unit testing  - What kind of monster is this ?
[object Object],Why does this happen? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],Unit testing  - What kind of monster is this ?
[object Object],UNIT TESTING Unit testing  - What kind of monster is this ?
[object Object],[object Object],Unit testing - What kind of monster?
Unit testing - What's the point? ,[object Object]
Unit testing - What's the point? ,[object Object]
Unit testing - What's the point? ,[object Object]
Unit testing - What's the point? ,[object Object]
Unit testing - What's the point? ,[object Object],[object Object]
Unit testing - What's the point? ,[object Object],[object Object],[object Object],[object Object]
Unit testing - What's the point? ,[object Object],[object Object],[object Object],[object Object]
Unit testing - What's the point? ,[object Object],[object Object],[object Object],[object Object]
Unit testing - What's the point? ,[object Object],[object Object],[object Object],[object Object]
Unit testing - Who needs it? ,[object Object],[object Object],[object Object]
Unit testing - Who needs it? ,[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],Edsger W. Dijkstra
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Unit testing - what is the purpose? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
We all have heard that unit tests: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
So what is the problem?
So what is the problem? ,[object Object],[object Object]
Why is this happening? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Why is this happening? ,[object Object]
And all because ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Developers think... ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Management thinks... ,[object Object],[object Object],[object Object]
Management thinks... ,[object Object],[object Object],[object Object]
Unit Tests and You ,[object Object],[object Object],[object Object],[object Object],[object Object]
About me ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Contenu connexe

Tendances

Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and WhenPaul Gower
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality ToolsOrest Ivasiv
 
TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?Dmitriy Nesteryuk
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and WhenPaul Gower
 
I'm a TDD cheat and I'm not afraid to admit it
I'm a TDD cheat and I'm not afraid to admit itI'm a TDD cheat and I'm not afraid to admit it
I'm a TDD cheat and I'm not afraid to admit itDaniel Irvine
 
The problem with tdd
The problem with tddThe problem with tdd
The problem with tddDror Helper
 
Alexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the TrenchesAlexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the TrenchesMozaic Works
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven DevelopmentSamnang Chhun
 
Lập trình hướng kiểm thử - Test Driven development
Lập trình hướng kiểm thử - Test Driven developmentLập trình hướng kiểm thử - Test Driven development
Lập trình hướng kiểm thử - Test Driven developmentAnh Lê
 
Code Review Matters and Manners
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and MannersTrisha Gee
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentbhochhi
 
Why and how to keep your code quality
Why and how to keep your code quality Why and how to keep your code quality
Why and how to keep your code quality Krešimir Antolić
 

Tendances (14)

Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
Java Code Quality Tools
Java Code Quality ToolsJava Code Quality Tools
Java Code Quality Tools
 
Code Quality
Code QualityCode Quality
Code Quality
 
TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?TDD — Are you sure you properly test code?
TDD — Are you sure you properly test code?
 
Code Review: How and When
Code Review: How and WhenCode Review: How and When
Code Review: How and When
 
I'm a TDD cheat and I'm not afraid to admit it
I'm a TDD cheat and I'm not afraid to admit itI'm a TDD cheat and I'm not afraid to admit it
I'm a TDD cheat and I'm not afraid to admit it
 
The problem with tdd
The problem with tddThe problem with tdd
The problem with tdd
 
Testing 101: Three Rules for Testing at Ombu Labs
Testing 101: Three Rules for Testing at Ombu Labs Testing 101: Three Rules for Testing at Ombu Labs
Testing 101: Three Rules for Testing at Ombu Labs
 
Alexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the TrenchesAlexandru Bolboaca - Unit Testing from the Trenches
Alexandru Bolboaca - Unit Testing from the Trenches
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Lập trình hướng kiểm thử - Test Driven development
Lập trình hướng kiểm thử - Test Driven developmentLập trình hướng kiểm thử - Test Driven development
Lập trình hướng kiểm thử - Test Driven development
 
Code Review Matters and Manners
Code Review Matters and MannersCode Review Matters and Manners
Code Review Matters and Manners
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Why and how to keep your code quality
Why and how to keep your code quality Why and how to keep your code quality
Why and how to keep your code quality
 

En vedette

LatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2AndroidLatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2Androiddenis Udod
 
LatJUG. Mar-2011
LatJUG. Mar-2011LatJUG. Mar-2011
LatJUG. Mar-2011denis Udod
 
Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.denis Udod
 
Imagens Vernissage Residence Club
Imagens Vernissage Residence ClubImagens Vernissage Residence Club
Imagens Vernissage Residence ClubAlexandre Quadros
 
LatJUG. JPA2 Done Right
LatJUG. JPA2 Done RightLatJUG. JPA2 Done Right
LatJUG. JPA2 Done Rightdenis Udod
 
The Premium Club AT&T SportsDeck
The Premium Club AT&T SportsDeckThe Premium Club AT&T SportsDeck
The Premium Club AT&T SportsDeckMichelek8
 
Premium Club Brochure 2009 2010
Premium Club Brochure 2009 2010Premium Club Brochure 2009 2010
Premium Club Brochure 2009 2010Michelek8
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentalsdenis Udod
 
JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?denis Udod
 
LatJUG.Jun-2011
LatJUG.Jun-2011LatJUG.Jun-2011
LatJUG.Jun-2011denis Udod
 
LatJUG. Spring Roo
LatJUG. Spring RooLatJUG. Spring Roo
LatJUG. Spring Roodenis Udod
 
The Premium Club 2010
The Premium Club 2010The Premium Club 2010
The Premium Club 2010Michelek8
 
LatJUG. Google App Engine
LatJUG. Google App EngineLatJUG. Google App Engine
LatJUG. Google App Enginedenis Udod
 
LatJUG. JSF2.0 - The JavaEE6 Standard
LatJUG. JSF2.0 - The JavaEE6 StandardLatJUG. JSF2.0 - The JavaEE6 Standard
LatJUG. JSF2.0 - The JavaEE6 Standarddenis Udod
 
LatJUG Feb-2011
LatJUG Feb-2011LatJUG Feb-2011
LatJUG Feb-2011denis Udod
 

En vedette (17)

LatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2AndroidLatJUG. Complete Idiots Guide2Android
LatJUG. Complete Idiots Guide2Android
 
LatJUG. Mar-2011
LatJUG. Mar-2011LatJUG. Mar-2011
LatJUG. Mar-2011
 
Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.Java. Exceptions - how to cook, how to eat.
Java. Exceptions - how to cook, how to eat.
 
Imagens Vernissage Residence Club
Imagens Vernissage Residence ClubImagens Vernissage Residence Club
Imagens Vernissage Residence Club
 
LatJUG. JPA2 Done Right
LatJUG. JPA2 Done RightLatJUG. JPA2 Done Right
LatJUG. JPA2 Done Right
 
The Premium Club AT&T SportsDeck
The Premium Club AT&T SportsDeckThe Premium Club AT&T SportsDeck
The Premium Club AT&T SportsDeck
 
Premium Club Brochure 2009 2010
Premium Club Brochure 2009 2010Premium Club Brochure 2009 2010
Premium Club Brochure 2009 2010
 
Evidence Qualitylife
Evidence QualitylifeEvidence Qualitylife
Evidence Qualitylife
 
LatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode FundamentalsLatJUG. Java Bytecode Fundamentals
LatJUG. Java Bytecode Fundamentals
 
Elegance Freguesia
Elegance FreguesiaElegance Freguesia
Elegance Freguesia
 
JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?JUG.LV What do you know about Logging?
JUG.LV What do you know about Logging?
 
LatJUG.Jun-2011
LatJUG.Jun-2011LatJUG.Jun-2011
LatJUG.Jun-2011
 
LatJUG. Spring Roo
LatJUG. Spring RooLatJUG. Spring Roo
LatJUG. Spring Roo
 
The Premium Club 2010
The Premium Club 2010The Premium Club 2010
The Premium Club 2010
 
LatJUG. Google App Engine
LatJUG. Google App EngineLatJUG. Google App Engine
LatJUG. Google App Engine
 
LatJUG. JSF2.0 - The JavaEE6 Standard
LatJUG. JSF2.0 - The JavaEE6 StandardLatJUG. JSF2.0 - The JavaEE6 Standard
LatJUG. JSF2.0 - The JavaEE6 Standard
 
LatJUG Feb-2011
LatJUG Feb-2011LatJUG Feb-2011
LatJUG Feb-2011
 

Similaire à Agile latvia evening_unit_testing_in_practice

iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven DevelopmentPablo Villar
 
Unit testing
Unit testingUnit testing
Unit testingPiXeL16
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Developmentjakubkoci
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingPeter Presnell
 
TDD Walkthrough - Encryption
TDD Walkthrough - EncryptionTDD Walkthrough - Encryption
TDD Walkthrough - EncryptionPeterKha2
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Conceptswesovi
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)wolframkriesing
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flexmichael.labriola
 
Getting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud ShaonGetting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud ShaonCefalo
 
Acceptance testfurureinmind
Acceptance testfurureinmindAcceptance testfurureinmind
Acceptance testfurureinmindLeanDog
 
An Introduction To Software Development - Test Driven Development, Part 1
An Introduction To Software Development - Test Driven Development, Part 1An Introduction To Software Development - Test Driven Development, Part 1
An Introduction To Software Development - Test Driven Development, Part 1Blue Elephant Consulting
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersZeroTurnaround
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven DevelopmentFerdous Mahmud Shaon
 

Similaire à Agile latvia evening_unit_testing_in_practice (20)

iOS Test-Driven Development
iOS Test-Driven DevelopmentiOS Test-Driven Development
iOS Test-Driven Development
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
I Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application TestingI Smell A RAT- Rapid Application Testing
I Smell A RAT- Rapid Application Testing
 
TDD and Getting Paid
TDD and Getting PaidTDD and Getting Paid
TDD and Getting Paid
 
Tdd - introduction
Tdd - introductionTdd - introduction
Tdd - introduction
 
TDD Walkthrough - Encryption
TDD Walkthrough - EncryptionTDD Walkthrough - Encryption
TDD Walkthrough - Encryption
 
Let's test!
Let's test!Let's test!
Let's test!
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Software Testing Basic Concepts
Software Testing Basic ConceptsSoftware Testing Basic Concepts
Software Testing Basic Concepts
 
Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)Day1 - TDD (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
 
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in FlexassertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
assertYourself - Breaking the Theories and Assumptions of Unit Testing in Flex
 
Getting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud ShaonGetting started with Test Driven Development - Ferdous Mahmud Shaon
Getting started with Test Driven Development - Ferdous Mahmud Shaon
 
Acceptance testfurureinmind
Acceptance testfurureinmindAcceptance testfurureinmind
Acceptance testfurureinmind
 
An Introduction To Software Development - Test Driven Development, Part 1
An Introduction To Software Development - Test Driven Development, Part 1An Introduction To Software Development - Test Driven Development, Part 1
An Introduction To Software Development - Test Driven Development, Part 1
 
How To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven PetersHow To Do Kick-Ass Software Development, by Sven Peters
How To Do Kick-Ass Software Development, by Sven Peters
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Getting started with Test Driven Development
Getting started with Test Driven DevelopmentGetting started with Test Driven Development
Getting started with Test Driven Development
 
TDD a piccoli passi
TDD a piccoli passiTDD a piccoli passi
TDD a piccoli passi
 
클린 테스트
클린 테스트클린 테스트
클린 테스트
 

Dernier

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 

Dernier (20)

From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 

Agile latvia evening_unit_testing_in_practice

  • 1. Unit testing in practice Part I
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8. Unit testing - What kind of monster is this ?
  • 9. Unit testing - What kind of monster is this ?
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36. So what is the problem?
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.

Notes de l'éditeur

  1. И Так, начнем
  2. Немного теории /не будет лишним/ Unit-тестирование: что такое это такое? (в java) кому оно нужно? для чего оно нужно? у нас не будет bug’ов? unit-тестирование, что  это такое?  Unit test - что за зверь? :)  Где его найти,  как поймать,  приручить,  чем кормить как ухаживать? Если вы программист, то вы "скорее всего" пишете придумываете как с помощью кода реализовать то, что от вас просят.... Если вы манаджер , то вы "скорее всего" вы пытаетесь понять что же там напридумывали программисты и когда это кончится Факт 1  Программисты пишут код.      Ну если более развернуто, то с помощью доступных инструментов, техник, технологий, процессов создают РЕШЕНИЯ       которые удовлетворят требованиям     поставленной задачи. Факт 2 . Каждый раз код уникален.      Но:     Код не произведение искусства.          он не предназначен для того, что бы им восхищались...      Хотя  встречаются   "гении программирования", которые пишут код для того что бы им любоваться.          - Смотрите, какую я тут финтифлюшку прилепит. Факт 3 . Код предназначен для выполнения сугубо практических вещей.      Т.е. его главная задача это выполнять то, для чего он предназначен, и выполнять хорошо.
  3. Факт 1 Программисты пишут код. ------------------------- Ну если более развернуто, то с помощью доступных инструментов, техник, технологий, процессов создают РЕШЕНИЯ которые удовлетворят требованиям поставленной задачи.
  4. Факт 2 . Каждый раз код уникален. Но: Код не произведение искусства. он не предназначен для того, что бы им восхищались... Хотя встречаются   "гении программирования", которые пишут код для того что бы им любоваться. - Смотрите, какую я тут финтифлюшку прилепит.
  5. Факт 3 . Код предназначен для выполнения сугубо практических вещей. Т.е. его главная задача это выполнять то, для чего он предназначен, и выполнять хорошо.
  6. .Т.е. его главная задача это выполнять то, для чего он предназначен, и выполнять хорошо
  7. Нам нужен СТЕНД для тестирования нашего кода Самый простой способ тестировать код: - использовать те же приемы - использовать те же инструменты - использовать тот же язык - не менять контекст ТЕСТИРОВАТЬ КОД С ПОМОЩЬЮ КОДА.
  8. Самый простой способ тестировать код: - использовать те же приемы - использовать те же инструменты - использовать тот же язык - не менять контекст ТЕСТИРОВАТЬ КОД С ПОМОЩЬЮ КОДА.
  9. Формальное  определение “что такое тестирование” вы всегда можете найти в интернете. Если вы хотите узнать "ОБ ЭТОМ" более глубоко, вы всегда можете воспользоваться услугами Google, etc Вы всегда сможете найти все о нем во много раз больше, чем я смогу вам рассказать :-) Если не пробовали поискать его описание, то самое время это сделать. Что ВАЖНО? Важно что бы “ваше” понимание тестирования совпадало с пониманием тестирования “команды” в которой вы работаете.  
  10. 1. Идея состоит в том, чтобы писать тесты для каждого нетривиального метода.  Важно не пропустить  "простые" и  "тесты"
  11. 1. Идея состоит в том, чтобы писать тесты для каждого нетривиального метода.  Важно не пропустить  "простые" и  "тесты"
  12. 1. Идея состоит в том, чтобы писать тесты для каждого нетривиального метода.  Важно не пропустить  "простые" и  "тесты"
  13. 2. Это позволяет достаточно быстро проверить, не привело ли очередное изменение кода к появлению ошибок в уже написанных и оттестированных местах программы, а также облегчает обнаружение и устранение таких ошибок.
  14. В чем "фишка" ? мы не боимся не боимся сломать код не боимся сломать ЧУЖОЙ код  не боимся что кто-то сломал НАШ код
  15. 2. Но, если вы считаете что это не для ВАС, то с помощью unit-тестов, вы ВСЕМ СМОЖЕТЕ доказать, что unit-тестирование бесполезно и вам совершенно не нужно. 3. И у ВАС это обязательно получится. 4. /особенно если вы доказываете это самому себе/
  16. 1. Если вам нужно, что бы ваш код не разваливался от любого прикосновения, что бы вы были уверенны в своем коде, то это МОЖЕТ БЫТЬ для вас :)
  17. 1. Так что-же, те, кто говорят, что с помощью unit тестов не найти все bug’и оно не нежно правы? ДА - если смотреть на unit тестирование как на демонстрацию отсутствия bug’ов
  18. 2. НЕТ - если смотреть на unit  тестирование как на часть процесса программирования. «Тестирование программ может использоваться для демонстрации наличия ошибок, но оно никогда не покажет их отсутствие.» Edsger Wybe Dijkstra, 1970 г. /Дейкстра/   К сожалению, существующие на сегодняшний день методы тестирования ПО  не позволяют однозначно и полностью найти все дефекты и ошибки, установить корректность функционирования программы. 
  19. Самое-ли это неприятное, что может случится с вашим кодом, программой, во время процесса разработки? 
  20. ваш код может навевать ужас на того, кто с ним соприкасается.....
  21. ваш код может навевать ужас на того, кто с ним соприкасается.....
  22. ваш код может навевать ужас на того, кто с ним соприкасается.....
  23. ваш код может навевать ужас на того, кто с ним соприкасается.....
  24. ваш код может навевать ужас на того, кто с ним соприкасается.....
  25. Мы все с вами прекрасно знаем, что unit-тесты: reduce bugs in new features (catch stupid mistakes early) reduce bugs in existings features reduce the cost of change improve design (попробуйте написать тесты на плохой дизайн - у вас не получится) allow refactoring force you to slow_down_and_think (заставляет вас не торопиться и ДУМАТЬ) makes development facter and fun (если что-то не работает вы узнаете об этом раньше всех, и никто не ткнет вам   в вашу глупую ошибку) reduce fear fear to change fear to breakage fear of update fear of incompatibility fear of deadlines fear of indictment of lack of skills 1. Тесты предотвращают появления ошибок позволяют выявлять ошибки сразу дают уверенность в том, что код работоспособен 4. Тесты улучшают дизайн кода заставляют проводить маленькие изменения простой код лучше приспособлен к тестированию уменьшают связанность кода 2. Рефакторинг(изменение кода) без головной боли маленькие изменения - тест, если сломали - сразу легко исправить анти-вандализм (уверенность) 6. Ускоряют процесс разработки. снижение времени на отладку(debuging) параллельная работа, общее владение кодом уверенно вносить изменения (а не безрассудно) 3. Тесты как документация 5. Повышает квалификацию разработчика  
  26. Почему наши "прекрасно задуманные" шедевры под конец разработки превращаются в глиняные статуи о тысячи подпорках? Забываем о unit-тестах. Но что в замен? Почему-же чаще получается примерно как-то так: DEV: “Мы строили-строили  и наконец построили” Customer: “А когда увидели что построили, чуть с ума не сошли” User: “Лучше бы я умер вчера....” Почему про unit тестирование мы говорим - фигня, мы потом.... , а когда наступает потом мы плачем перед релизом от того что все разваливается от дуновения junior java developer’a?
  27. В чем проблема? We don’t have time to write test. 20% write new code - 80% mantance and bug fixing or creatively We could be coding new features instead 20% fun coding - 80% annoying cap (раздражающее дерьмо) У нас нету времени, мы и так только 20% времени тратим на новый функционал, а вы еще предлагаете писать unit тесты.
  28. Почему так? ваш код не работает (а вы об этом не знаете) кто-то сломал ваш код (и об этом вы не знаете) вы сломали чей то код (и никто об этом не знает) А почему так?   ваш код не работает (а вы об этом не знаете) кто-то сломал ваш код (и об этом вы не знаете) вы сломали чей то код (и никто об этом не знает) А почему так?  
  29. Существует множество "отговорок", что бы не использовать unit - тестирование. Разрушая одни заблуждения, человек создаёт другие заблуждения. Заблуждения, заключающие в себе некоторую долю правды, - самые опасные
  30. А почему так? А все по потому, что ”We don’t have time.....” В действительности-же вы просто не хотите ничего менять, вас все устраивает, вам и так хорошо...  Так что-же вы скулите, когда проект разваливается? We don’t have time to learn how to do it/do it well. We want to write REAL CODE NOW!. Во имя эффективности совершается больше грехов, чем из-за любой другой причины, включая глупость.  
  31. ? "box" session
  32. ? "box" session
  33. How to start unit testing alone.
  34. 1.  Как зовут, где найти, как связаться/найти. 2. Если в процессе тренинга у вас возникают вопросы, не стесняйтесь останавливайте меня, и задавайте их.  3. Если у вас другое мнение о рассматриваемой теме, прошу делится им со всеми. 4. Ну и прошу держатся в рамках тренинга