Модульное тестирование традиционно считается
работой, которую должны выполнять программисты.
Это мнение не лишено оснований.
Однако так называемые инструменты модульного
тестирования, такие как JUnit, TestNG, NUnit,
MbUnit и другие подобные, активно используются
для тестирования на более высоких уровнях,
вплоть до уровня пользовательского интерфейса,
поэтому тестировщикам-автоматизаторам необходимо
хорошо владеть этими инструментами.
Кроме того, разработка тестов на любом уровне
требует определенной культуры программирования,
поэтому тестировщику-автоматизатору следует
внимательно изучить рекомендуемые шаблоны
проектирования тестов и придерживаться их, чтобы
тесты получались стабильными и удобными для
сопровождения.
Все, кто достаточно плотно соприкасался с
автоматизацией тестов, знают, что если
своевременно не позаботиться об аккуратной
организации архитектуры тестового набора, тесты
вскоре выйдут из под контроля: добавление новых
тестов и модификация существующих при изменении
требований или реализации становятся серьёзной
проблемой.
Инструменты и фреймворки в какой-то мере
пытаются решить эту задачу, они уже частично
задают архитектурный каркас тестового набора. Но
этого недостаточно, нужны дополнительные усилия
со стороны разработчика тестов.
Главный принцип, который знаком каждому
программисту -- это повторное использование кода
и стандартных архитектурных шаблонов. На
семинаре рассмотрены некоторые приёмы, которые
применяются при автоматизации тестирования
веб-приложений, но, вообще говоря, их с равным
успехом можно использовать и для других классов
приложений.
Недорогие и бесплатные инструменты зачастую
вовсе не проигрывают в качестве своим более
дорогостоящим аналогам. Разница, как правило,
заключается в том, что дорогие инструменты
представляют собой универсальные комбайны, а
недорогие и бесплатные инструменты достаточно
узко специализированы, нацелены на решение
определённых задач, но зато справляются с этими
задачами хорошо. И поэтому тестировщику
приходится иметь в комплекте целый набор таких
специализированных инструментов.
На этом семинаре рассматриваются недорогие и
бесплатные инструменты функционального
тестирования, предназначенные для тестирования
программ через различные интерфейсы: программный
интерфейс (API), интерфейс веб-сервисов (SOAP),
интерфейсы сетевых протоколов, интерфейс
командной строки (CLI), и конечно же различные
варианты графического интерфейса пользователя
(GUI): для веб-приложений, Windows-приложений,
Java-приложений, Linux-приложений. Для каждого
вида интерфейсов предложено несколько различных
инструментов и проведено сравнение их
характеристик.