SlideShare a Scribd company logo
1 of 31
Testing with Teamwork
Martin Folkoff, @martin_folkoff
How it all began…
Our Testing Strategy
An automation road map
DEVELOPMENT
Taking a Step Back
OPERATIONS
TESTING
http://imgur.com/Ddj5wgw
Silos
Booz Allen GridIron project
Working as a team
DEVELOPMENT OPERATIONS
TESTING
DevOps
http://product.hubspot.com/blog/how-we-deploy-300-times-a-day
https://github.com/blog/1241-deploying-at-github
https://news.ycombinator.com/item?id=2971521
DEVELOPMENT OPERATIONS
TESTING
Testers in Development
Adaptation of Mike Cohn’s test automation pyramid
How it should work…
UI ($$$)
Service ($$)
Unit ($)
Reality
Speed
Developer
Tester
UI
Service
Unit
How it really works…
http://imgur.com/D3ldwFa
Developer
Tester
Flaky and slow UI
Maybe a few Service
Faked Unit
A Sad Truth
DEV OPS
TEST
Developing Checks
DEV
+
CHECK
OPS
TEST
Developing Checks
But what about testing…
“Testing is the process of evaluating a product
by learning about it through exploration and
experimentation, which includes to some degree:
questioning, study, modeling, observation,
inference, etc.”
-James Bach
OPS TEST
DEV
+
CHECK
Operations in Test
Ops teams can help provide quick access to
testing environments with:
• Arbitrary versions of services
• Access to the service’s infrastructure, logs,
deployment artifacts
• Potentially chaotic monkeys
Enabling learning
http://www.developsense.com/blog/2015/10/oracles-from-the-inside-out-part-7/
Ops teams can help provide information on:
• How data is transformed and saved outside
of the UI
• Specific versions and changes for deployed
services
• Server resource allocations
Enabling learning
http://www.developsense.com/blog/2015/10/oracles-from-the-inside-out-part-7/
• How user interactions engage different
internal and external services
• Timings of individual system processes not
just output
Enabling learning
https://blog.newrelic.com/2014/03/13/javascript-error-reporting-ajax-timing-new-relic/
Taking advantage of
“Production Tools”
https://codeascraft.com/2010/12/08/track-every-release/
Guiding your sessions
TEST
DEV
+
CHECK
OPS
Testing as a Team
Twitter Diffy
https://blog.twitter.com/2015/diffy-testing-services-without-writing-tests
Diffy in Action
Testing as a Team

More Related Content

What's hot

Testing, CI and CD in the real world
Testing, CI and CD in the real worldTesting, CI and CD in the real world
Testing, CI and CD in the real world
Roc Boronat
 
Как не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарии
Andrii Dzynia
 

What's hot (20)

Midwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small teamMidwest PHP 2017 DevOps For Small team
Midwest PHP 2017 DevOps For Small team
 
Go ahead outside Japan
Go ahead outside JapanGo ahead outside Japan
Go ahead outside Japan
 
Advanced automated visual testing with Selenium
Advanced automated visual testing with SeleniumAdvanced automated visual testing with Selenium
Advanced automated visual testing with Selenium
 
CookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomationCookpadTechConf2018-(Mobile)TestAutomation
CookpadTechConf2018-(Mobile)TestAutomation
 
Java Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and MobileJava Test Automation for REST, Web and Mobile
Java Test Automation for REST, Web and Mobile
 
Testing, CI and CD in the real world
Testing, CI and CD in the real worldTesting, CI and CD in the real world
Testing, CI and CD in the real world
 
Continuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was badContinuous Integration: How I stopped guessing if that merge was bad
Continuous Integration: How I stopped guessing if that merge was bad
 
Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)Best Practices in Mobile CI (webinar)
Best Practices in Mobile CI (webinar)
 
Simple Unit Testing in Appcelerator Titanium Alloy
Simple Unit Testing in Appcelerator Titanium AlloySimple Unit Testing in Appcelerator Titanium Alloy
Simple Unit Testing in Appcelerator Titanium Alloy
 
Selenium conference, 2016
Selenium conference, 2016Selenium conference, 2016
Selenium conference, 2016
 
QAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with AppiumQAAgility Presentation - Cucumber with Appium
QAAgility Presentation - Cucumber with Appium
 
Андрей Солдатенко. Разработка высокопроизводительныx функциональных тестов д...
Андрей Солдатенко. Разработка высокопроизводительныx функциональных тестов д...Андрей Солдатенко. Разработка высокопроизводительныx функциональных тестов д...
Андрей Солдатенко. Разработка высокопроизводительныx функциональных тестов д...
 
SeleniumCamp 2015 Andrii Soldatenko
SeleniumCamp 2015 Andrii SoldatenkoSeleniumCamp 2015 Andrii Soldatenko
SeleniumCamp 2015 Andrii Soldatenko
 
Adrian marinica continuous integration in the visual studio world
Adrian marinica   continuous integration in the visual studio worldAdrian marinica   continuous integration in the visual studio world
Adrian marinica continuous integration in the visual studio world
 
Scaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and KubernetesScaling your Automated Tests: Docker and Kubernetes
Scaling your Automated Tests: Docker and Kubernetes
 
Как не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарииКак не нужно писать Gherkin сценарии
Как не нужно писать Gherkin сценарии
 
Evergreen build
Evergreen buildEvergreen build
Evergreen build
 
React Native Masterclass
React Native MasterclassReact Native Masterclass
React Native Masterclass
 
Appium vs Espresso and XCUI Test
Appium vs Espresso and XCUI TestAppium vs Espresso and XCUI Test
Appium vs Espresso and XCUI Test
 
Continous Integration: A Case Study
Continous Integration: A Case StudyContinous Integration: A Case Study
Continous Integration: A Case Study
 

Similar to Testing With team Work agiledc-2015-final

Similar to Testing With team Work agiledc-2015-final (20)

Work with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec CaliforniaWork with Developers for Fun and Progress - AppSec California
Work with Developers for Fun and Progress - AppSec California
 
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
Selenium Testing your Kubernetes Apps with Machine Learning and TestimSelenium Testing your Kubernetes Apps with Machine Learning and Testim
Selenium Testing your Kubernetes Apps with Machine Learning and Testim
 
Continuous testing for Agile and DevOps teams
Continuous testing for Agile and DevOps teamsContinuous testing for Agile and DevOps teams
Continuous testing for Agile and DevOps teams
 
Infinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan Kušt
Infinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan KuštInfinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan Kušt
Infinum Android Talks #13 - Developing Android Apps Like Navy Seals by Ivan Kušt
 
DevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure BootcampDevOps: The New Face Of Application Development - Global Azure Bootcamp
DevOps: The New Face Of Application Development - Global Azure Bootcamp
 
Large-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in PracticeLarge-Scale Agile Test Automation Strategies in Practice
Large-Scale Agile Test Automation Strategies in Practice
 
TMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael PalotasTMF2014 CI-CD Workshop Michael Palotas
TMF2014 CI-CD Workshop Michael Palotas
 
Continuous Delivery the French Way – Dimitri Baeli
Continuous Delivery the French Way – Dimitri Baeli Continuous Delivery the French Way – Dimitri Baeli
Continuous Delivery the French Way – Dimitri Baeli
 
Continuous Delivery Agile Tour Beirut 2015
Continuous Delivery Agile Tour Beirut 2015Continuous Delivery Agile Tour Beirut 2015
Continuous Delivery Agile Tour Beirut 2015
 
Continuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQContinuous Delivery Testing @HiQ
Continuous Delivery Testing @HiQ
 
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
 
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
How To Use Jenkins for Continuous Load and Mobile Testing with SOASTA & Cloud...
 
Shift Left Mobile Application Testing
Shift Left Mobile Application TestingShift Left Mobile Application Testing
Shift Left Mobile Application Testing
 
A confused tester in agile world finalversion
A confused tester in agile world finalversionA confused tester in agile world finalversion
A confused tester in agile world finalversion
 
Automated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 DevelopmentAutomated Builds And UI Testing in SharePoint 2010 Development
Automated Builds And UI Testing in SharePoint 2010 Development
 
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
iOSDevCamp 2011 - Getting "Test"-y: Test Driven Development & Automated Deplo...
 
Colorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latestColorful world-of-visual-automation-testing-latest
Colorful world-of-visual-automation-testing-latest
 
DevOps with Serverless
DevOps with ServerlessDevOps with Serverless
DevOps with Serverless
 
Accelerate Your Delivery Pipeline with Continuous Testing
Accelerate Your Delivery Pipeline with Continuous TestingAccelerate Your Delivery Pipeline with Continuous Testing
Accelerate Your Delivery Pipeline with Continuous Testing
 
UI Integrations Test
UI Integrations TestUI Integrations Test
UI Integrations Test
 

Recently uploaded

Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
VictoriaMetrics
 

Recently uploaded (20)

WSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - KanchanaWSO2Con2024 - Hello Choreo Presentation - Kanchana
WSO2Con2024 - Hello Choreo Presentation - Kanchana
 
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
WSO2CON 2024 - Building the API First Enterprise – Running an API Program, fr...
 
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & InnovationWSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
WSO2CON 2024 - OSU & WSO2: A Decade Journey in Integration & Innovation
 
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
WSO2CON 2024 - Unlocking the Identity: Embracing CIAM 2.0 for a Competitive A...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of TransformationWSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
WSO2CON 2024 - Designing Event-Driven Enterprises: Stories of Transformation
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
WSO2CON 2024 - IoT Needs CIAM: The Importance of Centralized IAM in a Growing...
 
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
WSO2CON 2024 - Lessons from the Field: Legacy Platforms – It's Time to Let Go...
 
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open SourceWSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
WSO2CON 2024 - Freedom First—Unleashing Developer Potential with Open Source
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
WSO2Con2024 - Navigating the Digital Landscape: Transforming Healthcare with ...
 
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
WSO2CON 2024 - Navigating API Complexity: REST, GraphQL, gRPC, Websocket, Web...
 
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
WSO2Con2024 - Simplified Integration: Unveiling the Latest Features in WSO2 L...
 
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
WSO2CON 2024 - Not Just Microservices: Rightsize Your Services!
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
WSO2Con2024 - GitOps in Action: Navigating Application Deployment in the Plat...
 
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million PeopleWSO2Con2024 - Unleashing the Financial Potential of 13 Million People
WSO2Con2024 - Unleashing the Financial Potential of 13 Million People
 

Testing With team Work agiledc-2015-final

Editor's Notes

  1. Software Engineer with Booz Allen Talk about my journey into testing, the challenges in the industry I’m seeing today, Ultimately a better vision for the future
  2. In 2010 My first project was a pretty big – 20 developers, > 1 million registered users across multiple agencies I like to think that had an intuition that going fast (getting software out the door) was good – we were agile, we did scrums, story point estimations, all that good stuff But we always had something holding us back from going fast – Which was testing, specifically end to end tests
  3. Testing is generally slow for most teams, but for us it was even more complicated We had one code base that we were using for multiple client demands, that means we were doing multiple runs of regression tests for every change So how do we move testing faster? Shove more and more people into a room and make them work day and night Removing windows was attempted
  4. Watching this room grow and grow with people, was really sad Became very interested in how we could test faster Found some tools that worked for me -- spent some late nights at the computer And I thought, I had developed a system to that would accomplish what that room full of people were doing in an eighth of the time, with more consistency, and on-demand – great done. And it turns out we weren’t alone in this problem, so I started helping others accomplish this 2 years, 6 different clients, over 20 projects later … I’m convinced we’re not done.
  5. Go back to the notion of going fast is better Can we go fast in an organization like this ?
  6. Silos are common place in development organizations “Doesn’t work in production? Must be your problem… you figure it out” Silos create reward systems that don’t necessarily contribute to the optimization of the greater good – in this case delivering software
  7. A better approach is to find ways to help one another – working as a team Sports do this really well – there excellent examples of organizations that diligently break down reward systems that don’t contribute to the greater goal – scoring points In football there are lots of individuals willing to make sacrifices against there personal stats to help the team win
  8. This philosophy is commonly known today as DevOps Creating a team that has a empathy for one another “Doesn’t work in production? Whoa that’s weird, maybe its environmental, what does production look like, how can I replicate that on my local machine, so I can catch this earlier”
  9. Teams that buy in to this philosophy tend to end up with development workflows like this Boring operation tasks are automated by the dev team, ops teams are feeding developers with information And now things get fast
  10. Really fast…
  11. And it turns out being fast isn’t just fun The market has proven being fast if useful in real life Amazon, github, get huge advantages by being able to move fast
  12. But wait a minute, lets go back to that workflow Not again… testing is holding us back approval is a dirty word when it comes to fast Lets see how we can do better
  13. Well having ops and developers working together seemed to get us pretty far… Lets try getting testers out of their silo So how can they help?
  14. This is the famous test automation pyramid (explain quickly) Automating tests helps us go fast, and fast is good But developers are already overbooked and don’t have time to build all of these tiers Time for testers to the rescue, they can help us write the UI tests – Lets see what happens
  15. This doesn’t look right But in my experience this is how most teams are positioned And in fact its even worse than that, let me explain…
  16. DevOps are having a great time, enjoying themselves Here comes Testers trying to join the club Oh no…
  17. Things get slower… A good tester can think of an infinite amount of scenarios to automate but this is really expensive to automate – lots of development and maintenance efforts They have a hard time adding to other tiers Integration tests aren’t existed because dev teams want to depend on the UI tests Unit tests are blamed heavily for bugs which leads to code coverage metrics So how to fix this problem? You could hire people like me… and we can help make this tier faster and less expensive to maintain I think we can do better though We need to redefine what testing means here In order to keep our intended pyramid we need to do only a few tests that verify critical elements of application And these tests need to be written and maintained by the people that know the source code best Not good. Soo how to fix this? Well you can fire your testers and hire me to fix those UI based tests. Awesome, you all have my contact information are there any questions? Hmm, not satisfied, I know I’m not. So what can we do better ? Lets try another strategy.
  18. So this idea wasn’t so great
  19. I think this is a much better model Checks are simple, quick, tests that provide a yes or no answer to an applications state Developers need to be clever about putting in only a few checks that cover critical elements In this model we can achieve fast tests but at a cost…
  20. We are only doing a few checks instead of a large number of tests We are going to leak bugs all over the place if we don’t add back in tests So how can we work as a team to help testers provide us with more bugs faster?
  21. Testing is really a process of learning We’ve helped them a bit already with our series of checks, so they don’t have to waste time with the boring stuff But we can do better
  22. So if testing is all about learning, who knows more about the reality of the application in its native environment then your ops team ? The people in ops are already constantly striving to unearth as much data as they can about the actual workings of the application. Testers should be doing belly flops into this lake of data in order to unearth the deep questions that may be affecting the quality of your app. Who better to help the process of learning than the team that holds all the data about the running of the application ? This is where testers should be integrating with teams
  23. How can ops enable learning ? They can
  24. provide access to information that is usually not accessible to the UI With these kinds of information deeper insights can be made, and more bugs can be found faster.
  25. New Relic, APM, Google analytics and others “operational tools” can be leveraged by testing activities as well, to provide more behind the scenes operations. They can be leveraged by the tester while they are exploring in a session or by giving historical data to drive session focus and interesting experiments.
  26. It doesn’t have to be a one way street of Ops providing testers with information. Testers can help drive what data operations is recording. Here you can see Etsy monitoring their forumns for spikes in technical issues after each deploy. This information would be gold for testers to feedback into their exploratory testing session scheduling. Testers should strive to communicate the data sets that they could translate into more efficient testing sessions.
  27. Lets walk through an example of how the team can work together to provide the speed of DevOps with high quality tested code. Best explained by an example
  28. Open source project aimed at identifying changes between versions of software – some changes may be good, some changes may be indicators of problems
  29. Enables testing and checking much more efficiently than classic Selenium approaches Testers can start to investigate surprising changes, and checks can be added to the end for rules that are less ambiguous Contrast this to Selenium -- try asking a tester to utilize selenium tests, its not easy, the data provided isn’t there.
  30. In the need for speed testers have been kicked around a lot On the playing field they have always been the slow guys holding us back But, in order to really go faster though we need to work as a team to help pick them up We can do a lot better at working with testers, so that they can help us move as fast as we can.