Разделы портала

Онлайн-тренинги

.
Тестирование черного ящика. Технологии функционального тестирования программного обеспечения и систем.
07.10.2008 10:32

Black-Box Testing. Techniques for Functional Testing of Software and Systems.

Борис Бейзер

Книга доктора Бейзера «Тестирование черного ящика» давно была признана классическим трудом в области поведенческого тестирования разнообразных систем. В ней глубоко рассматриваются основные вопросы тестирования программного обеспечения, позволяющие отыскать максимум ошибок при минимуме временных затрат. Чрезвычайно подробно излагаются основные методики тестирования, покрывающие все спектры аспектов разработки программных систем. Методичность и широта изложения делают эту книгу незаменимым помощником при проверке правильности функционирования программных решений.

Книга предназначена для тестировщиков программного обеспечения и программистов, стремящихся повысить качество своей работы.

Содержание

Введение

Пропущенные модели

1. Общие положения
2. Маерс. «Искусство тестирования программ»
3. Логические модели
4. Языковые модели
README.DOC

Зачем нужен Readme.doc?
План книги
Структура главы
Бланки налоговой декларации и ссылки на них
Что должен знать читатель
Не только программное обеспечение
Использование алфавитного указателя
Ссылки
Контроль качества
Благодарности
Отказ от ответственности
От издательства

Глава 1. Введение

1.1. Обзор
1.2. Основные термины
1.3. О тестировании

1.3.1. Тестировщик и программист
1.3.2. Почему мы тестируем программное обеспечение?
1.3.3. Стратегия тестирования
1.3.4. Парадокс пестицида
1.3.5. Природа и причины ошибок
1.3.6. Когда надо остановиться
1.3.7. Тестирование черного ящика — это еще не все
1.3.8. Тестирование — это еще не все

1.4. Процесс разработки программного обеспечения

1.4.1. То, что на самом деле важно
1.4.2. Десять (16) и одна заповедь управления процессом

1.5. Вопросы для самопроверки

Глава 2. Графы и отношения

2.1. Обзор
2.2. Основные термины
2.3. Примеры графов, используемых в тестировании

2.3.1. Обзор
2.3.2. Модель потока транзакций (Глава 6)
2.3.3. Модель меню с конечным числом состояний (Глава 9)
2.3.4. Модель потока данных (Глава 5)
2.3.5. Модель времени выполнения

2.4. Отношения

2.4.1. Обзор
2.4.2. Транзитивные и нетранзитивные отношения
2.4.3. Симметричные и несимметричные отношения
2.4.4. Рефлексивные и нерефлексивные отношения
2.4.5. Классы эквивалентности и разбиения
2.4.6. Альтернатива графам

2.5. Основополагающие принципы тестирования

2.5.1. Обзор
2.5.2. Построение графа
2.5.3. Определение отношений
2.5.4. Проверка узлов
2.5.5. Проверка связей
2.5.6. Тестирование весов
2.5.7. Тестирование циклов

2.6. Резюме
2.7. Вопросы для самопроверки

Глава 3. Тестирование потока управления

3.1. Обзор
3.2. Основные термины
3.3. Отношения и модель

3.3.1. Основы
3.3.2. Моделирование составных предикатов

3.4. Методика

3.4.1. Основы
3.4.2. Построение модели
3.4.3. Выбор путей тестирования
3.4.4. Активизация
3.4.5. Предсказание итогов
3.4.6. Проверка соответствия пути

3.5. Рассмотрение приложения

3.5.1. Индикаторы приложений
3.5.2. Предположения об ошибках
3.5.3. Ограничения и предостережения
3.5.4. Автоматизация и инструментальные средства

3.6. Резюме
3.7. Вопросы для самопроверки

Глава 4. Тестирование циклов

4.1. Обзор
4.2. Основные термины
4.3. Отношения и модель

4.3.1. Основы
4.3.2. Детерминированные циклы
4.3.3. Недетерминированные циклы
4.3.4. Вложенные циклы
4.3.5. Неструктурированные (ужасные) циклы

4.4. Методы

4.4.1. Критические тестовые значения
4.4.2. Детерминированные циклы
4.4.3. Недетерминированные циклы
4.4.4. Вложенные циклы

4.5. Рассмотрение приложения

4.5.1. Индикаторы приложений
4.5.2. Предположения об ошибках
4.5.3. Ограничения и предостережения
4.5.4. Автоматизация и инструментальные средства

4.6. Резюме
4.7. Вопросы для самопроверки

Глава 5. Тестирование потоков данных


5.1. Обзор
5.2. Основные термины
5.3. Отношения и модель

5.3.1. Основы
5.3.2. Аналогии с графами потока данных
5.3.3. Короткие замечания и упрощенные методы
5.3.4. Упорядочение, совмещение потока управления и потока данных, циклы

5.4. Методы

5.4.1. Основы
5.4.2. Иерархия покрытия
5.4.3. Построение модели
5.4.4. Выбор основного порожденного подграфа
5.4.5. Итоговый пример
5.4.6. Активизация
5.4.7. Предсказание итогов
5.4.8. Проверка соответствия пути

5.5. Анализ приложений

5.5.1. Виды приложений
5.5.2. Предположения об ошибках
5.5.3. Ограничения и предостережения
5.5.4. Автоматизация и инструментальные средства

5.6. Резюме
5.7. Вопросы для самопроверки

Глава 6. Тестирование потоков транзакций


6.1. Обзор
6.2. Основные термины
6.3. Отношения и модель

6.3.1. Основы
6.3.2. Маркировки
6.3.3. Очереди
6.3.4. Слияние и поглощение
6.3.5. Циклы
6.3.6. Фокус и иерархические модели

6.4. Методика

6.4.1. Основы
6.4.2. Иерархия покрытия
6.4.3. Построение модели
6.4.4. Выбор путей и/или порожденных подграфов тестирования
6.4.5. Тестирование синхронизации
6.4.6. Тестирование очереди
6.4.7. Активизация
6.4.8. Предсказание итогов
6.4.9. Проверка соответствия пути

6.5. Рассмотрение приложений

6.5.1. Индикаторы приложений
6.5.2. Предположения об ошибках
6.5.3. Ограничения и предостережения
6.5.4. Автоматизация и инструментальные средства

6.6. Резюме
6.7. Вопросы для самопроверки

Глава 7. Тестирование доменов


7.1. Обзор
7.2. Основные термины
7.3. Отношения и модель

7.3.1. Обоснование
7.3.2. Основы
7.3.3. Анализ неопределенностей и противоречий
7.3.4. Нелинейные домены

7.4. Методы

7.4.1. Основы
7.4.2. Недостатки комбинирования экстремальных точек
7.4.3. Слабая стратегия 1?1, одномерное пространство
7.4.4. Слабая стратегия 1?1, пространство с размерностью два и выше
7.4.5. Вырожденный случай
7.4.6. Стратегии более высокого порядка для пространства с размерностью два и более
7.4.7. Сильное тестирование доменов

7.5. Рассмотрение приложений

7.5.1. Индикаторы приложений
7.5.2. Предположения об ошибках
7.5.3. Ограничения и предостережения
7.5.4. Автоматизация и инструментальные средства

7.6. Резюме
7.7. Вопросы для самопроверки

Глава 8. Синтаксическое тестирование


8.1. Обзор
8.2. Основные термины
8.3. Отношения и модель

8.3.1. Основы
8.3.2. Комментарий о трудозатратах

8.4. Методы

8.4.1. Основы
8.4.2. Иерархия покрытия
8.4.3. Чистое синтаксическое тестирование
8.4.4. Грязное синтаксическое тестирование
8.4.5. Предсказание итога
8.4.6. Хорошие и плохие разновидности тестирования

8.5. Рассмотрение приложений

8.5.1. Индикаторы приложений
8.5.2. Предположения об ошибках
8.5.3. Ограничения и предостережения
8.5.4. Автоматизация и инструментальные средства

8.6. Резюме
8.7. Вопросы для самопроверки

Глава 9. Тестирование систем с конечным числом состояний


9.1. Обзор
9.2. Основные термины
9.3. Отношения и модель

9.3.1. Основы
9.3.2. Модели Мили и модели Мура
9.3.3. Таблицы переходов
9.3.4. Вложенные автоматы
9.3.5. Улучшаем модель

9.4. Методы

9.4.1. Основы
9.4.2. Что необходимо проверить
9.4.3. Проверка лишних состояний
9.4.4. Иерархия покрытия
9.4.5. Активизация и предсказание итога
9.4.6. Подсчет состояний
9.4.7. Средства поддержки и тестируемость

9.5. Рассмотрение приложений

9.5.1. Индикаторы приложений
9.5.2. Предположения об ошибках
9.5.3. Ограничения и предостережения
9.5.4. Автоматизация и инструментальные средства

9.6. Резюме
9.7. Вопросы для самопроверки

Глава 10. Инструментальные средства и автоматизация


10.1. Обзор
10.2. Основные термины
10.3. Обязательная автоматизация
10.4. Базовый пакет инструментов

10.4.1. Основы
10.4.2. Инструменты для покрытия
10.4.3. Автоматизация проведения тестирования
10.4.4. Автоматизация проектирования тестов
10.4.5. Рекомендации по выбору производителя инструментов тестирования
10.4.6. Не обманывайте сами себя

10.5. Будущее тестирования

10.5.1. Основы
10.5.2. Зачем и почему я не верю в тестирование
10.5.3. Зачем и почему я не верю в независимое тестирование
10.5.4. Будущее тестирования

10.6. Вопросы для самопроверки
Приложение А

Список литературы

Алфавитный указатель