Методы тестирования
- ручное
- автоматическое
Ручное тестирование - естественный процесс, который органично связан с разработкой. Программисты выполняют его сотни раз, но для качественного ручного тестирования нужен отдельный человек, со свежим взглядом на жизнь и желанием "сломать" программу, подвергая её жестокому обращению: ввод некорректных данных, кликанье мышкой куда попало, запуск отчётов с немыслимыми параметрами и т.д.
Автоматическое тестирование - это процесс, который пытаются отложить до момента, когда без него не удаётся добиться требуемого качества программного продукта. К сожалению, к этому моменту стоимость внедрения систем автоматического тестирования может оказаться сравнима со стоимостью самого проекта. Чем дольше жизненный цикл проекта, чем больше людей вовлечено в него, тем раньше нужно внедрять систему автоматического тестирования. В идеале - в самом начале проекта, с первыми строками кода.
Виды тестирования:
- модульное
- функциональное
Модульное тестирование
Хорошо подходит для библиотек процедур, невизуальных классов. Каждый тест отвечает на вопрос, работает ли определенный модуль в системе или нет.
Реализация
Для каждого тестируемого модуля необходимо создать ещё один модуль, содержащий тестовые задания. Этот модуль имеет:
- метод запуска подтестов
- метод протоколирования
Для запуска модульных тестов компилируется отдельная программа, ядро которой выполнят последовательный (иерархический) запуск тестовых модулей, ведёт протокол тестирования и отображение результатов в графическом виде.
Функциональное тестирование
Подходит для комплексного тестирования программы. Ориентировано на техническое задание (требования к программе): каждый тест отвечает на вопрос, работает ли определенный функционал в системе или нет.
Реализация
Хорошо зарекомендовал себя подход, при котором в тестируемую систему встраивается интерпретатор скрипта выполнения. Скрипт выполнения - запись последовательности действий пользователя и методов контроля их выполнения. Такой подход позволяет писать функциональные тесты без привязки к элементам графического интерфейса (расположение кнопок, пунктов меню), но подразумевает, что для тестирования GUI используются другие методики ( ручное тестирование или скрипты для кликанья мышкой / нажатия клавиш ).
Пример реализации
Комментариев нет:
Отправить комментарий