Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Testing @socialstudios.tv
Search
Ran Tavory
December 27, 2012
Programming
0
96
Testing @socialstudios.tv
An introduction talk to testing.
Really high level. Some best practices etc.
Python and JavaScript
Ran Tavory
December 27, 2012
Tweet
Share
More Decks by Ran Tavory
See All by Ran Tavory
go-grpc-channelz: a Go based UI for gRPC's channelz
rantav
0
420
Code Review (Navy Hackathon)
rantav
0
47
Infrastructure Testing Using Kubernetes And Golang
rantav
0
57
Infrastructure testing using Kubernetes
rantav
0
450
Interview Workshop - Technical Questions
rantav
0
280
Code Review Best Practices
rantav
0
59
Code Review @ AppsFlyer
rantav
0
56
GraphQL at Yodas
rantav
2
170
Git for champs
rantav
0
130
Other Decks in Programming
See All in Programming
TypeScriptから始める VR生活
tamagokakeg
2
150
The Final Frontier of Web Development: React Server Components vs Jakarta EE
ivargrimstad
0
260
TypeScriptのパフォーマンス改善
yajihum
14
5.3k
Unlocking Potential of Property Based Testing with Ractor
ohbarye
2
1.4k
Revisiting the Hotwire Landscape after Turbo 8 @ RailsConf 2024, Detroit
marcoroth
3
620
Long journey of Ruby standard library RubyKaigi 2024
andpad
2
720
[RailsConf Detroit 2024] Ruby on Fails - effective error handling with Rails conventions
talyssonoc
0
300
Embedding it into Ruby code
soutaro
2
540
Productivity is Messing Around and Having Fun
hollycummins
1
190
HonoのRPCで真の型安全が欲しかった
kosei28
1
170
Namespace, What and Why
tagomoris
5
2.6k
[RubyKaigi 2024] Ruby Mixology 101: adding shots of PHP, Elixir, and more
palkan
0
160
Featured
See All Featured
Scaling GitHub
holman
457
140k
Code Reviewing Like a Champion
maltzj
516
39k
Navigating Team Friction
lara
179
13k
A designer walks into a library…
pauljervisheath
201
23k
GraphQLとの向き合い方2022年版
quramy
33
13k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
323
20k
Debugging Ruby Performance
tmm1
70
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
126
32k
Gamification - CAS2011
davidbonilla
77
4.6k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
Building Applications with DynamoDB
mza
88
5.7k
Embracing the Ebb and Flow
colly
80
4.2k
Transcript
Testing @socialstudios.tv Thursday, December 27, 12
Debugging Sucks Testing Rocks Thursday, December 27, 12
Types of tests unit tests functional tests integration tests behavioral
tests UI testing monkey testing stress testing smoke testing usability testing production testing ... Thursday, December 27, 12
Today’s Focus: Unit Tests Thursday, December 27, 12
The nice thing Testable == Readable == Reusable == Documented
== Modular == Robust == Maintainable Thursday, December 27, 12
Observation: Tests == Documentation Good tests document the code they
are testing If the test passes ⇒ Documentation is up to date They also server as examples Thursday, December 27, 12
TDD 1. Write test first 2. Test fails 3. Write
code 4. Test passes 5. Commit Red - Green testing Thursday, December 27, 12
Good tests are Repeatable Fast Short Test only one thing
High coverage Thursday, December 27, 12
Bad test are Slow Depend on externals (fb, other websites,
db) Require a lot of setup Sometimes pass, sometimes fail Produce a lot of output Have exceptions in the log Thursday, December 27, 12
Side Effects are hard to test Good: def f(x): return
x * 2 Bad: def g(x): self.y = x * 2 Thursday, December 27, 12
Hard to test global variables current time / timing dependent
impl untested assumption (such as file load ordering) External state (database) Thursday, December 27, 12
External dependencies How do you test facebook? How do you
test a DAO (data access object) Thursday, December 27, 12
Mocks Use mocks (spies) instead of externals Thursday, December 27,
12
UI Testing It’s hard ⇒ only if you must! Use
selenium? We have to think about this... Thursday, December 27, 12
JavaScript: Jasmine Thursday, December 27, 12
Python: unittest2 + nose Thursday, December 27, 12
CI Server I’ll work on it... Thursday, December 27, 12
test.sh A single file to run them all Thursday, December
27, 12
Every Commit must be tested New code: TDD or not
it’s your choice. But you have to submit tested code Legacy code: First wrap with tests Then modify Thursday, December 27, 12
Resources http://googletesting.blogspot.com http://docs.python.org/2/library/ doctest.html http://pivotal.github.com/jasmine/ http://www.voidspace.org.uk/python/ mock/ Thursday, December 27,
12