automated testing and release engineering - usenix · automated testing and release engineering ......

9

Click here to load reader

Upload: hadieu

Post on 28-Jul-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

Automated Testingand

Release Engineering@briancolfer

[email protected]

I will focus on automating tests for a continuous pipe line.Tell you a story about how I delivered a better experience for application and quality developers.Keep test runs small and focussed. Many small test runs are better than a few big ones.

Page 2: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

Introduction to release engineering and testing

Create tools and integration that takes source artifacts to deploy target artifacts. The critical component that adds value to continuous delivery is testing.

Page 3: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

Test Automation and Continuous Delivery

• Types of tests

• Types of test results

• Automated test framework examples

Types of tests: Unit tests, development integration tests, Test case integration tests, Acceptance testsTypes of test results: Pass, Fail, Error, InfoAutomated test framework examples: TestNG, Cucumber, Spock, JUnit, JMeter

Page 4: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

A layered approach to automated tests and release engineering

• Each stage provides more confidence

• Only test enough for the next stage in the release pipeline

• Treat the tests and continuous delivery pipeline as part of the value to the product.

Page 5: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

How to organize the running of tests

• Break large test suites to small test runs

• Give test feedback that is obvious on how to reproduce the results

• Provide circuit breakers to the release pipeline

Each test run should provide a specific level or area of confidenceReport not just pass or fail Circuit breakers for services that are not critical but important … if SonarQube is down

Page 6: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

Summary

• Have many small steps in the CD pipeline

• Test code is part of the product

• Optimize the CD pipeline to provide confidence

Page 7: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

Process Flowpush

Build, Unit Test & Package

Deploy to BAT env

Run BAT Run BAT

TestMore tests

Readiness Message

Page 8: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

Systems

GitHub

Jenkins Build Unit Test Dev integration Run BAT deploy Run Test start Report result Call Post Build Job

SaltStack

Deb Repo

BAT envTest Runner

Page 9: Automated Testing and Release Engineering - USENIX · Automated Testing and Release Engineering ... Introduction to release engineering and testing ... SaltStack Deb Repo

How to contact me, Brian Colfer:

@briancolfer

[email protected]