SlideShare a Scribd company logo
TDD with Google Spreadsheets
TDD with Google Spreadsheets
{
who: „Wolfram Kriesing“,
what: „uxebu Co-Founder“,
since: „2008“,
does: „web apps since 1999“,
url: „http://uxebu.com“,
twitter: „@WolframKriesing“
}
TDD with Google Spreadsheets
TDD with Google Spreadsheets
TDD with Google Spreadsheets
{
what: „ES6 learning by doing“,
when: „new kata every day“,
url: „http://ES6katas.org“,
twitter: „@es6katas“
}
TDD with Google Spreadsheets
{
what: „ready to use TDD env“,
why: „practice, practice, practice“,
url: „http://TDDbin.com“,
twitter: „@tddbin“
}
TDD with Google Spreadsheets
{
what: „TDD, pairing, clean code“,
when: „every 3 months“,
next: „5th September 2015“,
url: „http://jsCodeRetreat.com“,
twitter: „@jsCodeRetreat“
}
TDD with Google Spreadsheets
TDD with Google Spreadsheets
TDD?
TDD with Google Spreadsheets
SIM
PLI
CITY
TDD with Google Spreadsheets
IHAD
TO
I
TO
X!e x p l a i n
I
TO
X!TO A
KID
TDD with Google Spreadsheets
US
COF
F US
COon
what?
TESTF R A M E
WORKS
TESTF R A M E
WORKS?
expect().toBe()
expect().to.be()
assert.equal()
Jasmine image…
mocha image…
many others, doh, quint, jsunit, tap, …
TEST
u n d e r d a h o o d
FRA
MEWORK
undefined
AssertionError: 1 == 2
at repl:1:9
at REPLServer.self.eval (repl.js:110:21)
at Interface.<anonymous> (repl.js:239:12)
at Interface.EventEmitter.emit (events.js:95:17)
at Interface._onLine (readline.js:202:10)
at Interface._line (readline.js:531:8)
at Interface._ttyWrite (readline.js:760:14)
at ReadStream.onkeypress (readline.js:99:10)
at ReadStream.EventEmitter.emit (events.js:98:17)
at emitKey (readline.js:1095:12)
> assert.equal(1,2)
$ node
> assert.equal(1,1)
assert.js:92
throw new assert.AssertionError({
^
AssertionError: 1 == 2
at Object.<anonymous> (/Users/cain/tmp/fail.js:1:81
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
> cat fail.js
require('assert').equal(1,2);
console.log('failed?');
> node fail.js
KIND
OF
TEST
TDD with Google Spreadsheets
STYLE
https://www.goodreads.com/quotes/tag/learning
TDD with Google Spreadsheets
reduce it to the core
=
focus
THE
TASK
https://github.com/search?utf8=✓&q=roman+numerals
https://github.com/search?l=JavaScript&q=roman+numerals&type=Repositories&utf8=✓
https://github.com/marcusholmgren/RomanNumerals/blob/master/spec/romanConverterSpec.coffee
https://github.com/Ginkko/roman/blob/master/spec/specs.js
https://github.com/Bryukh-Checkio-Tasks/checkio-task-roman-numerals/blob/master/verification/tests.py
https://github.com/davidbaldwin/roman/blob/master/src/_roman_test.js
Noise
polluting our intent
noise pollution
the programming language
noise pollution
the programming language
Let’s remove it!
Language noise++
Language noise++
FRA
MEWORK
FRA
MEWORK
Photo by Great Beyond - Creative Commons Attribution-NonCommercial-ShareAlike License https://www.flickr.com/photos/26104563@N00 Created with Haiku Deck
lots of work done
?
TDD with Google Spreadsheets
Completely Missing
• result beside test
• ugly stack traces
• context switch necessary
Noise
covers
and
blurs
N O W
LET’S
CODE
EX
AMP
LES
TDD with Google Spreadsheets
TDD with Google Spreadsheets
TDD with Google Spreadsheets
TDD with Google Spreadsheets
TDD with Google Spreadsheets
TDD with Google Spreadsheets
ES6 Katas
JS CodeRetreat
TDD bin
uxebu.com/workshop
@WolframKriesing

More Related Content

PDF
TDD with Google Spreadsheets #enterjs 2015
PDF
TDD for Kids - VLCjs (Valencia Spain, July 2015)
PDF
ES6 katas - talk given at enterjs
PDF
Baby steps
PDF
WordPress History
PDF
ЛЮДМИЛА НЕСВІТІЙ «UI авто-тести з максимальною швидкiстю та вигодою» Lviv QA ...
ODP
Kixx Slide Show
PPTX
Programming Lecture 1st
TDD with Google Spreadsheets #enterjs 2015
TDD for Kids - VLCjs (Valencia Spain, July 2015)
ES6 katas - talk given at enterjs
Baby steps
WordPress History
ЛЮДМИЛА НЕСВІТІЙ «UI авто-тести з максимальною швидкiстю та вигодою» Lviv QA ...
Kixx Slide Show
Programming Lecture 1st

What's hot (8)

PDF
Build a Web App with JavaScript & jQuery
PPTX
Programming Lecture 2nd - Flask and Heroku in Python -
PDF
Building Cloud Native Progressive Web Apps with Angular and Spring Boot - Dev...
PDF
Getting Hooked on Twitch’s Webhooks - TwitchCon Developer Day 2017
PDF
WordCamp Reno - WP Network Effects
PDF
Deis - Building our own PaaS at Springest
PDF
Baki Goxhaj - Web Domination The Story of WordPress (OSCAL2014)
PDF
Build an App with JavaScript and jQuery (DTLA, 06/21)
Build a Web App with JavaScript & jQuery
Programming Lecture 2nd - Flask and Heroku in Python -
Building Cloud Native Progressive Web Apps with Angular and Spring Boot - Dev...
Getting Hooked on Twitch’s Webhooks - TwitchCon Developer Day 2017
WordCamp Reno - WP Network Effects
Deis - Building our own PaaS at Springest
Baki Goxhaj - Web Domination The Story of WordPress (OSCAL2014)
Build an App with JavaScript and jQuery (DTLA, 06/21)
Ad

Viewers also liked (8)

PPT
89893 633577679080468750
PDF
Pixelplant - WebDev Meetup Salzburg
PDF
Java scriptgettingstarted
PPTX
Impacts of the industrial revolution in Germany -Paula, Mariano and Mathias
PPT
Teens, tweens & social networking 2012
PPTX
Powerpoint = Death Presentation
PPT
Office 2007
PPS
Presentaciones Efectivas con PowerPoint
89893 633577679080468750
Pixelplant - WebDev Meetup Salzburg
Java scriptgettingstarted
Impacts of the industrial revolution in Germany -Paula, Mariano and Mathias
Teens, tweens & social networking 2012
Powerpoint = Death Presentation
Office 2007
Presentaciones Efectivas con PowerPoint
Ad

More from wolframkriesing (20)

PDF
JavaScript The Language Meetup - Async functions
PDF
Our react-native experiences at crewmeister
PDF
ES6Katas.org - an introduction and the story behind
PDF
ECMAScript 6 for real
PDF
Refactoring out of the mess
PDF
Day2 - Refactoring (Lecture SS 2015)
PDF
Day1 - TDD (Lecture SS 2015)
PDF
react.js - DOM as it was meant
PDF
Better Code through TDD
PDF
April JavaScript Tools
PDF
Presentation Mobile Monday Munich, March 2012
PDF
Webtestsuite black berrydevcon
PDF
PDF
JavaScript Tools (PHPConference 2011, Berlin)
PDF
NEXT11, Puzzle pieces of our mobile web approach
PDF
Munichjs javascript
PDF
HTML5 Apps - Mobile Developer Summit Bangalore
PDF
Best Practices - Mobile Developer Summit
PDF
Mobile Future - Mobile Developer Summit Bangalore
JavaScript The Language Meetup - Async functions
Our react-native experiences at crewmeister
ES6Katas.org - an introduction and the story behind
ECMAScript 6 for real
Refactoring out of the mess
Day2 - Refactoring (Lecture SS 2015)
Day1 - TDD (Lecture SS 2015)
react.js - DOM as it was meant
Better Code through TDD
April JavaScript Tools
Presentation Mobile Monday Munich, March 2012
Webtestsuite black berrydevcon
JavaScript Tools (PHPConference 2011, Berlin)
NEXT11, Puzzle pieces of our mobile web approach
Munichjs javascript
HTML5 Apps - Mobile Developer Summit Bangalore
Best Practices - Mobile Developer Summit
Mobile Future - Mobile Developer Summit Bangalore

Recently uploaded (20)

PDF
Encapsulation theory and applications.pdf
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
KodekX | Application Modernization Development
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
Review of recent advances in non-invasive hemoglobin estimation
PDF
cuic standard and advanced reporting.pdf
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
Spectral efficient network and resource selection model in 5G networks
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
Cloud computing and distributed systems.
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Electronic commerce courselecture one. Pdf
PDF
NewMind AI Weekly Chronicles - August'25 Week I
Encapsulation theory and applications.pdf
Dropbox Q2 2025 Financial Results & Investor Presentation
KodekX | Application Modernization Development
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
Chapter 3 Spatial Domain Image Processing.pdf
Understanding_Digital_Forensics_Presentation.pptx
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
Review of recent advances in non-invasive hemoglobin estimation
cuic standard and advanced reporting.pdf
20250228 LYD VKU AI Blended-Learning.pptx
The AUB Centre for AI in Media Proposal.docx
Spectral efficient network and resource selection model in 5G networks
Diabetes mellitus diagnosis method based random forest with bat algorithm
Cloud computing and distributed systems.
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Reach Out and Touch Someone: Haptics and Empathic Computing
“AI and Expert System Decision Support & Business Intelligence Systems”
Electronic commerce courselecture one. Pdf
NewMind AI Weekly Chronicles - August'25 Week I

TDD with Google Spreadsheets