Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained

Slides:



Advertisements
Similar presentations
Acceptance Testing vs. Unit Testing: A Developers Perspective Owen Rogers Rob Styles
Advertisements

Acceptance Testing.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 15 Finalizing.
“GENERIC SCRIPT” Everything can be automated, even automation process itself. “GENERIC SCRIPT” Everything can be automated, even automation process itself.
Chapter 8: Systems analysis and design
Software Project Planning Defining the Project Writing the Software Specification Planning the Development Stages Testing the Software.
BIT 286: Web Applications Automated Web Testing. Selenium  Selenium Is moving from being Firefox based to being more of a 'normal desktop' program that.
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.
1 Presentation Title Test-driven development (TDD) Overview David Wu.
Software. Because databases can get very big, it is important to decide exactly what is going to be stored in each field. Fields can be text, number,
Testing under the Agile Method CSCI 521 Software Project Management based on the book Testing Extreme Programming by Lisa Crispin and Tip House.
Lecture 5d: Systems Use Case Descriptions.  Review  Systems Use Case Descriptions  Systems Use Case Authoring SYS3662.
BIT 286: Web Applications Automated Web Testing. Selenium  Selenium Is moving from being Firefox based to being more of a 'normal desktop' program that.
Software Development.
In the Senior Design Center
Core ELN Training: Office Web Apps (OWA)
User Stories > Big and Small
Chapter 15 Finalizing Design Specifications
Chapter 15 Finalizing Design Specifications
Paul Ammann & Jeff Offutt
Software Testing.
TEST AUTOMATION IN BDD WAY
Form Development (Chapter 6)
Appendix B Agile Methodologies
Software & Software Engineering Pertemuan-4 Dosen :Kundang K Juman
Use Cases Discuss the what and how of use cases: Basics Benefits
DATA INPUT AND OUTPUT.
Introduction to Visual Basic 2008 Programming
THIS IS TO EVIDENCE YOUR WORK AND GET THE BEST GRADE POSSIBLE
IS4500 Software Quality Assurance
Putting Testing First CS 4501 / 6501 Software Testing
Test Driven Development 1 November Agenda  What is TDD ?  Steps to start  Refactoring  TDD terminology  Benefits  JUnit  Mocktio  Continuous.
Paul Ammann & Jeff Offutt
Software Testing With Testopia
Software Quality Assurance
Requirement Engineering
Behavior Driven Test Development
Scripts & Functions Scripts and functions are contained in .m-files
In the Senior Design Center
CSC480 Software Engineering
Course Name: QTP Trainer: Laxmi Duration: 25 Hrs Session: Daily 1 Hr.
Intro to PHP & Variables
Sentinel logic, flags, break Taken from notes by Dr. Neil Moore
Advantages OF BDD Testing
Johanna Rothman Create Technical Excellence Chapter 9
Sentinel logic, flags, break Taken from notes by Dr. Neil Moore
TDD adoption plan 11/20/2018.
Lecture 09:Software Testing
Chapter 15 Finalizing Design Specifications
Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained
UNIT 3 CHAPTER 1 LESSON 4 Using Simple Commands.
Databases Software This icon indicates the slide contains activities created in Flash. These activities are not editable. For more detailed instructions,
Course: Module: Lesson # & Name Instructional Material 1 of 32 Lesson Delivery Mode: Lesson Duration: Document Name: 1. Professional Diploma in ERP Systems.
TDD & ATDD 1/15/2019.
Systems Construction and Implementation
In the Senior Design Center
Flowcharts and Pseudo Code
Systems Construction and Implementation
An Introduction to Programming with C++ Fifth Edition
Applying Use Cases (Chapters 25,26)
Extreme Programming.
Rapid software development
Test-Driven Development
GCSE Languages (Revised)
Chapter 1: Creating a Program.
Use cases Dr. X.
SimVenture Evolution Lesson 12 - Finance
Presentation transcript:

Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained Paul Ammann http://cs.gmu.edu/~pammann/

Overview Introduction to User Stories Acceptance Tests Understanding the Process Acceptance TDD as a Team Activity Benefits of Acceptance TDD What Are We Testing, Exactly? Brief Overview of Available Tools In the Spacecraft business no design can survive the review process without first answering the question – how are we going to test this thing? 4/7/2019

Introduction To User Stories Format of a Story As a (role) I want (functionality) so that (benefit). May Record These On Index Cards CCC: Card, Conversation, Confirmation Power of Storytelling User View of What Is Needed, But No “How” Information Examples of User Stories “Support technician sees customer’s history onscreen at the start of a call” “The system prevents user from running multiple instances of the application simultaneously” Storytelling Reveals Meaning Without Committing the Error of Defining It. 4/7/2019

Acceptance Tests Example Tests For a Story Properties of Acceptance Tests Owned By Customer Written Together With Customer, Developer, and Tester Focus on the What, not the How Expressed in the Language of the Problem Domain Concise, Precise, and Unambiguous Implementing Acceptance Tests This Means Automating Them Use Whatever Framework is Most Convenient These Are Basically Use-Cases 4/7/2019

Acceptance Tests(2): Example Stories Simulate a call with Fred’s account number and verify that Fred’s info can be read from the screen. Verify that the system displays a valid error message for a non-existing account number. Omit the account number in the incoming call completely and verify that the system displays the text “no account number provided” on the screen. Three Acceptance-TDD Stories 4/7/2019

Acceptance Tests(3): Too Much Information Go to the “new transaction” screen, fill in the required details, and save the entry; verify that the transaction shows up on the list. Select the “delete” checkbox for the newly created entry, click “delete all marked transactions”, and verify that they’re gone. Create multiple transactions, check several of them and delete; verify that tall selected transactions were indeed deleted. Acceptance Tests That Focus Too Much On Implementation 4/7/2019

Acceptance Tests(4): Trimmed Down Version Try creating a new transaction Try deleting a transaction Try deleting multiple transactions Customer Needs To Be Able To Understand Tests 4/7/2019

Understanding the Process The Acceptance TDD Cycle Pick a Story Write Tests for the Story Automate the Tests Implement the Functionality Acceptance TDD Inside an Iteration Continuous Planning Mid-Iteration Sanity Check Decreasing The Load Splitting Stories A Process With Feedback 4/7/2019

TDD and Acceptance TDD Write a User Story Write Acceptance Test For Story Implement Acceptance Test // Failing Acceptance Test Test, Code, Refactor // Passing Acceptance Test Refactoring Customer Acceptance Lather, Rinse, Repeat 4/7/2019

Acceptance Testing as a Team Activity Defining the Customer Role Shared Interest in Success Authority to Make Decisions Ability to Understand Implications Ability to Explain Domain Who Writes Tests With the Customer? How Many Testers Do We Need? One or Two Developers Per Tester Tester is a Role, Not a Job Title Key Is Verification Against Target Domain 4/7/2019

Benefits of Acceptance Testing Definition of “Done” But Still Not Done Until “Simon Says” So Knowing Where We Are Knowing When to Stop Cooperative Work Trust and Commitment Specification By Example This is a Big One! Filling the Gap Unit Tests Are Not The Same As Acceptance Tests Both Unit and Acceptance Tests Needed 4/7/2019

What Are We Testing, Exactly? Should We Test Against the UI? Do Whatever Is Easier Long Term Often UIs Are In the Way Not a Question Of Technology Capture Replay Tools Can Automate Tests Performance Might Matter Should We Stub Our System? Sufficiently Close To The Real Thing Sometimes Stubs Are Necessary Should We Test Business Logic Directly? Of Course – It’s What The Customer Cares About Tests Need to Run Early 4/7/2019

Brief Overview of Available Tools Table-Based Frameworks Fit: Smart Parsing for Simple Tables FitNesse: Fit in a Wiki Selenium: Controlling a Browser Text-Based Frameworks Exactor: Simple Keyword-Driven Testing TextTest: Testing With Logs Scripting Language-Based Frameworks Homegrown Tools Tool Support Is Essential 4/7/2019