Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комаров Дмитрий - Разработка сайта для строител...doc
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
7.95 Mб
Скачать

5.Тестирование и отладка web-сайта

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

Причиной ненадежности программы является наличие в ней ошибок. Можно выделить 3 класса ошибок:

• Невыполнение требований, предъявляемых разработчиками к программе.

• Прием программой неверных данных от пользователя и дальнейшая неверная их интерпретация.

• Внутренние ошибки программы, приводящие к сбоям в работе программы, потере данных и неправильной их обработке.

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

При этом можно выделить две стадии создания надежного приложения:

• Проектирование и разработка программы с учетом требований надежности.

• Тестирование и проверка живучести программы.

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

• Предупреждение ошибок (за счет минимизирования сложности, немедленного обнаружения и исправления ошибок);

• Обнаружения ошибок (например, за счет включения средств обнаружения ошибок в само ПО);

• Исправление ошибок или информирование о них пользователя;

• Устойчивость к ошибкам (минимизация вреда от ошибок);

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

Для тестирования программы применяют следующие методы:

• Статический анализ текста программы.

• Нисходящее и восходящее тестирование на совокупности эталонных данных.

• Проверка живучести программы.

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

• Соответствие исходных текстов функций внешним спецификациям: выполняемое действие, входные и выходные данные, используемые глобальные переменные и БД.

• Наличие у каждого открывающего элемента составной конструкции соответствующего ему закрывающего элемента.

• Правильное использование БД в приложении.

• Время жизни и использование переменных: переменные должны, по возможности, использоваться локально внутри отдельных функций, кроме специальных случаев (глобальные данные, используемые по всей программе), все переменные должны быть явно описаны.

• Правильность вызова в программе своих и библиотечных функций.

• Правильность кодирования сложных выражений и условий.

При нисходящем тестировании проверяется работоспособность отдельных модулей программы, начиная с модулей верхнего уровня. Сначала тестируется головной модуль и модули, чьи функции используются по всей программе. Затем к тестированию подключаются модули более низкого уровня, и проверка осуществляется вместе с ними. Вместо функций, не участвующих в тестировании, но вызываемых по ходу действия программы, подключаются «заглушки» – небольшие кусочки кода, выводящие на экран сообщение о своем выполнении и возвращающие управление в вызываемую программу. При тестировании независимых ветвей программы, находящихся на одном уровне, взамен уже оттестированных модулей опять вставляются заглушки, а затем проводится полное тестирование. Данный метод тестирования позволяет легко локализовать ошибку при ее обнаружении и всесторонне проверяет правильность взаимодействия отдельных модулей друг с другом.

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

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

Наконец, после выполнения тестирования программы по частям и в целом, проводят тесты на живучесть программы:

• Проверяют работоспособность программы при различном порядке компиляции модулей.

• Проверяют работоспособность программы в разных условиях: на различных компьютерах, при наличии малого объема памяти и т.д.

Для тестирования web-системы применялись следующие методы: статический анализ текста модулей, восходящее тестирование и проверка живучести.

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