unittesting 

Модульное тестирование программного обеспечения. Профессиональный базовый курс с практикой на JUnit

купить в нашем магазине

Фрагменты книги

О чем книга?

Данная книга является отличным пособием по модульному тестированию (и тестированию вообще) программного обеспечения, в котором профессионально отражены как теоретическая, так и практическая части рассматриваемого вопроса. При этом изложение материала с одной стороны отличается большой систематичностью и полнотой, а с другой стороны – компактностью и конкретностью изложения, что называется «без воды».

Начинается книга с рассмотрения того, что такое тестирование и какова его роль в жизненном цикле разработки ПО, приводятся основы инженерии тестирования, разбираются различные модели и современные подходы тестирования. Далее излагаются вопросы, посвященные автоматизации тестирования и рассмотрению принципов модульного тестирования. Большой раздел посвящен теме разработки через тестирование (TDD – TestDrivenDevelopment), даются паттерны разработки через тестирование. По ходу книги приводятся примеры на языке С++ и на Java, а в качестве основного инструмента выбран JUnit – библиотека для модульного тестирования Java-приложений, являющаяся наиболее распространенным и используемым средством, разработанным Кентом Беком (родоначальник экстремального программирования) и Эрихом Гамой (один из соавторов свода паттернов проектирования). Значительная часть книги посвящена изучению JUnit. Таким образом, вы не только получите теоретические знания в области тестирования, но и освоите важный инструмент. Завершают книгу два больших примера: один с акцентом на методику TDD, а другой – на модульное тестирование приложения с графическим интерфейсом.

Книга написана живым, доступным языком профессионалами своего дела. По ходу изложения поясняются все необходимые понятия и термины, так что книга будет понятна даже неподготовленному читателю. При этом книга будет полезна и тестировщикам со стажем, благодаря наличию разных специализированных тем: структуры тестов в сложных ситуациях, поведенческого подхода к тестированию, BDD (Behaviour­ Driven Development) — разработки через описание поведения и др.

Авторы книги: Евгений Пышкин, Михаил Глухих

 Материалы книги:

 

Скачать Оглавление

Скачать фрагмент
главы 1

Скачать фрагмент
главы 2

 

Оглавление книги

Глава 1. Практическая ситуация

ЧАСТЬ I.  IN ACADEMIA   

Глава 1. ПРАКТИЧЕСКАЯ СИТУАЦИЯ

1.1. Как модульное тестирование помогает при изучении программирования 
1.2. Проектирование классов  
1.3. Проблемы разработки тестового кода   
1.4. Анализ ошибки и устранение дефекта  
1.5. Промежуточные итоги   
1.6. Конструирование мини-фреймворка для модульного тестирования  
1.7. Как все это связано с JUnit? 

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

ЧАСТЬ II. Введение в инженерию тестирования
Глава 2. Тестирование в процессе разработки  
2.1. Процесс разработки программного обеспечения    
2.2. Тестирование как динамический метод обеспечения качества   
2.3. Виды и этапы тестирования   

  • Модульное тестирование   
  • Функциональное тестирование    
  • Интеграционное тестирование   
  • Системное тестирование   
  • Нагрузочное тестирование   
  • Приемочные испытания   

2.4. Тестирование и модели жизненного цикла    

  • Каскадная модель   
  • Эволюционная модель   
  • Спиральная модель  
  • Модель итеративной разработки  

Глава 3. Автоматизация тестирования

Глава 3. АВТОМАТИЗАЦИЯ ТЕСТИРОВАНИЯ 
3.1. Значение автоматизации тестирования 
3.2. Управление качеством программного обеспечения
3.3. Типы тестирования и автоматизация

  • Автоматизация модульных тестов
  • Автоматизация интеграционных тестов
  • Приемочное тестирование
  • Кросс-функциональные и нефункциональные тесты
  • Исследовательские тесты

Глава 4. Модульное тестирование: основы

Глава 4. МОДУЛЬНОЕ ТЕСТИРОВАНИЕ: ОСНОВЫ
4.1. Тестирование «белого ящика»   
4.2. Тестирование «черного ящика»   
4.3. Тестирование белого и черного ящика: анализ и применение  
4.4. Особенности, преимущества и ограничения модульного тестирования   
4.5. Модульное тестирование в объектно-ориентированном приложении   

Глава 5. Разработка через тестирование. Test-Driven Development (TDD)

ЧАСТЬ III.  Тесты вначале: концепция и реализация
Глава 5. Разработка через тестирование. Test-Driven Development (TDD)
5.1. Test-Driven Development. Содержание подхода

  • Связь тестирования и разработки требований
  • Основная последовательность действий
  • Рефакторинг кода и рефакторинг тестов
  • Несколько тезисов о конструировании тестов до реализации

5.2. Паттерны разработки через тестирование 

  • Шаблоны стратегии автоматизации тестирования
  • Базовые шаблоны xUnit 
  • Шаблоны настройки тестовой конфигурации
  • Шаблоны проверки результатов
  • Шаблоны очистки тестовой конфигурации
  • Шаблоны тестовых двойников

5.3. Почему так важны интерфейсы?
5.4. Должны ли все тесты проходить?

Глава 6. Средства организации разработки

Глава 6. Средства организации разработки
6.1. Виды средств организации разработки
6.2. Библиотеки модульного тестирования
6.3. Библиотеки тестирования графических интерфейсов 

  • Модуль QtTestLib   
  • Библиотека Jemmy   

6.4. Средство определения покрытия Cobertura  
6.5. Системы контроля версий  

  • Система Subversion  
  • Система Mercurial  

6.6. Система непрерывной интеграции Hudson  

Глава 7. Библиотека для модульного тестирования JUnit: быстрый старт

Глава 7.  Библиотека для модульного тестирования JUnit: быстрый старт
7.1. Знакомство с JUnit. Hello, JUnit! Пример использования  
7.2. Работа с JUnit в eclipse  
7.3. Работа с JUnit в NetBeans  

Глава 8. Архитектура и основные средства JUnit

Глава 8. Архитектура и основные средства JUnit  
8.1. xUnit – концептуальная основа 

  • Цели создания xUnit  
  • Основные элементы xUnit   
  • Реализации архитектуры xUnit  
  • Архитектура xUnit   

8.2. Основные классы и интерфейсы JUnit (ядро JUnit) 

Глава 9. Структура тестов в сложных ситуациях

Глава 9. Структура тестов в сложных ситуациях   
9.1. Настраиваемые тесты  
9.2. Случайные тесты   
9.3. Тестирование кода с возможными исключениями  
9.4. Поле для дискуссии: тестирование объектных структур  

  • Model-View-Controller: назначение и описание  
  • Пример каркаса MVC  
  • Примеры классов, реализующих интерфейсы каркаса MVC
  • Разработка модульных тестов объектной структуры 

Глава 10. Практический пример Test Driven Development (TDD)

ЧАСТЬ IV. Практика применения и практические примеры  
Глава 10. Практический пример использования подхода Test Driven Development (TDD) при разработке библиотеки классов 
10.1. Описание библиотеки в целом  
10.2. Этапы реализации   

  • Лексический анализ   
  • Синтаксический анализ  
  • Вычисление значения выражения в обратной польской записи 

10.3. Собираем все вместе  
10.4. Модификация проекта  

  • Изменение интерфейса Calculator 
  • Написание теста с учетом изменения интерфейса 
  • Написание настраиваемого теста 

Глава 11. Тестирование приложения с графическим интерфейсом

Глава 11. Практический пример использования модульных тестов
в ходе разработки приложения с графическим интерфейсом   
11.1. Какое приложение будем разрабатывать? Логическая игра «Калах»  
11.2. Проектируем архитектуру  
11.3. Проектирование модели  

  • Игровое поле  
  • Отступление: объединять или разъединять? 
  • Интерфейс игрового поля   
  • Создание игрового поля   
  • Создание тестов игрового поля   
  • Игрок        
  • Интерфейс игрока 
  • Создание объектов  
  • Пример реализации  
  • Партия  
  • Интерфейс   
  • Создание объектов  
  • Функциональный тест   
  • Реализация  

11.4. Искусственный интеллект   

  • Реализация  
  • Тестирование  
  • Альфа-бета процедура  

11.5. Проектирование представления  

  • Главная функция  
  • Основной фрейм  
  • Диалог выбора игроков   
  • Основная панель   

Глава 12. Behaviour-Driven Development и заметки на полях

Глава 12.  BDD и заметки на полях   
12.1. Проблемы тестирования графического интерфейса 
12.2. Тестирование приложений с клиент-серверной архитектурой  
12.3. Поведенческий подход к тестированию. BDD, Behaviour-Driven Development — разработка через описание поведения    

  • Библиотека JBehave  
  • Описание поведенческого сценария  
  • Реализация поведенческого сценария на Java   
  • Конфигурация запуска тестов  
  • Результаты тестов  

 

Пролистать оглавление

* Можно щелкнуть по интерактивному оглавлению мышкой и оно будет открыто во весь экран для удобства чтения

Дополнительные материалы:

Ниже приведена видеозапись доклада авторов данной книги в исполнении Евгения Пышкина.  Доклад был сделал на крупной конференции SECR-2012 и был высоко оценен слушателями.Посвящен был доклад не столько модульному тестированию, сколько BDD вообще, но он несомненно обладает ценностью и в контексте предлагаемой книги, а также помогает составить мнение о профессионализме авторов