C++, 338–343
Cactus, 247–249, 333
Canoo WebTest, 246, 333
capture/playback tools, 24
cast, 346
centralized persistence interface, 186
checked exceptions, 75
class diagram, 92
class invariant, 85
class under test (CUT), 5
classic testing, 11–16
Cloudscape, 181
CMMI, 299
Cockburn, Alistair, 364
code-based coverage, 168
code examples, 20–21
code inspections, 155
code smell, 9
collaborating classes, 83
collection class, 82
commercial Java expansions, 84
commercial process models, 307–312
RUP, 308–311
XP, 311
XP-Plugin to RUP, 312
Common Object Request Broker Architecture (CORBA), 226
communication, 7
communities of practice, 318
complex interaction tests, 166
component tests, 5
concurrency, 201
concurrent programs, 201–223
asynchronous services, 204–212
avoiding concurrency errors, 222–223
ConcurrentTestCase, 215–217
ConTest, 223
delayed response, 208–210
design goals, 202
hidden thread, 202
multiprocessors (MPs), 223
nondeterminism, 203
nondeterministic test failure, 206
notify(), 219–221
problems using threads, 202
pseudodeterminism, 207
repeated tests, 206–207
RetriedAssert, 209–210
sleep(), 214–215
split-off threads, 210–212
synchronization, 212–222, 223
target objects, 203–204
unexpected exceptions, 212
ConcurrentTestCase, 215–217
consistency, 70
construction, 308
ConTest, 223
continuous care, 11
continuous integration, 9, 305
contract, 84, 86
conventions in this book, 20–21
CORBA, 226
core workflows, 309
cost-benefit analysis
automated unit tests, 305–307
optimal ambient of testing, 161–170. See also how much is enough?
test-first development, 23–24
courage, 7
coverage metrics, 167–170
craftsmanship approach, 318
CruiseControl, 305
Cunningham, Ward, 363
custom tag libraries, 260
CUT, 5