issue with tracking fail that build
play

ISSUE WITH TRACKING? FAIL THAT BUILD! LAUNCH DAY SHIPPED IT! GO - PowerPoint PPT Presentation

ISSUE WITH TRACKING? FAIL THAT BUILD! LAUNCH DAY SHIPPED IT! GO TEAM! DID WE EVER FINISH the tracking? TWO WEEKS LATER 10 million events named REPLACEME . NOTHING ELSE. THE BIG DIVIDE CUE DATA BREAKING STUFF CUE PRODUCT IN TAG


  1. ISSUE WITH TRACKING? FAIL THAT BUILD!

  2. LAUNCH DAY SHIPPED IT! GO TEAM! DID WE EVER FINISH the tracking?

  3. TWO WEEKS LATER 10 million events named ‘REPLACEME’ . NOTHING ELSE.

  4. THE BIG DIVIDE CUE DATA BREAKING STUFF CUE PRODUCT IN TAG MANAGER ROLLING IT OUT ANYWAY

  5. STEVE COPPIN-SMITH HEAD OF ENGINEERING @ SNOWPLOW ANALYTICS

  6. TRACKING IS AS IMPORTANT AS THE FEATURE YOU’RE SHIPPING. SO TEST IT.

  7. DATA QUALITY SCHEMAS + BAD ROWS + QA PIPELINES DATA ACCURACY

  8. STEPS WE MINUTES TO DON’T NEED SCHEMAS MINUTES TO SPIN UP TO TEST PROCESS VALIDATE COLLECTOR ENRICH LOADER TARGET COSTLY TO BAD TRICKY TO RUN QUERY

  9. SECONDS TO SPIN UP SCHEMAS SPLIT SECONDS TO ARRIVE GOOD COLLECTOR VALIDATE SIMPLE TO QUERY BAD MINIMAL A SINGLE COSTS EXECUTABLE

  10. SCHEMAS GOOD COLLECTOR VALIDATE BAD ✓ ✓ ✓ DRIVES ASSERTS X

  11. NIGHTWATCH.JS ✓ CROSS BROWSER ✓ EASY TO EXTEND* ✓ CUTEST LOGO

  12. 'Add multiple products to cart' : function (browser) { browser .click('//a/span[text()="Shirt"]/..') .click('//*[@id="quantity"]/option[2]') .click('//button[@id="addToCart"]') .assert.containsText('//*[@id="cart"]', 'Shirt') } $ ✓ Testing if element contains text 'Shirt'

  13. 'Add multiple products to cart' : function (browser) { browser .click('//a/span[text()="Shirt"]/..') .click('//*[@id="quantity"]/option[2]') .click('//button[@id="addToCart"]') .assert.containsText('//*[@id="cart"]', 'Shirt') .assert.noBadEvents() } $ x Expected 0 bad events, 10 found.

  14. 'Add multiple products to cart' : function (browser) { browser .click('//a/span[text()="Shirt"]/..') .click('//*[@id="quantity"]/option[2]') .click('//button[@id="addToCart"]') .assert.containsText('//*[@id="cart"]', 'Shirt') .assert.noBadEvents() .assert.eventWithProperty({ 'schema': '.../cart_event/jsonschema/1-0-0', }, 2) } $ x Expected 2 events with properties, 1 found.

  15. 'Add multiple products to cart' : function (browser) { browser .click('//a/span[text()="Shirt"]/..') .click('//*[@id="quantity"]/option[2]') .click('//button[@id="addToCart"]') .assert.containsText('//*[@id="cart"]', 'Shirt') .assert.noBadEvents() .assert.eventWithProperty({ 'schema': '.../cart_event/jsonschema/1-0-0', 'values': {'quantity': 2}, }, 1) } $ ✓ Expected 1 event with properties, 1 found.

  16. 'Add multiple products to cart' : function (browser) { browser .click('//a/span[text()="Shirt"]/..') .click('//*[@id="quantity"]/option[2]') .click('//button[@id="addToCart"]') .assert.containsText('//*[@id="cart"]', 'Shirt') .assert.noBadEvents() .assert.eventWithProperty({ 'schema': '.../cart_event/jsonschema/1-0-0', 'values': {'quantity': 2}, 'contexts': [{ 'schema': '.../product_entity/jsonschema/1-0-0', 'values': {'name': 'Shirt', 'color': 'White'} }] }, 1) }

  17. THIS GOES BEYOND BUILDING ASSURANCE AROUND THE FEATURE YOU ARE SHIPPING

  18. YOUR TEST SUITE X ✓ ✓ ✓ ✓ ✓

  19. DESPERATELY ADD FIND OUT FIND OUT IT’S SOME TRACKING IT’S WRONG STILL WRONG ✓ MORE DEVELOPMENT MEASUREMENT ... MEASUREMENT X ✓ DEVELOPMENT MEASUREMENT X DEFINE TRACKING WATCH TESTS STRATEGY PASS

  20. Best. data. ever.

  21. LINTING OK UNIT TESTS OK FEATURES OK TRACKING NOT OK BUNDLING DEPLOYING

  22. ISSUE WITH TRACKING? FAIL THAT BUILD!

Recommend


More recommend