pair programming, 7–8, 296
parallel test class hierarchy, 148–151
parameterizing the factory method, 151
parameters, removing/adding, 88
path coverage, 168
Peeters, Vera, 237, 239
performance tests, 5
persistence interface, 181–187
persistent dummy, 178–181
persistent objects, 173–199
abstract interface, 178
ad hoc queries, 184–185
centralized persistence interface, 186
dependency inversion principle, 178
designing database interface, 181–187
dummy implementation, 178–181
evolution of persistence technology, 195–196
example (CRM system), 175–178
four-database approach, 191–192
interaction test cases, 196–198
JDBC mocks, 193–195
lightweight database, 181, 192
mock objects, 181, 193–195
multiuser database, 191
object-centered persistence, 185–187
persistence mechanisms, 173
preconfigured data, 193
problems, 174
query language, 184–185
RDBMS, 173–174
scaling problems, 187
speeding up the test suite, 192–193
test data consistency, 191–192
test suite, 198
testing the right persistence, 187–196
TestSetup decorator, 198
transactions, 182–184
Planning Extreme Programming (Beck), 362
polymorphism, 155–160
populated development database, 192
post-condition, 85
Practical Guide to Testing Object-Oriented Software (Marick), 363
pre-condition, 84–85
PrintWriter, 102
procedural integration tests, 82
process, 292
process monitoring, 297
process types/testing strategies, 299–305
processes, 201
product quality, 294
production database, 192
program-specific query language, 185
programming in pairs, 7–8, 296
project-specific expansions, 95–96
pseudodeterminism, 207
psychological phenomenon, 66