Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PZ_2015.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

2.3 Тестирование программного продукта

Разработка программного обеспечения, в частности программного обеспечения больших размеров, представляет собой сложную и трудную задачу, к которой существует несколько различных подходов.

Один из общих законов практического программирования состоит в том, что ни одна программа не дает желательных результатов при первой попытке трансляции и выполнения. Хороший программист должен быть способен не только аккуратно писать эффективные программы, но и находить все возможные

ошибки. Большинство коммерческих программистов расходуют на тестирование программы около 50% своего времени в то время как их обучение почти целиком ориентировано на выполнении другой половины работы.

Большая часть курсов программирования только кратко упоминает о диагностических возможностях и совсем не охватывает общих приемов тестирования. Причина заключается в том, что поиск ошибок считается интуитивным процессом, которому нельзя обучить, и которым каждый программист должен овладеть лишь на практике. Тем не менее, есть несколько стандартных правил отладки программ, которые могут с успехом применяться.

Существует два типа программных ошибок:

  • Синтаксические ошибки, которые являются нарушениями правил языка программирования и обычно выявляются во время компиляции.

  • Семантические или логические ошибки, приводящие к некорректным или ошибкам выполнения. Обнаруживаются они в основном при тестировании программы, т.е. при выполнении ее с тщательно подобранными проверочными данными, для которых известны результаты.

Синтаксические ошибки могут быть исключены сравнительно легко. Большинство из них можно выявить во время проверки листинга программы, выявляя орфографические ошибки, недоступные форматы команд и т.д.

Семантические (логические) ошибки устраняются обычно посредством выполнения программы с тщательно подобранными проверочными данными, для которых известен правильный ответ, полученный либо с помощью ручного вычисления, либо с помощью досконально проверенных вычислений на машине.

Первым шагом семантической проверки является ручной прогон. Программист моделирует прохождение данных через его программу с помощью карандаша и листка бумаги. Однако если программа превышает минимальный уровень длины или сложности, а большинство программ его превышает, такая проверка становится практически невозможной.

Тестирование больших программ с проверочными данными может очень эффективно использоваться для того, чтобы показать наличие ошибок, но никогда не может служить доказательством их отсутствия. Основными инструментами отладки служат тесты и отладочные печати.

Тестирование программы – это специально подобранные исходные данные в совокупности с теми результатами, которые должна выдать программа при обработке этих данных. Несовпадение результатов программ с результатами тестов – это и есть признак наличия ошибки. Возможно такое, что и неправильная программа дает по нескольким местам правильный результат, поэтому необходимо контролировать и промежуточные результаты, чтобы не упустить ошибку. Для такого контроля и локализации ошибок в программу вставляются отладочные печати, т.е. печати промежуточных результатов. Эти печати позволяют проследить логический след программы (т.е. что выполняется в данный момент) и ее арифметические следы (т.е. промежуточные результаты).

Контрольный пример – тест для контроля работы программ. Он должен обеспечить возможность проверки правильности алгоритма решения задачи.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]