5.7.8 Статическое и динамическое тестирование

Тестирование программного обеспечения делятся на статическое и динамическое. Главной задачей статического тестирования является найти недостатки уже в фазах проектирования программы и спецификации. Во время статического тестирования можно также проверить свойства системы, такие как ремонтопригодность, надежность, анализируемость.
Проведение статического тестирования может значительно снизить затраты на разработку программного обеспечения и уменьшить время, необходимое для разработки программного обеспечения. Тем не менее, необходимо помнить, что статическое тестирование не является заменой динамического тестирования и нельзя гарантировать, что программное обеспечение, прошедшее только статическое тестирование, будет работать безупречно. Инструменты статического анализа уведомляют разработчиков программного обеспечения о таких недостатках как непригодный для использования программный код, неописанные переменные ит.д.
Динамическое тестирование делится на:
- функциональное тестирование
- структурное тестирование.
Функциональные методы тестирования также известны как «Black Box» (черный ящик), а также техники тестирования входов / выходов.
Это потому, что при данной методике тестирования интересно не само программное обеспечение, а только входы и выходы. Тестировщик не должен знать или иметь знания о программном коде и структуре, он сосредоточен на функциональности программного обеспечения, интересуясь тем, что программное обеспечение делает, а не тем, как программное обеспечение это делает.
При структурных методах тестирования применяемые тесты исходят из внутренней структуры программного обеспечения и их называют также методы «White Box» (белый ящик), так как при их применении надо знать, как внедрено программное обеспечение и как оно работает. Как правило, этими методами пользуются сами разработчики программного обеспечения. Методы структурного тестирования типичные методы модуль-тестирования, при которых тестируются только в компоненты системы программного обеспечения.