Добавлен: 20.05.2023
Просмотров: 447
Скачиваний: 4
2. Почему была сделана ошибка?
Что именно было непонятно? Была ли причиной ошибки неточность в формулировке задачи, или недопонимание какой-то языковой конструкции, или неудачный выбор имени переменной (который сделал описку ошибкой), или что-либо еще.
3. Как можно было предотвратить ошибку?
Есть хороший методический принцип: «Никогда не спрашивай человека, чему он научился. Спрашивай, что он в следующий раз будет делать по-другому». Именно этот вопрос мы сейчас и задаем. Что в следующий раз надо делать по-другому, чтобы подобные ошибки не повторялись?
- Почему ошибку не обнаружили раньше?
Если ошибку удалось обнаружить сейчас, то почему ее не удалось обнаружить раньше, на более ранних этапах?
- Как можно было обнаружить раньше?
Как нашли ошибку? Почему именно этот тест оказался удачным? Нельзя ли таким же образом найти аналогичные ошибки в других программах?
3.5 Тесты для полной проверки программы
До этого мы говорили об одном аспекте функциональности программы. Нас интересовал вопрос: правильно ли программа вычисляет требуемую от нее функцию? Но если вы решили написать что-нибудь практически значимое, кроме функциональности и удобства придется проверить и другие аспекты программы. Потребуются следующие категории тестов:
1. Тестирование функциональности
2. Тестирование удобства эксплуатации
3. Тестирование на предельных объемах
Проверить, как программа работает с очень большими объемами данных. Например, если вы пишете редактор, загрузите в него очень большой документ. Если программа нумерует кадры в электронной фотокамере и под номер кадра отведено 4 позиции, попробуйте сделать более 10 000 снимков. Если ваша программа руководит доставкой товара покупателю, сделайте такую покупку, которая не поместится в одном грузовике.
4. Тестирование на предельных нагрузках
Такое тестирование имеет смысл для интерактивных программ и программ, работающих в режиме реального времени, например управляющих технологическими процессами. Подразумевается, что программа должна одновременно реагировать на большое число сигналов. Например, к базе данных одновременно обратились несколько десятков пользователей с удаленных терминалов. Тестировать следует даже такие ситуации, которых «никогда не будет». Например, одновременное нажатие пилотом сразу двадцати кнопок, расположенных в двух метрах друг от друга.