Table-Driven Acceptance Testing Mario Aquino Principal Software Engineer Object Computing, Inc.

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

Enhancing Spotfire with the Power of R
Programming Paradigms and languages
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Objectives Understand the software development lifecycle Perform calculations Use decision structures Perform data validation Use logical operators Use.
SYSTEM PROGRAMMING & SYSTEM ADMINISTRATION
Alternate Software Development Methodologies
 2005 Pearson Education, Inc. All rights reserved Introduction.
Introduction to C Programming
Introduction To System Analysis and Design
Acceptance Testing CSSE 376, Software Quality Assurance Rose-Hulman Institute of Technology March 30, 2007.
Liang,Introduction to Java Programming,revised by Dai-kaiyu 1 Chapter 10 Object-Oriented Modeling.
Chapter 2: Input, Processing, and Output
Computer Engineering 203 R Smith Agile Development 1/ Agile Methods What are Agile Methods? – Extreme Programming is the best known example – SCRUM.
1 Object-Oriented Design. 2 Objectives F To become familiar with the process of program development. F To the relationship types: association, aggregation,
Software Architecture Patterns (2). what is architecture? (recap) o an overall blueprint/model describing the structures and properties of a "system"
About the Presentations The presentations cover the objectives found in the opening of each chapter. All chapter objectives are listed in the beginning.
Systems Analysis and Design in a Changing World, 6th Edition
Chapter 3 Planning Your Solution
Department of Computer Science 1 CSS 496 Business Process Re-engineering for BS(CS)
UNIT-V The MVC architecture and Struts Framework.
Test coverage Tor Stålhane. What is test coverage Let c denote the unit type that is considered – e.g. requirements or statements. We then have C c =
Introduction To System Analysis and design
A Scalable Application Architecture for composing News Portals on the Internet Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta Famagusta.
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 12 Object-Oriented.
RUP Implementation and Testing
Capture and Replay Often used for regression test development –Tool used to capture interactions with the system under test. –Inputs must be captured;
Cory Foy St. Louis Code Camp May 6 th, 2005 Achieving Customer Zen with Fitnesse and.NET Fitnesse and.NET Achieving Customer.
Module 7: Fundamentals of Administering Windows Server 2008.
Using Fit on an Agile J2EE Project John Tyler Houston Java Users Group January 30, 2008.
CS101 Introduction to Computing Lecture Programming Languages.
FitNesse On the Road to Success By Pierre Veragen
Python – Part 1 Python Programming Language 1. What is Python? High-level language Interpreted – easy to test and use interactively Object-oriented Open-source.
GDT Development Tutorial. GDT Development Tutorial Doug Evans and Detlef Lexut GDT 2008 International User Conference August 10 – 13  Lake Las Vegas,
The 1:1 meeting scheduler that runs itself The 1:1 meeting scheduler that runs itself.
Object-Oriented Modeling Chapter 10 CSCI CSCI 1302 – Object-Oriented Modeling2 Outline The Software Development Process Discovering Relationships.
1-1 System Development Process System development process – a set of activities, methods, best practices, deliverables, and automated tools that stakeholders.
Database Design and Management CPTG /23/2015Chapter 12 of 38 Functions of a Database Store data Store data School: student records, class schedules,
Cohesion and Coupling CS 4311
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Software Construction Lecture 18 Software Testing.
Week 14 Introduction to Computer Science and Object-Oriented Programming COMP 111 George Basham.
Acceptance testing An introduction Alessandro Marchetto Fondazione Bruno Kessler - IRST.
Liang, Introduction to Java Programming, Sixth Edition, (c) 2007 Pearson Education, Inc. All rights reserved Chapter 11 Object-Oriented.
MVC WITH CODEIGNITER Presented By Bhanu Priya.
Cross Language Clone Analysis Team 2 February 3, 2011.
© 2012 LogiGear Corporation. All Rights Reserved FitNesseFitNesse Authors: Nghia Pham 1.
ANU comp2110 Software Design lecture 10 COMP2110 Software Design in 2004 lecture 10 Software Architecture 2 of 2 design lecture 5 of 6 Goal of this small.
Chapter – 8 Software Tools.
Exception Handling in C + + Introduction Overview of C++ Exception Handling Designing With Exceptions Exception Handling Philosophies Conclusion.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Some of the utilities associated with the development of programs. These program development tools allow users to write and construct programs that the.
The purpose of a CPU is to process data Custom written software is created for a user to meet exact purpose Off the shelf software is developed by a software.
Collision Theory and Logic
The Components of Information Systems
Collision Theory and Logic
Unit testing your metro style apps built using XAML
Introduction to JUnit CS 4501 / 6501 Software Testing
Chapter 11 Object-Oriented Design
The Components of Information Systems
Computer Programming.
Welcome to E-Prime E-Prime refers to the Experimenter’s Prime (best) development studio for the creation of computerized behavioral research. E-Prime is.
Introduction to JUnit CS 4501 / 6501 Software Testing
Chapter 10 – Software Testing
Serpil TOK, Zeki BAYRAM. Eastern MediterraneanUniversity Famagusta
Software Engineering System Modeling Chapter 5 (Part 1) Dr.Doaa Sami
Information System Building Blocks
Presentation transcript:

Table-Driven Acceptance Testing Mario Aquino Principal Software Engineer Object Computing, Inc.

Table-Driven Acceptance Testing2 Session Goals… Define the concept of Acceptance Testing (AT) Define the concept of Acceptance Testing (AT) Describe its role in agile software development Describe its role in agile software development Discuss the toolkits that facilitate testing Discuss the toolkits that facilitate testing Demonstrate the writing and execution of a table-driven acceptance test Demonstrate the writing and execution of a table-driven acceptance test

Table-Driven Acceptance Testing3 Test Types & Focus Unit tests Unit tests Exercise the public contract of single unit of code, isolated from the larger system Exercise the public contract of single unit of code, isolated from the larger system Integration tests Integration tests Interact with a working system at some level Interact with a working system at some level Utilize “public” interfaces into a system Utilize “public” interfaces into a system Confirm integration between components in a working system Confirm integration between components in a working system

Table-Driven Acceptance Testing4 Test Types & Focus (cont.) Acceptance Tests Acceptance Tests Demonstrate the implementation of customer defined system requirements Demonstrate the implementation of customer defined system requirements Confirm that domain/business rules are enforced by the system as defined by the customer Confirm that domain/business rules are enforced by the system as defined by the customer Utilize business language to represent domain concepts Utilize business language to represent domain concepts

Table-Driven Acceptance Testing5 Fostering Collaboration The process of writing ATs has goals The process of writing ATs has goals Q & A between the customer and developer Q & A between the customer and developer Transfer of understanding Transfer of understanding Decision making Decision making Examples to satisfy requirements captured Examples to satisfy requirements captured Production of the executable contract to which all are accountable Production of the executable contract to which all are accountable

Table-Driven Acceptance Testing6 Objective Gauges of Progress Features are complete when their ATs pass Features are complete when their ATs pass Percentage completion estimates become irrelevant Percentage completion estimates become irrelevant Add ATs to continuous integration process & publish the results Add ATs to continuous integration process & publish the results

Table-Driven Acceptance Testing7 Level Playing Field ATs should be in a mutually accessible format ATs should be in a mutually accessible format Easy for customers to write, change, extend Easy for customers to write, change, extend Easy for developers to follow and execute Easy for developers to follow and execute

Table-Driven Acceptance Testing8 Fit Framework for Integrated Tests (Fit) Framework for Integrated Tests (Fit) Originally developed by Ward Cunningham Originally developed by Ward Cunningham Uses a table-based approach Uses a table-based approach Test details appear in several varieties of tables Test details appear in several varieties of tables Tests can be written in HTML files Tests can be written in HTML files

Table-Driven Acceptance Testing9 How It Works… HTML Test file Fit Test Runnerreferences Fixtures (compiled source files) HTML Test Report parses executes generates

Table-Driven Acceptance Testing10 Framework Fixtures fit.ColumnFixture fit.ColumnFixture Calculation-style testing Calculation-style testing fit.RowFixture fit.RowFixture Equality comparison for groups of values Equality comparison for groups of values fit.ActionFixture fit.ActionFixture Workflow-style testing Workflow-style testing

Table-Driven Acceptance Testing11 “Calculation” Testing Business rules that depend on multiple conditions Business rules that depend on multiple conditions Varying inputs trigger different business rules Varying inputs trigger different business rules Appointments in a schedule must have start dates/times occurring before the end dates/times Overlapping appointments are not allowed for some events Certain events are only allowed between specific hours of the day ColumnFixture

Table-Driven Acceptance Testing12 Groups of Values Testing equality for collections of objects Testing equality for collections of objects Useful for checking values before/after something is done in a test Useful for checking values before/after something is done in a test Simple or complex objects can be used Simple or complex objects can be used Can be domain objects or utility types Can be domain objects or utility types Evaluation is order independent Evaluation is order independent RowFixture

Table-Driven Acceptance Testing13 Sequences of Interactions Application accessible via “device” metaphor Application accessible via “device” metaphor Devices responds to 4 keywords: Devices responds to 4 keywords: start Begins use of fixture enter Adds data to system device press Issues command to device check* Reads information from device * triggers comparison ActionFixture

Table-Driven Acceptance Testing14 Using Domain Types ATs should express concepts using business language ATs should express concepts using business language Domain types can be used directly Domain types can be used directly Fixtures translate strings in test tables to concrete domain types Fixtures translate strings in test tables to concrete domain types Parsing delegates can be registered as well Parsing delegates can be registered as well

Table-Driven Acceptance Testing15 FitLibrary Adds new fixtures, utilities and keywords to Fit Adds new fixtures, utilities and keywords to Fit DoFixture – “flow” style testing DoFixture – “flow” style testing SetUpFixture – convenient test setup SetUpFixture – convenient test setup FolderRunner – batch test execution FolderRunner – batch test execution setUp() & tearDown() setUp() & tearDown() SetUp & TearDown SetUp & TearDown Keywords: reject, not (and others) Keywords: reject, not (and others) Tests can be written in MS Excel spreadsheets Tests can be written in MS Excel spreadsheets

Table-Driven Acceptance Testing16 “Flow”-style Testing A single fixture (DoFixture) organizes the test A single fixture (DoFixture) organizes the test Testing conditions setup Testing conditions setup Supporting fixtures share common resources Supporting fixtures share common resources Parsing delegates for domain types Parsing delegates for domain types References to the system under test References to the system under test

Table-Driven Acceptance Testing17 “Flow”-style Testing (cont.) MyGrandUnifyingFixture AddMoviesAddCustomers CalculateLateFees ViewActiveRentals CheckOutMovies Subclasses fitlibrary.SetUpFixture Subclasses fitlibrary.DoFixture fitlibrary.DoFixture fit.RowFixture fit.ColumnFixture

Table-Driven Acceptance Testing18 SetUpFixture

Table-Driven Acceptance Testing19 DoFixture

Table-Driven Acceptance Testing20 RowFixture

Table-Driven Acceptance Testing21 ColumnFixture

Table-Driven Acceptance Testing22 Batch Test Execution fitlibrary.runner.FolderRunner fitlibrary.runner.FolderRunner Specify folder where tests are located Specify folder where tests are located Specify output folder Specify output folder Prints a “pretty” report Prints a “pretty” report

Table-Driven Acceptance Testing23 Keywords Fit supplies the error keyword Fit supplies the error keyword Use when an exception is expected (only in ColumnFixture and ActionFixture) Use when an exception is expected (only in ColumnFixture and ActionFixture) FitLibrary adds several more for DoFixture FitLibrary adds several more for DoFixture reject & not reject & not Behave identically Behave identically Cause cell evaluation to be reversed Cause cell evaluation to be reversed ensure ensure Behaves the opposite of reject & not Behaves the opposite of reject & not

Table-Driven Acceptance Testing24 The big demo…

Table-Driven Acceptance Testing25 Patterns and Practices Testing the system via API Testing the system via API True domain objects interaction True domain objects interaction Unit-style testing of the whole system Unit-style testing of the whole system Testing the system via UI Testing the system via UI Test how the real users would Test how the real users would Need UI driver Need UI driver

Table-Driven Acceptance Testing26 But What About??? FitNesse FitNesse Fit/FitLibrary testing via a wiki-server Fit/FitLibrary testing via a wiki-server Adds suites similar to JUnit tests suites Adds suites similar to JUnit tests suites Other features Other features Variable substitution / Security / SetUp & TearDown Variable substitution / Security / SetUp & TearDown Debugging Debugging FitLibrary steals System.out & System.error  FitLibrary steals System.out & System.error  Use log file output (log4j) Use log file output (log4j) Launch tests with JPDA active Launch tests with JPDA active

Table-Driven Acceptance Testing27 Questions???

Table-Driven Acceptance Testing28 References Fit Website: Fit Website: FitLibrary: FitLibrary: FitNesse: FitNesse: Fit article: Fit article: