Редактирование: ВПнМ/Теормин
Материал из eSyr's wiki.
Внимание: Вы не представились системе. Ваш IP-адрес будет записан в историю изменений этой страницы.
ПРЕДУПРЕЖДЕНИЕ: Длина этой страницы составляет 90 килобайт. Страницы, размер которых приближается к 32 КБ или превышает это значение, могут неверно отображаться в некоторых браузерах. Пожалуйста, рассмотрите вариант разбиения страницы на меньшие части.
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий, чтобы убедиться, что это именно те изменения, которые вас интересуют, и нажмите «Записать страницу», чтобы изменения вступили в силу.
Текущая версия | Ваш текст | ||
Строка 766: | Строка 766: | ||
=== Подходы к верификации программ. Тестирование и имитационное моделирование. Область применения, плюсы и минусы. Проблема полноты тестового покрытия. === | === Подходы к верификации программ. Тестирование и имитационное моделирование. Область применения, плюсы и минусы. Проблема полноты тестового покрытия. === | ||
- | «Тестирование может показать присутствие ошибок, но не может показать их отсутствия» © Дейкстра. | ||
- | |||
- | Обоснование полноты тестового покрытия: | ||
- | * метод «чёрного ящика» (ЧЯ) — полное покрытие входных данных, | ||
- | * метод «прозрачного ящика» (ПЯ) — полное покрытие кода программы. | ||
- | Плюсы применения тестирования: | ||
- | * проверяется та программа, которая будет использоваться, | ||
- | * не требуется знание/использование дополнительных инструментальных средств, | ||
- | * удобная локализация ошибки. | ||
- | Минусы применения тестирования: | ||
- | * не всегда есть условия для тестирования системы, | ||
- | * проблема с воспроизводимостью тестов (частичное решение — имитационное моделирование). | ||
- | |||
- | ====Проблема полноты тестового покрытия==== | ||
- | * Чёрный ящик: | ||
- | ** для последовательных программ сложно перебрать все входные данные, | ||
- | ** для параллельных программ — очень сложно, | ||
- | ** для динамических структур данных, взаимодействия с окружением — невозможно. | ||
- | * Прозрачный ящик: | ||
- | ** большой размер покрытия, | ||
- | ** часто невозможно построить 100% покрытие, | ||
- | ** полное покрытие не гарантирует отсутствия ошибок. | ||
- | Итоги: | ||
- | * Полный перебор входных данных — невозможен. | ||
- | * Полнота покрытия кода не гарантирует правильности. | ||
- | * Ошибка — ошибочное вычисление системы. | ||
- | * Полнота в терминах возможных вычислений — хороший критерий. | ||
=== Подходы к верификации программ. Доказательство теорем. Область применения, плюсы и минусы. === | === Подходы к верификации программ. Доказательство теорем. Область применения, плюсы и минусы. === |