11.9. СРЕДСТВА АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
11.9. СРЕДСТВА АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Генераторы тестов (automatic unit test) случайным образом генерируют данные.
Статические анализаторы программ, анализируют исходный тест и строят диаграммы маршрутов; анализируют присваивание данных и делают попытки построений данных, приводящих к ошибке.
Средства периода выполнения обычно производят статистический подсчет количества выполнения каждого оператора и позволяют контролировать полноту тестов.
ВЫВОДЫ
• Тестирование программ — главное, что определяет важнейшее качество программ — надежность.
• На тестирование расходуется основная часть средств и времени проекта.
• При разработке любой программы или системы тестирование отбирает большую часть времени и денег. Учитывая это, необходимо определить не очень большое количество тестов, обеспечивающих высокую вероятность обнаружения тех или иных ошибок.
• Аксиомы тестирования определяют основные цели и принципы тестирования.
• Если из текста исключить отладочные печати, то существенно усложнится сопровождение.
• Существуют два крайних подхода к проектированию тестов: стратегия "черного ящика" и стратегия "белого ящика". Бесполезно следовать только одному подходу. Необходимо строить стратегию тестирования только на основе сочетания подходов.
• При проектировании многомодульных программ используется восходящее тестирование (автономное тестирование нижних модулей, не вызывающих других модулей) и нисходящее тестирование (применение заглушек нижних уровней). Но у каждого из них есть свои достоинства и недостатки. Возможны также варианты:
— модифицированный нисходящий метод — согласно этому методу каждый модуль автономно тестируется перед включением в программу, собираемую сверху вниз;
— метод большого скачка — каждый модуль тестируется автономно, далее модули просто интегрируются в готовую программную систему;
— метод сандвича — по этому методу реализация и тестирование ведутся одновременно сверху и снизу, и два этих процесса встречаются в заранее намеченной временной точке;
— модифицированный метод сандвича — нижние модули тестируются строго снизу вверх, а модули верхних модулей сначала тестируются автономно, а затем собираются нисходящим методом. Этот метод апробирован при создании ОС.
• Существует деление тестирования на публичное и приватное. Часто используются оба способа: сначала программа проходит приватное тестирование, а затем, когда все крупные "проколы" уже выявлены, начинается ее публичное тестирование, чтобы собрать отзывы широкого круга пользователей.
Контрольные вопросы
1. Назовите основные аксиомы тестирования.
2. В чем преимущество отладочной печати?
3. Какие свойства программного обеспечения оказывают наибольшее влияние на процесс обнаружения ошибок при тестировании?
4. Для чего нужны эмпирические модели? Как производится их анализ?
5. Какова связь между процессами тестирования и проектирования?
6. В чем достоинства и недостатки восходящего и нисходящего проектирования? Ответ обосновать на примере конкретной программы.
7. Какой тест максимально быстро обнаружит зацикливание?
8. Выделите несколько основных критериев при выборе параметров тестирования.