• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Storyplayer
 

Storyplayer

on

  • 987 views

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

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

Statistics

Views

Total Views
987
Views on SlideShare
987
Embed Views
0

Actions

Likes
1
Downloads
0
Comments
1

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel

11 of 1 previous next

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Storyplayer Storyplayer Presentation Transcript

    • @$story->player()Friday, 3 May 13
    • @Bring Your Stories To LifeThrough Your TestsFriday, 3 May 13
    • @Introduce YourselvesFriday, 3 May 13
    • @@stuherbertFriday, 3 May 13
    • @TestingI’m here to talk aboutFriday, 3 May 13
    • @Don’t Switch Off Just Yet!Friday, 3 May 13
    • @StoryplayerI’m here to launchFriday, 3 May 13
    • @Storyplayeris a new open-source testing toolFriday, 3 May 13
    • @Created byFriday, 3 May 13
    • @built inFriday, 3 May 13
    • @hosted onFriday, 3 May 13
    • @to test this:We’ve built itFriday, 3 May 13
    • @DataSift Technical ArchitectureUltrahoseArchiverpushPickleNodePickleNodePickleNodePickleNodePickleNodePickleNodeNode ShardpushPickleNodePickleNodePickleNodePickleNodePickleNodePickleNodeNode ShardACL(with interactioncounter)HttpStreaming,PuSH,SearchStreamRecorderMonitoringAggregatorEDRs(licensedcontentmetrics)ControlChannels(D5)HardwareLoadBalancerUltrahoseArchiver100%Prism100%PickleFilteringEngineTwitterFacebookWikipediaRedditLexisNexisMeltwaterEstimizeDigg@lorenzoalbertonDataSift Architecture 2.2Links Resolution+ OpenGraph+ Twitter Cards+ MetadataDeletesProcessorRedisInput StreamsNewsCredBoardReaderMySpaceSuperFeederAugmentation PipelinepushPickleNodePickleNodePickleNodePickleNodePickleNodePickleNodeNode ShardpushPickleNodePickleNodePickleNodePickleNodePickleNodePickleNodeNode ShardMonitoringKafkaQueueEventsStorageACL(with interactioncounter)trackerLimitManagerAuthenticationManagerNotificationServiceWEBAPIStream .Manager .DBDefinition .Manager .DBCSDL Compiler,Validator,NormaliserHistoricsSchedulerRecordingSchedulerPushSchedulerInteractionTargetsMappingFilteringTardisPickleInteractionTargetsMappingFilteringTardisPickle......HadoopTitan HistoricsMap/ReduceHBase ClusterRegion 1 Region 2 Region N......Data Node Data Node Data Node Data Node Data Node100%100%StopPUBLicenseManager DBBillingPipeline DBDBDBMaskManagerDBConnectionManagerTime Machine + InsightsPost-Processing, Stream AnalyticsjobsDBchunksDBchunkselectorjobtrackerWorkerSnapshotterBufferedStreamsRedisWorkerWorkerNodeMeteorReal-timeStreamsNodeNodeHTTP RequestGET batchPUSHSchedulersubscription Xsubscription Yjob queuePUSHProducerSubscriptionsDBPUSHDeliveryHTTP(S) POST(S)FTPAmazon S3DynamoDBMicrosoft AzureMongoDBExports andAnalyticsWebSocketsHTTPStreamingDelivery SubscriptionsConnectionsStoragekafka-consumerOracleStreamresultsCouchDBPickleDB .DBAuditKafkaKafkaHistorical Queries@datasiftGoblin HeadGoblin HeadGoblin HeadGoblin TailGoblin TailGoblin TailInteractionGenerationInteractionGeneration3rd party APIsDemographicsTrendsAnalysisSentimentAnalysisNamedEntitiesTopicsAnalysisLanguageDetectionKloutScore + ProfileOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreOgreIBM CognosHDFSArchiverData ingestion + AugmentationBit.lyStreamSplitter/JoinerDeduperMsg splitterGoogle BigQueryStream resultsCloud StorageDBsBI toolsFriday, 3 May 13
    • @It Plugs A GapIn our testing strategyFriday, 3 May 13
    • @Testing Strategy?What is ourFriday, 3 May 13
    • @Layered ApproachCatch different problemsusing different toolsFriday, 3 May 13
    • @Common Test ApproachUnitTestsAcceptanceTestsIntegrationTestsFriday, 3 May 13
    • @The Focus Of Each LayerFunctions& MethodsUser Interfaces& APIsServices& SystemsFriday, 3 May 13
    • @The De Facto StandardFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitFriday, 3 May 13
    • @Popular ChoicesFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitBehatPHPSpecFriday, 3 May 13
    • @The Neglected LayerFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitBehatPHPSpec?Friday, 3 May 13
    • @Services & Systems?How do we testFriday, 3 May 13
    • @A Gap To PlugFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitBehatPHPSpecFriday, 3 May 13
    • @Where Storyplayer Fits InFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitBehatPHPSpecStoryplayerFriday, 3 May 13
    • @A Quick Tourof StoryplayerFriday, 3 May 13
    • @StoriesIt’s all aboutFriday, 3 May 13
    • @User StoriesThe things that yourend-users can (and can’t!) doFriday, 3 May 13
    • @Service StoriesThe things that yourinternal systems can doFriday, 3 May 13
    • @ProseFriday, 3 May 13
    • @$story =newStoryFor();Friday, 3 May 13
    • @Simple PHP ScriptsWe don’t define a new classfor every story we want to testFriday, 3 May 13
    • @Avoids theclass AVeryLongAndInventiveClassname* 1000 problem!Friday, 3 May 13
    • @Stories have up to8 PhasesFriday, 3 May 13
    • @Creating The Test ConditionsTest Environment Setup1Test Setup2Friday, 3 May 13
    • @Before We TestPre-Test Prediction3Pre-Test Inspection4Friday, 3 May 13
    • @Perform The Story StepsAction5Friday, 3 May 13
    • @Did Anything Happen?Post-Test Inspection6Friday, 3 May 13
    • @Clean Up AfterwardsTest Teardown7Test Environment Teardown8Friday, 3 May 13
    • @ClosureEach phase is aFriday, 3 May 13
    • @$story->setTestEnvironmentSetup(function($st) {// story steps go here});Friday, 3 May 13
    • @the $st objectAll actions are done usingFriday, 3 May 13
    • @The $st objectis a dynamic module loaderFriday, 3 May 13
    • @Brand new objectsare instantiatedevery new actionFriday, 3 May 13
    • @This approach ensuresno weird bugs in testscaused by re-usingobjects between actionsFriday, 3 May 13
    • @3 kinds of actionThere areFriday, 3 May 13
    • @$st->fromXXXX()Get the state of somethingFriday, 3 May 13
    • @$st->expectsXXXX()Test the state of somethingFriday, 3 May 13
    • @$st->usingXXXX()Change the state of somethingFriday, 3 May 13
    • @$story->addAction(function($st) {$st->usingBrowser()->gotoPage(...);$st->usingBrowser()->waitForTitle(...);....});Friday, 3 May 13
    • @$story->setPostTestInspection(function($st) {$st->usingBrowser()->gotoPage(...);$st->usingBrowser()->waitForTitle(...);$st->expectsBrowser()->has()->linkWithText(“My Account”);});Friday, 3 May 13
    • @14 ModulesIncludedFriday, 3 May 13
    • @VagrantCreate test environments usingFriday, 3 May 13
    • @Using The Vagrant ModuleSPVagrant VMVVagrant VMCreatesFriday, 3 May 13
    • @Using The Vagrant ModuleVagrant VMVSP ServiceVagrant VMDeploysFriday, 3 May 13
    • @Using The Vagrant ModuleVagrant VMVSP ServiceVagrant VMTestsSPFriday, 3 May 13
    • @Using The Vagrant ModuleVagrant VMVSP ServiceVagrant VMDestroysFriday, 3 May 13
    • @SavageDMonitor your VMs and processes using(Another DataSift tool we’re releasing tonight)Friday, 3 May 13
    • @Using SavageDVagrant VMVSPVagrant VMCreatesFriday, 3 May 13
    • @Using SavageDVagrant VMVSP ServiceVagrant VMDeploysSavageDFriday, 3 May 13
    • @Using SavageDVagrant VMVSP ServiceVagrant VMTestsSP SavageDFriday, 3 May 13
    • @Using SavageDVagrant VMVSP ServiceVagrant VMTestsSP SavageDMonitorsFriday, 3 May 13
    • @Using SavageDVagrant VMVSPMetrics ServerServiceVagrant VMTestsSPMonitorsstatsdGraphiteSavageDReports ToFriday, 3 May 13
    • @GraphiteTest your non-functional requirements withFriday, 3 May 13
    • @Combined Testing SolutionVagrant VMVSPMetrics ServerServiceVagrant VMTestsSPMonitorsstatsdGraphiteSavageDReports ToTests MetricsFriday, 3 May 13
    • @Everything Should Log MetricsVagrant VMVSPMetrics ServerVagrant VMTestsSPMonitorsstatsdGraphiteSavageDReports ToTests MetricsServiceFriday, 3 May 13
    • @Your Own ModulesExtend Storyplayer withFriday, 3 May 13
    • @Pull RequestsWelcome :)Friday, 3 May 13
    • @OS X and LinuxRuns onFriday, 3 May 13
    • @PEARInstalled viaFriday, 3 May 13
    • @(Composer doesn’t supportinstalling packages system-wide yet)Friday, 3 May 13
    • @datasift.github.ioDocs available from(WIP!!)Friday, 3 May 13
    • @Before You Go ...Friday, 3 May 13
    • @This Model Is IncompleteFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitBehatPHPSpecStoryplayerFriday, 3 May 13
    • @... getting better :) ...Functions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitStoryplayer+Friday, 3 May 13
    • @Storyplayercan test websitesand APIs too!Friday, 3 May 13
    • @Storyplayerdoesn’t replace Behat et alFriday, 3 May 13
    • @Behatmoves back to doingwhat it does bestFriday, 3 May 13
    • @A Better Model Of Layered TestingFunctions& MethodsUser Interfaces& APIsServices& SystemsPHPUnitStoryplayer+AcceptanceBehatPHPSpec+Friday, 3 May 13
    • @Developerstake responsibilityfor unit testingFriday, 3 May 13
    • @Developers + Testersshare responsibilityfor testingservices & systemsuser interfaces & APIsFriday, 3 May 13
    • @Product Ownerstake responsibilityfor acceptance testingFriday, 3 May 13
    • @Storyplayerhttps://github.com/datasift/storyplayer/available now!Friday, 3 May 13
    • @Thank youPS: We’re hiring :-)Friday, 3 May 13