Patterns for testing asynchronous systems

Slides:



Advertisements
Similar presentations
Introduction to Java 2 Programming Lecture 10 API Review; Where Next.
Advertisements

13-Jun-14 OOP features of Jeroo. Overview In this presentation we will discuss these topics: OOP terminology Jeroo syntax constructors methods.
© 2012 Whamcloud, Inc. Lustre Automation Challenges John Spray Whamcloud, Inc. 0.4.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Why COM and.Net? Jim Fawcett CSE775 – Distributed Objects Spring 2005.
From Program Analysis Research to Industrial Programming Language Development Andy Maule.
LECTURE 38: REFACTORING CSC 395 – Software Engineering.
NOSQL DATABASES Please remember to read the NOSQL Distilled book and the Seven Databases book.
11 Partnership for Performance How to hear this lecture Click on the icon: to hear the narration for each slide.
© Copyright 2010 Imaginet. All rights reserved. Distributed Architecture Patterns CQRS & Event Sourcing.
1 Adapted from Pearson Prentice Hall Adapted from James A. Senn’s Information Technology, 3 rd Edition Chapter 6 Personal and PC Databases.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
MS Access: Database Concepts Instructor: Vicki Weidler Assistant: Joaquin Obieta.
14 Copyright © Oracle Corporation, All rights reserved. SQL Workshop.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Use Case Packets.
Elementary Data Organization. Outline  Data, Entity and Information  Primitive data types  Non primitive data Types  Data structure  Definition 
© 2006, National Research Council Canada © 2006, IBM Corporation Solving performance issues in OTS-based systems Erik Putrycz Software Engineering Group.
South Florida Enterprise and Strategy Architects Special Interest Group (SF ESA SIG) June 19, 2007 Lawrence Port Otive LLC
Use Case Textual Analysis
UML: A notation for capturing work products
Chapter 9 Life & Death of an Object Stacks & Heaps; Constructors Garbage Collector (gc)
CS223: Software Engineering
High Level Design Use Case Textual Analysis SE-2030 Dr. Mark L. Hornick 1.
Software services delivering SharePoint, Mobile, and Business Intelligence solutions Understanding and implementing the remote provision pattern in SharePoint.
Stream Processing with Tamás István Ujj
Role of the yearbook. Five primary functions Memories –Captures events and activities of year –Covers life at school –And in students’ personal lives.
14th Crisp user meeting at UCL1 Some observations on the use of swap elements in staged construction Anthony Swain Professor of Transport Infrastructure.
Lesson 14. Connect measurement with physical units by using iteration with an inch tile to measure.
SDN-O LCM for Mercury Release Key Points and Overview
Deterministic Communication with SpaceWire
Jim Fawcett CSE775 – Distributed Objects Spring 2017
Chapter 5 System modeling
Greetings. Those of you who don't yet know me... Today is... and
From Program Analysis Research to Industrial Programming Language Development Andy Maule.
Managing Big Data and Little Data with WorldMap + Dataverse
DEV-25: You've Got a Problem, Here’s How to Find It
DENSO Robot Simulation with WinCAP lll Software
Creativity in Algorithms
WSU Linux Users Group By Haven Hash
CS 641 – Requirements Engineering
Unlocking the mysteries of distributed microservice authorization
Interview with Fortum representative
Vocabulary Algorithm - A precise sequence of instructions for processes that can be executed by a computer.
Order Management For Shippers.
OOP features of Jeroo 8-Nov-18.
Objects First with Java A Practical Introduction using BlueJ
Introducing the SQL Server 2016 Query Store
DATABASE LINK DISTRIBUTED DATABASE.
Introducing the SQL Server 2016 Query Store
Macros in FactoryTalk View SE and ME
Web Application Architectures
Data Science with Python
My Research Process Jayme Evans.
Chapter 5 Architectural Design.
Programming Languages 2nd edition Tucker and Noonan
Web Application Architectures
Objects First with Java A Practical Introduction using BlueJ
CS-319 Group 6 Phu Dang John Cervantes Syeda Fatima
Tonga Institute of Higher Education IT 141: Information Systems
Objects First with Java A Practical Introduction using BlueJ
Sample Test Questions Please identify the use cases of the system that cover all the behaviors described in the system specification. Please identify.
Tonga Institute of Higher Education IT 141: Information Systems
Distribute and combine like terms
Type Topic in here! Created by Educational Technology Network
Web Application Architectures
U3L2 The Need For Algorithms
OOP features of Jeroo 3-Jul-19.
Software Engineering and Architecture
Reading Reactions Write about what is happening in your book
Lights Out Engineering: Teach Machines to Fix Machines
Presentation transcript:

Patterns for testing asynchronous systems The Test Machine Patterns for testing asynchronous systems

Overview Event Backbone at Funding Circle Lessons Learned The Test Machine Questions? Overview

“Turning the database inside out” At the time I started at Funding Circle, this article by Martin Kleppman was doing the rounds and -- Martin Kleppmann (https://www.confluent.io/blog/turning-the-database-inside-out- with-apache-samza/)

“Capture all the changes as a sequence of events” There's lots of talks, articles, and even books now that talk about the properties of systems built this this way --Martin Fowler (https://martinfowler.com/eaaDev/EventSourcing.html)

Event Backbone

Distribution

Lessons Learned Notes from the trenches

Simple testing primitives

Test Fixtures?

In-Memory Test Services

Topics, Tables

with-fixtures

TopologyTestDriver

Unit Tests Example Test Test Runner

Scenario Definitions

Iteration #1 (imperative)

Asynchronous System? Asynchronous Tests!

Iteration #2 (declarative)

Questions + Hammock Time

The Test Machine

Test Commands

Test code is data too!

It’s all data!

“Full-Stack Test” Distilled

Look familiar? Unit Test Full-Stack Test

Lessons Learned in Software Testing --Kaner & Bach (Lessons Learned in Software Testing, Wiley, 2001) via https://medium.com/@copyconstruct/testing-microservices-the-sane-way-9bb31d158c16

Kafka (remote via rest proxy) Transports Identity TopologyTestDriver Kafka (direct) Kafka (remote via rest proxy)

“Don’t hope that events will turn out the way you want, welcome events in whichever way they happen: this is the path to peace reliable tests” (with apologies to) -- Epictetus (https://twitter.com/dailystoic/status/1041346154435207168)

Thank you Andy Chambers Software Engineer achambers@fundingcircle.com 71 Queen Victoria Street, London. EC4V 4AY