Тестирование веб-приложений интересно тем, что оно требует наиболее широкого владения различными видами тестирования. Одно из ключевых мест занимает тестирование защищенности (security testing) или проверка отсутствия известных уязвимостей.
Почему тестирование защищенности имеет такое большое значение именно для веб-приложений?
Веб-приложения ориентированы на массовое использование, поэтому сбои в работе, вызванные действиями злоумышленника, могут оказать негативное воздействие на большое количество ни в чём неповинных пользователей.
Веб-приложения могут хранить конфиденциальную информацию, утечка этих данных может иметь очень серьёзные последствия.
Доступ к веб-приложению имеет множество “недоверенных” пользователей, при этом владельцы или разработчики приложения как правило не могут контролировать или ограничивать их действия.
Обмен информацией между браузером и сервером происходит по открытым каналам с использованием открытых протоколов, поэтому сложно контролировать данные, передаваемые клиентами.
Разработка веб-приложений не всегда ведётся с должным вниманием к обеспечению защищенности и надёжности, потому что рынок в первую очередь требует “быстро”!
Разумеется, тестирование защищенности не ограничивается тестированием самого веб-приложения. Уязвимость может находиться в веб-сервере, операционной системе, почтовой системе, ftp-сервере или ещё где-то. Но задача создания защищенного окружения в большей степени находится в зоне ответственности системных администраторов, а вот защищенность вашего собственного веб-приложения -- целиком на совести его разработчиков и тестировщиков.
На тренинге мы рассмотрим как общие принципы компроментации защиты веб-приложений, так и отдельные наиболее распространенные виды уязвимостей, которые могут быть использованы даже не слишком квалифицированным злоумышленником, что существенно повышает вероятность их эксплуатации.
Автоматизация тестирования. Заветная страна, сказочный рай. Мечта многих менеджеров -- автоматизировать все тесты, чтобы... Чтобы что? Можно ли добраться до этой цели, и что случается с теми, кто её достиг?
Автоматизация тестирования позволяет часть работ по тестированию переложить с тестировщиков-людей на плечи роботов-компьютеров. Но как любая другая другая автоматизация она не всегда оправдана с экономической точки зрения. Требуются вложения сил и средств, требуются специалисты особой квалификации, требуется особая программно-аппаратная база. Будут ли эти вложения оправданы? Какие выгоды принесет автоматизация?
Хотите узнать:
какие виды тестирования хорошо поддаются автоматизации, а какие плохо?
следует ли автоматизировать регрессионное тестирование?
можно ли автоматизировать тестирование методом свободного поиска?
как организовать ручное и автоматизированное тестирование, чтобы они не дублировали, а дополняли друг друга?
каковы особенности проектирования тестов для автоматизации?
впишется ли автоматизация в ваши процессы и методы разработки?
как выбирать инструменты для автоматизации тестов?
насколько можно доверять автоматизированным тестам, не будут ли они пропускать ошибки?
какие специалисты потребуются для разработки автоматизированных тестов?
сколько времени займет этап внедрения автоматизации и когда она начнет приносить выгоды?
нужно ли что-то специально дорабатывать в тестируемом приложении, чтобы тесты можно было автоматизировать?
Приходите на тренинг Алексея Баранцева, где мы обсудим эти и многие другие вопросы, касающиеся автоматизации тестирования.
"Я не буду обещать золотые горы в качестве результата внедрения автоматизации, как это делают производители инструментов на рекламных семинарах," - говорит Алексей, - "Но и не буду отговаривать вас от внедрения автоматизации, пугая низкой эффективностью, долгим сроком окупаемости и высокими рисками. Я уверен в том, что эти страхи преувеличены. Автоматизацию можно внедрять постепенно, начиная получать от нее выгоду практически немедленно. Важно найти грань, которую не следует переступать, иначе автоматизация из полезного инструмента превратится в обузу. Как понять, где пролегает эта грань? Для этого нужно очень хорошо понимать пределы возможностей современных инструментов-роботов, применяемых для автоматизации".
Тренинг предназначен для руководителей проектов, руководителей групп тестирования, специалистов, ответственных за внедрение и развитие автоматизированного тестирования, тестировщиков-автоматизаторов.
На этом тренинге не предполагается демонстрация инструментов автоматизации тестирования или обучение конкретным приемам и техникам создания автоматизированных тестов.
Целью тренинга является формирование у слушателей понимания того, в каких ситуациях автоматизация тестирования применима, какие возможны проблемы при внедрении автоматизированного тестирования и какими способами можно их преодолеть.
За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений Selenium приобрел фантастическую популярность.
Владение этим инструментом стало одним из обязательных умений для тестировщика-автоматизатора, достаточно посмотреть динамику вакансий, чтобы убедиться в этом.
Если вы хотите считаться профессионалом в области автоматизации тестирования, строчка "я знаю Selenium" обязательно должна присутствовать в вашем резюме.
Простые тесты можно создавать при помощи рекордеров Selenium IDE или Selenium Builder. Но при увеличении объёма и сложности тестов этот подход теряет свою эффективность и привлекательность. Профессионалы пишут тесты на языках программирования.
Основным "официальным" языком программирования для Selenium является Java, потому что большая часть самого Selenium реализована на этом языке и все новые возможности сначала реализуются на Java, а потом переносятся в реализации на других языках – .Net (C#), Ruby, Python.
Этот курс предназначен для тех, кто хочет освоить программный интерфейс Selenium 2.0 и научиться разрабатывать автотесты для веб-приложений на языке программирования Java.
Если до этого Вы не занимались автоматизацией и не знакомы с Selenium, то лучше начать с курса Selenium 2.0: стартовый уровень.
Также существует аналогичный тренинг на языке Python.
После прохождения тренинга учащийся будет уметь разрабатывать автоматизированные тесты для веб-приложений на языке программирования Java с использованием инструмента Selenium 2.0, в частности:
владеть базовым набором команд Selenium 2.0, эмулирующих действия пользователя (ввод текста, клики мышью),
владеть расширенным набором команд Selenium 2.0, эмулирующих действия пользователя (клавиатурные сочетания, перетаскивание элементов мышью и другие),
владеть техниками поиска (идентификации) элементов в окне браузера,
уметь обеспечивать стабильность и скорость выполнения тестов за счёт правильного использования ожиданий,
уметь выполнять проверки фактических данных, полученных из браузера, на соответствие ожидаемым значениям,
владеть основными шаблонами проектирования тестов, в том числе шаблоном PageObject,
уметь выстраивать архитектуру тестов таким образом, чтобы тесты можно было легко модифицировать и добавлять новые (при небольшом количестве тестов),
уметь организовывать инфраструктуру для запуска тестов на сервере непрерывной интеграции.