+ All Categories
Home > Technology > Testing AS A Container - Irfan Ahmad

Testing AS A Container - Irfan Ahmad

Date post: 08-Jan-2017
Category:
Upload: agile-testing-alliance
View: 1,122 times
Download: 0 times
Share this document with a friend
39
TESTING AS A CONTAINER USING DOCKER CONTAINERS TO DELIVER TESTING AT SPEED IRFAN AHMAD
Transcript
Page 1: Testing AS A Container - Irfan Ahmad

TESTING AS A CONTAINERUSING DOCKER CONTAINERS TO DELIVER TESTING AT SPEED

IRFAN AHMAD

Page 2: Testing AS A Container - Irfan Ahmad

CONTENTS

▸ Challenges :Testing and Delivery

▸ Docker and Friends

▸ Testing : In Containers ,On Containers

▸ Demo

▸ Docker In Practise

Page 3: Testing AS A Container - Irfan Ahmad

CHALLENGES : TESTING AND DELIVERY

Page 4: Testing AS A Container - Irfan Ahmad

WHY WE FAIL TO TEST?

45%

15%5%

35%

▸ Slow deployments

▸ Slow test and setup

▸ Ineffective tests

▸ Not needed

Page 5: Testing AS A Container - Irfan Ahmad

MATRIX FROM HELL - SHIP GOODS?

Page 6: Testing AS A Container - Irfan Ahmad

MATRIX FROM HELL - SHIP SOFTWARE?

Page 7: Testing AS A Container - Irfan Ahmad

MATRIX FROM HELL -SOLVED

Page 8: Testing AS A Container - Irfan Ahmad

SOFTWARE TRENDS

Page 9: Testing AS A Container - Irfan Ahmad

CONATINERS

Page 10: Testing AS A Container - Irfan Ahmad

A CONTAINER IS AN ENTIRE ISOLATED PORTABLE RUNTIME ENVIRONMENT: AN APPLICATION, PLUS ALL ITS DEPENDENCIES, LIBRARIES AND OTHER BINARIES, AND CONFIGURATION FILES NEEDED TO RUN IT, BUNDLED INTO ONE PACKAGE.

WHAT ARE CONTAINERS?

Page 11: Testing AS A Container - Irfan Ahmad

CONTAINERS VS VM

Page 12: Testing AS A Container - Irfan Ahmad

DOCKER▸ Docker is an open platform for developers and

sysadmins to build, ship, and run distributed applications.

Page 13: Testing AS A Container - Irfan Ahmad

INSIDE DOCKER ▸ Docker Image :static snapshot of the containers’

configuration.

▸ Docker Engine: a lightweight runtime and robust tooling that builds and runs your Docker containers.

▸ Docker Registry :a repository of images

Page 14: Testing AS A Container - Irfan Ahmad

DOCKER HUB

Page 15: Testing AS A Container - Irfan Ahmad

DOCKER TOOLBOX

Page 16: Testing AS A Container - Irfan Ahmad

HOW COMPONENTS FITS TOGETHER

Page 17: Testing AS A Container - Irfan Ahmad

DOCKER LIFECYCLE

Page 18: Testing AS A Container - Irfan Ahmad

HOW DOCKER WORKS

DOCKER RUNDOCKER LOOKS

FOR LOCAL IMAGES

IS IT INSTALLED

DOCKER LOOKS FOR IMAGES

FROM REGISTRY

NO

IS IT INSTALLED

DOCKER DOWNLOADS THE

IMAGE

IMAGE INSTALLED LOCALLY

DOCKER CREATES NEW

CONTAINER AND STARTS

PROGRAM

CONTAINER IS RUNNING

YES

Page 19: Testing AS A Container - Irfan Ahmad

DOCKER COMMANDS

Page 20: Testing AS A Container - Irfan Ahmad

DOCKERFILE▸ configuration file with build instructions for

Docker images

Page 21: Testing AS A Container - Irfan Ahmad

DOCKER-COMPOSE ▸ Compose is a tool for defining and running

multi-container Docker applications

▸ Compose is great for :

▸ development

▸ testing

▸ environments setup

▸ CI workflows

Page 22: Testing AS A Container - Irfan Ahmad

EXAMPLE

Page 23: Testing AS A Container - Irfan Ahmad

TESTING: IN CONTAINERS, ON CONTAINERS

Page 24: Testing AS A Container - Irfan Ahmad

DOCKER USE CASES

Page 25: Testing AS A Container - Irfan Ahmad

TRENDS IN TESTING▸ Agility

▸ Automation

▸ Devops

▸ Scale

▸ Diversity

Page 26: Testing AS A Container - Irfan Ahmad

TESTING CONTAINERS ,WHY ?

▸ easy setup

▸ fast

▸ shareable

▸ composable

▸ scalable

Page 27: Testing AS A Container - Irfan Ahmad

TESTING CONTAINERS ,HOW ?

▸ write dockerfiles for setup

▸ ship tests as docker images

▸ execute tests as containers

▸ compose with any other application ,tests or CI

Page 28: Testing AS A Container - Irfan Ahmad

DEMO

Page 29: Testing AS A Container - Irfan Ahmad

PRE-REQUISITES

▸ virtual-box

▸ download docker toolbox

▸ https://www.docker.com/products/docker-toolbox

Page 30: Testing AS A Container - Irfan Ahmad

CHECK SETUP

Page 31: Testing AS A Container - Irfan Ahmad

VOTING APP : APP UNDER TEST▸ Simple Real Time voting app

▸ Runs with Docker Compose and multiple containers in network

Page 32: Testing AS A Container - Irfan Ahmad

VOTING APP : COMPONENTS

Page 33: Testing AS A Container - Irfan Ahmad

DELIVER BELOW TESTS AS CONAINER TO TEST VOTING APP DOCKER IMAGE

1.API 2.WEB 3.LOAD

PROBLEM STATEMENT

Page 34: Testing AS A Container - Irfan Ahmad

USING IMAGES IN DOCKER COMPOSE

Page 35: Testing AS A Container - Irfan Ahmad

DOCKER IN PRACTICE

Page 36: Testing AS A Container - Irfan Ahmad

BEST PRACTICES

▸ One container one process

▸ Ship Images not code

▸ Required packages

▸ Specific tags

▸ Group common operations

Page 37: Testing AS A Container - Irfan Ahmad

SIMPLE CI WORKFLOW

Page 38: Testing AS A Container - Irfan Ahmad

FUTURE : CONTAINERS EVERYWHERE

Page 39: Testing AS A Container - Irfan Ahmad

Q & A

Github

https://github.com/irfanah/TestStack

https://github.com/irfanah/example-voting-app

Docker hub

https://hub.docker.com/u/irfanah/

Email :[email protected]

Web :http://critick.io

Twitter: @irfanahmads

Open Sourced : for hands on

THANK YOU


Recommended