Two Things You Must Have for Lasting Agility

Download Two Things You Must Have for Lasting Agility

Post on 22-Jan-2016




0 download

Embed Size (px)


Two Things You Must Have for Lasting Agility. Automated Acceptance Testing and Continuous Delivery Larry Apke Agile Expert My Definition of Successful Agility. - PowerPoint PPT Presentation


  • Automated Acceptance Testing and Continuous Delivery

    Larry Apke Agile

  • The ability to consistently and predictably deliver high-quality software that the end user can easily understand and use into a production-like environment every iteration.Consistent every iterationPredictable over 90% story completionHigh Quality fully tested with no end user compromising defectsUsable the end user knows how to, and can, efficiently use the functionality

  • Consistency problemsPredictability problemsQuality problemsUsability problems

  • Sometimes described with different terms:TDD Test Driven DevelopmentATDD Automated Test Driven DevelopmentBDD Behavioral Driven DevelopmentSpecification by ExampleAMDD Agile Model Driven DevelopmentExecutable specificationsEDD - Example Driven DevelopmentAAT - Agile Acceptance Testing

  • A collaborative approach to defining requirements and business-oriented functional tests for software products based on capturing and illustrating requirements using realistic examples instead of abstract statements. It is applied in the context of Agile software development methods, in particular Behavior driven development. This approach is particularly successful for managing requirements and functional tests on large-scale projects of significant domain and organisational complexity. Wikipedia.

  • Specifications are written in terms of behavior or by using examplesGivenWhenThen (Initial ContextEventResult)Referred to as scenarios Focuses the conversation at the right level and becomes something that business and developers can understandScenarios become the framework for automated testsThe tests that are generated/written from scenarios fail when runCode is written / refactored until tests pass and it meets code quality standards

  • Write the Story

    Feature: CalculatorIn order to avoid silly mistakesAs a math idiotI want to be able to add, subtract, multiply and divide numbers

  • Write the Scenarios

    Scenario: 1. Add two numbersGiven I have entered +50 into the calculatorAnd I have entered +70 into the calculatorWhen I press calculateThen the result should be 120 on the screen

  • Code and Passing the TestsCode CoverageFeature Files

  • How long does it take for one line of code that is changed to flow through the delivery chain?How long should it take? Some companies release to production multiple times per day Flickr, Facebook, Twitter, LinkedIn are held up as examples

  • Automated TestingEvery code check in is a release candidateBroken builds are fixed immediatelyThere is a deployment pipeline that takes release candidates from one level to the next ie Dev, QA, UAT, ProductionThere are different levels of testing along the pipeline based on increasing confidenceHighly automated one button deploy

  • Always use version controlCheck in everything have everything that can possibly change at any point in the life of the project stored in a controlled manner Jez Humble Continuous DeliveryCheck in to trunkManage dependencies and configuration through automated scriptsBuild your environments automatically from scratch

  • Specification By Example - How successful teams deliver the right software Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment AutomationThe Cucumber Book: Behaviour-Driven Development for Testers and DevelopersDan North Introducing BDD - -



View more >