Acceptance Testing What does it mean to you?

Similar documents
Testing in an Agile Environment Understanding Testing role and techniques in an Agile development environment. Just enough, just in time!

Agile Testing Course: 15 16/11

Agile Tester Foundation E-learning Course Outline

Testing in the Agile World

(Complete Package) We are ready to serve Latest Testing Trends, Are you ready to learn? New Batches Info

Kanban One-Day Workshop

Exam Questions

ICAgile Learning Roadmap Agile Testing Track

LESSONS LEARNED: BEING AGILE IN THE WATERFALL SANDBOX

Inverting the Pyramid

Lecture 7: Software Processes. Refresher: Software Always Evolves

Adopting Agile Practices

Standard Glossary of Terms used in Software Testing. Version 3.2. Foundation Extension - Usability Terms

Advanced Tester Certification Test Manager

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 FALL 2017 A BRIEF LOOK

Agile Software Development. Software Development Methodologies. Who am I? Waterfall. John York JOHN YORK EECS 441 WINTER 2018 A BRIEF LOOK

Kanban In a Nutshell. Bob Galen President & Principal Consultant RGCG, LLC

Adapt your tes-ng approach for Agile

Designed in collaboration with Infosys Limited

Agile Software Development Agile UX Work. Kati Kuusinen TUT / Pervasive / IHTE

About Us. Services CONSULTING OUTSOURCING TRAINING MENTORING STAFF AUGMENTATION 9/9/2016

AgileBill Krebs. Agile3d Academy. Enterprise Open Distributed. Agile Quality. Years 30 Books 240. Certs 8. Badges 6. O, Rq, Pm, Qa, Ns, Agile 01

Agile Manifesto & XP. Topics. Rapid software development. Agile methods. Chapter ) What is Agile trying to do?

Dilbert Scott Adams. CSc 233 Spring 2012

Story Writing Basics

Agile Accessibility. Presenters: Ensuring accessibility throughout the Agile development process

Bob Galen. Bob began as a developer, then moved to Project Management and Leadership, then Testing.

Learn Well Technocraft

Testing Agile Projects Stuart Reid

Sample Exam Syllabus

Software Engineering I (02161)

Examination Questions Time allowed: 1 hour 15 minutes

A Proposal to Develop a Testing Framework for Agile Software Process

Test Driven Development

Topics. Software Process. Agile. Requirements. Basic Design. Modular Design. Design Patterns. Testing. Quality. Refactoring.

A CONFUSED TESTER IN AGILE WORLD

The Business and Test Analysts Guide to Acceptance Test-Driven Development. Dale Emery

Optimize tomorrow today.

DAVIS SYSTEMS

Shift Left, Automation, and Other Smart Strategies for Getting Ahead in QA

Agile Test Automation ICAgile

CertifiedAT - Version: 1. ISTQB Certified Agile Tester Foundation Level Extension

Vision, Roadmap, and Release Planning

Requirements and User-Centered Design in an Agile Context

Ready for Scrum? Steve Hutchison DISA T&E

DESIGN. (Chapter 04)

Higher-order Testing. Stuart Anderson. Stuart Anderson Higher-order Testing c 2011

Software Quality in a Modern Development Team. Presented by Timothy Bauguess and Marty Lewis

ISTQB Advanced Level (CTAL)

PMI Agile Certified Practitioner (PMI-ACP) Exam Prep Training - Brochure

Seven Key Factors for Agile Testing Success

02291: System Integration

Development Processes Agile Adaptive Planning. Stefan Sobek

CTAL. ISTQB Advanced Level.

Shift Left Testing: are you ready? Live Webinar, Sept 19

Agile Project Management with Primavera

Requirements Testing: Turning Compliance into Commercial Advantage. Mike Bartley, Test and Verification Solutions

Quality, Project Management & Supply Professional (Customized). Choice of any 3 certifications outlined as follows:

Certified Tester Foundation Level(CTFL)

l e a n Lean Software Development software development Faster Better Cheaper

Beginning with the End in Mind: Driving Development with Acceptance Tests

Seven Deadly Sins of Agile Testing

MTAT Software Engineering Management

Testing. in A Large scale agile Development Environment

Computational Systems COMP1209

1 Visible deviation from the specification or expected behavior for end-user is called: a) an error b) a fault c) a failure d) a defect e) a mistake

Agile vs Fragile. Susmit Bhattacharya, Solution Architect, Asia Pacific. - The need for Automation in Agile Tricentis GmbH. All Rights Reserved.

Standard Glossary of Terms Used in Software Testing. Version 3.01

Software Development Methodologies

Chapter 10. Testing and Quality Assurance

Manual Testing. Software Development Life Cycle. Verification. Mobile Testing

ROTATE TO THE NEW: FROM TESTING TO QUALITY ENGINEERING

Software Development Process Models

Overview. State-of-the-Art. Relative cost of error correction. CS 619 Introduction to OO Design and Development. Testing.

THE SCRUM FRAMEWORK 1

GETTING STARTED. Introduction to Backlog Grooming

SAFe Atlassian Style (Updated version with SAFe 4.5) Whitepapers & Handouts

I am Stephen LeTourneau from Sandia National Laboratories Sandia s National Security Missions include: Nuclear Weapons Defense Systems & Assessments

Software Testing. Software Testing. in the textbook. Chapter 8. Verification and Validation. Verification and Validation: Goals

Been testing software for over 10 years Started out as a Manual Tester Moved to Automation testing Now leading teams, defining quality in

Intro To Agile - Danube.com gives customers a chance to try software periodically and provide feedback. agile helps

Quote by Bruce Sterling, from: A Software Testing Primer, Nick Jenkins

How Can a Tester Cope With the Fast Paced Iterative/Incremental Process?

Software Testing Interview Question and Answer

Computer Science and Software Engineering University of Wisconsin - Platteville 9-Software Testing, Verification and Validation

Seven Key Factors for Agile Testing Success

Automated Acceptance testing by Developers & Automated Functional Testing by Testers

Test Automation Strategies in Continuous Delivery. Nandan Shinde Test Automation Architect (Tech CoE) Cognizant Technology Solutions

The Future of Testing: Continuous Enterprise Testing

#heweb16 #MPD6 #PMTheMusical. Project Management: The Musical!

BEHAVIOR DRIVEN DEVELOPMENT BDD GUIDE TO AGILE PRACTICES. Director, Strategic Solutions

Going Agile. UK TMF April 2011

Chapter 8 Software Testing. Chapter 8 Software testing

XP: Planning, coding and testing. Practice Planning game. Release Planning. User stories. Annika Silvervarg

Final Paper/Best Practice/Tutorial Advantages OF BDD Testing

Collaboration at Scale: Prioritizing a Backlog. 13-Dec-2017

Scrum & Kanban Better Together? Some Scrum/Kanban Myths & What Professional Scrum+Kanban can look like

Chapter 9 THE PROCESS OF INTERACTION DESIGN

The requirements engineering process

This Thing Called Kanban

Transcription:

Acceptance Testing What does it mean to you? Fran O Hara Inspire Quality Services www.inspireqs.ie fran.ohara@inspireqs.ie Copyright 2013 Inspire Quality Services 1 We provide Agile, Quality and Process Improvement Services such as Consulting/Coaching: Strategic advice and hands-on Coaching/mentoring in areas such as agile/lean (Scrum, XP, Kanban), testing, process improvement, etc. Training public/inhouse: Lean/Agile: Getting Lean through Kanban, Succeeding with Agile/Scrum, PMI s Agile Certified Practitioner, Agile Testing, Product Owner training, etc. Testing (ISTQB Foundation and Advanced Test Manager/Analyst, Risk-based testing, Test design techniques, Testing for developers, TMap, Peer Reviews, UAT, etc.) Requirements/Business analysis Software project management Assessments Agile practices Industry standards and models such as CMMI, TPI, TMMi, etc. 2 1

Agenda What is Acceptance testing? Acceptance testing in traditional plan-driven lifecycles V-model Test strategies in differing contexts Acceptance testing in agile Agile a few relevant concepts Agile test strategy Quadrant thinking and automation pyramid Summary & Conclusions 3 What is Acceptance Testing? ISTQB : (user) acceptance testing: Formal testing with respect to user needs, requirements, and business processes conducted to determine whether or not a system satisfies the acceptance criteria and to enable the user, customers or other authorized entity to determine whether or not to accept the system. [After IEEE 610] User Acceptance Testing -It s a form of testing to verify the system can support day-to-day business and user scenarios to validate rules, various workflows, data correctness, and overall fit for use and ensure the system is sufficient and correct for business usage - Wikipedia Acceptance testing is any testing done by one party for the purpose of accepting another party's work. James Bach 4 2

Agenda What is Acceptance testing? Acceptance testing in traditional plan-driven lifecycles V-model Test strategies in differing contexts Acceptance testing in agile Agile a few relevant concepts Agile test strategy Quadrant thinking and automation pyramid Summary & Conclusions Copyright 2013 Inspire QS 5 V-Model Early test design Requirements (User) Acceptance test Functional Spec. System test Reviews Hi level design Integration test Lo level design Unit test 6 Static Analysis Static Testing Code Dynamic Testing 3

Typical forms of Acceptance Testing User acceptance testing Operational (acceptance) testing Contract and regulation acceptance testing Alpha and beta (or field) testing 7 Test basis: User/business requirements System requirements Use cases Business processes Risk analysis reports (User) Acceptance testing Acceptance testing is often the responsibility of the customers or users of a system Typical artifacts used during testing: Business processes on fully integrated system User procedures Forms Reports Configuration data The goal is to establish confidence 8 4

User acceptance testing (UAT) When buying a package, UAT may be the only form of testing applied. Intended to demonstrate that the software 'fits' the way the users want to work Planned and performed by or on behalf of users Users may stage any tests they wish but may need assistance with test design, documentation and organisation A final stage of validation User input essential to ensure the 'right things' are checked Inspire Quality Services Slide 9 Prerequisites for User Acceptance Testing Appropriate resources available Business Requirements available Application Code fully developed Unit Testing, Integration Testing & System Testing should be completed No Critical/High/Medium defects in System (Integration) Test Regression Testing completed All the reported defects should be fixed and tested before UAT Traceability matrix for key test levels completed UAT Environment ready Exit criteria for System Testing met Copyright 2013 Inspire QS 10 5

Usability Testing Asking users to report usability problems during UAT is a weak form of usability testing Can use usability heuristics on UI specs or prototypes or early versions of the GUI but effective usability testing should additionally involve users An approach: Focus the user experience rather than just specific features Select a representative sample of users to perform the tasks Provide the users with key tasks to perform (not scripts!) Observe them and use talking aloud protocol Ideally whole team observes in live mode Feedback discussion/debrief with users and with team 11 Acceptance Testing Operational Acceptance Testing (OAT) Also known as operational readiness testing, this refers to the checking done to a system to ensure that processes and procedures are in place to allow the system to be used and maintained. This may include checks done to back-up facilities, procedures for disaster recovery, training for end users, maintenance procedures, and security procedures. Contract and regulation acceptance testing In contract acceptance testing, a system is tested against acceptance criteria as documented in a contract, before the system is accepted. In regulation acceptance testing, a system is tested to ensure it meets governmental, legal and safety standards. Alpha and beta testing Alpha testing takes place at developers' sites, and involves testing of the operational system by internal staff, before it is released to external customers. Beta testing takes place at customers' sites, and involves testing by a group of customers who use the system at their own locations and provide feedback, before the system is released to other customers. The latter is often called field testing. Wikipedia End-to-end testing Copyright 2013 Inspire QS 12 6

Contract acceptance testing Aims to demonstrate that the supplier's obligations are met Similar to UAT, focusing on the contractual requirements as well as fitness for purpose Contract should state the acceptance criteria Stage payments may be based on successful completion. Inspire Quality Services Slide 13 A real world example - combination Subsystem 1 Supplier A Contract Acceptance Test Subsystem 2 Supplier B Contract Acceptance Test System & Integration Test Non-functional Test User Acceptance Test Subsystem 3 Supplier C Contract Acceptance Test Suppliers Customer 7

Regulation acceptance testing For example: FDA (U.S. Food & Drug Administration) regulate medical devices, pharmaceutical industry, etc. Software Validation regulations include Acceptance testing against requirements Traceability Between and to Requirements Product risks based on safety (Hazards Analysis, FMECA, etc.) Clinical trials typically also required Inspire Quality Services Slide 15 Alpha and beta testing Often used by suppliers of packages/products (particularly shrink-wrapped) Where supplier wishes to receive feedback from actual or potential customers Alpha testing normally takes place on the supplier site Performed by business/sales/support types Beta testing usually conducted by selected beta customers Performed by users on their site Similar to FOA/GA concept used for example in the telecommunications industry www.inspireqs.ie Slide 16 8

Alpha and beta testing - intent To get market feedback on the product Are major features missing? Do new features 'miss the point'? Is product ready for release? Some supplier leave faults in the software to get bug reports returned to gauge: where software is being used most where users are most sensitive to faults. Inspire Quality Services Slide 17 Context: E2E testing and the V-model wish, law, policy chance, problem use& maintenance requirements 1. Static Interface test functional design technical design realisation developers tests system tests acceptance tests 3. Participate in the E2E test project (over a consecutive series of systems) 2. Dynamic Interface test System Integration Test (SIT) 3. 2. System E2E Dynamic test: Integration Interface dynamic Test testing test: is executed dynamic the business testing 3 steps processes the technical over multiple and functional integrated 1. Static Interface interface systems test: and behaviour platforms. by comparing part Moment of the project interface of execution: assignment docs. in system Moment test of execution: or in acceptance system design test? phase Preferably as soon as possible! 9

TIA 126 Regres SSCUit SSCFault Messaging Bridge Messaging Bridge Messaging Bridge ADP Gateway Channel S4 Channel D9 Channel D9 127 Regres SSCIn Wire Tap Logging Wire Tap Error Logging Channel A2 Wire Tap Logging Channel A1 Channel G4 Channel A1 Wire Tap Logging SSCFault XSD Validater Channel D4 Channel I5 Messaging Bridge RegresLogging (SSCFault) 123 RegresSSCUit 124 Regres SSCIn ADP Gateway TIA TIA 128 FISH Melding SSCFault Messaging Bridge Messaging Bridge Messaging Bridge Channel S5 Channel D9 Channel D9 Wire Tap Logging Channel G5 Wire Tap Error Logging Channel A2 Wire Tap Logging Channel A1 SSCFault XSD Validater Channel I5 125 FISH Melding FISHLogging (SSCFault) ADP Gateway TIA Messaging Bridge 10 KlantMutatie VerzoekResponse 10 KlantMutatie Verzoek Channel D6 SSCFoutBericht Messaging Bridge Bridge Messaging Bridge Wire Tap Logging Logging Wire Tap Error Logging Channel A2 Wire Tap Logging SSCFault Validater Translator [BR0026] Translator [BR0027] Translator [BR0028] Translator [BR0029] [BR0023] [BR0024] Content-Based Router [BR0030] Content-Based Router [BR0031] Translator [BR0025] 9 Opvoer Relatie 11 Muteer Relatie 11 Muteer Relatie Reply 9 Opvoer Relatie Reply 19/04/2013 The goal of end-to-end testing Business process Place order Receive invoice Pay invoice Receive item Receive order Create invoice Receive payment Send item IT process OR OR OR B2B B2B B2B Based on E2E Testing with TMap(Sogeti) -19- Agenda What is Acceptance testing? Acceptance testing in traditional plan-driven lifecycles V-model Test strategies in differing contexts Acceptance testing in agile Agile a few relevant concepts Agile test strategy Quadrant thinking and automation pyramid Summary & Conclusions Copyright 2013 Inspire QS 20 10

Flipping the Iron Triangle FIXED Scope/ Requirements Resources Schedule Value Driven Plan Driven ESTIMATED Resources Schedule Scope/ Requirements Quality Copyright 2013 Inspire QS 21 The Life of an Iteration Copyright 2013 Inspire QS 22 11

Copyright 2013 Inspire QS 23 Validation in traditional versus agile Verification checking we are building the system right Validation checking we are building the right system CLOSED-LOOP Empirical - Adaptive Iteration Plan Daily Stand-Up Set Target Adapt Controller Inspect Clean Design & Code User Stories -Late Elaboration Shared Code Ownership Test Driven Development.. Pair Programming Customer Reviews & Feedback Retrospectives AutoTest.. 24 12

The Major Agile/Lean Methods Scrum (1995) PM Oriented Timeboxing Prioritized backlog Daily standup meetings Demo after each iteration Correct the process through lessons learned XP (1999) Engineering Oriented (A)TDD, refactoring, pair programming, continuous integration, simplicity, whole team, planning game, Kanban(2010) Continuous Improvement Visualize Reduce WIP Manage Flow Make process Policies Explicit Nurture effective feedback loops Improve Collaboratively (using scientific method) 25 Roles: -Scrum master -Scrum team -Product owner Scrum Retrospective See www.controlchaos.com 26 13

Scrum Phases? but beware Planning phase steps Product backlog prioritized and ready? At least for first sprint or two! Architecture defined? Versus emergent!?... architectural vision Release & Test Planning Development iterations Build quality software/documentation Implement phase steps ( End Game ) System integration testing But integrate early as much as possible Final performance testing UAT/Beta. Most focus Waterfall Agile 27 Evolving from sequential to iterative/incremental! A Sprint 1 Sprint 2 Code Code Test Code & Bug Fix B Sprint 1 Sprint 2 Code Code & Bug Fix Test Code Code & Bug Fix Test C Sprint 1 Sprint 2 Code & Bug Fix Code & Bug Fix Test Test 28 14

Acceptance Testing in Agile An acceptance test is a formal description of the behaviour of a software product, generally expressed as an example or a usage scenario... - in many cases the aim is that it should be possible to automate the execution of such tests by a software tool, either ad-hoc to the development team or off the shelf. - Similarly to a unit test, an acceptance tests is generally understood to have a binary result, pass or fail; - For many Agile teams acceptance tests are the main form of functional specification; sometimes the only formal expression of business requirements... Also known as The terms "functional test", "acceptance test" and "customer test" are used more or less interchangeably. A more specific term "story test", referring to user storiesis also used, as in the phrase "story test driven development". - Agile Alliance Copyright 2013 Inspire QS 29 Done What does Done mean for the project?... Design doc completed for maintenance purposes Code checked in and coding standard checked by tool Builds Unit tests complete successfully 80% code branch coverage on unit tests 100% Boundary Value coverage Acceptance tests passed Within acceptable defect levels Non functionally tested (performance, security?) Integration tested Etc. Accepted by product owner Product documents updated Sales materials updated.. 30 15

31 How agile changes things Whole Team Approach - collaboration Coding and testing are integrated rather than distinct phases Early and frequent feedback TDD/ATDD practices Test-infected developers, better automation strategies, better designed tests Always working software 32 16

Agile Test Strategy Risks Similar product risks Regression risk with high level of change How many test levels? XP appears to advocate two as part of a predefined test strategy Unit and (Story-based ) Acceptance testing -both automated as part of Test Driven Development Is system test no longer required? What does acceptance testing mean now? Automation reduces regression risk Developers doing testing reduces risk of poor quality code But how can a test strategy/approach be method rather thanproduct based? Copyright 2013 Inspire QS 33 Acceptance Testing is it enough? May not be context/risk/strategy issue May not be fully automated partial regression strategy needed Expand to fuller system tests Functional testing Non-functional testing performance, usability, etc. May still need more user story interaction tests, end-toend business scenario focused User Acceptance test, etc. System integration testing issues Etc. Strategy and scheduling issue Risk-driven, adaptive Copyright 2013 Inspire QS 34 17

Agile Testing Quadrants 35 Sample interpretation of Test Quadrants Automated Acceptance Test Framework Business Facing Manual and Automated Supporting the Team Acceptance Tests Static Tests Unit Tests Low level Integration Tests Q2 Q1 Q3 Q4 Usability Tests Exploratory Tests Security Tests Performance Tests Load Tests ility Tests Critique the Product Automated Development Framework Technology Facing Tools 18

More interpretations. From Maintainable Acceptance Tests, Janakiram/Humble, Agile 2012 Dallas 37 More interpretations. Some people use the term acceptance tests to describe Q2 tests, but we believe that acceptance tests encompass a broader range of tests that include Q3 and Q4. Acceptance tests verify that all aspects of the system, including qualities such as usability and performance, meet customer expectations. from Agile Testing, Crispin/Gregory 38 19

The Automation Pyramid Manual Tests e.g. exploratory Based on Mike Cohn GUI layer e.g. Selenium Automate at feature/workflow level API/Service layer Acceptance Tests e.g. Fitnesse, Cucumber Unit/Component layer Developer Tests e.g. JUnit Automate at story level Automate at design level 39 Basic Testing within a Sprint Automated Acceptance/Story based Tests Automated Unit Tests Manual Exploratory Tests Represent Executable requirements Represent Executable Design specifications Provides Supplementary feedback Copyright 2013 Inspire QS 40 20

From: Lisa Crispin, 2011 41 But is this enough? Keep track of the big picture Consider how each story affects rest of application Does it affect other stories, other systems? Are there non-functional implications? What about end-to-end tests?..think about the testing quadrants 42 21

Maintaining Context PRIORITY GRANULARITY 43 Sprints and Testing Strategy Sprint 1 Dev + Test* Sprint 2 Dev+ Test* Sprint 3 Dev + Test* Additional testing Additional testing Additional Testing *Sprint test = Automated Unit & Acceptance, Manual Exploratory Within a Sprint may need to perform additional testing as part of a defined but adaptive testing strategy e.g.: Feature/ epic or workflow level testing Combination/feature interaction testing Business cycle & end-to-end scenario testing exercising multiple stories, end of month processing, etc. Performance testing Usability testing Security testing System integration testing Note: Ideally any testing needed should be included within the Sprint rather than being deferred. Copyright 2013 Inspire QS Evolve to fully Working Software!! 44 22

45 From: Janet Gregory 2011 Acceptance Testing WRAP-UP Copyright 20123Inspire QS 46 23

Conclusions Adapt test strategy (and acceptance testing) to your context e.g. Lifecycle Sequential Iterative/incremental e.g. Agile/lean Organisational IT Product development Outsourcing Domain area Regulated - Safety critical, Financial Services, Web, embedded, Product risks Based on above, agree (local) definition of terms and disseminate! 47 Any other questions/issues? Fran O Hara Inspire Quality Services www.inspireqs.ie fran.ohara@inspireqs.ie Copyright 2013 Inspire QS 48 24