Building and Scalinga Test Driven CultureEngineering at Scale / AppNexusWednesday, May 8th 2013@dblockdotorghttp://artsy.n...
Open Source FTW!
1:0 Dev:Test1124:1 Test:Codehttp://www.sqlite.org/testing.html3full automationeverybody testsrock solid
some automationsome people testsome software doesn’t install42:1 Dev:Test?:1 Test:Code
5full automationcontinuous everything8 hours of sleep per day51:0 Dev:Test2:1 Test:Code
Artsy.net Website is [Relatively] Big5534 Automated Tests1h22m to Run / 6 Machineshttp://art.sy/artwork/liu-di-animal-regu...
RSpec / BDD“when X and Y it does X + Y” Data Models : ODM with real data Ruby API : HTTP request – response Integration...
Models = Mongo ODM + Fabricators: 2156 testscontext “spline” dolet(:spline) { Fabricate :spline }it “reticulate! updates r...
Ruby API: 1894 Testscontext “spline” doit “create” doexpect {post “/api/spline?name=test”response.status.should == 201}.to...
Integration: 1484 Testscontext “spline” dolet(:spline) { Fabricate :spline }it “displays a spline” dovisit “/spline/#{spli...
1210x Everything
JavaScript: 960 TestsJasminebeforeEach ->view = new App.Views.UsersEditview.model = new App.Models.User fabricate ‘user’de...
JavaScript: Recent Projects Node – headless unit testing for client-side code Mocha – rspec-like testing Sinon – stub ...
Test Driven Culture Tests are second nature A bug becomes a test becomes a fix A feature starts as a test becomes a fea...
Successful Test Driven Culture“It Works”
Signs of a Test Driven Culture
Cost of Failure A very important demo with a potential investor A very important person using our site Hundreds of thou...
“To Be or Not to Be”
Testability
UI?
Ownershiphttps://groups.google.com/forum/?fromgroups=#!topic/ruby-grape/VELsU47wXkU“It doesn’t work!”
 Management Money Consultants23Don’t Count On Them
 Remove Those that Talk About Testing Hire From Open-Source Remove the Safety Net Use a Non-Compiling Language Do Dev...
@dblockdotorgdblock@dblock.orghttp://artsy.netThank You
Building and Scaling a Test Driven Culture
Upcoming SlideShare
Loading in …5
×

Building and Scaling a Test Driven Culture

500
-1

Published on

Talk given at AppNexus NYC, May 2013.

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
500
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
4
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • https://github.com/intridea/grapehttps://github.com/twall/jnahttps://github.com/dblock/dotnetinstallerhttps://github.com/dblock/waffle
  • Initializers: 190Models: 1966Acceptance: 1118Views: 136API: 1894Jasmine: 230Total:
  • Building and Scaling a Test Driven Culture

    1. 1. Building and Scalinga Test Driven CultureEngineering at Scale / AppNexusWednesday, May 8th 2013@dblockdotorghttp://artsy.net1
    2. 2. Open Source FTW!
    3. 3. 1:0 Dev:Test1124:1 Test:Codehttp://www.sqlite.org/testing.html3full automationeverybody testsrock solid
    4. 4. some automationsome people testsome software doesn’t install42:1 Dev:Test?:1 Test:Code
    5. 5. 5full automationcontinuous everything8 hours of sleep per day51:0 Dev:Test2:1 Test:Code
    6. 6. Artsy.net Website is [Relatively] Big5534 Automated Tests1h22m to Run / 6 Machineshttp://art.sy/artwork/liu-di-animal-regulation-no-26
    7. 7. RSpec / BDD“when X and Y it does X + Y” Data Models : ODM with real data Ruby API : HTTP request – response Integration : Capybara7
    8. 8. Models = Mongo ODM + Fabricators: 2156 testscontext “spline” dolet(:spline) { Fabricate :spline }it “reticulate! updates reticulated count” doexpect {spline.reticulate!}.to change(Spline.reticulated, :count).by(1)endend8
    9. 9. Ruby API: 1894 Testscontext “spline” doit “create” doexpect {post “/api/spline?name=test”response.status.should == 201}.to change(Spline, :count).by(1)endend9
    10. 10. Integration: 1484 Testscontext “spline” dolet(:spline) { Fabricate :spline }it “displays a spline” dovisit “/spline/#{spline.id}”page.should have_css “.spline[id=#{spline.id}]”endend10
    11. 11. 1210x Everything
    12. 12. JavaScript: 960 TestsJasminebeforeEach ->view = new App.Views.UsersEditview.model = new App.Models.User fabricate ‘user’describe ‘#save’, ->it ‘saves the model’, ->view.model.set ‘name’, ‘updated’view.save()JSON.parse(jqLastAjaxRequest.data).name.should equal ‘updated’13
    13. 13. JavaScript: Recent Projects Node – headless unit testing for client-side code Mocha – rspec-like testing Sinon – stub JSDom – simulate DOM API Zombie – headless browser integration testing
    14. 14. Test Driven Culture Tests are second nature A bug becomes a test becomes a fix A feature starts as a test becomes a feature Tests absorb developer stress Everyone has confidence in moving forward
    15. 15. Successful Test Driven Culture“It Works”
    16. 16. Signs of a Test Driven Culture
    17. 17. Cost of Failure A very important demo with a potential investor A very important person using our site Hundreds of thousands of users You’re selling things for $
    18. 18. “To Be or Not to Be”
    19. 19. Testability
    20. 20. UI?
    21. 21. Ownershiphttps://groups.google.com/forum/?fromgroups=#!topic/ruby-grape/VELsU47wXkU“It doesn’t work!”
    22. 22.  Management Money Consultants23Don’t Count On Them
    23. 23.  Remove Those that Talk About Testing Hire From Open-Source Remove the Safety Net Use a Non-Compiling Language Do Devops24Maintain a Test Driven Culture
    24. 24. @dblockdotorgdblock@dblock.orghttp://artsy.netThank You
    1. A particular slide catching your eye?

      Clipping is a handy way to collect important slides you want to go back to later.

    ×