SlideShare a Scribd company logo
1 of 20
I Dream of ISPWeb:Unit Testing SharePoint Apps Gil Zilberfeld
Who am I? Software developer for 15 years Product Manager at Typemock @gil_zilberfeld www.gilzilberfeld.com
What’s the plan? Unit Testing 101 Tools  Examples Start now ,[object Object],[object Object]
Why unit testing? Reduce pain Improve productivity
Automated unit testing shorten the feedback cycle
Where do I start?
SharePoint Development
So is SharePoint Untestable?
Dependencies
Why do we need isolation? Applications are complex We can’t touch a live system When we call SharePoint Setup Teardown Repeat
Isolation Frameworks to the Rescue
Fakes help change behavior without changing the code  
Fakes help verify calls  
Isolation Frameworks Demo
What are the differences?
Unit tests are the antidote to stupid bugs
Start now!
Resources Typemock http://www.typemock.com Moles http://research.microsoft.com/en-us/projects/moles/ Telerik http://www.telerik.com/products/mocking.aspx Mock Comparison Project http://code.google.com/p/mocking-frameworks-compare/
Questions? Twitter: @gil_zilberfeld http://www.gilzilberfeld.com gilz@typemock.com
I dream of ISPWeb

More Related Content

What's hot

Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan LippsMyth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan LippsApplitools
 
How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)Asier Barrenetxea
 
When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPPaula Čučuk
 
ESLint Plugin for UI Tests
ESLint Plugin for UI TestsESLint Plugin for UI Tests
ESLint Plugin for UI TestsApplitools
 
Move test planning before implementation
Move test planning before implementationMove test planning before implementation
Move test planning before implementationTed Cheng
 
"Software Quality in the Service of Innovation in the Insurance Industry"
"Software Quality in the Service of Innovation in the Insurance Industry""Software Quality in the Service of Innovation in the Insurance Industry"
"Software Quality in the Service of Innovation in the Insurance Industry"Applitools
 
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
 
Jeremias Rößler
Jeremias RößlerJeremias Rößler
Jeremias RößlerCodeFest
 
Adam carmi
Adam carmiAdam carmi
Adam carmiCodeFest
 
[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...
[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...
[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...Applitools
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyTechWell
 
Ilari henrik
Ilari henrikIlari henrik
Ilari henrikCodeFest
 
Selenium Workshop 2015
Selenium Workshop 2015Selenium Workshop 2015
Selenium Workshop 2015vodqasg
 
Automated Visual Testing in NSW.Gov.AU
Automated Visual Testing in NSW.Gov.AUAutomated Visual Testing in NSW.Gov.AU
Automated Visual Testing in NSW.Gov.AUApplitools
 
Top Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsTop Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsDavid Tzemach
 
Software Quality Assurance & Testing
Software Quality Assurance & TestingSoftware Quality Assurance & Testing
Software Quality Assurance & TestingMd. Shamsur Rahim
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automationrenard_vardy
 

What's hot (20)

Selenium as a trend
Selenium as a trendSelenium as a trend
Selenium as a trend
 
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan LippsMyth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
Myth vs Reality: Understanding AI/ML for QA Automation - w/ Jonathan Lipps
 
How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)How to Deliver the Right Software (Specification by example)
How to Deliver the Right Software (Specification by example)
 
When you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHPWhen you get lost in api testing #ForumPHP
When you get lost in api testing #ForumPHP
 
ESLint Plugin for UI Tests
ESLint Plugin for UI TestsESLint Plugin for UI Tests
ESLint Plugin for UI Tests
 
Shift left
Shift leftShift left
Shift left
 
Move test planning before implementation
Move test planning before implementationMove test planning before implementation
Move test planning before implementation
 
"Software Quality in the Service of Innovation in the Insurance Industry"
"Software Quality in the Service of Innovation in the Insurance Industry""Software Quality in the Service of Innovation in the Insurance Industry"
"Software Quality in the Service of Innovation in the Insurance Industry"
 
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
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
Jeremias Rößler
Jeremias RößlerJeremias Rößler
Jeremias Rößler
 
Adam carmi
Adam carmiAdam carmi
Adam carmi
 
[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...
[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...
[TAQfull Meetup] Angie Jones + Expert Panel: Best Practices in Quality Manage...
 
Build Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test StrategyBuild Your Mobile App Quality and Test Strategy
Build Your Mobile App Quality and Test Strategy
 
Ilari henrik
Ilari henrikIlari henrik
Ilari henrik
 
Selenium Workshop 2015
Selenium Workshop 2015Selenium Workshop 2015
Selenium Workshop 2015
 
Automated Visual Testing in NSW.Gov.AU
Automated Visual Testing in NSW.Gov.AUAutomated Visual Testing in NSW.Gov.AU
Automated Visual Testing in NSW.Gov.AU
 
Top Agile Myths & Misconceptions
Top Agile Myths & MisconceptionsTop Agile Myths & Misconceptions
Top Agile Myths & Misconceptions
 
Software Quality Assurance & Testing
Software Quality Assurance & TestingSoftware Quality Assurance & Testing
Software Quality Assurance & Testing
 
The four generations of test automation
The four generations of test automationThe four generations of test automation
The four generations of test automation
 

Viewers also liked

Google Analytics and Google AdWords for the Online Marketer
Google Analytics and Google AdWords for the Online MarketerGoogle Analytics and Google AdWords for the Online Marketer
Google Analytics and Google AdWords for the Online MarketerElias Dabbas
 
Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail
Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail
Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail Clive Butkow
 
EY O viziune a cresterii - editia de toamna 2016
EY O viziune a cresterii - editia de toamna 2016EY O viziune a cresterii - editia de toamna 2016
EY O viziune a cresterii - editia de toamna 2016Mihaela Matei
 
不到長城非好漢
不到長城非好漢不到長城非好漢
不到長城非好漢honan4108
 
Web Scraping for Non Programmers
Web Scraping for Non ProgrammersWeb Scraping for Non Programmers
Web Scraping for Non Programmersitnig
 
4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory
4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory
4.5 Super Tested Secrets To Tweeter Your Way To Facebook GloryDan Waldschmidt
 
Presentación proyecto grupo no. 178
Presentación proyecto grupo no. 178Presentación proyecto grupo no. 178
Presentación proyecto grupo no. 178cubillos_luna_7
 
«Архитектор». Создай свой доход!
«Архитектор». Создай свой доход!«Архитектор». Создай свой доход!
«Архитектор». Создай свой доход!TianDe
 
Yet Another Keynote Speech
Yet Another Keynote SpeechYet Another Keynote Speech
Yet Another Keynote SpeechJohn Anderson
 
EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016
EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016
EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016Mihaela Matei
 
Segundo ind
Segundo indSegundo ind
Segundo indTaTa Rey
 
Grado 11 p iii - actividades orientadoras de desempeños
Grado 11   p iii - actividades orientadoras de desempeñosGrado 11   p iii - actividades orientadoras de desempeños
Grado 11 p iii - actividades orientadoras de desempeñosmkciencias
 
Grado 10 orientaciones trabajo final feb 16 2015
Grado 10 orientaciones trabajo final feb 16 2015Grado 10 orientaciones trabajo final feb 16 2015
Grado 10 orientaciones trabajo final feb 16 2015mkciencias
 
Five habits for the front-end of innovation
Five habits for the front-end of innovationFive habits for the front-end of innovation
Five habits for the front-end of innovationPlan
 
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけどKotlinこんなん出ましたけど
Kotlinこんなん出ましたけどyy yank
 
Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...
Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...
Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...Energy Digital Summit
 
Views Toward Nutrition and Healthful Eating Among Millennials
Views Toward Nutrition and Healthful Eating Among MillennialsViews Toward Nutrition and Healthful Eating Among Millennials
Views Toward Nutrition and Healthful Eating Among MillennialsFood Insight
 

Viewers also liked (20)

Energy storage what weve learned from puerto ricos mtrs (saloman)
Energy storage what weve learned from puerto ricos mtrs (saloman)Energy storage what weve learned from puerto ricos mtrs (saloman)
Energy storage what weve learned from puerto ricos mtrs (saloman)
 
Thousand Smiles Pitch
Thousand Smiles PitchThousand Smiles Pitch
Thousand Smiles Pitch
 
Google Analytics and Google AdWords for the Online Marketer
Google Analytics and Google AdWords for the Online MarketerGoogle Analytics and Google AdWords for the Online Marketer
Google Analytics and Google AdWords for the Online Marketer
 
Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail
Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail
Entrepreneurial lesson number 1 : Why so many entreprenerial businesses fail
 
EY O viziune a cresterii - editia de toamna 2016
EY O viziune a cresterii - editia de toamna 2016EY O viziune a cresterii - editia de toamna 2016
EY O viziune a cresterii - editia de toamna 2016
 
不到長城非好漢
不到長城非好漢不到長城非好漢
不到長城非好漢
 
Web Scraping for Non Programmers
Web Scraping for Non ProgrammersWeb Scraping for Non Programmers
Web Scraping for Non Programmers
 
4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory
4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory
4.5 Super Tested Secrets To Tweeter Your Way To Facebook Glory
 
Presentación proyecto grupo no. 178
Presentación proyecto grupo no. 178Presentación proyecto grupo no. 178
Presentación proyecto grupo no. 178
 
«Архитектор». Создай свой доход!
«Архитектор». Создай свой доход!«Архитектор». Создай свой доход!
«Архитектор». Создай свой доход!
 
Yet Another Keynote Speech
Yet Another Keynote SpeechYet Another Keynote Speech
Yet Another Keynote Speech
 
EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016
EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016
EY Business Barometer - O viziune a creșterii - ediția de toamnă 2016
 
Segundo ind
Segundo indSegundo ind
Segundo ind
 
Grado 11 p iii - actividades orientadoras de desempeños
Grado 11   p iii - actividades orientadoras de desempeñosGrado 11   p iii - actividades orientadoras de desempeños
Grado 11 p iii - actividades orientadoras de desempeños
 
Grado 10 orientaciones trabajo final feb 16 2015
Grado 10 orientaciones trabajo final feb 16 2015Grado 10 orientaciones trabajo final feb 16 2015
Grado 10 orientaciones trabajo final feb 16 2015
 
Hofstede video
Hofstede videoHofstede video
Hofstede video
 
Five habits for the front-end of innovation
Five habits for the front-end of innovationFive habits for the front-end of innovation
Five habits for the front-end of innovation
 
Kotlinこんなん出ましたけど
Kotlinこんなん出ましたけどKotlinこんなん出ましたけど
Kotlinこんなん出ましたけど
 
Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...
Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...
Brands & Publishers: A Symbiotic Relationship for the Digital Age - Stacy Mar...
 
Views Toward Nutrition and Healthful Eating Among Millennials
Views Toward Nutrition and Healthful Eating Among MillennialsViews Toward Nutrition and Healthful Eating Among Millennials
Views Toward Nutrition and Healthful Eating Among Millennials
 

Similar to I dream of ISPWeb

A Mockery of a persentation
A Mockery of a persentationA Mockery of a persentation
A Mockery of a persentationGil Zilberfeld
 
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012TEST Huddle
 
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...Turkish Testing Board
 
An Introduction to Developer Testing
An Introduction to Developer TestingAn Introduction to Developer Testing
An Introduction to Developer TestingWill Green
 
Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Bhavin Javia
 
Project Management in 3 Slides
Project Management in 3 SlidesProject Management in 3 Slides
Project Management in 3 SlidesLonnie Sorrells
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDDDror Helper
 
Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsPerfecto by Perforce
 
Patterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test CodePatterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test CodeTechWell
 
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015Yuval Yeret
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0Joakim Lindbom
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WaySmartBear
 
The Lean Startup fbFund Edition
The Lean Startup fbFund EditionThe Lean Startup fbFund Edition
The Lean Startup fbFund EditionEric Ries
 
Practical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamPractical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamJen-Chieh Ko
 
Build the Right Product Right: Transitioning Test from Critiquing to Defining
Build the Right Product Right: Transitioning Test from Critiquing to DefiningBuild the Right Product Right: Transitioning Test from Critiquing to Defining
Build the Right Product Right: Transitioning Test from Critiquing to DefiningTechWell
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsPerfecto by Perforce
 
.NET Frameworks Benchmarking
.NET Frameworks Benchmarking.NET Frameworks Benchmarking
.NET Frameworks Benchmarkingkloia
 

Similar to I dream of ISPWeb (20)

A Mockery of a persentation
A Mockery of a persentationA Mockery of a persentation
A Mockery of a persentation
 
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
Campbell & Readman - TDD It's Not Tester Driven Development - EuroSTAR 2012
 
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
Testistanbul 2016 - Keynote: "Why Automated Verification Matters" by Kristian...
 
An Introduction to Developer Testing
An Introduction to Developer TestingAn Introduction to Developer Testing
An Introduction to Developer Testing
 
Android testing
Android testingAndroid testing
Android testing
 
Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...Productive Programmer - Using IDE effectively and various small practices to ...
Productive Programmer - Using IDE effectively and various small practices to ...
 
Project Management in 3 Slides
Project Management in 3 SlidesProject Management in 3 Slides
Project Management in 3 Slides
 
Unit tests & TDD
Unit tests & TDDUnit tests & TDD
Unit tests & TDD
 
Advanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web AppsAdvanced Codeless Testing for Web Apps
Advanced Codeless Testing for Web Apps
 
NYC MeetUp 10.9
NYC MeetUp 10.9NYC MeetUp 10.9
NYC MeetUp 10.9
 
Patterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test CodePatterns of Automation: Simplify Your Test Code
Patterns of Automation: Simplify Your Test Code
 
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
DevOps - the Future of Agile - Why/What/How - from Enterprise DevOps Israel 2015
 
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.02014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
2014-10 DevOps NFi - Why it's a good idea to deploy 10 times per day v1.0
 
Critical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right WayCritical Capabilities to Shifting Left the Right Way
Critical Capabilities to Shifting Left the Right Way
 
The Lean Startup fbFund Edition
The Lean Startup fbFund EditionThe Lean Startup fbFund Edition
The Lean Startup fbFund Edition
 
Practical Testing Strategy for Agile Team
Practical Testing Strategy for Agile TeamPractical Testing Strategy for Agile Team
Practical Testing Strategy for Agile Team
 
Component Testing Slides.pptx
Component Testing Slides.pptxComponent Testing Slides.pptx
Component Testing Slides.pptx
 
Build the Right Product Right: Transitioning Test from Critiquing to Defining
Build the Right Product Right: Transitioning Test from Critiquing to DefiningBuild the Right Product Right: Transitioning Test from Critiquing to Defining
Build the Right Product Right: Transitioning Test from Critiquing to Defining
 
Mobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio TeamsMobile and Web App Testing for Visual Studio Teams
Mobile and Web App Testing for Visual Studio Teams
 
.NET Frameworks Benchmarking
.NET Frameworks Benchmarking.NET Frameworks Benchmarking
.NET Frameworks Benchmarking
 

More from Gil Zilberfeld

Dirty tests and How To Clean Them
Dirty tests and How To Clean ThemDirty tests and How To Clean Them
Dirty tests and How To Clean ThemGil Zilberfeld
 
Unit testing for Grown-ups
Unit testing for Grown-upsUnit testing for Grown-ups
Unit testing for Grown-upsGil Zilberfeld
 
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivZen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivGil Zilberfeld
 
Zen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationZen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationGil Zilberfeld
 
Spock: It's Only Logical
Spock: It's Only LogicalSpock: It's Only Logical
Spock: It's Only LogicalGil Zilberfeld
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and PlanningGil Zilberfeld
 
Dependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersDependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersGil Zilberfeld
 
Zen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceZen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceGil Zilberfeld
 
Spring Testing Features
Spring Testing FeaturesSpring Testing Features
Spring Testing FeaturesGil Zilberfeld
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and PlanningGil Zilberfeld
 
Real Life Test Maintenance
Real Life Test MaintenanceReal Life Test Maintenance
Real Life Test MaintenanceGil Zilberfeld
 
The Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outThe Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outGil Zilberfeld
 
Beter code for better tests
Beter code for better testsBeter code for better tests
Beter code for better testsGil Zilberfeld
 
The fastest BDD crash-course ever
The fastest BDD crash-course everThe fastest BDD crash-course ever
The fastest BDD crash-course everGil Zilberfeld
 
Playing games remotely
Playing games remotelyPlaying games remotely
Playing games remotelyGil Zilberfeld
 
An agile introduction to DevOps
An agile introduction to DevOpsAn agile introduction to DevOps
An agile introduction to DevOpsGil Zilberfeld
 

More from Gil Zilberfeld (20)

Dirty tests and How To Clean Them
Dirty tests and How To Clean ThemDirty tests and How To Clean Them
Dirty tests and How To Clean Them
 
Unit testing for Grown-ups
Unit testing for Grown-upsUnit testing for Grown-ups
Unit testing for Grown-ups
 
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel AvivZen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
Zen and the art of Test Maintenance - #TestIL Meetup Tel Aviv
 
Zen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance PresentationZen And the Art of Test Maintenance Presentation
Zen And the Art of Test Maintenance Presentation
 
Spock: It's Only Logical
Spock: It's Only LogicalSpock: It's Only Logical
Spock: It's Only Logical
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and Planning
 
Dependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to TestersDependency injection and Why It Matters to Testers
Dependency injection and Why It Matters to Testers
 
Zen and the Art of Test Maintenance
Zen and the Art of Test MaintenanceZen and the Art of Test Maintenance
Zen and the Art of Test Maintenance
 
Spring Testing Features
Spring Testing FeaturesSpring Testing Features
Spring Testing Features
 
Better Estimation and Planning
Better Estimation and PlanningBetter Estimation and Planning
Better Estimation and Planning
 
The Untold User Story
The Untold User StoryThe Untold User Story
The Untold User Story
 
Real Life Test Maintenance
Real Life Test MaintenanceReal Life Test Maintenance
Real Life Test Maintenance
 
The Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things outThe Whole Story - Mapping, Slicing and Figuring things out
The Whole Story - Mapping, Slicing and Figuring things out
 
Fractal test planning
Fractal test planningFractal test planning
Fractal test planning
 
Beter code for better tests
Beter code for better testsBeter code for better tests
Beter code for better tests
 
The fastest BDD crash-course ever
The fastest BDD crash-course everThe fastest BDD crash-course ever
The fastest BDD crash-course ever
 
Agile Intro to DevOps
Agile Intro to DevOpsAgile Intro to DevOps
Agile Intro to DevOps
 
Playing games remotely
Playing games remotelyPlaying games remotely
Playing games remotely
 
A Horror Story
A Horror StoryA Horror Story
A Horror Story
 
An agile introduction to DevOps
An agile introduction to DevOpsAn agile introduction to DevOps
An agile introduction to DevOps
 

I dream of ISPWeb

Editor's Notes

  1. My Tank storyI couldn’t test parts of the system separately, and that’s what unit testing is about. If I could, it will not take 3 months till the next test, and I would know if my fixes were correct (they we’re not).
  2. How do you do unit testingHow is the SharePoint world different (or similar) to the rest of the world
  3. Testing units of the software, without the restSimple, but not easily achievable.Software is already kvetched together from the get go.And SharePoint is a 3rd party which we don’t have control over. We cannot disconnect from the server.
  4. My team was always fighting over because of broken builds.My testers did not trust the devs.As a manager, I had to deal with that. Oh the headache.Two questions: How do you know your stuff works?How do you know you haven’t broken anything?And then comes magicPeople are not afraid to make changes to their codeYou know exactly what failedIt takes a lot less time to debugNo more stupid bugzIt makes you THINK about the code you’re writing.It makes you a professional – you are responsible to test your code, not QA
  5. Moment of Hebrew:Unit testing = Automated unit testing.When I started at Bio-Rad (1997) the first thing they taught me was unit testing. Manual.VB Form, for a C++ COM componnet.This is not repeatable.When I changed my code, I did not go through all the scenarios I’ve already tested.And when you fix a bug, in a component written 6 months ago, would you even remember? No.Unit tests help you remember, and remind you.When something breaks, you’ll know immediately. The sooner the better. And mostly, that’s what automated unit tests do. They shorten the feedback cycle from weeks and months to seconds and minutes. It’s easier to fix something that you just wrote.And this is key: unit tests should run quickly. If they don’t the vicious cycle begins: No quick feedback, less test runs. Then why should I write tests if I don’t run them, and the road to hell is now paved.
  6. Let’s take a look at the environment.First we need a framework. We need to say – this is a test, and that’s the criteria for pass/fail.Then you need a runner, and result view.MSTest (yes, there’s NUnit, but you don’t need it).Show logic of webpartCreate a new projectAdd referenceShow attributesWrite //AAARename testWrite testRun test.Notice we’re testing logic.In the real world, it’s not that easy.
  7. Code is not testable by default.All kind of tutorials, don’t prepare you for testability. They give you unstructured code. This has changed about a year ago with P&P promoting unit tests.Who knows what P&P is?It’s still not enough. We’ll go into MS ambivalent relations with unit testing later.Who is using SP 2010? Some improvement there since 2008.The F5 Build/Deploy/ Test cycle is slow. It takes minutes. Slowness, kills unit tests.Speaking of which, who uses a virtual environment for development? It’s slow by nature.
  8. We’ll see about that in the next session.
  9. Dependencies is why most people stop doing unit testing.Overriding dependencies is hard.
  10. Let you change the behavior of your code, without changing it. (mostly)Basically, isolation frameworks allow you to do 2 thing by creating fake objects.
  11. This is important: Without changing my production code.
  12. The Asserts I showed you before test state: properties, fields.What happens if I want to make sure a method was called with the correct arguments?Like database connect?With SharePoint its worse, because most of the object model is designed for reading, not building it..
  13. CostBoth can fake everything.Isolator is easier to write/readMoles doesn’t have a verify.With Moles you really need to know your lambdas. It’s painful.Isolator has more features, more functionality. It is a decidedly unit testing toolMicrosoft is not pushing it – hard to find examples on the net. 1 man show.And besides, we’re smarter and better looking.
  14. it's impossible to stick with unit testing without a frameworkWhich ever tool you use you need to understand, that you need a tool.Stupid bugz.You can start by downloading Isolator and Moles. Start writing unit tests.
  15. It's a productivity toolMake it part of your tool belt