SlideShare a Scribd company logo
1 of 11
Test Driven Development (TDD)
with Windows PowerShell
For Windows Developers, Windows System
Administrators and Windows DevOps
Lecturer: Rolf Hemmerling, hemmerling@gmx.net
Date: 2015-06-13
Slides: http://slideshare.com/hemmerling
License: Creative Commons - Attribution-ShareAlike 4.0
Generic http://www.creativecommons.org/licenses/by-sa/4.0/
2
Test Driven Development (TDD)
with Windows PowerShell
1.The Basics of TDD
2.FizzBuzz: Hands-on TDD for Developers
3.Testing Frameworks
4.??: Hands-on TDD for DevOps
5.Coding Rules Checking
6.Web Application Testing
7.Practical Tips
8.Resumee
9.Resources
3
1 The Basics of TDD
1 Write a Test
4 Test successfull
3 Write the Code
2 Test fails
4
2 FizzBuzz: Hands-on TDD for
Developers
Demo
5
3 Testing Frameworks
# Type Tool name Comments
1 TDD Pester Module
2 TDD Jester Module,
Similar to Pester, but different syntax :-(
3 TDD PSTest Module,
makes use of the Nunit DLL
4 TDD PSUnit by Klaus
Graefensteiner
No module,
Test runner “PSUnit.Run.ps1”
5 TDD PSUnit by lidingshan Module
6 Lint ScriptCop Module
7 Web
Automation
Test_Run by James
McCaffrey
Demo on Win8.1 with IIS, MSIE, PS
6
4 ??: Hands-on TDD for DevOps
and System Administrators :-)
Demo
7
5 Coding Rules Checking
With ScriptCop by Start-Automating
Lint alike
Get-Module -Name FizzBuzz | Test-Module
Get-Command -Name Get-FizzBuzz | Test-Command
Test-Command -ScriptBlock { function MyFunction{} }
.. but you can't check external .PS1 files ?!
Demo
8
6 Web Application Testing
by Microsoft Internet Explorer (MSIE) only
with Test_Run by James McCaffrey
as alternative to Selenium
Demo on Win8.1 with IIS, MSIE, PS
9
7 Practical Tips
● Use community events for free TDD training
● Global Day of CodeRetreat
● Softwerkskammer, Meetup groups, Java User
Groups, .NET Developer Groups, IT conferences
like Froscon, PyCamp....
● Be open to change your programming language on
such events ( Java, JS, Python, C#,.. )
● Start at home
● Continue at office by a pilot project
● Teach and train yourself with collegues, at own
events
10
8 Resumee
● The need
● The benefits
● The success
● The tools
11
9 Resources
● Links to all TDD and testing tools for PS:
http://hemmerling.com/doku.php/en/wscripting03.html
● Links to all sorts of TDD exercises ( Coding Dojo, CodeRetreat,..)
http://hemmerling.com/doku.php/en/codingdojo.html
● GitHub resource with many TDD code examples
http://github.com/hemmerling/codingdojo, also for PS
https://github.com/hemmerling/codingdojo/tree/master/src/fizzbuzz
● TDD Hands-on community-events
● http://softwerkskammer.org
● http://globalday.coderetreat.org/
● http://meetup.com/javascript-coderetreat/
● http://test-driven-development.meetup.com/

More Related Content

What's hot

Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupal
smithmilner
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
VincitOy
 

What's hot (20)

PHPUnit with Magento
PHPUnit with MagentoPHPUnit with Magento
PHPUnit with Magento
 
Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2Performance profiling and testing of symfony application 2
Performance profiling and testing of symfony application 2
 
Behaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with DrupalBehaviour Testing and Continuous Integration with Drupal
Behaviour Testing and Continuous Integration with Drupal
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
Creating a reasonable project boilerplate
Creating a reasonable project boilerplateCreating a reasonable project boilerplate
Creating a reasonable project boilerplate
 
Tdd presentation
Tdd presentationTdd presentation
Tdd presentation
 
C++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the uglyC++ Unit testing - the good, the bad & the ugly
C++ Unit testing - the good, the bad & the ugly
 
TDD for joomla extensions
TDD for joomla extensionsTDD for joomla extensions
TDD for joomla extensions
 
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
Improving Code Quality In Medical Software Through Code Reviews - Vincit Teat...
 
Automatic Test 2019-07-25
Automatic Test 2019-07-25Automatic Test 2019-07-25
Automatic Test 2019-07-25
 
User story workflow (eng)
User story workflow (eng)User story workflow (eng)
User story workflow (eng)
 
Buildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python frameworkBuildbot: The Continuous Integration Python framework
Buildbot: The Continuous Integration Python framework
 
The New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by PythonThe New York Times: Sustainable Systems, Powered by Python
The New York Times: Sustainable Systems, Powered by Python
 
Buildbot
BuildbotBuildbot
Buildbot
 
Developer Job in Practice
Developer Job in PracticeDeveloper Job in Practice
Developer Job in Practice
 
Code Obfuscation for Android & WP7
Code Obfuscation for Android & WP7Code Obfuscation for Android & WP7
Code Obfuscation for Android & WP7
 
C++ and Software Engineering 2015
C++ and Software Engineering 2015C++ and Software Engineering 2015
C++ and Software Engineering 2015
 
Working with c++ legacy code
Working with c++ legacy codeWorking with c++ legacy code
Working with c++ legacy code
 
Vagrant and Docker
Vagrant and DockerVagrant and Docker
Vagrant and Docker
 
Driving development in PHP
Driving development in PHPDriving development in PHP
Driving development in PHP
 

Viewers also liked

Viewers also liked (7)

TDD in Powershell
TDD in PowershellTDD in Powershell
TDD in Powershell
 
Professional Help for PowerShell Modules
Professional Help for PowerShell ModulesProfessional Help for PowerShell Modules
Professional Help for PowerShell Modules
 
The Hollywood Principle – Don´t call us, we call you
The Hollywood Principle –  Don´t call us, we call youThe Hollywood Principle –  Don´t call us, we call you
The Hollywood Principle – Don´t call us, we call you
 
Ux at wc
Ux at wcUx at wc
Ux at wc
 
Beleuchtunganalyse und -planung R3974 & R3978
Beleuchtunganalyse  und -planung R3974 & R3978Beleuchtunganalyse  und -planung R3974 & R3978
Beleuchtunganalyse und -planung R3974 & R3978
 
Worst of Job Application
Worst of Job ApplicationWorst of Job Application
Worst of Job Application
 
PowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまでPowerShellが苦手だった男がPowerShellを愛するようになるまで
PowerShellが苦手だった男がPowerShellを愛するようになるまで
 

Similar to Test Driven Development (TDD) with Windows PowerShell

Testing apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceTesting apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation Service
Kevin DeRudder
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Jacinto Limjap
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012
Steve Xu
 

Similar to Test Driven Development (TDD) with Windows PowerShell (20)

Python and test
Python and testPython and test
Python and test
 
Codeception: introduction to php testing (v2 - Aberdeen php)
Codeception: introduction to php testing (v2 - Aberdeen php)Codeception: introduction to php testing (v2 - Aberdeen php)
Codeception: introduction to php testing (v2 - Aberdeen php)
 
Codeception: introduction to php testing
Codeception: introduction to php testingCodeception: introduction to php testing
Codeception: introduction to php testing
 
Testing apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation ServiceTesting apps with MTM and Tea Foundation Service
Testing apps with MTM and Tea Foundation Service
 
Binary Studio Academy: .NET Code Testing
Binary Studio Academy: .NET Code TestingBinary Studio Academy: .NET Code Testing
Binary Studio Academy: .NET Code Testing
 
NET Code Testing
NET Code TestingNET Code Testing
NET Code Testing
 
PHP - Programming language war, does it matter
PHP - Programming language war, does it matterPHP - Programming language war, does it matter
PHP - Programming language war, does it matter
 
Unit testing (eng)
Unit testing (eng)Unit testing (eng)
Unit testing (eng)
 
PHPUnit
PHPUnitPHPUnit
PHPUnit
 
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012Unit testing, UI testing and Test Driven Development in Visual Studio 2012
Unit testing, UI testing and Test Driven Development in Visual Studio 2012
 
01. Introduction to Programming
01. Introduction to Programming01. Introduction to Programming
01. Introduction to Programming
 
Test Driven Development
Test Driven DevelopmentTest Driven Development
Test Driven Development
 
A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)A la découverte des google/test (aka gtest)
A la découverte des google/test (aka gtest)
 
Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012Testingfor continuousdeliverywithvisualstudio2012
Testingfor continuousdeliverywithvisualstudio2012
 
Stopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under TestStopping the Rot - Putting Legacy C++ Under Test
Stopping the Rot - Putting Legacy C++ Under Test
 
Hands on iOS developments with Jenkins
Hands on iOS developments with JenkinsHands on iOS developments with Jenkins
Hands on iOS developments with Jenkins
 
Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)Enterprise PHP (PHP London Conference 2008)
Enterprise PHP (PHP London Conference 2008)
 
Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?Why is .Net Technology Recognised for Software Development?
Why is .Net Technology Recognised for Software Development?
 
Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)Tdd is not about testing (C++ version)
Tdd is not about testing (C++ version)
 
X page developer
X page developerX page developer
X page developer
 

Recently uploaded

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Recently uploaded (20)

Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
ManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide DeckManageIQ - Sprint 236 Review - Slide Deck
ManageIQ - Sprint 236 Review - Slide Deck
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdfThe Ultimate Test Automation Guide_ Best Practices and Tips.pdf
The Ultimate Test Automation Guide_ Best Practices and Tips.pdf
 
Optimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTVOptimizing AI for immediate response in Smart CCTV
Optimizing AI for immediate response in Smart CCTV
 
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
The Guide to Integrating Generative AI into Unified Continuous Testing Platfo...
 
Microsoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdfMicrosoft AI Transformation Partner Playbook.pdf
Microsoft AI Transformation Partner Playbook.pdf
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
Pharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodologyPharm-D Biostatistics and Research methodology
Pharm-D Biostatistics and Research methodology
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
Software Quality Assurance Interview Questions
Software Quality Assurance Interview QuestionsSoftware Quality Assurance Interview Questions
Software Quality Assurance Interview Questions
 

Test Driven Development (TDD) with Windows PowerShell

  • 1. Test Driven Development (TDD) with Windows PowerShell For Windows Developers, Windows System Administrators and Windows DevOps Lecturer: Rolf Hemmerling, hemmerling@gmx.net Date: 2015-06-13 Slides: http://slideshare.com/hemmerling License: Creative Commons - Attribution-ShareAlike 4.0 Generic http://www.creativecommons.org/licenses/by-sa/4.0/
  • 2. 2 Test Driven Development (TDD) with Windows PowerShell 1.The Basics of TDD 2.FizzBuzz: Hands-on TDD for Developers 3.Testing Frameworks 4.??: Hands-on TDD for DevOps 5.Coding Rules Checking 6.Web Application Testing 7.Practical Tips 8.Resumee 9.Resources
  • 3. 3 1 The Basics of TDD 1 Write a Test 4 Test successfull 3 Write the Code 2 Test fails
  • 4. 4 2 FizzBuzz: Hands-on TDD for Developers Demo
  • 5. 5 3 Testing Frameworks # Type Tool name Comments 1 TDD Pester Module 2 TDD Jester Module, Similar to Pester, but different syntax :-( 3 TDD PSTest Module, makes use of the Nunit DLL 4 TDD PSUnit by Klaus Graefensteiner No module, Test runner “PSUnit.Run.ps1” 5 TDD PSUnit by lidingshan Module 6 Lint ScriptCop Module 7 Web Automation Test_Run by James McCaffrey Demo on Win8.1 with IIS, MSIE, PS
  • 6. 6 4 ??: Hands-on TDD for DevOps and System Administrators :-) Demo
  • 7. 7 5 Coding Rules Checking With ScriptCop by Start-Automating Lint alike Get-Module -Name FizzBuzz | Test-Module Get-Command -Name Get-FizzBuzz | Test-Command Test-Command -ScriptBlock { function MyFunction{} } .. but you can't check external .PS1 files ?! Demo
  • 8. 8 6 Web Application Testing by Microsoft Internet Explorer (MSIE) only with Test_Run by James McCaffrey as alternative to Selenium Demo on Win8.1 with IIS, MSIE, PS
  • 9. 9 7 Practical Tips ● Use community events for free TDD training ● Global Day of CodeRetreat ● Softwerkskammer, Meetup groups, Java User Groups, .NET Developer Groups, IT conferences like Froscon, PyCamp.... ● Be open to change your programming language on such events ( Java, JS, Python, C#,.. ) ● Start at home ● Continue at office by a pilot project ● Teach and train yourself with collegues, at own events
  • 10. 10 8 Resumee ● The need ● The benefits ● The success ● The tools
  • 11. 11 9 Resources ● Links to all TDD and testing tools for PS: http://hemmerling.com/doku.php/en/wscripting03.html ● Links to all sorts of TDD exercises ( Coding Dojo, CodeRetreat,..) http://hemmerling.com/doku.php/en/codingdojo.html ● GitHub resource with many TDD code examples http://github.com/hemmerling/codingdojo, also for PS https://github.com/hemmerling/codingdojo/tree/master/src/fizzbuzz ● TDD Hands-on community-events ● http://softwerkskammer.org ● http://globalday.coderetreat.org/ ● http://meetup.com/javascript-coderetreat/ ● http://test-driven-development.meetup.com/