Paul Ammann & Jeff Offutt

Slides:



Advertisements
Similar presentations
Introduction to Software Testing Chapter 1
Advertisements

Introduction to Software Testing Chapter 1 Model-Driven Test Design Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 1 Paul Ammann & Jeff Offutt SUMMARY OF PARTS 1 AND 2 FROM LAST WEEK.
CITS5501 Software Testing and Quality Assurance Testing – Introduction Material from Introduction to Software Testing, ed 2, Ammann & Offutt.
Eric Nickell.  History  What is Feature Driven Development?  What is a Feature?  Feature Driven Development Roles ◦ Class Ownership  Feature Driven.
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.2 Challenges in Testing Software – Software Testability Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.5 Input Space Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.5 Input Space Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.3 Challenges in Testing Software Test Criteria and the Future of Testing Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 2.6 Graph Coverage for Use Cases Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.5 Input Space Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.4 Model-Based Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 9.3 Challenges in Testing Software Test Criteria and the Future of Testing Paul Ammann & Jeff Offutt
Test plans CSCI102 - Systems ITCS905 - Systems MCS Systems.
Introduction to Software Testing Chapter 8.1 Building Testing Tools –Instrumentation Paul Ammann & Jeff Offutt
SWE 637: Test Criteria and Definitions Tao Xie Prepared based on Slides by ©Paul Ammann and Jeff Offutt Revised by Tao Xie.
Dr. Tom WayCSC Testing and Test-Driven Development CSC 4700 Software Engineering Based on Sommerville slides.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Chapter 19 Verification and Validation.
1 Introduction to Software Testing. Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Chapter 1 2.
1 Graph Coverage (6). Reading Assignment P. Ammann and J. Offutt “Introduction to Software Testing” ◦ Section
Introduction to Software Testing Chapter 9.2 Program-based Grammars Paul Ammann & Jeff Offutt
Introduction to Software Testing (2nd edition) Chapter 4 Putting Testing First Paul Ammann & Jeff Offutt August.
Introduction to Software Testing Model-Driven Test Design and Coverage testing Paul Ammann & Jeff Offutt Update.
Week # 4 Quality Assurance Software Quality Engineering 1.
Introduction to Software Testing (2nd edition) Chapter 5 Criteria-Based Test Design Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Software Project Configuration Management
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
421 Review Questions Does software engineering add documentation that slows down the project? Is there one software process that is better than the others.
Introduction to Software Testing Chapter 9.2 Program-based Grammars
Integrate Agile Testing into the Process
Chapter 18 Maintaining Information Systems
Putting Testing First CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Coverage-Based Test Design CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Introduction to Software Testing Chapter 2 Model-Driven Test Design
Paul Ammann The Agile Heresy: What Drives Traditional Software Engineering, and Why Agile Turns it Upside Down Paul Ammann.
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
Introduction to Software Testing
Paul Ammann & Jeff Offutt
Introduction to Software Testing Chapter 5.2 Program-based Grammars
Testing and Test-Driven Development CSC 4700 Software Engineering
Putting Testing First CS 4501 / 6501 Software Testing
Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained
Software Testing and Maintenance Maintenance and Evolution Overview
Introduction to Software Process Models
Introduction to Software Testing (2nd edition) Chapter 4 TDD Example
Introducing ISTQB Agile Foundation Extending the ISTQB Program’s Support Further Presented by Rex Black, CTAL Copyright © 2014 ASTQB 1.
ISP Coverage Criteria CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Graph Coverage for Specifications CS 4501 / 6501 Software Testing
Paul Ammann & Jeff Offutt
Managing the Test Process CS 4501 / 6501 Software Testing
Logic Coverage for Source Code CS 4501 / 6501 Software Testing
Introduction to Software Testing Chapter 5.1 Syntax-based Testing
Test Driven Lasse Koskela Chapter 9: Acceptance TDD Explained
Move from Scripted Manual Testing to Scenario-Based Testing
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Paul Ammann & Jeff Offutt
Paul Ammann & Jeff Offutt
User-Centered Design Data Entry CS 4640 Programming Languages for Web Applications [The Design of Everyday Things, Don Norman, Ch 7]
Presentation transcript:

Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwaretest/ Introduction to Software Testing (2nd edition) Chapter 4 Putting Testing First Paul Ammann & Jeff Offutt http://www.cs.gmu.edu/~offutt/softwaretest/ August 2014

The Increased Emphasis on Testing Philosophy of traditional software development methods Upfront analysis Extensive modeling Reveal problems as early as possible More work must be revised Root problem is harder to find Cost Delta Time Original Revision Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

Traditional Assumptions Modeling and analysis can identify potential problems early in development Savings implied by the cost-of-change curve justify the cost of modeling and analysis over the life of the project These are true if requirements are always complete and current But those annoying customers keep changing their minds! Humans are naturally good at approximating But pretty bad at perfecting These two assumptions have made software engineering frustrating and difficult for decades Thus, agile methods … Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

Why Be Agile ? Agile methods start by recognizing that neither assumption is valid for many current software projects Software engineers are not good at developing requirements We do not anticipate many changes Many of the changes we do anticipate are not needed Requirements (and other “non-executable artifacts”) tend to go out of date very quickly We seldom take time to update them Many current software projects change continuously Agile methods expect software to start small and evolve over time Embraces software evolution instead of fighting it Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

Supporting Evolutionary Design Traditional design advice says to anticipate changes Designers often anticipate changes that don’t happen Anticipated Change Anticipated change that doesn’t happen Evolving Design Unanticipated Change Both anticipated and unanticipated changes affect design Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

System Tests in Agile Methods Traditional testers often design system tests from requirements Requirements ? System tests But … what if there are no traditional requirements documents ? Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

User Stories A user story is a few sentences that captures what a user will do with the software Agent sees a list of today’s interview applicants Withdraw money from checking account Support technician sees customer’s history on demand In the language of the end user Usually small in scale with few details Not archived Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

The TDD acceptance testing process Pick a user story Write tests for the story Automate tests Implement functionality

A graphical representation of the test-driven development lifecycle Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

NO! The Testing Shortfall Do TDD tests the software well? Do the tests achieve good coverage on the code? Do the tests find most of the faults? If the software passes, should management feel confident the software is reliable? NO! Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

Use a human-based approach Use modeling and criteria Design Good Tests Use a human-based approach Create additional user stories that describe non-happy paths How do you know when you’re finished? Some people are very good at this, some are bad, and it’s hard to teach 1. 2. Use modeling and criteria Model the input domain to design tests Model software behavior with graphs, logic, or grammars A built-in sense of completion Much easier to teach—engineering Requires discrete math knowledge Part 2 of book … Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt

Summary More companies are putting testing first This can dramatically decrease cost and increase quality A different view of “correctness” Restricted but practical Embraces evolutionary design TDD is definitely not test automation Test automation is a prerequisite to TDD Agile tests aren’t enough Introduction to Software Testing, Edition 2 (Ch 4) © Ammann & Offutt