Тестирование ПО

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

Классификации видов и методов тестирования на данный момент имеет
обширный характер [1]. Существует несколько признаков, по которым
принято производить классификацию видов тестирования. Обычно выделяют
следующие:
1) по объекту тестирования:
- функциональное тестирование,
- тестирование производительности,
- нагрузочное тестирование,
- стресс-тестирование,
- тестирование стабильности,
- конфигурационное тестирование,
- юзабилити-тестирование,
- тестирование безопасности,
- тестирование локализации,
- тестирование совместимости;
2) по знанию внутреннего строения системы:
- тестирование черного ящика,
- тестирование белого ящика,
- тестирование серого ящика;
3) по степени автоматизации:
- ручное тестирование,
- автоматизированное тестирование,
- полуавтоматизированное тестирование;
4) по степени изолированности:
- тестирование компонентов,
- интеграционное тестирование,
- системное тестирование;
5) по времени проведения тестирования:
- альфа-тестирование,
- дымовое тестирование (англ. smoke testing),
- тестирование новой функции (new feature testing),
- подтверждающее тестирование,
- регрессионное тестирование,
- приемочное тестирование,
- бета-тестирование;
6) по признаку позитивности сценариев:
- позитивное тестирование,
- негативное тестирование;
7) по степени подготовленности к тестированию:
- тестирование по документации (формальное тестирование),
- интуитивное тестирование (англ. ad hoc testing).

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

В виде скомпилированной программы, в случае использования
компилируемого языка.
Как правило, основным критерием правильности программы является
корректность ее исполнения и/или корректная обработка входных данных.
Существует ряд инструментов, которые решают похожие задачи, среди
которых можно выделить три наиболее подходящих и популярных
инструмента: ejudge, Peach3 и Web-CAT.

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

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

Web-CAT предоставляет возможности автоматизированной системы
оценивания исходного кода по критерию полноты тестирования этого кода.
Одним из основных плюсов данного инструмента является его расширяемая
архитектура.


Рецензии