При разработке нового продукта рано или поздно появляется вопрос «Нужно ли тратить деньги и время на тестирование?» Не буду говорить, что оно нужно всегда — это не так. На мой взгляд, есть ситуации, в которых тестирование нецелесообразно.
Когда стоит отказаться от тестирования
Представим себе некую Машу, которая в свободное время занимается мыловарением. Она не только пользуется мылом сама, но и делает подарки друзьям, близким и коллегам по работе.
И вот, получив очень хорошие отзывы, Маша решает попробовать продавать мыло. Делает себе сайт с простым списком товаров и контактной информацией. Никаких сложностей, вроде оформления заказа или добавления в корзину, там нет.
Нужно ли Маше тестирование? Конечно же нет. Даже если она прикрутит на сайт форму обратной связи — все равно пользы от тестировщиков никакой. Почему?
Все очень просто:
Маша только пробует продавать. Она не знает, будет ли заниматься этим серьезно или нет — это всего лишь хобби.
Маша не вкладывала деньги в создание сайта. Либо она сделала себе его сама (простых инструментов сейчас хватает), либо получила крохотную страничку за минимальную плату.
У Маши еще нет клиентов, которые могут расстроиться из-за неработающего сайта и уйти к другим продавцам. Заплатив тестировщикам, она рискует зря потратить деньги на то, что пока не является способом получения прибыли.
Или другой пример: два разработчика решили создать мобильное приложение.
Этот курс предназначен для обучения тестировщиков программированию на языке Python (для тех, кого интересуют другие языки, у нас есть аналогичные курсы дляJava и C#).
Да, это курс именно для тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения програмировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Изучаемый материал будет демонстрироваться на едином сквозном примере -- мы будем разрабатывать на языке Python автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организовать код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Но одним примером мы не ограничимся, для закрепления материала мы в течение курса построим "в едином стиле" несколько проектов с тестами для приложений разного типа, научимся тестировать приложения через веб-интерфейс, пользовательский интерфейс Windows, интерфейс доступа к базам данных, сетевые интерфейсы (почта, HTTP, веб-сервисы).
И напоследок научимся делать тесты на "естественном" языке с использованием инструмента Cucumber. Да, не удивляйтесь, чтобы делать тесты на "естественном" языке -- нужно уметь программировать :)
Онлайн-тренинг Алексея Баранцева, 1 месяц занятий, 6 часов теории + много практики + постоянные консультации тренера в скайп-чате
Можно ли представить себе хорошего линуксового системного администратора, который не знает общую теорию операционных систем и сетей, не подозревает о существовании Windows и MacOS, не умеет пользоваться для настройки системы консолью так же хорошо, как графической оболочкой? Можно ли считать хорошим инженером-строителем человека, который не владеет сопроматом, не знает про современные строительные материалы и особенности их применения, даже если на текущем объекте строительства они не используются? Можно ли признать хорошим актёром того, кто день за днём играет одну и ту же роль, не знает о современных тенденциях в театральном искусстве и не пытается попробовать себя в других амплуа?
Хороший специалист должен обладать достаточно широкими знаниями. Да, он глубоко изучает какую-то одну тему, специализируется в каком-то направлении, но при этом он должен представлять себе общую картину своей профессиональной области. Если он не будет это делать -- мир уйдёт вперёд, его узкая тема окажется устаревшей и невостребованной, а он ничего другого не знает и не умеет.
Умение создавать автоматизированные тесты предполагает владение специализированными инструментами, которые так и называются "инструменты для автоматизации тестирования". Но знания хорошего специалиста должны охватывать всю область автоматизации. Какие вообще инструменты бывают? Для чего они предназначены? В какой ситуации следует (или наоборот не следует) использовать тот или иной инструмент? Как выбрать наиболее подходящий для решения задачи инструмент среди множества похожих?
И конечно же надо уметь делать хорошие автотесты. Да, сначала надо научиться понимать, чем "хорошие" автотесты отличаются от "плохих". А потом -- научиться делать "хорошие". Эти правила являются общими, независимыми от конкретного используемого инструмента.
Для тех, кто хочет расширить свой кругозор и получить общие фундаментальные знания в области автоматизации тестирования мы подготовили этот учебный курс.