Acceptance Testing
CSSE 376, Software Quality Assurance
Rose-Hulman Institute of Technology
March 30, 2007
3
Lifecycle Testing Relationships
Requirements
High-level Design
Low-level Design
Code Unit Testing
Integration Testing
System Testing
Acceptance Testing
4
Requirements as Use Cases
1. For each use case enumerate a set of scenarios
2. Construct a test case for each scenario
3. Construct a test suite to run the test cases
5
Other Paths to Acceptance
Beta testing Distribute system to volunteers Collect change requests, fix, redistribute Collect statistics on beta use
Shadowing Collect or redistribute real-time use of existing
system Compare results Collect statistics
6
Agile Approach: Framework for Integrated Test (FIT) Developed by Ward
Cunningham as an extension of xUnit framework
Encourages customer participation via simple tables
7
Story-Driven Development
Customers write stories Developers develop code to realize
each story Customers and developers work
together to create tests of each story
11
Fixture: Connection Between Test System and Application
When "Test" button is pushed a fixture is called to process the table
The fixture delegates to underlying application code
Fixture code is like xUnit TestCase code extends base class may create objects for multiple tests
12
Common Table Formats
ColumnFixture each row specifies one input and one
output RowFixture
first row is input, remaining rows are output
ActionFixture each row is either an action to perform
or a value to check
15
ActionFixture
Action Table
start fitnesse.fixtures.CountFixture
check counter 0
press count
check counter 1