Engineering Practices for Continuous Delivery:

Slides:



Advertisements
Similar presentations
(Advanced) Web Application Development Test Driven Development with Ruby and Rails Bruce Scharlau, University of Aberdeen, 2013.
Advertisements

Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
2 A programmer is going out for a stroll one evening. His wife asks him to swing by the store and pick up a gallon of milk, and if they had eggs, to get.
The Business Analyst Role in Agile Projects
Non-Coding Activities a Development Team Needs a.k.a ”I don’t code, am I no longer useful?” Maaret Pyhäjärvi| | Twitter: maaretp Test Granlund.
GAJAH ANNUAL REPORT 2015 | 1 Business Process Management Meghan Atkins Lohith Bangalore Omprakash John Doyle Rebecca Mazur.
Agile Test Strategies in Practice: Tales of Large-scale Agile projects 8 May 2015 Geoff Meyer, SW Engineering Director, Dell Inc.
Copyright © 2014 ASTQB Presented by Rex Black, CTAL Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further.
DNN LOVES JENKINS FOR CONTINUOUS INTEGRATION
By John Boal  Continuous Integration [CI] ◦ Automating the build process ◦ Build the entire system each time any new.
THE CONTINUOUS DELIVERY ZONE Craig Berntson Chief Software Gardener Mojo Software Worx.
From 3 weeks to 30 minutes – a journey through the ups and downs of test automation.
Estimation Wrap-up CSE 403, Spring 2008, Alverson Spolsky.
Fall CIS 764 Database Systems Engineering L6a: Usability - Part 1 (Part 2 … case studies) L6b. Review of Homeworks (next.
QWise software engineering – refactored! Testing, testing A first-look at the new testing capabilities in Visual Studio 2010 Mathias Olausson.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Software Development Process
UML - Development Process 1 Software Development Process Using UML (2)
Background The Encyclopedio of Life (EOL) is an ROR open source project to create a free, online reference source and database for every one of the 1.8.
Copyright BSPIN Agile Practices Benchmarking Case Study by Mazataz – Tesco.
IMPROVING SOFTWARE QUALITY FOR THE MODERN WEB EUAN GARDEN MICROSOFT
Extreme programming overview Agenda  Extreme programming goals  Extreme programming values  Extreme programming practices  The Extreme programming.
CSCE 548 Code Review. CSCE Farkas2 Reading This lecture: – McGraw: Chapter 4 – Recommended: Best Practices for Peer Code Review,
Rick Lopez, Director of Quality Engineering Rainya Mosher, Dev Manager, Deploy Infrastructure Deploying from OpenStack Trunk into a Production Environment.
Design Process for Architecture. Architectural Lifecycle Not all lifecycle plans support Architecture! It is hard to achieve architecture based design.
1 Software Engineering An Introduction. 2 Software Engineering  Software Engineering is the study of activities related to the development of a software.
Automated Acceptance Testing and Continuous Delivery Larry Apke Agile Expert
TEST-1 6. Testing & Refactoring. TEST-2 How we create classes? We think about what a class must do We focus on its implementation We write fields We write.
DEV304. EpicUser StoryAcceptance CriteriaAcceptance TestCode.
T Iteration demo T Iteration Demo Team Balboa I1 - Iteration
Agile and the automated testing of accessibility
Agile SOA Agile EAI How do we achieve agility in Enterprise Integration?
© Equal Experts UK Ltd and lyndsayp simple software solutions to big business problems. Making Software. Better. Smoothing.
CONTINUOUS DELIVERY OF MICROSERVICES Ken Mugrage
1 Software Engineering. 2 Software Engineering is the study of activities related to the development of a software product.
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
CONTINUOUS DELIVERY & CROSS DEVICE Alexandr Nikitin.
ENGINEERING PRACTICES FOR CONTINUOUS DELIVERY: From Metrics and Deployment Pipelines to Integration and Microservices By Neal Ford with Tim Brown Deployment.
Software Engineering Lecture 11 Software Testing Presenter: Josef Hallberg 1.
Agile = regular iterations, releases time-boxed incremental regular heartbeat streamlined collaboration co-located team on-site customer face-face communication.
KRISHNACHANDER KALIYAPERUMAL PROJECT MANAGER
Manifesto for Agile Software Development
From manual test shop to fully automated test coverage: A How-To session to speed up your journey Jayshree Bhakta ITHAKA/JSTOR.
Engineering Practices for Continuous Delivery:
WEBINAR Device Labs Boost Mobile Test Automation
Continuous Delivery of Infrastructure with Chef and DSC
Architecting systems for continuous delivery
eXtremely Distributed Software Development
API Documentation Guidelines
Continuous Integration
Design Process for Architecture
Advantages OF BDD Testing
Johanna Rothman Create Technical Excellence Chapter 9
AutomIQ Inc. Proprietary & Confidential – DO NOT DISTRIBUTE
Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
Webinar Becoming More Agile? Here Is How Testing Needs To Change
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
DevOps Acceleration Engine
DevOps in Localization Continuous Delivery
Seeking ‘a’gile Testing
Design Process for Architecture
Agile testing for web API with Postman
Introduction to BDD. Introduction to BDD “BDD is a second-generation, outside-in, pull-based, multiple-stakeholder, multiple-scale, high-automation,
Agile Development – a new way of software development?
Design Process for Architecture
Architecture in an Agile Enterprise
Agile Development.
Open Source Tool Based Automation solution with Continuous Integration and end to end BDD Implementation Arun Krishnan - Automation Manager Maria Afzal-
Presentation transcript:

Engineering Practices for Continuous Delivery: From Metrics and Deployment Pipelines to Integration and Microservices with Neal Ford Testing Practices

Testing Audience Effort Feedback

Testing quadrants functional acceptance showcases usability business facing functional acceptance automated showcases usability exploratory manual unit nonfunctional acceptance quality of service manual / automated integration support programming critique project technology facing source: Brian Marrick, Continuous Delivery (Humble/Farley), with modifications

Fast/Slow Tests unit tests functional tests fast one test <= 30 ms all tests < 10 minutes never reach out for process stub everything (db, ws, ...) audience: developer slow (not a requirement) never stub anything audience: architect?

Integration Tests contracts heartbeats plumbing

Functional Acceptance Testing verify that the project matches its requirements in many cases a DSL FIT/FITnesse, RSpec, easyb, spock, Cucumber writes a wiki in English BA/SME translates to a fixtures wiki/gurken functional test fixture needs to fix fixtures integrate fixtures in CI/CD developer Business Analysts Small Matter Experts

Two Styles of Functional Testing Everything below the UI Everything including UI Domain Logic (Model) Persistence (OR Mapper) Storage External Endpoints Externals behind Firewall Not Cucumber Eg. Selenium

To Cuke or not to Cuke BDD is not a silver bullet How much extra time should I budget on my project to accommodate all the extra typing that I am doing for my unit tests? Zero! Less time spent in the debugger BDD does take extra time for the mapping of wikis to fixtures to tests https://www.thoughtworks.com/insights/blog/3-misconceptions-about-bdd BDD = Behavior driven Development https://www.thoughtworks.com/insights/blog/3-misconceptions-about-bdd

Testing Ratios Succeeding with Agile (Mike Cohn) GUI Functional Unit Tests

Testing Ratios Ideal Software Testing Pyramid (watirmelon.com) Manual Session Based Testing GUI Functional API Tests Integration Tests Component Tests Unit Tests

Anti-Pattern: Ice-Cream Cone Manual Tests Automated GUI Tests Integration Tests Unit Tests

Cupcake Anti-pattern Same amount of Manual tests Automated GUI tests Automated Integration Tests (API, Contract, Component) Automated Unit Tests Reason is usually silos/firewalls between roles www.thoughtworks.com/insights/blog/introducing-software-testing-cupcake-anti-pattern

Avoiding Cupcakes Collaborate Test at the lowest level Work in sync Cross-role pair programming Story kickoff Test at the lowest level Merge teams when possible Agree on goals and metrics

Prefer journeys to stories Do not map every story to a new test Stories that enhance on stories should lead to an update of the old test