Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Тестирование программного обеспечения. Фундамен...docx
Скачиваний:
0
Добавлен:
10.02.2020
Размер:
935.81 Кб
Скачать

TESTING

COMPUTER

SOFTWARE

Second Edition

CEM KANER JACK FALK HUNG QUOC NGUYEN

INTERNATIONAL THOMSON COMPUTER PRESS I (£)P™ An International Thomson Publishing Company

London • Bonn • Boston • Johannesburg • Madrid • Melbourne • Mexico City New York • Paris • Singapore • Tokyo • Toronto • Albany,NY Belmont,CA • Cincinnati,OH • Detroit,MI

ТЕСТИРОВАНИЕ

ПРОГРАММНОГО

ОБЕСПЕЧЕНИЯ.

Фундаментальные концепции менеджмента бизнес-приложений

СЭМ КАНЕР ДЖЕК ФОЛК ЕНГ КЕК НГУЕН

Г7ТТШВ т0рг0«0'И1дат«льсмим дом

Ш О'мЬоП

ББК 32.973

К 81

Канер Сэм и др.

К 81 Тестирование программного обеспечения. Фундаментальные концепции менеджмента бизнес-приложений: Пер. с англ./Сэм Канер, Джек Фол к, Енг Кек Нгуен. — К.: Издательство «ДиаСофт», 2001. — 544 с.

ISBN 966-7393-87-9

Книга именитых специалистов в области разработки программного обеспече­ния посвяшена одному из наиболее важных и нетривиальных аспектов в рамках процесса создания сложных программных систем. Книгу отличает, прежде всего, привязка к условиям реального мира на примерах известных компании-разработ­чиков, находящихся в Силиконовой долине. Подробно рассматривается широкий спектр вопросов: от организации процесса тестирования до собственно тестиро­вания проекта, кода, документации и т.д.

Для специалистов в области разработки программного обеспечения.

ББК 32.973

Научное издание Канер Сэм и др.

ТЕСТИРОВАНИЕ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ.

ФУНДАМЕНТАЛЬНЫЕ КОНЦЕПЦИИ МЕНЕДЖМЕНТА БИЗНЕС-ПРИЛОЖЕНИЙ

Главный редактор Ю.Н.Артеменко

Научный редактор О.В.Здир Литературный редактор А.В.Штин Переводчик О.В.Здир Верстка Т.Н.Артеменко Главный дизайнер О.А.Шадрин Н/К

Сдано в набор 13.03.01. Подписано в печать 13.05.01. Формат 60x84/16. Бумага офсет­ная. Гарнитура Таймс.

Печать офсетная. Усл.печ.л. 40.80. Усл.кр.отт. 40.80 Тираж 3000 экз. Заказ № 1-78.

Издательство «ДиаСофт», Киев-55, а/я 100, тел./факс (044) 212-1254. e-mail: books@diasoft.kiev.ua, http://www.diasoft.kiev.ua.

Authorized translation from the English language edition published by International Thomson Computer Press. Copyright © 1999

All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means, electronic or mechanical, including photocopying, recording or by any information storage retrieval system, without permission from the Publisher.

Russian language edition published by DiaSoft Ltd. Copyright © 2001

Лицензия предоставлена издательством International Thomson Computer Press, подразделение International Thomson Publishing Inc.

Все права зарезервированы, включая право на полное или частичное воспроизведение в какой бы то ни было форме.

ISBN 966-7393-87-9 (рус.) © Перевод на русский язык. Издательство «ДиаСофт», 2001 ISBN 1-85032-847-1 (англ.) © International Thomson Publishing Press, 1999 © Оформление. Издательство «ДиаСофт», 2001 Свидетельство о регистрации 24729912 от 11.03.97.

Гигиеническое заключение № 77.99.6.953.П.438.2.99 от 04.02.1999

Оглавление

Часть I. Основы 19

Глава 1. Пример серии тестов 20

Первый цикл тестирования 20

Второй цикл тестирования 32

Что дальше? 37

Глава 2. Желаемое и действительное в жизни тестировщика 38

Полностью протестировать программу невозможно 39

Цель тестировщика — проверка правильности программы? 46

Итак, для чего же тестируют программы? 49

Глава 3. Типы тестов и их роль в процессе разработки программного обеспечения 50

Обзор стадий разработки 55

Стадии планирования 57

Тестирование на этапе планирования 58

Стадии проектирования 62

Тестирование на этапе проектирования 66

Тестирование “стеклянного ящика” на стадии кодирования 69

Регрессионное тестирование 80

Тестирование “черного ящика” 80

Сопровождение 90

Глава 4. Программные ошибки 93

Качество 93

Что такое программная ошибка? 95

Категории программных ошибок 95

Глава 5. Документирование и анализ ошибок 101

Отчет следует составлять немедленно 102

Структура отчета о проблеме 103

Каким должен быть отчет о проблеме 113

Анализ воспроизводимой ошибки 116

Методика анализа воспроизводимой ошибки 119

Поиск способа воспроизведения ошибки 1 ??

О Тестирование программного обеспечения

Часть II. Приемы и технологии тестирования 129

Глава 6. Система отслеживания проблем 130

Основное назначение системы отслеживания проблем 134

Задачи системы 135

Процесс отслеживания проблемы 135

Пользователи системы отслеживания проблем 144

Реализация базовых функций системы отслеживания проблем.... 158

Дополнительные замечания о документировании проблем 169

Терминология 178

Глава 7. Разработка тестов 180

Характеристики хорошего теста 182

Классы эквивалентности и граничные условия 183

Тестирование переходов между состояниями 193

Условия гонок и другие временные зависимости 194

Нагрузочные испытания 196

Прогнозирование ошибок 196

Тестирование функциональной эквивалентности: автоматизация,

анализ чувствительности и случайный ввод 197

Регрессионное тестирование: успешно ли исправлена ошибка .... 204

Регрессионное тестирование: стандартная серия тестов 205

Выполнение тестов 206

Глава 8. Тестирование принтеров и других устройств 208

Общие вопросы конфигурационного тестирования 209

Тестирование печати 211

Глава 9. Адаптационное тестирование 237

Изменен ли исходный код? 238

Привлекайте к работе специалистов, свободно

владеющих языком 239

Встроен ли текст в программный код? 239

Перевод длиннее исходного текста 239

Наборы символов 240

Клавиатура 240

Фильтрация ввода 241

Загрузка, сохранение, импорт и экспорт символов

основного и расширенного набора ASCII 241

Язык и операционная система 242

Клавиши вызова 242

Сборные сообщения 242

Оглавление 7

Идентификаторы сообщений об ошибках 243

Правила переноса 243

Правописание 243

Порядок сортировки 243

Преобразование текста к верхнему и нижнему регистру 244

Правила подчеркивания 244

Принтеры 244

Размеры бумаги 244

Процессоры и видео 244

Форматы данных и опции настройки 245

Единицы измерения 245

Изображения, связанные с конкретной культурой 246

Выходные данные, связанные с конкретной культурой 246

Совместимость с местными продуктами 246

Не будьте наивными 246

Автоматизированное тестирование 247

Глава 10. Тестирование документации 248

Хорошая документация 249

Цели тестировщика документации 251

Как тестирование документации повышает надежность

программного продукта 252

Назначьте технического редактора 254

Работа с руководством в процессе его разработки 254

Интерактивная справка 262

Глава 11. Инструментальные средства тестировщика 264

Базовые инструменты тестировщика 265

Автоматизация приемочного и регрессионного тестирования 267

Стандарты 277

Тестирование “стеклянного ящика” 280

Глава 12. Планирование и документация 284

Общее назначение тестового плана: продукт или инструмент? .... 286 Цели, преследуемые при планировании тестов и разработке

документации 288

Тесты каких типов следует фиксировать в плановых документах .. 296

Стратегия разработки компонентов тестового плана 300

Компоненты плана тестирования 307

Документирование тестовых материалов 339

Заключение 355

о Тестирование программного обеспечения

Часть III. Управление проектами и группами 357

Глава 13. Объединяющая 358

Чем приходится поступаться разработчикам программного

обеспечения 360

Модели разработки программного обеспечения 362

Затраты на качество 371

Последовательность этапов проекта 373

Проектирование продукта 381

Реализация базовых функций 388

Почти альфа 389

Альфа 392

Пре-бета 404

Бета 405

Замораживание пользовательского интерфейса 415

Подготовка к финальному тестированию 418

Последняя проверка целостности 423

Выпуск 425

После выпуска 426

Глава 14. Управление группой тестирования 428

Роль группы тестирования 430

Группа тестирования — не избавление программистов 434

Альтернатива: независимые тестовые агентства 435

Советы по планированию 439

Персонал 447

Приложение. Распространенные программные ошибки .... 453

Ошибки пользовательского интерфейса 455

Обработка ошибок 486

Ошибки, связанные с граничными условиями 490

Ошибки вычислений 493

Начальное и последующие состояния 496

Ошибки управления потоком 500

Ошибки обработки или интерпретации данных 515

Ситуации гонок 523

Повышенные нагрузки 527

Аппаратное обеспечение 531

Контроль версий и идентификаторов 536

Ошибка выявлена и забыта 542

Предисловие

Тестирование программного обеспечения — это книга, написанная профес­сионалами для профессионалов. Что такое тестирование потребительских и деловых программ в условиях, приближенных к боевым, мы знаем не понаслышке, поскольку выполняли эту работу для самых известных про­изводителей программного обеспечения Кремниевой Долины. Лежащее перед вами руководство разрабатывалось для наших собственных сотрудни­ков.

О том, как тестировать программные продукты, от которых требуется повышенная надежность, написано немало хороших книг. От надежного функционирования определенных типов программного обеспечения может зависеть успех бизнеса — работы финансовых или промышленных компа­ний — или даже... человеческая жизнь. Поэтому на его самое тщательное проектирование, разработку и тестирование не жалеют ни времени, ни денег. Сотрудникам тестовых групп предоставляется полный доступ к ис­ходному коду программ, причем на столько времени, сколько потребуется для его подробного изучения.

Сверхнадежное программное обеспечение можно сравнить с “Роллс- ройсом” — роскошно, но дорого. Однако не все программное обеспечение таково, и дело не только в его цене. Тестирование программных продук­тов для среднего бизнеса, академических учреждений и личного пользова­ния проводится в более сжатые сроки и скромнее оплачивается, но их качество вполне удовлетворяет требованиям рынка — это полезные и на­дежные программы, многими из которых производители могут заслужен­но гордиться.

Так как же организовать тестирование программных продуктов, чтобы его результаты можно было назвать сверхнадежными? И как удается груп­пам тестирования обычного потребительского ПО в условиях сжатых сро­ков, малочисленной команды и ограниченных средств выпускать прекрасные и вполне конкурентоспособные продукты? Обо всем этом вы узнаете из книги Тестирование программного обеспечения.

Чего в этой книге нет

Часто авторы книг утверждают, что для успешного тестирования необ­ходимо, чтобы все было по правилам: документация, включающая необхо­димые для разработки спецификации была полной и своевременной, при проектировании и написании кода применялась правильная и самая совре­менная методология и т.д.