Index

A

acceptance criteria 12

defined, 12

explained, 95

feature acceptance criteria, 45–46

story acceptance criteria, 52

acceptance tests 20–21

acceptance criteria 12 See acceptance criteria

agile principles, 20–21

anti-missile acceptance test, 276

automated acceptance tests, 35–36, 89–90

Bad Customer ID test, 90

benefits, 2, 214–215

blocks 213

change issues, 213

explained, 212

monads, 212

risks, 214

unavailable customers, 213

breaking up stories with, 95–96

as bug reports, 201–202

production bugs, 202

regression testing, 202

root cause analysis, 201–202

business capabilities, 172–178

business rules 96 See business rules

Card Processor Charges Matches Rental Charges test, 105

case studies 263 See case studies

CD Already Rented test, 84

CD Limit Reached and Late Rental test, 88

CD Limit Reached test, 85–86

Charge Submitted During Check-In test, 108

Charges Agree with Transfer test, 104

Check-In CD test 100

business rules, 100

creating, 101

Cucumber framework, 297

Fit framework, 286–287

relationships, 165

Robot framework, 295–296

Slim—Cucumber Style framework, 291

Slim—Table Style framework, 288–290

story map of activities, 113–114

Check-Out CD test 296–297

Cucumber framework, 296–297

Fit framework, 284–285

Robot framework, 295

Slim—Cucumber Style framework, 291

Slim—Table Style framework, 288–289

communication, 66–68, 212

context 70 See context

control and observation points, 27

creating, 69–70

Current Late Rental When Renting test, 86

customer examples 275

acceptance test detail, 275

explained, 274

fuzzy acceptance tests, 274

data conversion projects, 170

database conversion projects, 170

decoupling user interface 131–133

explained, 131–133

separating user interface from service, 157–158

simplifying testing by, 136

defined, 2–3, 12

developer acceptance tests 145–147

field display tests, 145–147

tabular display tests, 147–151

development review, 115–116

from charter to deliverable, 120–121

deployment plans, 120

quality attribute tests, 117–119

separating state from display, 116–117

usability testing, 116

workflow tests, 119–120

device testing, 254–255

events, 137–139

explained, 3, 211–212

external interfaces 107–111

component tests, 107–111

creating acceptance tests for, 107

explained, 100–108

system context, 112–113

test doubles and mocks, 111–112

feedback, 18

importance of, 10–11

internal design from tests, 252–254

Invalid Card Response Is Charge Declined test, 110

lack of, 170–173

large systems, triads for, 167–169

lean principles, 20–21

legacy systems, 172

manual testing, 172

multi-level tests, 90–93

objectives, checking, 93–94

origin and development, 5–6

positive and negative testing, 26–27

post-implementation tests, 17–18

power of three, 277

preimplementation tests, 19–20

process, 210

project charters, 39–42

relationships 167

alternative representations, 167

entities and, 161–163

explained, 161

multiple relationships, 163–165

requirements 275

constraints, 275

decoupling, 276

defined, 275

documenting, 275–276

explained, 27–28

high-level requirements, 42–46

separation of issues, 276–277

user interfaces as part of requirements process, 255

risks, 214

role in overall development process, 209–212

running, 25–26, 78–80

scenarios, 57

conceptual flow, 65

scenario handling, 178–179

story maps, 63–64

separation of issues 194 See separation of issues

service provider tests 155–156

comparing implementations, 155–156

explained, 151

interface, 151–154

quality attribute tests, 155

states 142–144

internal states, 142–144

state tables, 139–142

state transitions, 139–142

transient or persistent states, 144

stories 52

acceptance criteria, 52

breaking down features into stories, 48

cross-story issues, 88

customer terms, 54

developing, 51

explained, 47–48

INVEST criteria, 55–56

persona, 50–51

role attributes, 49–50

roles, 49

size of, 53–54

story estimates, 52

story maps, 63–64, 113–114

use cases, 57–63

success stories, 324–332

tables with, 298–300

test evaluation 193

confirming environment, 193

fragility, 192–194

idempotence, 192

implementation issues, 197

points to remember, 197–198

separation of concerns, 194–195

spell checking, 192

test failure, 195

test redundancy, 196–197

test sequence, 193–194

understandability to customers, 191–192

test exercises 310–313

calculator test exercise, 310–313

Sam’s CD Rental exercise, 314

triangle exercise, 314

test frameworks 296

Cucumber, 296

explained, 283

Fit, 284

Robot, 295

Slim—Cucumber Style framework, 291

Slim—Table Style, 286–284

websites, 298

test platforms, 251–252

test presentation 187

complex data, 187

custom table forms, 188

customer understood tables, 183–185

specifying multiple actions, 185–187

tables versus text, 185

test scripts, 31–33

test setup 259–260

ameliorating potential problems, 259–260

common setup, 257–259

persistent storage issues, 260–261

test order, 260

test structure 75–76

action tables, 75–76

calculation tables, 73–74

data tables, 74–75

explained, 71–73

testing layers, 210–211

testing matrix, 23–24

testing process, 37

testing systems with random events, 277

types of tests, 23–25

tests for business rules, 86

tests for exception scenarios, 83–87

tests with example values, 76–78

tests with values in text, 78

user interface tests, 33–34, 93

uses of 200

breaking down stories, 200

degree of doneness, 199

developer stories, 200

estimation aid, 200

workflows, improving, 178–181

xUnit tests, 34–35

action tables, 75–76

activities, story map of, 113–114

Acuminous Ltd., 326

Adzic, Gojko, 6

“The Agile Manifesto,” 20

agile principles, 20–21

agileartisans.com, 327

airline industry 252

conversion to SHARES reservation system, 252

ubiquitous language, 207

Allowed to Reserve business rule, 126

separation of issues, 126–127

simplified rule, 128

allowedToReserve() method, 253–254

ameliorating potential problems, 259–260

Angelou, Maya, 83

anti-missile acceptance test, 276

applications, determining applications to run on server, 244–248

assigning business value, 280–281

Atwood, Margaret, 1

auto mileage displays, 18

automated acceptance tests, 35–36, 89–90

B

Bad Customer ID test, 90

Bain, Scott, 27

BDD (behavior-driven development), 5

Beck, Kent, 6, 305

behavior-driven development (BDD), 5

benefits to acceptance testing, 2, 214–215

Berra, Yogi, 29

big picture test, 227–228

black box testing, 255–256

blocks to acceptance testing 213

change issues, 213

explained, 212

monads, 212

risks, 214

unavailable customers, 213

boundary value analysis, 255

breaking down tests, 264–269

disallowed domain tests, 268–269

domain breakdown tests, 266–268

local-part validation, 265–266

tests to ensure connection, 269

verification tests, 269

breaking up stories with acceptance tests, 95–96, 200

Browning, Elizabeth Barrett, 23

Buffett, Warren, 172

bug reports 201–202

acceptance tests as, 201–202

production bugs, 202

regression testing, 202

root cause analysis, 201–202

Burger King, off-menu ordering, 178–179

business capabilities, 172–178

business rules 96–100

business rule tests, 96–100

Check-In CD test, 100

example of, 29–31

exposing, 178

reusable business rules, 158–159

separation of issues, 125–128

tests for, 86

business value 281

business value charts, 281

developer stories, 281–282

estimating, 280–281

explained, 279–280

sources of, 279

tracking, 223

C

calculation tables, 73–74

calculator test exercise, 310–313

Cann, Richard, 229

Cannan, Dawn, 324

Card Processor Charges Matches Rental Charges test, 105

Carroll, Lewis, 6

case studies 263–264

e-mail addresses case study, 263–264

breaking down tests, 264–269

disallowed domain tests, 268–269

domain tests, 266–268

local-part validation, 265–266

tests to ensure connection, 269

verification tests, 269

highly available platform 243

context for switching servers, 243

test for switching servers, 244

test for technical rule, 246–248

library print server case study 235–236

context, 235–236

workflow test, 236–241

retirement contributions case study 227–228

big picture test, 227–228

business value tracking, 223

context, 219–220

event table, 228

exception: discrepancies less than a dollar, 223–224

exception: missing participant, 225

main course test, 220–222

state transitions, 228–230

two simultaneous exceptions, 225–227

signal processing case study 229

context, 229

developer tests, 233

sound levels, 229–232

case tests, 255

category-based rental fees 296

Cucumber framework, 296–297

Fit framework, 287

Robot framework, 295–296

Slim—Cucumber Style framework, 291

Slim—Table Style framework, 287–291

CD Already Rented test, 84

CD Limit Reached and Late Rental test, 88

CD Limit Reached test, 85–86

CD rental example 75

action tables, 75–76

Allowed to Reserve business rule, 126

separation of issues, 126–127

simplified rule, 128

allowedToReserve() method, 253–254

Bad Customer ID test, 90

calculation tables, 73–74

Card Processor Charges Matches Rental Charges test, 105

CD Already Rented test, 84

CD Limit Reached and Late Rental test, 88

CD Limit Reached test, 85–86

CD rental limit reached, 185–187

Charge Submitted During Check-In test, 108

Charges Agree with Transfer test, 104

Check-In CD test 100

business rules, 100

creating, 101

Cucumber framework, 297

Fit framework, 286–287

relationships, 165

Robot framework, 295–296

Slim—Cucumber Style framework, 291

story map of activities, 113–114

Check-Out CD test 76–78

creating, 76–78

Cucumber framework, 296–297

Fit framework, 284–285

Robot framework, 295

Slim—Cucumber Style framework, 291

Slim—Table Style framework, 288–289

Check-Out screen, 93

Current Late Rental When Renting test, 86

customer terms, 54

customer understood tables, 183–185

data tables, 74–75

development review, 115–116

from charter to deliverable, 120–121

deployment plans, 120

quality attribute tests, 117–119

separating state from display, 116–117

usability testing, 116

discount calculation 35–36

automated acceptance tests, 35–36

content diagram, 34

explained, 29–31

overall test, 36–37

test script, 35–36

xUnit test, 34–35

display for reservation allowed, 132–134

events, 137–139

exercises, 314

feature acceptance criteria, 45

features list, 44

field display tests, 145–147

Invalid Card Response Is Charge Declined test, 110

people, 13

persona, 51

post-implementation tests, 17–18

preimplementation tests, 19–20

relationships 167

alternative representations, 167

entities and, 161–163

explained, 161

multiple relationships, 163–165

rental counts, computing, 130

rental fees. 96–100 See rental fees

rental history, 128–130

rental sequence, 113

role attributes, 50

roles, 49

service provider tests 155–156

comparing implementations, 155–156

explained, 153

interface, 153–154

quality attribute tests, 155

states 142–144

internal states, 142–144

state tables, 139–142

state transitions, 139–142

transient or persistent states, 144

stories, 51

story acceptance criteria, 52

Submit Charge story, 100–108

system, 11–13

tabular display tests, 147–151

use cases from user stories, 57–63

ZIP code lookup, 151–156

change issues, 213

Charge Rentals story, 95

Charge Submitted During Check-In test, 108

Charges Agree with Transfer test, 104

charters, 39–42

charts, business value charts, 281

Check-In CD test 100

business rules, 100

creating, 101

Cucumber framework, 297

Fit framework, 286–287

relationships, 165

Robot framework, 295–296

Slim—Cucumber Style framework, 291

Slim—Table Style framework, 288–290

story map of activities, 113–114

checking 93–94

objectives, 93–94

spelling, 192

Check-Out CD test 76–78

creating, 76–78

Cucumber framework, 296–297

Fit framework, 284–285

Robot framework, 295

Slim—Cucumber Style framework, 291

Slim—Table Style framework, 288–289

Check-Out screen, 93

Cicero, 131

Codebetter.com, 330

Cohen, Leonard, 183

Cohn, Mike, 200

common test setup, 257–259

communication, 66–68, 212

comparing implementations, 155–156

complex data, 187

component tests 25

explained, 25, 211

for external interfaces, 107–111

conceptual flow, 65

confirming environment, 193

connections, tests to ensure connection, 269

Constantine, Larry, 276

constraints, 263, 275

context 70

context diagrams, 70

e-mail addresses case study, 263–264

explained, 70, 273–274

highly available platform, 243

library print server case study, 235–236

retirement contributions case study, 219–220

signal processing case study, 229

system context, 112–113

continuity, 207

control points, 27

conversion projects 307–310

currency conversion example 307–310

acceptance test approach, 307–310

test-driven approach, 306–307

unit tests, 306–307

data conversion, 170

database conversion, 170

Cooper, Ian, 330

Coplien, Jim, 6

copying files, 314

Cresswell, Stephen, 326

cross-story issues, 88

Cucumber framework, 296

currency conversion example 305

context, 305

test-driven approach, 306–307

unit tests, 306–307

Current Late Rental When Renting test, 86

custom table forms, 188

customers 275

customer examples 275

acceptance test detail, 275

explained, 274

fuzzy acceptance tests, 274

customer terms, 54

customer understood tables, 183–185

customer understood tests, 191–192, 211

customer unit, 16

data tables, 187

unavailable customers, 213

D

data conversion projects, 170

data tables, 74–75, 304

database conversion projects, 170

DDD (domain-driven design), 5

overlapping domains, 207

ubiquitous language, 205–207

decision table testing, 256

decoupling user interface 276

decoupling requirements, 276

explained, 131

separating user interface from service, 157–158

simplifying testing by, 136

degree of doneness, 199

delta, 260

deployment plans, 120

determining applications to run on server, 244–248

developer acceptance tests 145–147

field display tests, 145–147

signal processing case study, 233

tabular display tests, 147–151

developer stories, 200, 281–282

developer unit, 16

development of acceptance testing, 5–6

development process 9–10

explained, 9–10

role of acceptance tests in, 209–212

development review, 115–116

from charter to deliverable, 120–121

deployment plans, 120

quality attribute tests, 117–119

separating state from display, 116–117

usability testing, 116

workflow tests, 119–120

device testing, 254–255

Dijkstra, Edsger, 191

disallowed domain tests, 268–269

discount business rules, 299–301

discount calculation 35–36

automated acceptance tests, 35–36

content diagram, 34

explained, 29–31

overall test, 36–37

test script, 31–33

xUnit test, 34–35

discrepancies, handling in retirement contributions case study, 223–224

documenting 201–202

bugs with acceptance tests, 201–202

requirements, 275–276

with use cases, 63

documents, printing to print queue (workflow), 237–238

domain tests 268–269

disallowed domain tests, 268–269

domain breakdown tests, 266–268

domain-driven design 5 See DDD (domain-driven design)

domains, overlapping, 207

doneness, degree of, 199

DRY (Don’t Repeat Yourself) principle, 259

Dyer, Wayne, 100

E

EATDD (executable acceptance test-driven development), 5

EDD (example-driven development), 5

e-mail addresses case study 264–269

breaking down tests, 264–269

context, 263–264

disallowed domain tests, 268–269

domain tests, 266–268

local-part validation, 265–266

tests to ensure connection, 269

verification tests, 269

embedded technical projects, 283

ensuring connections, 269

entities and relationships, 161–163

environment, confirming, 193

EnvisionWare, 235

equivalence partitioning, 255

estimates (story), 52, 55

estimating business value, 280–281

estimation aid, 200

evaluating tests 193 See test evaluation

Evans, Eric, 5

events 137–139

explained, 137–139

retirement contributions case study, 220, 228

example-driven development (EDD), 5

example values, tests with, 76–78

exceptions 223–224

retirement contributions case study 223–224

discrepancies less than a dollar, 223–224

missing participant, 225

two simultaneous exceptions, 225–227

scenario handling, 178–179

tests for exception scenarios, 83–87

executable acceptance test-driven development (EATDD), 5

exercises 311–313

calculator test exercise, 311–313

file copying exercise, 314

Sam’s CD Rental exercise, 314

triangle exercise, 314

expected output, 220

exploratory tests, 24

exposing business rules for testing, 178

external constraints, 275

external interfaces, 100–108

component tests, 108–111

creating acceptance tests for, 107

system context, 112–113

test doubles and mocks, 111–112

F

failure of tests, 195

Feather, Michael, 172

feature acceptance criteria, 45–46

features list 48

breaking down into stories, 48

explained, 42–44

feedback, 18

field display tests, 145–147

file copying exercise, 314

Fit framework 287

category-based rental fees, 287

Check-In CD, 286–287

Check-Out CD, 284–285

explained, 284

setup, 284

FitNesse, 276

forms, custom table forms, 188

fragility of tests, 192–194

frameworks 296 See test frameworks

fuzzy acceptance tests, 274

G

Gaye, Marvin, 299

Grozier Technical Systems, 229

H

headers for Slim—Table Style framework, 288

high-level requirements 42–46

explained, 42–46

feature acceptance criteria, 45–46

features list, 42–44

highly available platform 243

context for switching servers, 243

test for switching servers, 244

send alert to administrator, 245–246

server goes down, 245

test for technical rule, 244–248

Hofstadter, Douglas, 167, 273

Honda Insight charter objectives, 41

Hunter, Ivy, 299

I

idempotence, 192

identity, 206

implementation issues 155–156

comparing implementations, 155–156

retirement contributions case study, 222

and test evaluation, 197

importance of acceptance testing, 10–11

improving workflows, 178–181

independence of stories, 55

internal constraints, 275

internal design from tests, 252–254

internal states, 142–144

Invalid Card Response Is Charge Declined test, 110

INVEST criteria, 55–56

issues, separation of, 194–195, 276–277

J

Johnson, Samuel, 95

K

Kennedy, Robert, 209

Kerievsky, Joshua, 5

King, Carole, 243

Knuth, Donald, 263

Kolsky, Amir, 27, 194

Koskela, Lasse, 6

L

lack of acceptance tests, 170–173

language, ubiquitous, 205–207

large systems, triads for, 167–169

Le Van, Gabriel, 325

lean principles, 20–21

legacy systems, 172

Leq (equivalent continuous sound level), 229–232

library print server case study 235–236

context, 235–236

workflow test, 236–241

workflow for printing jobs from print queue, 239–241

workflow of printing two documents to print queue, 237–238

local-part validation, 265–266

Lovasik, Lawrence G., 199

M

main course test (retirement contributions case study) 220

events, 220

expected output, 220

implementation issues, 222

separation of concerns, 222

setup, 220–221

manifestations, 275

manual testing, 172

Marcos, Gary, 332

Marick, Brian, 5

Martin, Micah, 276

Martin, Robert, 276

Marx, Groucho, 67, 305

Maslow, Abraham, 299

McDonald’s, off-menu ordering, 179

McNelly, Greg, 331

measurability of objectives, 43

Meszaros, Gerard, 23, 259

methods, allowedToReserve(), 253–254

mileage displays in autos, 18

missing participants, handling in retirement contributions case study, 225

mocks, 111–112

Model-View-Controller pattern, 253

module tests, 211

monads, 212

money 307–310

currency conversion example 307–310

acceptance test approach, 307–310

context, 305

test-driven approach, 306–307

problems with, 305

multi-level tests, 90–93

multiple actions, specifying, 185–187

multiple relationships, 163–165

Murray, Bill, 14

N

negative testing, 26–27

negotiability of stories, 55

Newbury, Mickey, 137

North, Dan, 5

O

objectives 93–94

checking, 93–94

of project charters, 40–42

observation points, 27

Once and Only Once Principle, 259

order of tests, 260

overlapping domains, 207

P

partitions, equivalence partitioning, 255

passionatetester.com, 324

Patanjali, 39

patterns, Model-View-Controller, 253

persistent states, 144

persistent storage issues, 260–261

persona, 50–51

platforms (test), 251–252

Poppendieck, Mary, 20

Poppendieck, Tom, 20

positive testing, 26–27

post-implementation tests, 17–18

preimplementation tests, 19–20

print queue 239–241

printing jobs from (workflow), 239–241

printing multiple documents to (workflow), 237–238

process, 210

production bugs, 202

Progressive Insurance, 330–331

project charters, 39–42

Q

quality attribute requirements, 303–304

quality attribute tests, 117–119, 155

R

random events, testing systems with, 277

redundancy of tests, 196–197

regression testing, 202

Reinertsen, Don, 11

relationships 167

alternative representations, 167

entities and, 161–163

explained, 161

multiple relationships, 163–165

relative results, 260

relative story placement, 280

relative story values, 280

rental counts, computing, 129–130

rental fees 96–100

business rule tests, 96–100

category-based 296 See category-based rental fees

rental rates table, 304

table of, 97–99

tables versus text, 185

rental history, 128–130

rental sequence, 113

requirements 275

constraints, 275

decoupling, 276

defined, 275

documenting, 275–276

explained, 27–28

high-level requirements, 42–46

feature acceptance criteria, 45–46

features list, 42–44

quality attribute requirements, 303–304

requirements tables, 300–303

separation of issues, 276–277

user interfaces as part of requirements process, 255

results, relative, 260

retirement contributions case study 227–228

big picture test, 227–228

business value tracking, 223

context, 219–220

event table, 228

exception: discrepancies less than a dollar, 223–224

exception: missing participant, 225

main course test 220

events, 220

expected output, 220

implementation issues, 222

separation of concerns, 222

setup, 220–221

state transitions, 228–230

two simultaneous exceptions, 225–227

reusable business rules, 158–159

Richardson, Jared, 327

risks, 214

Robot framework, 295

category-based rental fees, 296

Check-In CD test, 296

Check-Out CD test, 295

setup, 295

roles 49

explained, 49

role attributes, 49–50

root cause analysis, 201–202

rules 96 See business rules

running tests, 25–26, 78

S

Sabre reservation system, 252

Sam’s CD Rental 75 See CD rental example

Sandburg, Carl, 125, 310

Satir, Virginia, 213

scenarios, 57

conceptual flow, 65

Slim—Cucumber Style framework scenario library, 291–294

story maps, 63–64

tests for exception scenarios, 83–87

use cases from user stories, 57–63

SDD (story test-driven development), 5

separation of issues, 194–195, 276–277

Allowed to Reserve business rule example, 125–128

rental history example, 128–130

retirement contributions case study, 222

separating user interface from service, 157–158

sequence of tests, 193–194

servers, switching 243

context, 243

determining applications to run on server, 244–248

test for, 244

send alert to administrator, 246–244

server goes down, 245

service provider tests 155–156

comparing implementations, 155–156

explained, 151

interface, 151–154

quality attribute tests, 155

services, separating user interface from, 157–158

setup 284

Fit framework, 284

retirement contributions case study, 220–221

Robot framework, 295

Slim—Cucumber Style framework, 291–292

Slim—Table Style framework, 287–291

Shalloway’s Law, 259

SHARES reservation system, 252

Shaw, George Bernard, 205

Shore, Jim, 42

signal processing case study 229

context, 229

developer tests, 233

sound levels, 229–232

simultaneous exceptions, 225–227

size of stories, 53–56

Slim—Cucumber Style framework, 291

category-based rental fees, 291

Check-In CD test, 291

Check-Out CD test, 291

scenario library, 291–294

setup, 291

Slim—Table Style framework, 287–291

category-based rental fees, 291

Check-In CD test, 288–290

Check-Out CD test, 288–289

header, 288

setup, 288

SMART, 40

software development, 9–10

sound levels, signal processing case study, 229–232

specifying multiple actions, 185–187

speed of feedback, 18

spell checking, 192

states 142–144

internal states, 142–144

separating state from display, 116–117

state tables, 139–142

state transitions, 139–142

retirement contributions case study, 228–230

state transition testing, 255

transient or persistent states, 144

Stevenson, William, 299

stories 52

acceptance criteria, 52

breaking down features into stories, 48

breaking up with acceptance tests, 95–96, 200

business rules 96 See business rules

business value 281 See business value

cross-story issues, 88

customer terms, 54

developer stories, 200, 281–282

developing, 51

explained, 47–48

INVEST criteria, 55–56

persona, 50–51

relative story placement, 280

relative story values, 280

roles 49

explained, 49

role attributes, 49–50

size of, 53–54

story estimates, 52

story maps, 63–64, 113–114

use cases, 57–63

story maps, 63–64, 113–114

story test-driven development (SDD), 5

Submit Charge story, 100–108

success stories, 324–332

switching servers 243

context, 243

determining applications to run on server, 244–248

test for, 244

send alert to administrator, 245–246

server goes down, 245

T

tables 75–76

action tables, 75–76

calculation tables, 73–74

customer understood tables, 183–185

data tables, 74–75, 304

event tables, 137–139

quality attribute requirements, 303–304

requirements tables, 300–303

state tables, 139–142

tabular display tests, 147–151

versus text, 78, 185

user interface tests with, 299–300

tabular display tests, 147–151

TDD (test-driven development), 6

technical projects, 283

technical rules, test for, 244–248

test doubles, 111–112

test-driven approach, 306–307

Test-Driven Development by Example (Beck), 305

test-driven development (TDD), 6

test evaluation 193

confirming environment, 193

fragility, 192–194

idempotence, 192

implementation issues, 197

points to remember, 197–198

separation of concerns, 194–195

spell checking, 192

test failure, 195

test redundancy, 196–197

test sequence, 193–194

understandability to customers, 191–192

test failure, 195

test frameworks 296

Cucumber, 296

explained, 283

Fit, 284

category-based rental fees, 287

Check-In CD, 286–287

Check-Out CD, 284–285

setup, 284

Robot, 295

category-based rental fees, 296

Check-In CD test, 296

Check-Out CD test, 295

setup, 295

Slim—Cucumber Style framework, 291

category-based rental fees, 291

Check-In CD test, 291

Check-Out CD test, 291

scenario library, 291–294

setup, 291

Slim—Table Style, 287–291

Check-In CD test, 288–290

Check-Out CD test, 288–289

header, 288

setup, 288

Slim—Table Style framework, 287–291

websites, 298

test platforms, 248–252

test presentation 187

complex data, 187

custom table forms, 188

customer understood tables, 183–185

specifying multiple actions, 185–187

tables versus text, 185

test redundancy, 196–197

test scripts, 31–33

test sequence, 193–194

test setup 259–260

ameliorating potential problems, 259–260

common setup, 257–259

persistent storage issues, 260–261

test order, 260

testability of stories, 57

testing layers, 210–211

testing matrix, 23–24

testing systems with random events, 277

testing unit, 16

tests 255–256

acceptance tests 20 See acceptance tests

black box testing, 255–256

component tests, 25, 211

manual testing, 172

modules tests, 211

post-implementation tests, 17–18

preimplementation tests, 19–20

quality attribute tests, 117–119

regression testing, 202

unit tests 25

explained, 25, 211, 256

limitations, 88

workflow tests, 119–120

xUnit tests, 34–35

text, versus tables, 78, 185

time periods, calculating, 99

tracking business value, 223

transient states, 144

triads 15–16

explained, 15–16

triads for large systems, 167–169

triangle exercise, 314

types of tests, 23–25

U

ubiquitous language, 205–207

unavailable customers, 213

unit tests 25

explained, 25, 211, 256

limitations, 88

usability testing, 24, 116

use cases from user stories, 57–63

user interfaces 107

decoupling 276 See decoupling user interface

external interfaces 107

creating acceptance tests for, 107

explained, 100–108

system context, 112–113

as part of requirements process, 255

user interface tests, 33–34, 93

uses of acceptance tests 200

breaking down stories, 200

degree of doneness, 199

developer stories, 200

estimation aid, 200

V

validation, local-part, 265–266

value of stories, 55

verification tests, 269

Visual Hospital Touchscreen Solution, 325

W

Wake, Bill, 55

Walsh, Rob, 235

websites, test framework websites, 298

Weinberg, Jerry, 277

West, Mae, 257

Wilde, Oscar, 161

workflows 178–181

improving, 178–181

workflow tests, 119–120

library print server case study, 236–241

test sequence, 193–194

X

xUnit tests, 34–35

Z

ZIP code lookup, 151–156

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.12.166.131