Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Storyplayer

 Storyplayer

Bring your user and service stories to life through your tests.

Stuart Herbert

May 02, 2013
Tweet

More Decks by Stuart Herbert

Other Decks in Programming

Transcript

  1. @ DataSift Technical Architecture Ultrahose Archiver push Pickle Node Pickle

    Node Pickle Node Pickle Node Pickle Node Pickle Node Node Shard push Pickle Node Pickle Node Pickle Node Pickle Node Pickle Node Pickle Node Node Shard ACL (with interaction counter) HttpStreaming, PuSH, Search Stream Recorder Monitoring Aggregator EDRs (licensed content metrics) Control Channels (D5) Hardware Load Balancer Ultrahose Archiver 100% Prism 100% Pickle Filtering Engine Twitter Facebook Wikipedia Reddit LexisNexis Meltwater Estimize Digg @lorenzoalberton DataSift Architecture 2.2 Links Resolution + OpenGraph + Twitter Cards + Metadata Deletes Processor Redis Input Streams NewsCred BoardReader MySpace SuperFeeder Augmentation Pipeline push Pickle Node Pickle Node Pickle Node Pickle Node Pickle Node Pickle Node Node Shard push Pickle Node Pickle Node Pickle Node Pickle Node Pickle Node Pickle Node Node Shard Monitoring Kafka Queue Events Storage ACL (with interaction counter) tracker Limit Manager Authentication Manager Notification Service WEB API Stream . Manager . DB Definition . Manager . DB CSDL Compiler, Validator, Normaliser Historics Scheduler Recording Scheduler Push Scheduler Interaction Targets Mapping Filtering Tardis Pickle Interaction Targets Mapping Filtering Tardis Pickle ... ... Hadoop Titan Historics Map/Reduce HBase Cluster Region 1 Region 2 Region N ... ... Data Node Data Node Data Node Data Node Data Node 100% 100% Stop PUB License Manager DB Billing Pipeline DB DB DB Mask Manager DB Connection Manager Time Machine + Insights Post-Processing, Stream Analytics jobs DB chunks DB chunk selector job tracker Worker Snapshotter Buffered Streams Redis Worker Worker Node Meteor Real-time Streams Node Node HTTP Request GET batch PUSH Scheduler subscription X subscription Y job queue PUSH Producer Subscriptions DB PUSH Delivery HTTP(S) POST (S)FTP Amazon S3 DynamoDB Microsoft Azure MongoDB Exports and Analytics WebSockets HTTPStreaming Delivery Subscriptions Connections Storage kafka-consumer Oracle Stream results CouchDB PickleDB . DB Audit Kafka Kafka Historical Queries @datasift Goblin Head Goblin Head Goblin Head Goblin Tail Goblin Tail Goblin Tail Interaction Generation Interaction Generation 3rd party APIs Demographics Trends Analysis Sentiment Analysis Named Entities Topics Analysis Language Detection Klout Score + Profile Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre Ogre IBM Cognos HDFS Archiver Data ingestion + Augmentation Bit.ly Stream Splitter/Joiner Deduper Msg splitter Google BigQuery Stream results Cloud Storage DBs BI tools Friday, 3 May 13
  2. @ The Focus Of Each Layer Functions & Methods User

    Interfaces & APIs Services & Systems Friday, 3 May 13
  3. @ The De Facto Standard Functions & Methods User Interfaces

    & APIs Services & Systems PHPUnit Friday, 3 May 13
  4. @ Popular Choices Functions & Methods User Interfaces & APIs

    Services & Systems PHPUnit Behat PHPSpec Friday, 3 May 13
  5. @ The Neglected Layer Functions & Methods User Interfaces &

    APIs Services & Systems PHPUnit Behat PHPSpec ? Friday, 3 May 13
  6. @ A Gap To Plug Functions & Methods User Interfaces

    & APIs Services & Systems PHPUnit Behat PHPSpec Friday, 3 May 13
  7. @ Where Storyplayer Fits In Functions & Methods User Interfaces

    & APIs Services & Systems PHPUnit Behat PHPSpec Storyplayer Friday, 3 May 13
  8. @ Simple PHP Scripts We don’t define a new class

    for every story we want to test Friday, 3 May 13
  9. @ This approach ensures no weird bugs in tests caused

    by re-using objects between actions Friday, 3 May 13
  10. @ Using The Vagrant Module Vagrant VM V SP Service

    Vagrant VM Deploys Friday, 3 May 13
  11. @ Using The Vagrant Module Vagrant VM V SP Service

    Vagrant VM Tests SP Friday, 3 May 13
  12. @ Using The Vagrant Module Vagrant VM V SP Service

    Vagrant VM Destroys Friday, 3 May 13
  13. @ SavageD Monitor your VMs and processes using (Another DataSift

    tool we’re releasing tonight) Friday, 3 May 13
  14. @ Using SavageD Vagrant VM V SP Service Vagrant VM

    Deploys SavageD Friday, 3 May 13
  15. @ Using SavageD Vagrant VM V SP Service Vagrant VM

    Tests SP SavageD Friday, 3 May 13
  16. @ Using SavageD Vagrant VM V SP Service Vagrant VM

    Tests SP SavageD Monitors Friday, 3 May 13
  17. @ Using SavageD Vagrant VM V SP Metrics Server Service

    Vagrant VM Tests SP Monitors statsd Graphite SavageD Reports To Friday, 3 May 13
  18. @ Combined Testing Solution Vagrant VM V SP Metrics Server

    Service Vagrant VM Tests SP Monitors statsd Graphite SavageD Reports To Tests Metrics Friday, 3 May 13
  19. @ Everything Should Log Metrics Vagrant VM V SP Metrics

    Server Vagrant VM Tests SP Monitors statsd Graphite SavageD Reports To Tests Metrics Service Friday, 3 May 13
  20. @ This Model Is Incomplete Functions & Methods User Interfaces

    & APIs Services & Systems PHPUnit Behat PHPSpec Storyplayer Friday, 3 May 13
  21. @ ... getting better :) ... Functions & Methods User

    Interfaces & APIs Services & Systems PHPUnit Storyplayer + Friday, 3 May 13
  22. @ A Better Model Of Layered Testing Functions & Methods

    User Interfaces & APIs Services & Systems PHPUnit Storyplayer + Acceptance Behat PHPSpec + Friday, 3 May 13
  23. @ Developers + Testers share responsibility for testing services &

    systems user interfaces & APIs Friday, 3 May 13