SlideShare a Scribd company logo
Garrett Honeycutt
gh@learnpuppet.com
learnpuppet.com
@learnpuppet
Functional testing for
configuration management
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
spec vs
functional
http://www.structuretech1.com/wp-content/uploads/2012/11/Gate-valve-exploded1.jpg
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
what is
functional
testing?
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
Functional test for ntp module
1. set time incorrectly
2. apply ntp class
3. check that time is correct
#/bin/sh
#
puppet agent -t
while [ $? -ne 0 ]
do
puppet agent -t
done
Functional test for
idempotency
1. start with a blank system
2. apply class
3. changes should occur
4. apply class again
5. no changes occur
why write
tests at
all?
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
tooling
https://github.com/unixmonkey/learngit
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
http://serverspec.org/
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
how to
approach
functionally test
each module
functionally test
each role
role: repo
* main entry point is the class
yum::server
role: repo
* main entry point is the class
yum::server
* simple apache web server with a
DocumentRoot set to serve packages
role: repo
* main entry point is the class
yum::server
* simple apache web server with a
DocumentRoot set to serve packages
* manages only a couple files and
packages
apache hosts rsyslog
apache::mod::cache inittab selinux
apache::mod::cgi motd ssh
apache::mod::dav network sysklogd
apache::mod::dav_fs nsswitch timezone
apache::mod::default ntp types
apache::mod::proxy pam utils
apache::mod::ssl pam::accesslogin vim
apache::params pam::limits wget
common papertrail yum
dnsclient puppet::agent yum::server
facter redhat yum::updatesd
apache hosts rsyslog
apache::mod::cache inittab selinux
apache::mod::cgi motd ssh
apache::mod::dav network sysklogd
apache::mod::dav_fs nsswitch timezone
apache::mod::default ntp types
apache::mod::proxy pam utils
apache::mod::ssl pam::accesslogin vim
apache::params pam::limits wget
common papertrail yum
dnsclient puppet::agent yum::server
facter redhat yum::updatesd
36 classes in 23 modules
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
Monitoring
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
$ ping -c1 example.com
PING example.com (93.184.216.119): 56
data bytes
64 bytes from 93.184.216.119: icmp_seq=0
ttl=58 time=4.947 ms
--- example.com ping statistics ---
1 packets transmitted, 1 packets
received, 0.0% packet loss
round-trip min/avg/max/stddev =
4.947/4.947/4.947/0.000 ms
$ curl example.com -I
HTTP/1.1 200 OK
Accept-Ranges: bytes
Cache-Control: max-age=604800
Content-Type: text/html
Date: Thu, 13 Nov 2014 03:52:15 GMT
Etag: "359670651"
Expires: Thu, 20 Nov 2014 03:52:15 GMT
Last-Modified: Fri, 09 Aug 2013 23:54:35
GMT
Server: ECS (pae/3796)
X-Cache: HIT
x-ec-custom-error: 1
Content-Length: 1270
1. set the role
2. converge on model
3. seed a package on the
system
4. on another system, set it to
use the first as a repo
5. install the seeded package
from the repo
20150314  - Functional Testing for Configuration Management @ Cascadia IT Conference
who does
what?
how to
automate
&&
Garrett Honeycutt
gh@learnpuppet.com
learnpuppet.com
@learnpuppet

More Related Content

PDF
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
Jacek Gebal
 
PDF
Bgoug 2019.11 building free, open-source, plsql products in cloud
Jacek Gebal
 
PDF
POUG2019 - Test your PL/SQL - your database will love you
Jacek Gebal
 
PDF
POUG Meetup 1st MArch 2019 - utPLSQL v3 - Testing Framework for PL/SQL
Jacek Gebal
 
PPTX
Python in Test automation
Krishnana Sreeraman
 
PDF
PUG Romagna - Pipeline + Deployer PHP
Giuseppe Morelli
 
PDF
Test all the things! Automated testing with Drupal 8
Sam Becker
 
PDF
Bgoug 2019.11 test your pl sql - not your patience
Jacek Gebal
 
prohuddle-utPLSQL v3 - Ultimate unit testing framework for Oracle
Jacek Gebal
 
Bgoug 2019.11 building free, open-source, plsql products in cloud
Jacek Gebal
 
POUG2019 - Test your PL/SQL - your database will love you
Jacek Gebal
 
POUG Meetup 1st MArch 2019 - utPLSQL v3 - Testing Framework for PL/SQL
Jacek Gebal
 
Python in Test automation
Krishnana Sreeraman
 
PUG Romagna - Pipeline + Deployer PHP
Giuseppe Morelli
 
Test all the things! Automated testing with Drupal 8
Sam Becker
 
Bgoug 2019.11 test your pl sql - not your patience
Jacek Gebal
 

What's hot (20)

PPTX
Automation is Easy! (python version)
Iakiv Kramarenko
 
PPTX
Test driving QML
Artem Marchenko
 
ODP
Automatic codefixes
Sven Rautenberg
 
PDF
Appium & Robot Framework
Furkan Ertürk
 
ODP
First Real Pull Request Ever
Ikuru Kanuma
 
PPTX
Integration Group - Robot Framework
OpenDaylight
 
PDF
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Gareth Bowles
 
PDF
Quality of life through Unit Testing
Sian Lerk Lau
 
PPTX
Test driving-qml
Artem Marchenko
 
PDF
Manen Ant SVN
Sriskandarajah Suhothayan
 
PDF
Test Driven Development
Papp Laszlo
 
PPTX
Robot Framework
Onur Baskirt
 
PPTX
XPDays-2018
Yegor Maksymchuk
 
PDF
Complementing Unit Testing with Static Analysis, with NUnit as an Example
PVS-Studio
 
PDF
Unit Testing your React / Redux app (@BucharestJS)
Alin Pandichi
 
ODP
Continuous Delivery of Puppet Manifests
Kris Buytaert
 
ODP
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
Mickael Istria
 
PPTX
Robot framework
Rochak Bhalla
 
PPTX
Interpreter RPG to Java
farerobe
 
PDF
UPC Plone Testing Talk
Timo Stollenwerk
 
Automation is Easy! (python version)
Iakiv Kramarenko
 
Test driving QML
Artem Marchenko
 
Automatic codefixes
Sven Rautenberg
 
Appium & Robot Framework
Furkan Ertürk
 
First Real Pull Request Ever
Ikuru Kanuma
 
Integration Group - Robot Framework
OpenDaylight
 
Managing Jenkins with Jenkins (Jenkins User Conference Palo Alto, 2013)
Gareth Bowles
 
Quality of life through Unit Testing
Sian Lerk Lau
 
Test driving-qml
Artem Marchenko
 
Test Driven Development
Papp Laszlo
 
Robot Framework
Onur Baskirt
 
XPDays-2018
Yegor Maksymchuk
 
Complementing Unit Testing with Static Analysis, with NUnit as an Example
PVS-Studio
 
Unit Testing your React / Redux app (@BucharestJS)
Alin Pandichi
 
Continuous Delivery of Puppet Manifests
Kris Buytaert
 
[EclipseCon NA 2014] Integration tests for RCP made easy with SWTBot and Tycho
Mickael Istria
 
Robot framework
Rochak Bhalla
 
Interpreter RPG to Java
farerobe
 
UPC Plone Testing Talk
Timo Stollenwerk
 
Ad

Similar to 20150314 - Functional Testing for Configuration Management @ Cascadia IT Conference (19)

PDF
Puppet Camp Berlin 2015: Nigel Kersten | Puppet Keynote
NETWAYS
 
PDF
Puppet Camp Berlin 2015: Puppet Keynote
Puppet
 
PDF
Puppet Camp London Fall 2014: Keynote
Puppet
 
PDF
Puppet Camp Seattle 2014: Keynote
Puppet
 
PDF
Puppet Camp Atlanta 2014: Keynote
Puppet
 
PDF
Puppet Camp Amsterdam 2015: Keynote
Puppet
 
PDF
Puppet - Configuration Management Made Eas(ier)
Aaron Bernstein
 
PDF
New york puppet practitioner training
howardsmith44
 
PDF
Automatic functional testing easier than you thought Bartosz Cisek
Ireland & UK Moodlemoot 2012
 
PDF
Nashville Symfony Functional Testing
Brent Shaffer
 
PDF
Presentation
Rudy Gevaert
 
PPTX
Functional tests in_symfony
Sayed Ahmed
 
PDF
Puppet Camp Portland 2015:
Puppet
 
PDF
Puppet Camp Portland 2015: Keynote
Puppet
 
PDF
Puppet Camp Melbourne: Keynote
Puppet
 
PDF
Our Puppet Story (Linuxtag 2014)
DECK36
 
PDF
Automation with puppet
Rahul Bajaj
 
PDF
Puppet getting started by Dirk Götz
NETWAYS
 
PDF
Puppet Keynote by Ralph Luchs
NETWAYS
 
Puppet Camp Berlin 2015: Nigel Kersten | Puppet Keynote
NETWAYS
 
Puppet Camp Berlin 2015: Puppet Keynote
Puppet
 
Puppet Camp London Fall 2014: Keynote
Puppet
 
Puppet Camp Seattle 2014: Keynote
Puppet
 
Puppet Camp Atlanta 2014: Keynote
Puppet
 
Puppet Camp Amsterdam 2015: Keynote
Puppet
 
Puppet - Configuration Management Made Eas(ier)
Aaron Bernstein
 
New york puppet practitioner training
howardsmith44
 
Automatic functional testing easier than you thought Bartosz Cisek
Ireland & UK Moodlemoot 2012
 
Nashville Symfony Functional Testing
Brent Shaffer
 
Presentation
Rudy Gevaert
 
Functional tests in_symfony
Sayed Ahmed
 
Puppet Camp Portland 2015:
Puppet
 
Puppet Camp Portland 2015: Keynote
Puppet
 
Puppet Camp Melbourne: Keynote
Puppet
 
Our Puppet Story (Linuxtag 2014)
DECK36
 
Automation with puppet
Rahul Bajaj
 
Puppet getting started by Dirk Götz
NETWAYS
 
Puppet Keynote by Ralph Luchs
NETWAYS
 
Ad

More from garrett honeycutt (17)

PDF
20180823 - Sensu + Puppet
garrett honeycutt
 
PDF
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
garrett honeycutt
 
PDF
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
garrett honeycutt
 
PDF
(2016-06-11) Packer: Make Multi-Platform Images
garrett honeycutt
 
PDF
20150613 self-puppet v4-avoiding_dragons
garrett honeycutt
 
PDF
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
garrett honeycutt
 
PDF
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
garrett honeycutt
 
PDF
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
garrett honeycutt
 
PDF
20140406 loa days-tdd-with_puppet_tutorial
garrett honeycutt
 
PDF
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
garrett honeycutt
 
PDF
20130407 load puppevtv3-and_hiera
garrett honeycutt
 
KEY
20120331 - Expanded Intro to Puppet for LOAD
garrett honeycutt
 
PDF
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
garrett honeycutt
 
PDF
20110611 expanded intro-to_puppet_for_self
garrett honeycutt
 
KEY
20100425 Configuration Management With Puppet Lfnw
garrett honeycutt
 
PDF
Fighting Spam With A Perimeter Mail System 20071108 Sasag
garrett honeycutt
 
PDF
20090514 Introducing Puppet To Sasag
garrett honeycutt
 
20180823 - Sensu + Puppet
garrett honeycutt
 
Continuous Deployment Pipeline for Systems - Presented at Ohio LinuxFest 2017...
garrett honeycutt
 
Continuous Deployment Pipeline for Systems at Cascadia IT Conference - 2017-0...
garrett honeycutt
 
(2016-06-11) Packer: Make Multi-Platform Images
garrett honeycutt
 
20150613 self-puppet v4-avoiding_dragons
garrett honeycutt
 
2014-11-14 - Why Test Driven Development (TDD) Works for Sysadmins @ LISA14
garrett honeycutt
 
2014-11-11 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Seattle
garrett honeycutt
 
2014-08-19 Multiple Approaches to Managing Puppet Modules @ Puppet Camp Chicago
garrett honeycutt
 
20140406 loa days-tdd-with_puppet_tutorial
garrett honeycutt
 
TDD with Puppet Tutorial presented at Cascadia IT Conference 2014-03-07
garrett honeycutt
 
20130407 load puppevtv3-and_hiera
garrett honeycutt
 
20120331 - Expanded Intro to Puppet for LOAD
garrett honeycutt
 
20111110 how puppet-fits_into_your_existing_infrastructure_and_change_managem...
garrett honeycutt
 
20110611 expanded intro-to_puppet_for_self
garrett honeycutt
 
20100425 Configuration Management With Puppet Lfnw
garrett honeycutt
 
Fighting Spam With A Perimeter Mail System 20071108 Sasag
garrett honeycutt
 
20090514 Introducing Puppet To Sasag
garrett honeycutt
 

Recently uploaded (20)

PDF
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
PDF
Doc9.....................................
SofiaCollazos
 
PDF
Brief History of Internet - Early Days of Internet
sutharharshit158
 
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PDF
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
PDF
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
PPTX
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
PDF
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
PDF
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
PPTX
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
PDF
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
PDF
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
PDF
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
PDF
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
PDF
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
PPTX
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 
AI Unleashed - Shaping the Future -Starting Today - AIOUG Yatra 2025 - For Co...
Sandesh Rao
 
Doc9.....................................
SofiaCollazos
 
Brief History of Internet - Early Days of Internet
sutharharshit158
 
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Safe Software
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
Unlocking the Future- AI Agents Meet Oracle Database 23ai - AIOUG Yatra 2025.pdf
Sandesh Rao
 
SparkLabs Primer on Artificial Intelligence 2025
SparkLabs Group
 
IT Runs Better with ThousandEyes AI-driven Assurance
ThousandEyes
 
Oracle AI Vector Search- Getting Started and what's new in 2025- AIOUG Yatra ...
Sandesh Rao
 
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Safe Software
 
Structs to JSON: How Go Powers REST APIs
Emily Achieng
 
Agile Chennai 18-19 July 2025 | Emerging patterns in Agentic AI by Bharani Su...
AgileNetwork
 
Security features in Dell, HP, and Lenovo PC systems: A research-based compar...
Principled Technologies
 
Accelerating Oracle Database 23ai Troubleshooting with Oracle AHF Fleet Insig...
Sandesh Rao
 
AI-Cloud-Business-Management-Platforms-The-Key-to-Efficiency-Growth.pdf
Artjoker Software Development Company
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
OA presentation.pptx OA presentation.pptx
pateldhruv002338
 
Responsible AI and AI Ethics - By Sylvester Ebhonu
Sylvester Ebhonu
 
NewMind AI Weekly Chronicles - July'25 - Week IV
NewMind AI
 
New ThousandEyes Product Innovations: Cisco Live June 2025
ThousandEyes
 

20150314 - Functional Testing for Configuration Management @ Cascadia IT Conference