- •Глава 8. Тестирование принтеров и других устройств 208
- •Глава 9. Адаптационное тестирование 237
- •Глава 14. Управление группой тестирования 428
- •10 Тестирование программного обеспечения
- •Часть 1. Основы
- •Часть 2. Приемы и технологии тестирования
- •16 Тестирование программного обеспечения
- •Часть 3. Управление проектами и группами
- •22 Часть I: Основы
- •Глава I: Пример серии тестов
- •Глава 1: Пример серии тестов 23
- •24 Часть I: Основы
- •Глава 1: Пример серии тестов • 25
- •Глава I: Пример серии тестов 27
- •Глава 1: Пример серии тестов 29
- •Глава I: Пример серии тестов 31
- •36 Часть I: Основы
- •Глава 1: Пример серии тестов 37
- •Глава 2: Желаемое и действительное в жизни тестировщика 39
- •40 Часть I: Основы
- •Глава 2: Желаемое и действительное в жизни тестировщика 41
- •42 Часть I: Основы
- •Глава 2: Желаемое и действительное в жизни тестировщика
- •Глава 2: Желаемое и действительное в жизни тестировщика
- •Глава 2: Желаемое и действительное в жизни тестировщика 47
- •Глава 2: Желаемое и действительное в жизни тестировщика 49
- •Глава 3: Типы тестов ... 51
- •Глава 3: Типы тестов ... 53
- •Глава 3: Типы тестов ... 55
- •Глава 3: Типы тестов ... 57
- •Глава 3: Типы тестов ... 59
- •Глава 3: Типы тестов ... 61
- •62 Часть I: Основы
- •Глава 3: Типы тестов ... 63
- •64 Часть I: Основы
- •Глава 3: Типы тестов ... 65
- •66 Часть I: Основы
- •Глава 3: Типы тестов ... 67
- •68 Часть I: Основы
- •Глава 3: Типы тестов ... 69
- •If asc11_код__введенного_символа меньше 48
- •70 Часть I: Основы
- •Глава 3: Типы тестов ... 71
- •72 Часть I: Основы
- •Глава 3: Типы тестов ... 73
- •74 Часть I: Основы
- •Глава 3: Типы тестов ... 75
- •76 Часть I: Основы
- •Глава 3: Типы тестов ... 77
- •78 Часть I: Основы
- •Глава 3: Типы тестов ... 79
- •80 Часть I: Основы
- •Глава 3: Типы тестов ... 81
- •82 Часть I: Основы
- •Глава 3: Типы тестов ... 83
- •84 Часть I: Основы
- •Глава 3: Типы тестов ... 85
- •86 Часть I: Основы
- •Глава 3: Типы тестов ... 87
- •88 Часть I: Основы
- •Глава 3: Типы тестов ... 89
- •90 Часть I: Основы
- •Глава 3: Типы тестов ... 91
- •92 Часть I: Основы
- •Глава 4
- •94 Часть I: Основы
- •Глава 4: Программные ошибки 95
- •96 Часть I: Основы
- •Глава 4: Программные ошибки 97
- •98 Часть I: Основы
- •Глава 4: Программные ошибки 99
- •100 Часть I: Основы
- •102 Часть /: Основы
- •Глава 5: Документирование и анализ ошибок 103
- •104 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 105
- •106 Часть I: Основы
- •Глава 5: Документирование и аналт ошибок 107
- •108 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 109
- •110 Часть 1: Основы
- •Глава 5: Документирование и анализ ошибок 111
- •112 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 113
- •114 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 115
- •116 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 117
- •118 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 119
- •120 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 121
- •122 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 123
- •124 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 125
- •126 Часть I: Основы
- •Глава 5: Документирование и анализ ошибок 127
- •132 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 131
- •Глава 6: Система отслеживания проблем 133
- •134 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 135
- •136 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 137
- •138 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 139
- •140 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 141
- •142 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 143
- •144 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 145
- •146 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 147
- •148 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 149
- •150 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 151
- •152 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 153
- •154 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 155
- •156 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 157
- •158 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 159
- •160 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживании п/шч іс и | (} I
- •162 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 163
- •164 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 165
- •166 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 167
- •168 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 169
- •170 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 171
- •172 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 173
- •174 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 175
- •176 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 177
- •178 Часть II: Приемы и технологии тестирования
- •Глава 6: Система отслеживания проблем 179
- •Глава 7: Разработка тестов 181
- •Глава 7: Разработка тестов 183
- •184 Часть II: Приемы и технологии тестирования
- •Глава 7: Разработка тестов 185
- •Глава 7: Разработка тестов 187
- •188 Часть II: Приемы и технологии тестирования
- •Глава 1: Разработка тестов 189
- •190 Часть II: Приемы и технологии тестирования
- •Глава 7: Разработка тестов 191
- •192 Часть II: Приемы и технологии тестирования
- •Глава 1: Разработка тестов 193
- •194 Часть II: Приемы и технологии тестирования
- •Глава 7: Разработка тестов 195
- •196 Часть II: Приемы и технологии тестирования
- •Глава 7; Разработка тестов 197
- •198 Часть II: Приемы и технологии тестирования
- •Глава 7: Разработка тестов 199
- •Глава 7: Разработка тестов 201
- •Глава 7: Разработка тестов 203
- •204 Часть II: Приемы и технологии тестирования
- •Глава 7: Разработка тестов 205
- •206 Часть II: Приемы и технологии тестирования
- •Глава 7: Разработка тестов 207
- •Глава 8: Тестирование принтеров и других устройств 209
- •2. Затем осуществляется поиск ошибок, специфических для тестируемого класса устройств.
- •210 Часть II: Приемы и технологии тестирования
- •Глава 8: Тестирование принтеров и других устройств 211
- •212 Часть II: Приемы и технологии тестирования
- •1. Анализ рынка
- •Глава 8: Тестирование принтеров и других устройств 213
- •Глава 8: Тестирование принтеров и других устройств 215
- •Глава 8: Тестирование принтеров и других устройств 217
- •218 Часть II: Приемы и технологии тестирования
- •Глава 8: Тестирование принтеров и других устройств 219
- •220 Часть II: Приемы и технологии тестирования
- •Глава 8: Тестирование принтеров и других устройств 221
- •Глава 8: Тестирование принтеров и других устройств 223
- •Глава 8: Тестирование принтеров и других устройств 225
- •226 Часть п: Приемы и технологии тестирования
- •Глава 8: Тестирование принтеров и других устройств 227
- •228 Часть II: Приемы и технологии тестирования
- •Глава 8: Тестирование принтеров и других устройств 229
- •Глава 8: Тестирование принтеров и других устройств 231
- •232 Часть II: Приемы и технологии тестирования
- •Глава 8: Тестирование принтеров и других устройств 233
- •Глава 8: Тестирование принтеров и других устройств 235
- •236 Часть II: Приемы и технологии тестирования
- •Глава 9: Адаптационное тестирование 239
- •Глава 9: Адаптационное тестирование 241
- •242 Часть II: Приемы и технологии тестирования
- •Глава 9: Адаптационное тестирование 243
- •244 Часть II: Приемы и технологии тестирования
- •Глава 9: Адаптационное тестирование 245
- •246 Часть II: Приемы и технологии тестирования
- •Глава 9: Адаптационное тестирование 247
- •Глава 10: Тестирование документации 249
- •250 Часть II: Приемы и технологии тестирования
- •Глава 10: Тестирование документации 251
- •252 Часть II: Приемы и технологии тестирования
- •Глава 10: Тестирование документации 253
- •Глава 10: Тестирование документации 255
- •256 Часть II: Приемы и технологии тестирования
- •Глава 10: Тестирование документации 257
- •258 Часть II: Приемы и технологии тестирования
- •Глава 10: Тестирование документации 259
- •260 Часть II: Приемы и технологии тестирования
- •Глава 10: Тестирование документации 261
- •262 Часть II: Приемы и технологии тестирования
- •Глава 10: Тестирование документации 263
- •Глава 11: Инструментальные средства тестировщика 265
- •266 Часть II: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщика 267
- •268 Часть п: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщика 269
- •270 Часть II: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщики 271
- •272 Часть II: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщика 273
- •274 Часть II: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщика 275
- •Глава 11: Инструментальные средства тестировщика 277
- •278 Часть II: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщика 279
- •280 Часть II: Приемы и технологии тестирования
- •Глава 11: Инструментальные средства тестировщика 281
- •282 Часть II: Приемы и технологии тестирования I
- •Глава 11: Инструментальные средства тестировщика 283
- •Глава 12: Планирование и документация 285
- •286 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документации 287
- •288 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 289
- •290 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 291
- •292 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 293
- •294 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 295
- •296 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 297
- •298 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документации 299
- •300 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 301
- •302 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 303
- •304 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 305
- •306 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 307
- •308 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 309
- •310 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 311
- •312 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 313
- •314 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 315
- •316 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 319
- •Глава 12: Планирование и документация 321
- •322 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 323
- •324 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 325
- •326 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 327
- •330 Часть II: Приемы и технологии тестирования
- •332 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 333
- •334 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 335
- •336 Часть II: Приемы и технологии тестирования
- •338 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 339
- •340 Часть II: Приемы и технологии тестировании
- •Глава 12: Планирование и документация 341
- •342 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 343
- •344 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 345
- •346 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 347
- •348 Часть и: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 349
- •350 Часть II: Приемы и технологии тестирования
- •Глава 12: Планирование и документация 351
- •352 Часть II: Приемы и технологии тестировании
- •Глава 12; Планирование и документация 353
- •Глава 13. Объединяющая
- •Глава 14. Управление группой тестирования
- •Глава 13: Объединяющая 359
- •360 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 361
- •362 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 363
- •364 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 365
- •366 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 367
- •368 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 369
- •Глава 13: Объединяющая 371
- •372 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 373
- •Глава 13: Объединяющая 381
- •382 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 383
- •384 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 385
- •386 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 387
- •388 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 389
- •390 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 391
- •392 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 393
- •394 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 395
- •396 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 397
- •398 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 399
- •402 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 403
- •404 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 405
- •406 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 407
- •408 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 409
- •410 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 411
- •412 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 413
- •414 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 415
- •416 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 417
- •418 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 419
- •420 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 421
- •422 Часть III: Управление проектами и группами
- •Глава 13: Объединяющая 423
- •Глава 13: Объединяющая 425
- •Глава 13: Объединяющая 427
- •Глава 14: Управление группой тестирования 429
- •Глава 14: Управление группой тестирования 431
- •Глава 14: Управление группой тестирования 433
- •Глава 14: Управление группой тестирования 435
- •Глава 14: Управление группой тестирования 437
- •Глава 14: Управление группой тестирования 439
- •Глава 14: Управление группой тестирования 441
- •Глава 14: Управление группой тестирования 443
- •Глава 14: Управление группой тестирования 445
- •Глава 14: Управление группой тестирования 447
- •Глава 14: Управление группой тестирования 449
- •Глава 14: Управление группой тестирования 451
- •484 Часть III: Управление проектами и группами
- •486 Часть III: Управление проектами и группами
- •488 Часть III: Управление проектами и группами
- •490 Часть III: Управление проектами и группами
- •492 Часть III: Управление проектами и группами
- •494 Часть III: Управление проектами и группами
- •496 Часть III: Управление проектами и группами
- •498 Часть III: Управление проектами и группами
- •500 Часть III: Управление проектами и группами
- •502 Часть III: Управление проектами и группами
- •504 Часть III: Управление проектами и группами
- •506 Часть III: Управление проектами и группами
- •508 Часть III: Управление проектами и группами
- •510 Часть III: Управление проектами и группами
- •512 Часть III: Управление проектами и группами
- •514 Часть III: Управление проектами и группами
- •516 Часть III: Управление проектами и группами
- •518 Часть III: Управление проектами и группами
- •520 Часть III: Управление проектами и группами
- •522 Часть III: Управление проектами и группами
- •524 Часть III: Управление проектами и группами
- •526 Часть III: Управление проектами и группами
- •528 Часть III: Управление проектами и группами
- •530 Часть III: Управление проектами и группами
- •532 Часть III: Управление проектами и группами
- •534 Часть III: Управление проектами и группами
- •536 Часть III: Управление проектами и группами
- •538 Часть III: Управление проектами и группами
- •542 Часть III: Управление проектами и группами
Глава 3: Типы тестов ... 71
• Внутренние граничные точки. В исходном коде видны те граничные точки программы, которые скрыты от взгляда “извне”. Например, для выполнения определенного действия может быть использовано несколько совершенно различных алгоритмов, и, не заглянув в код, невозможно определить, какой из них выбрал программист. Еще одним типичным примером может быть проблема переполнения буфера, используемого для временного хранения входных данных. Программист сразу может сказать, при каком количестве данных буфер переполнится, и ему не нужно при этом проводить тысячи тестов.
• Тестирование, определяемое выбранным алгоритмам. Для тестирования обработки данных, использующей очень сложные вычислительные алгоритмы, могут понадобиться специальные технологии. В качестве классических примеров можно привести преобразование матрицы и сортировку данных. Тестировщику нужно точно знать, какие алгоритмы используются, и обратиться к специальной литературе.
Тестирование “стеклянного ящика” мы рассматриваем как часть процесса программирования. Программисты выполняют эту работу постоянно, они тестируют каждый модуль после его написания, а затем еще раз после интеграции его в систему. Этому их учат еще в учебных заведениях. В большинстве учебников по тестированию именно этому его виду отводится основная роль.
Однако в этой книге мы уделяем основное внимание тестированию “черного ящика”, и именно ему посвящают большую часть времени все профессиональные тестировщики. (Отдельную и достаточно специфическую область тестирования представляют собой СУБД для мэйнфреймов. Об их тестировании лучше рассказывают такие авторы, как Бейзер (Beizer), Хетзел (Hetzel) и Майерс (Myers).) Тестировщик “черного ящика” не изучает исходный код программы — он исследует ее извне, работая с ней так, как это будет делать пользователь. И так же, как исследование программы изнутри позволяет выявить проблемы и критические точки, которых не видно извне, так и тестировщик “черного ящика” выявляет ошибки и недостатки, которые программист упускает.
К вопросу о выборе метода тестирования мы еще вернемся в главе 12. Л в следующих разделах мы поговорим об основных концепциях тестирования “стеклянного ящика”, без знания которых вы не сможете считаться профессионалом в своем деле.
72 Часть I: Основы
Структурное тестирование против функционального
Структурное тестирование является одним из видов тестирования “стеклянного ящика”. Его главной идеей является правильный выбор тестируемого программного пути.
В противоположность ему функциональное тестирование относится к категории тестирования “черного ящика”. Каждая функция программы тестируется путем ввода ее входных данных и анализа выходных. При этом внутренняя структура программы учитывается очень редко.
Более подробное описание этих двух технологий можно найти у Бей- зера (Beizer, 1984). |
Как указывает Данн (Dunn, 1984), хотя структурное тестирование и I имеет под собой гораздо более мощную теоретическую основу, большин- I ство тестировщиков предпочитают функциональное тестирование. Струк- ] турное тестирование лучше поддается математическому моделированию, но это совсем не означает, что оно эффективнее. Каждая из технологий по- | зволяет выявить ошибки, пропускаемые другой, в этом смысле их можно назвать одинаково эффективными.
Тестирование программных путей: критерии охвата
Мы уже упоминали о путях выполнения программы — последовательностях команд, которые она выполняет от старта до завершения. Объектом тестирования может быть не только полный путь, но и его отдельные участки.
Как уже было сказано в главе 2, протестировать все возможные пути выполнения программы абсолютно нереально. Поэтому специалисты по тестированию выделяют из всех возможных путей те группы, которые нужно протестировать обязательно. Для отбора они пользуются специальными критериями, называемыми критериями охвата (coverage criteria). В отличие от нереальной идеи полного тестирования, эти критерии определяют вполне реальное (пусть даже и достаточно большое) количество тестов. Критерии охвата иногда называют логическими критериями охвата или критериями полноты. В этом разделе мы познакомимся с тремя критериями, которые используются тестировщиками чаще всего: критериями охвата строк, ветвлений и условий. Когда тестирование организовано в соответствии с этими критериями, о нем говорят как о тестировании путей.
Критерий охвата строк — наиболее слабый из всех. Он требует, чтобы каждая строка кода была выполнена хотя бы один раз. И хотя это гораздо больше, чем утруждают себя выполнить многие программисты, для серьезного тестирования программы этого далеко не достаточно. Если строка содержит оператор принятия решения, проверены должны быть все упранляющие решением значения. Для примера давайте рассмотрим следующим фрагмент кода.
