scaling problems, 187
scepticism, 18
self-shunt, 128
sequential models, 300–302
Servlet, 241, 349
Servlet-based Web applications. See Web applications
ServletConfig, 247, 250
ServletContext, 250
setter method, 124
setUp(), 35
simplest design, 8
simplicity, 7, 67
single responsibility principle, 51
singleton, 122–124
sleep(), 209, 214–215
Smalltalk, 335–337
smoke test, 307
SOAP, 350
socket, 226
Software Craftsmanship (McBreen), 318, 364
software development process, 292–305
activities/products, 292–294
construction activities, 294
continuous integration, 305
error avoidance, 294
evolutionary models, 303–305
incremental models, 302–303
process types/testing strategies, 299–305
quality assurance, 297–299
sequential models, 302–303
validation, 296–297
verification, 295–296
specification, 294
specification-based coverage, 168
specification-based tests, 70
speeding up the test suite, 192–193
spiral model, 304
split-off threads, 210–212
split then grow, 56
SQL, 184–185
starvation, 202
static internal classes, 153
static tests, 6
stress test, 295
StringBufferInputStream, 49
StringBufferTest, 31
structural tests, 70
structured review process, 295
Struts, 258, 261
StrutsTestCase, 261
stub, 100, 140
substitution principle, 144
suggested reading, 326–364
suite(), 36, 198
SUnit, 27, 335–337
superclass tests, 146–151
Swing test runner, 29, 30
Swing thread problem, 286
synchronization, 212–222, 223
synchronized, 201
system test, 301