SlideShare a Scribd company logo
Testing of distributed
                      applications
                                 Rails Way Con 2011
                                Jens-Christian Fischer
                        with Michael Mahlberg & Keith Bingman

                                  jcf@mobino.com

                                     @jcfischer

Freitag, 3. Juni 2011
le x
                                m  p
                              co
                 Testing of distributed
                            applications
                                 Rails Way Con 2011
                                Jens-Christian Fischer
                        with Michael Mahlberg & Keith Bingman

                                  jcf@mobino.com

                                     @jcfischer

Freitag, 3. Juni 2011
Agenda

                        • Background
                        • What & Why & How of Testing
                        • Discover the state of your apps
                        • Make testable apps
Freitag, 3. Juni 2011
why?
Freitag, 3. Juni 2011

Recommended for you

Visualizations of Spatial and Social Data
Visualizations of Spatial and Social DataVisualizations of Spatial and Social Data
Visualizations of Spatial and Social Data

The document discusses visualizing data from Excel to Vimeo. It describes intermediate visualization packages like GePhi and TULIP. Programming languages for visualization are discussed, including R, PHP, Processing, Python, and MatLab. Examples of student projects are provided that utilize different data sources and programming languages for visualization like ArcGIS, JavaScript, and OpenLayers. The document emphasizes getting data into a form that can be displayed and shared as images or movies.

PushToTest TestMaker 6.5 Open Source Test Design Document
PushToTest TestMaker 6.5 Open Source Test Design DocumentPushToTest TestMaker 6.5 Open Source Test Design Document
PushToTest TestMaker 6.5 Open Source Test Design Document

PushToTest TestMaker version 6.5 product design document for a major feature enhancement. Contains user interface definitions, product roadmap, and feature requirements. Please comment on this to improve TestMaker.

social media monitoringload testfunctional test
Open Source Test Workshop for CIOs, CTOs, Managers
Open Source Test Workshop for CIOs, CTOs, ManagersOpen Source Test Workshop for CIOs, CTOs, Managers
Open Source Test Workshop for CIOs, CTOs, Managers

This Open Source Test Workshop is for senior IT and business executives needing visibility and management tools and methodology into all the demand for IT. Shows how to bring Open Source Testing into your organization.

sahijavatesting
Freitag, 3. Juni 2011
we move money


Freitag, 3. Juni 2011
What is behind?
                                    1 Rails app
                                   5 Sinatra apps
                                  1 Ruby daemon
                                   1 VOIP Server
                               1 Speech Synthesizer
                             1 SQL Database (Postgres)
                        1 NoSQL Server (Redis) (with Resque)
Freitag, 3. Juni 2011
Architecture

Freitag, 3. Juni 2011

Recommended for you

Jenkins User Conference - Twitter4J, Jenkins and regression
Jenkins User Conference - Twitter4J, Jenkins and regressionJenkins User Conference - Twitter4J, Jenkins and regression
Jenkins User Conference - Twitter4J, Jenkins and regression

This document summarizes a presentation given by Yusuke Yamamoto at the 2011 Jenkins User Conference in San Francisco. Yamamoto discussed how he developed the open-source Twitter4J library using test-driven development and encountered a regression when the library's tests were not properly maintained. He emphasized the importance of having enough test coverage, carefully refactoring tests, and addressing failed tests to prevent regressions.

twitter4jjenkinshudson
Anthony Molinaro, OpenX, Erlang LA Meetup Slides
Anthony Molinaro, OpenX, Erlang LA Meetup SlidesAnthony Molinaro, OpenX, Erlang LA Meetup Slides
Anthony Molinaro, OpenX, Erlang LA Meetup Slides

This document summarizes different approaches to matching strings against patterns, including using the re module, creating a Perl port, and using the RE2 NIF module. The author tested each approach on a data set of 10,000 strings. The RE2 NIF approach had the best performance at 26 microseconds per match, while the initial re module approach was the slowest at 7 milliseconds per match. However, RE2 requires more memory for large pattern lists.

erlang
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation

The document discusses different tools for deploying Rails applications, including Moonshine, Capistrano, and Git Pusshuten. Moonshine uses Puppet for configuration management and deployment. Capistrano is used for deployments but mixes deployment with server management. Git Pusshuten allows defining environments using modules and provisioning servers for basic deployment needs using Git. It has advantages of separating deployment from code and fast deploys but has fewer modules and less active development compared to other tools.

Merchant Web
                        Customer Web                     Customer Voice
                                          Widget



                          Volcker        Trichet                     Freeswitch




                         Duisenberg      Keynes       Greenspan




                           Redis          Smith                           VAAS




                                        Postgres 9                        Acapela


Freitag, 3. Juni 2011
Merchant Web
                        Customer Web                     Customer Voice
                                          Widget



                          Volcker        Trichet                     Freeswitch




                         Duisenberg      Keynes       Greenspan




                           Redis          Smith                           VAAS




                                        Postgres 9                        Acapela


Freitag, 3. Juni 2011
Merchant Web
                        Customer Web                        Customer Voice
                                             Widget



                          Volcker   FrontTrichet                        Freeswitch




                         Duisenberg         Keynes       Greenspan


                                        Back                            Voice
                            Redis            Smith                           VAAS




                                      Database
                                           Postgres 9                        Acapela


Freitag, 3. Juni 2011
Trichet       Volcker   Duisenberg




Greenspan               Keynes      Smith
Freitag, 3. Juni 2011

Recommended for you

Belak_ICME_June02015
Belak_ICME_June02015Belak_ICME_June02015
Belak_ICME_June02015

This document summarizes a presentation given at ICME 2015 at the Cheyenne Mountain Resort in Colorado Springs, Colorado. The presentation was given by James Belak from Lawrence Livermore National Laboratory and discussed use-inspired research and development for integrated computational materials engineering. It addressed key computations needed for ICME like databases, expert systems, simulation methods, and continuum models. Integrating computations into materials engineering was a focus.

2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go

Slides for my talk at the Singapore GTUG in June 2011. Includes a quick program update as well as an introduction to Golang.

golanggtugapp engine
How Lanyrd uses Twitter
How Lanyrd uses TwitterHow Lanyrd uses Twitter
How Lanyrd uses Twitter

Lanyrd.com is a website that provides a definitive database of professional events and speakers, enables social recommendations of events, and includes comprehensive speaker profiles with archived materials like slides and videos. It utilizes crowdsourcing and shared contributions from users (a wiki-style model). The site integrates heavily with Twitter to discover event discussions, promote speaker profiles, and provide recommendation features based on a user's Twitter follows. It aims to make professional conferences and networking more effective.

lanyrdtwitter
Freitag, 3. Juni 2011
Testing

Freitag, 3. Juni 2011
The old days


                        • Simple web apps
                        • Click through testing

Freitag, 3. Juni 2011
Testi
                                          g   n
     Royce, W. (1970). Managing the development of large
       software systems. Proceedings of IEEE Wescon.
Freitag, 3. Juni 2011

Recommended for you

Understanding the evolution of software project communities
Understanding the evolution of software project communitiesUnderstanding the evolution of software project communities
Understanding the evolution of software project communities

Presented at SATTOSE (Seminar on Advanced Tools and Techniques on Software Evolution), Koblenz, Germany, 7 April 2011

software evolutionopen source softwaremining
Beyond Horizontal Scalability: Concurrency and Messaging Using Spring
Beyond Horizontal Scalability: Concurrency and Messaging Using SpringBeyond Horizontal Scalability: Concurrency and Messaging Using Spring
Beyond Horizontal Scalability: Concurrency and Messaging Using Spring

The document discusses how software systems are growing larger and more complex due to increasing hardware capabilities. It describes typical application architectures and assumptions that rely on sequential execution in a single JVM. It advocates for concurrency and messaging using tools from Spring to address these challenges by removing assumptions, simplifying interactions, and allowing asynchronous and distributed execution. Specifically, it covers how Spring supports concurrency using TaskExecutor and messaging using JMS templates and message listeners to enable looser coupling and horizontal scalability beyond simply adding more machines.

concurrencyjavaspring
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails

These are the slides from my talk about the AppScale project at the SBonRails meetup. It covers AppScale as well as Google App Engine and the research projects have come out of it, including Neptune, a Ruby DSL focused on computation-heavy workloads.

appscalegoogle app engineneptune
Freitag, 3. Juni 2011
Freitag, 3. Juni 2011
Freitag, 3. Juni 2011
In Rails
                                 —
                        everything is better

Freitag, 3. Juni 2011

Recommended for you

Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Invited talk at the GeoClouds Workshop, Indianapolis, 2009Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Invited talk at the GeoClouds Workshop, Indianapolis, 2009

Taverna, Biocatalogue, and myExperiment: a three-legged foundation for effective collaboration in E-science

e-scienceopen scienceworkflow myexperiment
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...

The document discusses the importance of data in architecture and provides an overview of non-relational (NoSQL) databases. It covers different NoSQL data models like key-value, column family, document and graph databases. It also discusses architectural anti-patterns with relational databases and provides examples of alternative NoSQL solutions.

nosql newsql .net dnad11
Beyond HTML Internet Briefing
Beyond HTML Internet BriefingBeyond HTML Internet Briefing
Beyond HTML Internet Briefing

Früher war alles besser - sowieso! Konnte man vor 20 Jahren alleine mit HTML einen Webauftritt gestalten, hat sich die Anzahl der Technologien, die eine Webentwicklerin beherrschen muss, ... Vortrag am Internet Briefing in Zürich, 4.12.2012

htmlcsstools
Automated Tests

                             Unit
                          Integration
                        Frontend tests
Freitag, 3. Juni 2011
Complexity
                  • Modern applications consist of
                    many pieces
                  • App Servers, DB, NoSQL, Speech
                    WebServices, Telephony,
                        Synthesizers
                  •     HTTP, Line Protocols, JSON,
                        XML, Corba, RMI

Freitag, 3. Juni 2011
What to test
                  Robert „UncleBob“ Martin:
                  •Unit Tests
                  •Component Tests
                  •Integration Tests
                  •System Test
                  •Manual Tests
                  http://stackoverflow.com/questions/2965483
Freitag, 3. Juni 2011
Unit Tests

                        • Close to 100% code coverage
                        • Test Driven Development
                        • Written by Programmers

Freitag, 3. Juni 2011

Recommended for you

Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr

Früher war alles besser - sowieso! Konnte man vor 20 Jahren alleine mit HTML einen Webauftritt gestalten, hat sich die Anzahl der Technologien, die eine Webentwicklerin beherrschen muss, vervielfacht. Was ist wichtig, was unwichtig? In diesem Vortrag beleuchtet Jens-Christian den aktuellen Zoo von Technologien, und zeigt auf, wie sich diese Vielfalt sinnvoll bändigen lässt. HTML(5), CSS(3), JavaScript, CoffeeScript, JavaScript Frameworks (jQuery, Prototype, Moo, Dojo, Ext, ...), JavaScript Microframeworks (Backbone, Ember, Flatiron), Templatingsprachen, Hilfsmittel zur Gestaltung von CSS (SASS, SCSS), Responsive Design, Browsererkennung, Caching, Performancetweaks, Testing und vieles mehr wird thematisiert.

htmlframeworkshaml
Architektur der kleinen Bausteine
Architektur der kleinen BausteineArchitektur der kleinen Bausteine
Architektur der kleinen Bausteine

Betrachtungen zur Architektur von Software Systemen.

soaprestservice-oriented architecture
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk

What strategies can you take to bring a web application to a mobile device? Six steps from pure HTML/CSS all the way to almost native applications.

titaniumjquery mobilesencha
Component Tests

                        • Test ~50% of the System
                        • Cucumber / Selenium / Fitnesse
                        • Written by QA & Analysts
                        • Happy Path & some unhappy
                          paths


Freitag, 3. Juni 2011
Integration Tests

                        • Cover ~20% of system
                        • Test assembly of components
                        • Cucumber / Selenium / Fitnesse
                        • Written by Architects
Freitag, 3. Juni 2011
System Tests

                        • Cover 10% of the system
                        • Test the whole system
                        • Cucumber / Selenium / Fitnesse
                        • Written by Architects
Freitag, 3. Juni 2011
Manual Tests
                  • Exploratory Manual Tests
                  • Manual but not scripted
                  • Human ingenuity & creativity
                  Bach, J. (n.d.). Exploratory testing explained. Online:
                  http://www. satisfice. com/articles/et-article. pdf.



Freitag, 3. Juni 2011

Recommended for you

Mobino at Webmondy Frankfurt, Mai 2011
Mobino at Webmondy Frankfurt, Mai 2011Mobino at Webmondy Frankfurt, Mai 2011
Mobino at Webmondy Frankfurt, Mai 2011

Introduction to Mobino, a mobile payment service. Held at WebMonday Frankfurt, Mai 2011

mobino"mobile payment"
SOLID Ruby, SOLID Rails
SOLID Ruby, SOLID RailsSOLID Ruby, SOLID Rails
SOLID Ruby, SOLID Rails

Presentation I gave with MMahlberg at RailsWayCon 2010 about Uncle Bobs SOLID principles for software design

railswayconrailssolid
Ruby Coding Dojo
Ruby Coding DojoRuby Coding Dojo
Ruby Coding Dojo

This document discusses coding dojos and katas. It explains that katas are choreographed coding exercises used to practice skills through repetition. Coding dojos are places where developers practice katas in pairs and groups using a randori style. This document provides an example kata involving opening 100 doors with multiple monkeys and demonstrates the kata being practiced in a coding dojo.

railswayconkatarwc10
Where do we
                          test?
Freitag, 3. Juni 2011
Testing the
                          edges
Freitag, 3. Juni 2011
Merchant Web
                        Customer Web                     Customer Voice
                                          Widget



                          Volcker        Trichet                     Freeswitch




                         Duisenberg      Keynes       Greenspan




                           Redis          Smith                           VAAS




                                        Postgres 9                        Acapela


Freitag, 3. Juni 2011
Merchant Web
                        Customer Web                     Customer Voice
                                          Widget



                          Volcker        Trichet                     Freeswitch




                         Duisenberg      Keynes       Greenspan




                           Redis          Smith                           VAAS




                                        Postgres 9                        Acapela


Freitag, 3. Juni 2011

Recommended for you

Synology Workshop07 06
Synology Workshop07 06Synology Workshop07 06
Synology Workshop07 06

Workshop über Synology NAS bei Alltron AG, Mägenwil

Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten

Rails Applikationen Offline nehmen. Ein Überblick über Techniken und vertiefte Betrachtung zu Joyent Slingshot

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing

Invited Remote Lecture to SC21 The International Conference for High Performance Computing, Networking, Storage, and Analysis St. Louis, Missouri November 18, 2021

distributed supercomputerdistributed machine learning
How do we
                          test?
Freitag, 3. Juni 2011
http://blog.objectmentor.com/articles/2009/09/29/
               ruining-your-test-automation-strategy
Freitag, 3. Juni 2011
Tools of the trade
                             Selenium
                             Cucumber
                               Steak
                             capybara
                              webkit
                              zombie
Freitag, 3. Juni 2011
only cover a minimal
                                part

                           the web frontend,
                        but our apps are so much
                                  more


Freitag, 3. Juni 2011

Recommended for you

Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf

As a popular open-source library for analytics engineering, dbt is often used in combination with Airflow. Orchestrating and executing dbt models as DAGs ensures an additional layer of control over tasks, observability, and provides a reliable, scalable environment to run dbt models. This webinar will cover a step-by-step guide to Cosmos, an open source package from Astronomer that helps you easily run your dbt Core projects as Airflow DAGs and Task Groups, all with just a few lines of code. We’ll walk through: - Standard ways of running dbt (and when to utilize other methods) - How Cosmos can be used to run and visualize your dbt projects in Airflow - Common challenges and how to address them, including performance, dependency conflicts, and more - How running dbt projects in Airflow helps with cost optimization Webinar given on 9 July 2024

apache airflowdbtdbt-core
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf

In the modern digital era, social media platforms have become integral to our daily lives. These platforms, including Facebook, Instagram, WhatsApp, and Snapchat, offer countless ways to connect, share, and communicate.

social media hackerfacebook hackerhire a instagram hacker
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx

MuleSoft Meetup on APM and IDP

mulesoftai
Decoupling


                        Systems diverge
                         APIs diverge


Freitag, 3. Juni 2011
Web Services


                          Many services
                        outside our control

Freitag, 3. Juni 2011
Freitag, 3. Juni 2011
Synchronizing

                        • Tests require complex state
                          across several systems
                        • Tests involvebetween systems
                          interactions
                                        complex




Freitag, 3. Juni 2011

Recommended for you

Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf

Sustainability requires ingenuity and stewardship. Did you know Pigging Solutions pigging systems help you achieve your sustainable manufacturing goals AND provide rapid return on investment. How? Our systems recover over 99% of product in transfer piping. Recovering trapped product from transfer lines that would otherwise become flush-waste, means you can increase batch yields and eliminate flush waste. From raw materials to finished product, if you can pump it, we can pig it.

pigging solutionsprocess piggingproduct transfers
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection

Cybersecurity is a major concern in today's connected digital world. Threats to organizations are constantly evolving and have the potential to compromise sensitive information, disrupt operations, and lead to significant financial losses. Traditional cybersecurity techniques often fall short against modern attackers. Therefore, advanced techniques for cyber security analysis and anomaly detection are essential for protecting digital assets. This blog explores these cutting-edge methods, providing a comprehensive overview of their application and importance.

cybersecurityanomaly detectionadvanced techniques
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time

Is your patent a vanity piece of paper for your office wall? Or is it a reliable, defendable, assertable, property right? The difference is often quality. Is your patent simply a transactional cost and a large pile of legal bills for your startup? Or is it a leverageable asset worthy of attracting precious investment dollars, worth its cost in multiples of valuation? The difference is often quality. Is your patent application only good enough to get through the examination process? Or has it been crafted to stand the tests of time and varied audiences if you later need to assert that document against an infringer, find yourself litigating with it in an Article 3 Court at the hands of a judge and jury, God forbid, end up having to defend its validity at the PTAB, or even needing to use it to block pirated imports at the International Trade Commission? The difference is often quality. Quality will be our focus for a good chunk of the remainder of this season. What goes into a quality patent, and where possible, how do you get it without breaking the bank? ** Episode Overview ** In this first episode of our quality series, Kristen Hansen and the panel discuss: ⦿ What do we mean when we say patent quality? ⦿ Why is patent quality important? ⦿ How to balance quality and budget ⦿ The importance of searching, continuations, and draftsperson domain expertise ⦿ Very practical tips, tricks, examples, and Kristen’s Musts for drafting quality applications https://www.aurorapatents.com/patently-strategic-podcast.html

patentspatent applicationpatent prosecution
Questions

Freitag, 3. Juni 2011
Questions to ask

                        • Development
                        • Testing
                        • Production

Freitag, 3. Juni 2011
Development


                        Is the system I‘m
                         building correct?

Freitag, 3. Juni 2011
Test

                        Do all the pieces of
                         the system work
                            together?

Freitag, 3. Juni 2011

Recommended for you

TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In

Six months into 2024, and it is clear the privacy ecosystem takes no days off!! Regulators continue to implement and enforce new regulations, businesses strive to meet requirements, and technology advances like AI have privacy professionals scratching their heads about managing risk. What can we learn about the first six months of data privacy trends and events in 2024? How should this inform your privacy program management for the rest of the year? Join TrustArc, Goodwin, and Snyk privacy experts as they discuss the changes we’ve seen in the first half of 2024 and gain insight into the concrete, actionable steps you can take to up-level your privacy program in the second half of the year. This webinar will review: - Key changes to privacy regulations in 2024 - Key themes in privacy and data governance in 2024 - How to maximize your privacy program in the second half of 2024

data privacyprivacy complianceai
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference

We are honored to launch and host this event for our UiPath Polish Community, with the help of our partners - Proservartner! We certainly hope we have managed to spike your interest in the subjects to be presented and the incredible networking opportunities at hand, too! Check out our proposed agenda below 👇👇 08:30 ☕ Welcome coffee (30') 09:00 Opening note/ Intro to UiPath Community (10') Cristina Vidu, Global Manager, Marketing Community @UiPath Dawid Kot, Digital Transformation Lead @Proservartner 09:10 Cloud migration - Proservartner & DOVISTA case study (30') Marcin Drozdowski, Automation CoE Manager @DOVISTA Pawel Kamiński, RPA developer @DOVISTA Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 09:40 From bottlenecks to breakthroughs: Citizen Development in action (25') Pawel Poplawski, Director, Improvement and Automation @McCormick & Company Michał Cieślak, Senior Manager, Automation Programs @McCormick & Company 10:05 Next-level bots: API integration in UiPath Studio (30') Mikolaj Zielinski, UiPath MVP, Senior Solutions Engineer @Proservartner 10:35 ☕ Coffee Break (15') 10:50 Document Understanding with my RPA Companion (45') Ewa Gruszka, Enterprise Sales Specialist, AI & ML @UiPath 11:35 Power up your Robots: GenAI and GPT in REFramework (45') Krzysztof Karaszewski, Global RPA Product Manager 12:20 🍕 Lunch Break (1hr) 13:20 From Concept to Quality: UiPath Test Suite for AI-powered Knowledge Bots (30') Kamil Miśko, UiPath MVP, Senior RPA Developer @Zurich Insurance 13:50 Communications Mining - focus on AI capabilities (30') Thomasz Wierzbicki, Business Analyst @Office Samurai 14:20 Polish MVP panel: Insights on MVP award achievements and career profiling

#uipathcommunity#automation#automationdeveloper
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx

How do we build an IoT product, and make it profitable? Talk from the IoT meetup in March 2024. https://www.meetup.com/iot-sweden/events/299487375/

iot
Production


                        Are all parts of my
                         system working?

Freitag, 3. Juni 2011
Development
                        • Test Driven Development only
                          takes you so far
                        • Test a single component
                        • Unit tests in work, but don‘t
                          components
                                        multiple

                         „cross the chasm“

Freitag, 3. Juni 2011
Development
        • Setting up a complete system for
          development can be taxing
        • pow to the rescue
          http://pow.cx/
        • Foreman
          https://github.com/ddollar/foreman

Freitag, 3. Juni 2011
Testing

                        • Integration tests need to
                          stress complete application
                            stack
                        •   Does your CI Server handle
                            this?


Freitag, 3. Juni 2011

Recommended for you

Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation

Java Servlet programs

find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges

accommodate the strengths, weaknesses, threats and opportunities of autonomous vehicles

automotive self-driving car technology
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf

Presented at Gartner Data & Analytics, London Maty 2024. BT Group has used the Neo4j Graph Database to enable impressive digital transformation programs over the last 6 years. By re-imagining their operational support systems to adopt self-serve and data lead principles they have substantially reduced the number of applications and complexity of their operations. The result has been a substantial reduction in risk and costs while improving time to value, innovation, and process automation. Join this session to hear their story, the lessons they learned along the way and how their future innovation plans include the exploration of uses of EKG + Generative AI.

neo4jneo4j webinarsgraph database
Outside your
                            app
Freitag, 3. Juni 2011
Merchant Web
                        Customer Web                     Customer Voice
                                          Widget



                          Volcker        Trichet                     Freeswitch




                         Duisenberg      Keynes       Greenspan




                           Redis          Smith                           VAAS




                                        Postgres 9                        Acapela


Freitag, 3. Juni 2011
Merchant Web
                        Customer Web                     Customer Voice
                                          Widget



                          Volcker        Trichet                     Freeswitch




                         Duisenberg      Keynes       Greenspan




                           Redis          Smith                           VAAS




                                        Postgres 9                        Acapela


Freitag, 3. Juni 2011
Write Mock Services


                        • If youitdon‘t control it,
                          mock
                        • „Rails Enterprise ready ™ “

Freitag, 3. Juni 2011

Recommended for you

Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation

Manual Method of Product Research | Helium10 | MBS RETRIEVER

product researchhelium10 | mbs retriever
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...

This presentation explores the practical application of image description techniques. Familiar guidelines will be demonstrated in practice, and descriptions will be developed “live”! If you have learned a lot about the theory of image description techniques but want to feel more confident putting them into practice, this is the presentation for you. There will be useful, actionable information for everyone, whether you are working with authors, colleagues, alone, or leveraging AI as a collaborator. Link to presentation recording and slides: https://bnctechforum.ca/sessions/details-of-description-part-ii-describing-images-in-practice/ Presented by BookNet Canada on June 25, 2024, with support from the Department of Canadian Heritage.

a11yaccessibilityalt text
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world

The presentation showcases the diverse real-world applications of Fused Deposition Modeling (FDM) across multiple industries: 1. **Manufacturing**: FDM is utilized in manufacturing for rapid prototyping, creating custom tools and fixtures, and producing functional end-use parts. Companies leverage its cost-effectiveness and flexibility to streamline production processes. 2. **Medical**: In the medical field, FDM is used to create patient-specific anatomical models, surgical guides, and prosthetics. Its ability to produce precise and biocompatible parts supports advancements in personalized healthcare solutions. 3. **Education**: FDM plays a crucial role in education by enabling students to learn about design and engineering through hands-on 3D printing projects. It promotes innovation and practical skill development in STEM disciplines. 4. **Science**: Researchers use FDM to prototype equipment for scientific experiments, build custom laboratory tools, and create models for visualization and testing purposes. It facilitates rapid iteration and customization in scientific endeavors. 5. **Automotive**: Automotive manufacturers employ FDM for prototyping vehicle components, tooling for assembly lines, and customized parts. It speeds up the design validation process and enhances efficiency in automotive engineering. 6. **Consumer Electronics**: FDM is utilized in consumer electronics for designing and prototyping product enclosures, casings, and internal components. It enables rapid iteration and customization to meet evolving consumer demands. 7. **Robotics**: Robotics engineers leverage FDM to prototype robot parts, create lightweight and durable components, and customize robot designs for specific applications. It supports innovation and optimization in robotic systems. 8. **Aerospace**: In aerospace, FDM is used to manufacture lightweight parts, complex geometries, and prototypes of aircraft components. It contributes to cost reduction, faster production cycles, and weight savings in aerospace engineering. 9. **Architecture**: Architects utilize FDM for creating detailed architectural models, prototypes of building components, and intricate designs. It aids in visualizing concepts, testing structural integrity, and communicating design ideas effectively. Each industry example demonstrates how FDM enhances innovation, accelerates product development, and addresses specific challenges through advanced manufacturing capabilities.

fdmffffused deposition modeling
Mock Services
                        • Allowsspecification against a
                          „real“
                                  you to code

                        • Allows of said code against
                          failure
                                  you to
                                         service
                        • Gives you a stick to beat up
                          the developers of said service
                         („Rails-Enterprise ready“ ™ )

Freitag, 3. Juni 2011
Making it
                         work
Freitag, 3. Juni 2011
Version Control
                          Repository setup
                         One Big repository?
                        One repository for each
                             component?
                          Tagging / Syncing


Freitag, 3. Juni 2011
Development Servers
                  Webrick doesn‘t scale

                  but:
                  it‘s „easy“ for Rack based apps
                  pow by 37 Signals
                  (Mac Only)

Freitag, 3. Juni 2011

Recommended for you

What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx

This is a slide deck that showcases the updates in Microsoft Copilot for May 2024

microsoftmicrosoft copilot
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx

Revolutionize your transportation processes with our cutting-edge RPA software. Automate repetitive tasks, reduce costs, and enhance efficiency in the logistics sector with our advanced solutions.

rpa in transportationrpa in transportation industryrpa in transportation sector
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides

If you’ve ever had to analyze a map or GPS data, chances are you’ve encountered and even worked with coordinate systems. As historical data continually updates through GPS, understanding coordinate systems is increasingly crucial. However, not everyone knows why they exist or how to effectively use them for data-driven insights. During this webinar, you’ll learn exactly what coordinate systems are and how you can use FME to maintain and transform your data’s coordinate systems in an easy-to-digest way, accurately representing the geographical space that it exists within. During this webinar, you will have the chance to: - Enhance Your Understanding: Gain a clear overview of what coordinate systems are and their value - Learn Practical Applications: Why we need datams and projections, plus units between coordinate systems - Maximize with FME: Understand how FME handles coordinate systems, including a brief summary of the 3 main reprojectors - Custom Coordinate Systems: Learn how to work with FME and coordinate systems beyond what is natively supported - Look Ahead: Gain insights into where FME is headed with coordinate systems in the future Don’t miss the opportunity to improve the value you receive from your coordinate system data, ultimately allowing you to streamline your data analysis and maximize your time. See you there!

Configuration

              Configuring half a dozen applications
                     Again: Synchronisation
              Inject configuration (Example Picky)
                 http://florianhanke.com/picky/

Freitag, 3. Juni 2011
Production

                        Is my system working correctly?
                        Probes
                        •  DTrace (OSX, Solaris)
                        •  Monitoring (Scout, NewRelic)
                        •  Your own probes

Freitag, 3. Juni 2011
Freitag, 3. Juni 2011
Freitag, 3. Juni 2011

Recommended for you

What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024

This is a powerpoint that features Microsoft Teams Devices and everything that is new including updates to its software and devices for May 2024

microsoft teamsmicrosoft
Car industry

                  If car manufacturers would build
                  engines the way enterprise IT
                  systems are built, you‘d need to
                  remove the engine from the car
                  and disassemble it completely to
                  find a fault
                               — @MMahlberg, 2011
Freitag, 3. Juni 2011
OBD
         •        1996: The OBD-II specification is made mandatory for
                  all cars sold in the United States.
         •        2001: The European Union makes EOBD mandatory for
                  all gasoline (petrol) vehicles sold in the European Union,
                  starting in MY2001 (see European emission standards
                  Directive 98/69/EC [1]).
         •        2008: All cars sold in the United States are required to
                  use the ISO 15765-4 [2] signaling standard (a variant of
                  the Controller Area Network (CAN) bus).


         http://en.wikipedia.org/wiki/On-board_diagnostics

Freitag, 3. Juni 2011
Solved Problem

Freitag, 3. Juni 2011
Freitag, 3. Juni 2011

Recommended for you

http://the-adam.com/adam/rantrave/ibm_360.jpg
Freitag, 3. Juni 2011
Diagnosis Channel

      • Known from Car / Planes / Mainframes
      • Red lights on your dashboard
      • Complete diagnosis of system possible
      • Complete remote control possible
Freitag, 3. Juni 2011
Rolls Royce


                        • InFlight Diagnosis of engines
                          remotely




Freitag, 3. Juni 2011
Dashboard


                        • Look into state of application
                        • Sanity Checker

Freitag, 3. Juni 2011

Recommended for you

Dashboarding

                        • Extract relevant data from
                          your system
                         • How many req / s
                         • How many logins
                        • Delta / Trends
Freitag, 3. Juni 2011
SanityChecker

                        • API stateallows you to extract
                          the
                               that
                                    of your app
                         • DB there?
                         • All neighbouring components
                           reachable?


Freitag, 3. Juni 2011
Chaos Monkey


                        • Random failures
                        • Better reliability

Freitag, 3. Juni 2011
Build testable apps
        • Expose your internals (through APIs)
        • Use SOLID design
              • Single Responsibility Principle
              • Open Closed
              • Liskov Substitution Principle
              • Inversion of Control
              • Dependency Injection
Freitag, 3. Juni 2011

Recommended for you

Testable apps


                        • Obey the abstraction layers
                         • keep of abstractionat it‘s own
                           level
                                 each method




Freitag, 3. Juni 2011
Build probe-able apps

                  • Measure APIs
                  $	
  rails	
  console	
  production



Freitag, 3. Juni 2011
Build controllable apps
                        • Call functionality of the app
                         • Create new user
                         • Create transactions
                         • Delete stuff
                         • Do stuff
                         • ...
Freitag, 3. Juni 2011
Test user / Magic
                • In „Enterprise“ systems:
                 • Test Company
                 • Test User
                 • Test Accounts
                • Are those in production system?
                • Do everything - or not quite?
Freitag, 3. Juni 2011

Recommended for you

Use production data
                  in development / test


Freitag, 3. Juni 2011
Wrapping up

Freitag, 3. Juni 2011
What & Why & How of Testing
         Discover the state of your apps
               Make testable apps


Freitag, 3. Juni 2011
Thank you!

Freitag, 3. Juni 2011

Recommended for you

Credits

                        • http://www.flickr.com/photos/
                          myoldpostcards/4020087797/
                        • http://www.flickr.com/photos/
                          benncapon/390585495/
                        • iStockphoto
Freitag, 3. Juni 2011
License




      http://creativecommons.org/licenses/by-nc-sa/2.5/ch/
Freitag, 3. Juni 2011

More Related Content

Similar to Testing distributed, complex web applications

Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
hugs
 
Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)
Addy Osmani
 
Open Source Test Workshop for QA Testers, Developers, IT Managers
Open Source Test Workshop for QA Testers, Developers, IT ManagersOpen Source Test Workshop for QA Testers, Developers, IT Managers
Open Source Test Workshop for QA Testers, Developers, IT Managers
Clever Moe
 
Visualizations of Spatial and Social Data
Visualizations of Spatial and Social DataVisualizations of Spatial and Social Data
Visualizations of Spatial and Social Data
interface2011
 
PushToTest TestMaker 6.5 Open Source Test Design Document
PushToTest TestMaker 6.5 Open Source Test Design DocumentPushToTest TestMaker 6.5 Open Source Test Design Document
PushToTest TestMaker 6.5 Open Source Test Design Document
Clever Moe
 
Open Source Test Workshop for CIOs, CTOs, Managers
Open Source Test Workshop for CIOs, CTOs, ManagersOpen Source Test Workshop for CIOs, CTOs, Managers
Open Source Test Workshop for CIOs, CTOs, Managers
Clever Moe
 
Jenkins User Conference - Twitter4J, Jenkins and regression
Jenkins User Conference - Twitter4J, Jenkins and regressionJenkins User Conference - Twitter4J, Jenkins and regression
Jenkins User Conference - Twitter4J, Jenkins and regression
Yusuke Yamamoto
 
Anthony Molinaro, OpenX, Erlang LA Meetup Slides
Anthony Molinaro, OpenX, Erlang LA Meetup SlidesAnthony Molinaro, OpenX, Erlang LA Meetup Slides
Anthony Molinaro, OpenX, Erlang LA Meetup Slides
Matthew Sacks
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
Corey Purcell
 
Belak_ICME_June02015
Belak_ICME_June02015Belak_ICME_June02015
Belak_ICME_June02015
Jim Belak
 
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
ikailan
 
How Lanyrd uses Twitter
How Lanyrd uses TwitterHow Lanyrd uses Twitter
How Lanyrd uses Twitter
Simon Willison
 
Understanding the evolution of software project communities
Understanding the evolution of software project communitiesUnderstanding the evolution of software project communities
Understanding the evolution of software project communities
Tom Mens
 
Beyond Horizontal Scalability: Concurrency and Messaging Using Spring
Beyond Horizontal Scalability: Concurrency and Messaging Using SpringBeyond Horizontal Scalability: Concurrency and Messaging Using Spring
Beyond Horizontal Scalability: Concurrency and Messaging Using Spring
Bruce Snyder
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
Chris Bunch
 
Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Invited talk at the GeoClouds Workshop, Indianapolis, 2009Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Paolo Missier
 
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
Alexandre Porcelli
 

Similar to Testing distributed, complex web applications (17)

Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
Extreme Testing with Selenium - @hugs at Jenkins User Conference 2011
 
Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)Tools For jQuery Application Architecture (Extended Slides)
Tools For jQuery Application Architecture (Extended Slides)
 
Open Source Test Workshop for QA Testers, Developers, IT Managers
Open Source Test Workshop for QA Testers, Developers, IT ManagersOpen Source Test Workshop for QA Testers, Developers, IT Managers
Open Source Test Workshop for QA Testers, Developers, IT Managers
 
Visualizations of Spatial and Social Data
Visualizations of Spatial and Social DataVisualizations of Spatial and Social Data
Visualizations of Spatial and Social Data
 
PushToTest TestMaker 6.5 Open Source Test Design Document
PushToTest TestMaker 6.5 Open Source Test Design DocumentPushToTest TestMaker 6.5 Open Source Test Design Document
PushToTest TestMaker 6.5 Open Source Test Design Document
 
Open Source Test Workshop for CIOs, CTOs, Managers
Open Source Test Workshop for CIOs, CTOs, ManagersOpen Source Test Workshop for CIOs, CTOs, Managers
Open Source Test Workshop for CIOs, CTOs, Managers
 
Jenkins User Conference - Twitter4J, Jenkins and regression
Jenkins User Conference - Twitter4J, Jenkins and regressionJenkins User Conference - Twitter4J, Jenkins and regression
Jenkins User Conference - Twitter4J, Jenkins and regression
 
Anthony Molinaro, OpenX, Erlang LA Meetup Slides
Anthony Molinaro, OpenX, Erlang LA Meetup SlidesAnthony Molinaro, OpenX, Erlang LA Meetup Slides
Anthony Molinaro, OpenX, Erlang LA Meetup Slides
 
Deployment presentation
Deployment presentationDeployment presentation
Deployment presentation
 
Belak_ICME_June02015
Belak_ICME_June02015Belak_ICME_June02015
Belak_ICME_June02015
 
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
2011 June - Singapore GTUG presentation. App Engine program update + intro to Go
 
How Lanyrd uses Twitter
How Lanyrd uses TwitterHow Lanyrd uses Twitter
How Lanyrd uses Twitter
 
Understanding the evolution of software project communities
Understanding the evolution of software project communitiesUnderstanding the evolution of software project communities
Understanding the evolution of software project communities
 
Beyond Horizontal Scalability: Concurrency and Messaging Using Spring
Beyond Horizontal Scalability: Concurrency and Messaging Using SpringBeyond Horizontal Scalability: Concurrency and Messaging Using Spring
Beyond Horizontal Scalability: Concurrency and Messaging Using Spring
 
AppScale Talk at SBonRails
AppScale Talk at SBonRailsAppScale Talk at SBonRails
AppScale Talk at SBonRails
 
Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Invited talk at the GeoClouds Workshop, Indianapolis, 2009Invited talk at the GeoClouds Workshop, Indianapolis, 2009
Invited talk at the GeoClouds Workshop, Indianapolis, 2009
 
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
A importância dos dados em sua arquitetura... uma visão muito além do SQL Ser...
 

More from Jens-Christian Fischer

Beyond HTML Internet Briefing
Beyond HTML Internet BriefingBeyond HTML Internet Briefing
Beyond HTML Internet Briefing
Jens-Christian Fischer
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Jens-Christian Fischer
 
Architektur der kleinen Bausteine
Architektur der kleinen BausteineArchitektur der kleinen Bausteine
Architektur der kleinen Bausteine
Jens-Christian Fischer
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
Jens-Christian Fischer
 
Mobino at Webmondy Frankfurt, Mai 2011
Mobino at Webmondy Frankfurt, Mai 2011Mobino at Webmondy Frankfurt, Mai 2011
Mobino at Webmondy Frankfurt, Mai 2011
Jens-Christian Fischer
 
SOLID Ruby, SOLID Rails
SOLID Ruby, SOLID RailsSOLID Ruby, SOLID Rails
SOLID Ruby, SOLID Rails
Jens-Christian Fischer
 
Ruby Coding Dojo
Ruby Coding DojoRuby Coding Dojo
Ruby Coding Dojo
Jens-Christian Fischer
 
Synology Workshop07 06
Synology Workshop07 06Synology Workshop07 06
Synology Workshop07 06
Jens-Christian Fischer
 
Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten
Jens-Christian Fischer
 

More from Jens-Christian Fischer (9)

Beyond HTML Internet Briefing
Beyond HTML Internet BriefingBeyond HTML Internet Briefing
Beyond HTML Internet Briefing
 
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehrBeyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
Beyond HTML - Scriptsprachen, Frameworks, Templatesprachen und vieles mehr
 
Architektur der kleinen Bausteine
Architektur der kleinen BausteineArchitektur der kleinen Bausteine
Architektur der kleinen Bausteine
 
Taking your Web App for a walk
Taking your Web App for a walkTaking your Web App for a walk
Taking your Web App for a walk
 
Mobino at Webmondy Frankfurt, Mai 2011
Mobino at Webmondy Frankfurt, Mai 2011Mobino at Webmondy Frankfurt, Mai 2011
Mobino at Webmondy Frankfurt, Mai 2011
 
SOLID Ruby, SOLID Rails
SOLID Ruby, SOLID RailsSOLID Ruby, SOLID Rails
SOLID Ruby, SOLID Rails
 
Ruby Coding Dojo
Ruby Coding DojoRuby Coding Dojo
Ruby Coding Dojo
 
Synology Workshop07 06
Synology Workshop07 06Synology Workshop07 06
Synology Workshop07 06
 
Offline Arbeiten
Offline ArbeitenOffline Arbeiten
Offline Arbeiten
 

Recently uploaded

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
Tatiana Al-Chueyr
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
HackersList
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
ishalveerrandhawa1
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
shanthidl1
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
Neo4j
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
welrejdoall
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
BookNet Canada
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
Stephanie Beckett
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
SynapseIndia
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
Stephanie Beckett
 

Recently uploaded (20)

The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Best Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdfBest Practices for Effectively Running dbt in Airflow.pdf
Best Practices for Effectively Running dbt in Airflow.pdf
 
How Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdfHow Social Media Hackers Help You to See Your Wife's Message.pdf
How Social Media Hackers Help You to See Your Wife's Message.pdf
 
Calgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptxCalgary MuleSoft Meetup APM and IDP .pptx
Calgary MuleSoft Meetup APM and IDP .pptx
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-InTrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
TrustArc Webinar - 2024 Data Privacy Trends: A Mid-Year Check-In
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Cookies program to display the information though cookie creation
Cookies program to display the information though cookie creationCookies program to display the information though cookie creation
Cookies program to display the information though cookie creation
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdfBT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
BT & Neo4j: Knowledge Graphs for Critical Enterprise Systems.pptx.pdf
 
Manual | Product | Research Presentation
Manual | Product | Research PresentationManual | Product | Research Presentation
Manual | Product | Research Presentation
 
Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...Transcript: Details of description part II: Describing images in practice - T...
Transcript: Details of description part II: Describing images in practice - T...
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
What's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptxWhat's New in Copilot for Microsoft365 May 2024.pptx
What's New in Copilot for Microsoft365 May 2024.pptx
 
How RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptxHow RPA Help in the Transportation and Logistics Industry.pptx
How RPA Help in the Transportation and Logistics Industry.pptx
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024What’s New in Teams Calling, Meetings and Devices May 2024
What’s New in Teams Calling, Meetings and Devices May 2024
 

Testing distributed, complex web applications

  • 1. Testing of distributed applications Rails Way Con 2011 Jens-Christian Fischer with Michael Mahlberg & Keith Bingman jcf@mobino.com @jcfischer Freitag, 3. Juni 2011
  • 2. le x m p co Testing of distributed applications Rails Way Con 2011 Jens-Christian Fischer with Michael Mahlberg & Keith Bingman jcf@mobino.com @jcfischer Freitag, 3. Juni 2011
  • 3. Agenda • Background • What & Why & How of Testing • Discover the state of your apps • Make testable apps Freitag, 3. Juni 2011
  • 6. we move money Freitag, 3. Juni 2011
  • 7. What is behind? 1 Rails app 5 Sinatra apps 1 Ruby daemon 1 VOIP Server 1 Speech Synthesizer 1 SQL Database (Postgres) 1 NoSQL Server (Redis) (with Resque) Freitag, 3. Juni 2011
  • 9. Merchant Web Customer Web Customer Voice Widget Volcker Trichet Freeswitch Duisenberg Keynes Greenspan Redis Smith VAAS Postgres 9 Acapela Freitag, 3. Juni 2011
  • 10. Merchant Web Customer Web Customer Voice Widget Volcker Trichet Freeswitch Duisenberg Keynes Greenspan Redis Smith VAAS Postgres 9 Acapela Freitag, 3. Juni 2011
  • 11. Merchant Web Customer Web Customer Voice Widget Volcker FrontTrichet Freeswitch Duisenberg Keynes Greenspan Back Voice Redis Smith VAAS Database Postgres 9 Acapela Freitag, 3. Juni 2011
  • 12. Trichet Volcker Duisenberg Greenspan Keynes Smith Freitag, 3. Juni 2011
  • 15. The old days • Simple web apps • Click through testing Freitag, 3. Juni 2011
  • 16. Testi g n Royce, W. (1970). Managing the development of large software systems. Proceedings of IEEE Wescon. Freitag, 3. Juni 2011
  • 20. In Rails — everything is better Freitag, 3. Juni 2011
  • 21. Automated Tests Unit Integration Frontend tests Freitag, 3. Juni 2011
  • 22. Complexity • Modern applications consist of many pieces • App Servers, DB, NoSQL, Speech WebServices, Telephony, Synthesizers • HTTP, Line Protocols, JSON, XML, Corba, RMI Freitag, 3. Juni 2011
  • 23. What to test Robert „UncleBob“ Martin: •Unit Tests •Component Tests •Integration Tests •System Test •Manual Tests http://stackoverflow.com/questions/2965483 Freitag, 3. Juni 2011
  • 24. Unit Tests • Close to 100% code coverage • Test Driven Development • Written by Programmers Freitag, 3. Juni 2011
  • 25. Component Tests • Test ~50% of the System • Cucumber / Selenium / Fitnesse • Written by QA & Analysts • Happy Path & some unhappy paths Freitag, 3. Juni 2011
  • 26. Integration Tests • Cover ~20% of system • Test assembly of components • Cucumber / Selenium / Fitnesse • Written by Architects Freitag, 3. Juni 2011
  • 27. System Tests • Cover 10% of the system • Test the whole system • Cucumber / Selenium / Fitnesse • Written by Architects Freitag, 3. Juni 2011
  • 28. Manual Tests • Exploratory Manual Tests • Manual but not scripted • Human ingenuity & creativity Bach, J. (n.d.). Exploratory testing explained. Online: http://www. satisfice. com/articles/et-article. pdf. Freitag, 3. Juni 2011
  • 29. Where do we test? Freitag, 3. Juni 2011
  • 30. Testing the edges Freitag, 3. Juni 2011
  • 31. Merchant Web Customer Web Customer Voice Widget Volcker Trichet Freeswitch Duisenberg Keynes Greenspan Redis Smith VAAS Postgres 9 Acapela Freitag, 3. Juni 2011
  • 32. Merchant Web Customer Web Customer Voice Widget Volcker Trichet Freeswitch Duisenberg Keynes Greenspan Redis Smith VAAS Postgres 9 Acapela Freitag, 3. Juni 2011
  • 33. How do we test? Freitag, 3. Juni 2011
  • 34. http://blog.objectmentor.com/articles/2009/09/29/ ruining-your-test-automation-strategy Freitag, 3. Juni 2011
  • 35. Tools of the trade Selenium Cucumber Steak capybara webkit zombie Freitag, 3. Juni 2011
  • 36. only cover a minimal part the web frontend, but our apps are so much more Freitag, 3. Juni 2011
  • 37. Decoupling Systems diverge APIs diverge Freitag, 3. Juni 2011
  • 38. Web Services Many services outside our control Freitag, 3. Juni 2011
  • 40. Synchronizing • Tests require complex state across several systems • Tests involvebetween systems interactions complex Freitag, 3. Juni 2011
  • 42. Questions to ask • Development • Testing • Production Freitag, 3. Juni 2011
  • 43. Development Is the system I‘m building correct? Freitag, 3. Juni 2011
  • 44. Test Do all the pieces of the system work together? Freitag, 3. Juni 2011
  • 45. Production Are all parts of my system working? Freitag, 3. Juni 2011
  • 46. Development • Test Driven Development only takes you so far • Test a single component • Unit tests in work, but don‘t components multiple „cross the chasm“ Freitag, 3. Juni 2011
  • 47. Development • Setting up a complete system for development can be taxing • pow to the rescue http://pow.cx/ • Foreman https://github.com/ddollar/foreman Freitag, 3. Juni 2011
  • 48. Testing • Integration tests need to stress complete application stack • Does your CI Server handle this? Freitag, 3. Juni 2011
  • 49. Outside your app Freitag, 3. Juni 2011
  • 50. Merchant Web Customer Web Customer Voice Widget Volcker Trichet Freeswitch Duisenberg Keynes Greenspan Redis Smith VAAS Postgres 9 Acapela Freitag, 3. Juni 2011
  • 51. Merchant Web Customer Web Customer Voice Widget Volcker Trichet Freeswitch Duisenberg Keynes Greenspan Redis Smith VAAS Postgres 9 Acapela Freitag, 3. Juni 2011
  • 52. Write Mock Services • If youitdon‘t control it, mock • „Rails Enterprise ready ™ “ Freitag, 3. Juni 2011
  • 53. Mock Services • Allowsspecification against a „real“ you to code • Allows of said code against failure you to service • Gives you a stick to beat up the developers of said service („Rails-Enterprise ready“ ™ ) Freitag, 3. Juni 2011
  • 54. Making it work Freitag, 3. Juni 2011
  • 55. Version Control Repository setup One Big repository? One repository for each component? Tagging / Syncing Freitag, 3. Juni 2011
  • 56. Development Servers Webrick doesn‘t scale but: it‘s „easy“ for Rack based apps pow by 37 Signals (Mac Only) Freitag, 3. Juni 2011
  • 57. Configuration Configuring half a dozen applications Again: Synchronisation Inject configuration (Example Picky) http://florianhanke.com/picky/ Freitag, 3. Juni 2011
  • 58. Production Is my system working correctly? Probes • DTrace (OSX, Solaris) • Monitoring (Scout, NewRelic) • Your own probes Freitag, 3. Juni 2011
  • 61. Car industry If car manufacturers would build engines the way enterprise IT systems are built, you‘d need to remove the engine from the car and disassemble it completely to find a fault — @MMahlberg, 2011 Freitag, 3. Juni 2011
  • 62. OBD • 1996: The OBD-II specification is made mandatory for all cars sold in the United States. • 2001: The European Union makes EOBD mandatory for all gasoline (petrol) vehicles sold in the European Union, starting in MY2001 (see European emission standards Directive 98/69/EC [1]). • 2008: All cars sold in the United States are required to use the ISO 15765-4 [2] signaling standard (a variant of the Controller Area Network (CAN) bus). http://en.wikipedia.org/wiki/On-board_diagnostics Freitag, 3. Juni 2011
  • 66. Diagnosis Channel • Known from Car / Planes / Mainframes • Red lights on your dashboard • Complete diagnosis of system possible • Complete remote control possible Freitag, 3. Juni 2011
  • 67. Rolls Royce • InFlight Diagnosis of engines remotely Freitag, 3. Juni 2011
  • 68. Dashboard • Look into state of application • Sanity Checker Freitag, 3. Juni 2011
  • 69. Dashboarding • Extract relevant data from your system • How many req / s • How many logins • Delta / Trends Freitag, 3. Juni 2011
  • 70. SanityChecker • API stateallows you to extract the that of your app • DB there? • All neighbouring components reachable? Freitag, 3. Juni 2011
  • 71. Chaos Monkey • Random failures • Better reliability Freitag, 3. Juni 2011
  • 72. Build testable apps • Expose your internals (through APIs) • Use SOLID design • Single Responsibility Principle • Open Closed • Liskov Substitution Principle • Inversion of Control • Dependency Injection Freitag, 3. Juni 2011
  • 73. Testable apps • Obey the abstraction layers • keep of abstractionat it‘s own level each method Freitag, 3. Juni 2011
  • 74. Build probe-able apps • Measure APIs $  rails  console  production Freitag, 3. Juni 2011
  • 75. Build controllable apps • Call functionality of the app • Create new user • Create transactions • Delete stuff • Do stuff • ... Freitag, 3. Juni 2011
  • 76. Test user / Magic • In „Enterprise“ systems: • Test Company • Test User • Test Accounts • Are those in production system? • Do everything - or not quite? Freitag, 3. Juni 2011
  • 77. Use production data in development / test Freitag, 3. Juni 2011
  • 79. What & Why & How of Testing Discover the state of your apps Make testable apps Freitag, 3. Juni 2011
  • 81. Credits • http://www.flickr.com/photos/ myoldpostcards/4020087797/ • http://www.flickr.com/photos/ benncapon/390585495/ • iStockphoto Freitag, 3. Juni 2011
  • 82. License http://creativecommons.org/licenses/by-nc-sa/2.5/ch/ Freitag, 3. Juni 2011