Теоретические сведения
Тестирование - это процесс выполнения программы с целью определения места некорректного ее функционирования. Оно включает преднамеренное конструирование трудных наборов входных данных, создающих наибольшие возможности для отказа программного изделия. Тестирование является основным методом обнаружения ошибок в программе. Результаты тестирования являются исходными данными для отладки.
Отладка программы - это этап ее разработки, на котором устраняются недостатки только что созданной программы.
Если программа правильно ведет себя для солидного набора тестов, нет оснований, утверждать, что в ней нет ошибок. Просто неизвестно, когда она не работает и можно говорить лишь о некотором уровне ее правильности.
Тесты, не способствующие обнаружению ошибок и только подтверждающие корректность функционирования программы, являются не эффективными, т.к. приводят к бесполезным затратам ресурсов и времени.
Тест - это просчитанный вручную или другим способом пример, промежуточные и конечные результаты которого используются для контроля правильности (живучести) программного изделия. Тест состоит из исходных данных и тех значений, которые должны выдать отладочные печати при работе по этому тесту. Эти значения должны быть записаны в точности в том виде, в котором их должна выдать ЭВМ. Эти значения желательно получить любым путем, но не тем, который реализован в программе, т.к. в последнем случае можно не заметить ошибки в алгоритмизации.
Комплект тестов должен быть таким:
- чтобы проверить все варианты внешнего эффекта программы и варианты ее внутренней работы алгоритма;
- чтобы все ветви алгоритма были пройдены, по крайней мере, по одному разу.
- чтобы проконтролировать предельные и вырожденные случаи.
Тестовые данные должны подбираться таким образом, чтобы программист был в состоянии вычислить правильный результат ещё до начала тестирования.
Процесс тестирования программы можно разделить на три этапа:
1. Проверка в нормальных условиях.
2. Проверка в экстремальных условиях.
3. Проверка в исключительных ситуациях.
Каждый из этих трех этапов проверки должен гарантировать получение верных результатов при правильных входных данных и выдачу сообщений об ошибках при неправильных входных данных.
Проверка в нормальных условиях
Случаи, когда программа должна работать со всеми возможными исходными данными, чрезвычайно редки. Обычно имеют место конкретные ограничения на область изменения данных, в которой программа должна сохранять свою работоспособность. Программа должна выдавать правильные результаты для характерных совокупностей исходных данных.
Проверка в экстремальных условиях
Тестовые данные этого этапа включают граничные значения области изменения входных переменных, которые должны восприниматься программой как правильные данные. Типичные примеры очень большие числа, очень малые числа или отсутствие информации.
Проверка в исключительных ситуациях.
Используются исходные данные, значения которых лежат за пределами допустимой области их изменения. Наихудшая ситуация когда программа воспринимает неверные данные как правильные и выдаёт неверный, но правдоподобный результат. Программа должна отвергать любые данные, которые она не в состоянии обрабатывать верно.
Пример тестов.
Пусть требуется вычислить длину диагонали параллелепипеда по формуле <!--[if !vml]--> <!--[endif]--> Необходимо сформировать тестовые данные для нормальных, экстремальных и исключительных условий.
Стороны Параллепипеда | Примечание | |||
1 1 1 | Хороший нормальный тест d <!--[if !vml]--> <!--[endif]--> 1,7320508 | |||
1 2 3 | Тест в нормальных условиях d <!--[if !vml]--> <!--[endif]--> 3,7416577 | |||
0 0 0 | Результат должен быть равен нулю | |||
0 1 2 | Не параллепипед. Что произойдет? | |||
1 0 3 | Неверные данные | |||
2 1 0 | Неверные данные | |||
1 -6 3 | Неверные данные | |||
A B C | Неверные данные | |||
Раздел №9