Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
ориентированного
программирования
• Устранение регрессии
– регрессия — свойство программной системы
обнаруживать ранее устраненные дефекты
Классификация
• По целям
– Приемочное (acceptance) — определяем, что новый
функционал/модуль уже работают
– Регрессионное (regression) — проверяем, что не
поломалось то, что работало раньше
• По способу выполнения
– Ручное — тест прочитывается и выполняется
человеком
– Автоматизированное — тест читается и
выполняется специальными инструментами
Классификация
• Системные тесты по типам требований
– Функциональные
– Нефункциональные
• Производительность
• Отказоустойчивость
• Удобство использования (usability)
• Безопасность
Классификация
• По уровню охвата
– Системное (end-to-end) — тестируется система как
таковая.
Источник тестов — спецификации требований к системе
(истории и варианты использования)
– Интеграционное — трестируется взаимодействие
модулей (в т.ч. внешних сервисов, например базы
данных)
Источник тестов — спецификации программных требований —
интерфейсы модулей
– Модульное — тестируется один отдельно взятый
модуль (взаимодействия с внешними подсистемами
заменяются “заглушками” или “эмуляторами”)
Источник тестов — спецификации программных требований —
интерфейс модуля
Принципы
1. Определение. Для того чтобы протестировать
программу, нужно попытаться заставить её
работать неверно
• TDD (Test-Driven-Development)
– Сначала модульный тест, затем код
• BDD (Behavior-Driven-Development)
– Сначала системный тест, затем разработка
Test-Driven-Development
• Определяем (часть) интерфейс тестируемого
класса
• Пишем тест на самый простой случай, ещё
не охваченный тестами
• Убеждаемся, что тест не проходит, по
причине того, что соответствующий код ещё
не написан
• Пишем код, до тех пор, пока весь пакет не
проходит
• Продолжаем с п. 2 или 1
Стратегии (техники) создания
тестов
Существует две большие группы стратегий
– «Черный ящик» — тестируемая подсистема
рассматривается как совокупность «входов» и
«выходов», прчем сведения о внутренней
структуре подсистемы не используются
– «Прозрачный (белый) ящик» — для создания
тестов используется внутренняя структура
системы
Техники создания тестов
– Exhaustive Testing — проверка всех возможных
вариантов входов-выходов