Front-end Javascript testing is a thing since 3/4 years now, but it’s still a ghost in the dev community: someone believes in it while someone else is not convinced at all.
This talk will tackle the misconceptions about testing, how and what to test, dependencies mocking and strategies to write tests in a profitable way without being afraid.
9. Kids run tests
every moment
http://www.psychalive.org/category/tantrums-2/ http://www.patrasevents.gr/article/100447-deite-tin-apisteuti-antidrasi-apo-morakia-pou-dokimazoun-lemoni-video
10. They are
the best at it
http://www.childrensdayton.org/cms/images/a0f6b517aba16ca5/index.html
11. They explore the unknowns
http://www.childrensdayton.org/cms/images/a0f6b517aba16ca5/index.html
13. Through tests we sense
the unknowns
http://www.dailymail.co.uk/news/article-2381456/How-science-spirit-world-really-makes-Ouija-board-dowsing-rods-move.html
15. you are testing already
(even if you are not)
http://www.hongkiat.com/blog/developer-habits/
16. you might just need to formalise
http://www.wisegeek.org/what-is-procedural-programming.htm
17. to, eventually, forget this
(almost)
https://twitter.com/fredzen/status/439774520111419392
18. What is not about
Task runner
Test Runner
Testing Platforms
Assertion Frameworks
IDEs integration
http://strongenough-christina.blogspot.co.uk/2012/10/my-tool-belt.html
19. What it is about
http://www.sourcecon.com/news/2010/11/19/sourcing-a-passing-fad-or-a-strategic-move/
20. I Build So Consistently
share
Identify
what to automate
create a
build script
make it
continuous
21. “[…] On several occasions I've heard
the reply, "Yes, we do CI."
Of course, I think, "Great!" and then
ask a few questions.
How much code coverage do you have
with your tests? How long does it take
to run your builds? What is your
average code complexity? How much
code duplication do you have?”
– Paul Duvall
22. to DTU* or not to DTU*?
(* Define Tests Upfront: tdd / bdd / acceptance)
http://comicsalliance.com/ryan-north-to-be-or-not-to-be-kickstarter-sets-record/
25. “it is a byproduct of test-after-
development and manifests itself
as the tendency for engineers
to only write tests that they
know pass.”
– Paul Bourdeaux
http://www.sundoginteractive.com/sunblog/posts/confirmation-bias-in-unit-testing
26. Code Review vs Pairing
http://powerbuilder.us/ http://meetingking.com/mini-meetings-or-pair-programming/
33. When I started testing
http://quoteko.com/lego-block.html http://karenchilvers.mycouncillor.org.uk/2013/09/28/planning-applications-week-ending-27th-september-2013/
34. There is actually much more
Unit
Behaviour
Acceptance
Usability
System
Integration
Performance
UI
Security
Scalability
…
35. How I see it now
Automatable !Automatable
Feature
Code
Unit
Acceptance Usability
Code Review
Linting Styleguide
Integration QA Testing
36. Testing code IS appealing
(or I have some mom issues, pick one)
http://gossip.whyfame.com/demi-moore-and-whoopi-goldberg-pay-tribute-to-ghost-co-star-patrick-swayze-613
37. “Egoism is the very essence
of a noble soul.”
– Friedrich Nietzsche
39. The curious case of
Javascript unit testing
Unit testing is
supposed to test a
single atomic “unit” of
functionality without
dependencies on
anything else
This is where you start
to run into serious
dependency problems
due to the interrelation
HTML and CSS
What do you test?
Usually how the user
interface responds to
user input.
41. test('htmlEncode', 1, function() {!
! ! var str = '<I love working with JS & CSS>';!
!
! ! equal(!
! ! ! MyApp.htmlEncode(str), !
! ! ! '<I love working with JS & CSS>'!
! ! );!
});
61. Can this be automated?
Are there technical reasons why this can’t be
automated, or practical reasons why automation
isn’t the best candidate
!
Does this need to be automated?
What is the actual benefit in making this an
automated test? How would it benefit the the
chain of work? How would it benefit the team?
Learn when to automate