Доклад Ирины Ивановой на на встрече Tallinn DevClub.
Все люди время от времени склонны к когнитивным искажениям – так называемым, ловушкам мышления. Каждый род деятельности, в свою очередь, склоняет к тем или иным ловушкам в разной степени. При тестировании, например, можно легко найти зависимость или, наоборот, случайность там, где их нет. Или найти сложный критический баг, но пропустить простой.
Онлайн-тренинг с практической работой, 10 занятий, начало 18 сентября
Мы в очередной раз провели опрос про популярность языков программирования среди тестировщиков-автоматизаторов. И вновь, как и в прошлый раз, ожидаемо с большим отрывом победил язык Java. Но теперь Python и C# подобрались к лидеру уже ближе, проиграв не в три раза, а всего лишь в два :)
Но нельзя не признать, что инструменты разработки, создаваемые компанией Microsoft, эволюционируют семимильными шагами. Поэтому мы решили, что пришло время запустить тренинг "Программирование на C# для тестировщиков", аналогичный тренингу по языку Java.
Этот курс предназначен для обучения тестировщиков программированию на языке С# (для тех, кого интересует программирование на Java у нас есть другой курс).
Да, именно тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения программировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Весь изучаемый материал будет демонстрироваться на одном сквозном примере -- мы будем разрабатывать на языке C# автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организоваэ ь код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Этот курс предназначен для обучения тестировщиков программированию на языке Python (для тех, кого интересуют другие языки, у нас есть аналогичные курсы дляJava и C#).
Да, это курс именно для тестировщиков. Обучение программированию не сводится только к изучению языка программирования. Построение правильной архитектуры, использование фреймворков и библиотек, владение инструментами разработки и отладки -- это тоже часть “умения програмировать”. Поэтому в этом курсе детально рассматриваются именно те возможности языка и вспомогательных библиотек, которые наиболее востребованы при разработке автотестов, в том числе при тестировании веб- и windows-приложений через пользовательский интерфейс.
Изучаемый материал будет демонстрироваться на едином сквозном примере -- мы будем разрабатывать на языке Python автоматизированные тесты для веб-приложения, используя Selenium WebDriver. Начав с простого теста, записанного “рекордером”, мы будем постепенно усложнять архитектуру тестового набора, добавлять и усиливать проверки в тестах, дополнять тесты генераторами тестовых данных. Основной акцент будет сделан не на алгоритмы, а на изучение различных полезных библиотек и фреймворков, а также шаблонов проектирования, позволяющих организовать код автоматизированных тестов таким образом, чтобы его было легко модифицировать и расширять.
Но одним примером мы не ограничимся, для закрепления материала мы в течение курса построим "в едином стиле" несколько проектов с тестами для приложений разного типа, научимся тестировать приложения через веб-интерфейс, пользовательский интерфейс Windows, интерфейс доступа к базам данных, сетевые интерфейсы (почта, HTTP, веб-сервисы).
И напоследок научимся делать тесты на "естественном" языке с использованием инструмента Cucumber. Да, не удивляйтесь, чтобы делать тесты на "естественном" языке -- нужно уметь программировать :)
Вы недавно работаете в тестировании, или только хотите приобщиться к этой отрасли? Хотите получить фундамент, необходимый для построения успешной карьеры? Хотите узнать, из чего состоит эта область деятельности, чтобы быстрее стать в ней профессионалом?
Именно для вас – наш курс «Школа Успешных Тестировщиков v2.0». С этим курсом вы:
Получите широкий кругозор в сфере тестирования
Научитесь основным техникам и познакомитесь с основными инструментами тестировщиков
Узнаете, как построен процесс тестирования в ведущих компаниях
Пройдёте профильный тест, чтобы узнать, какие области и специализации в тестировании для вас ближе всего
Узнаете, как получать от работы максимум удовольствия
Создадите план развития на год, чтобы стать успешным тестировщиком
Этот курс будет полезен тем, кто обладает опытом в тестировании до одного года, или кто только хочет найти свою первую работу в сфере тестирования.
Как-то раз, молодой тестировщик пришёл к более опытному и успешному с вопросом:
- Я так стараюсь, я так много тестирую, но всё равно я не успеваю протестировать всё!
Что же мне делать? Неужели, пропускать баги – это нормально?
- Нет, - отрешенно ответил коллега.
- Но что же тогда мне делать? Тестировать больше? Тестировать по ночам?
- Тоже нет, - уже менее спокойно продолжал свои ответы опытный тестировщик.
- Но как иначе? Как же мне тогда успевать тестировать всё?
- Ничем не могу помочь! - молвил гуру, и углубился в чтение сайта.
"Тест-анализ" - прочитал молодой человек на мониторе и подумал: "Вот эгоист, а? Нет бы нормально ответить!!!".
Чтобы делать свою работу лучше, а не больше, требуются качественные изменения, а не количественные. Но что делать, если способы для этих самых качественных изменений пока не известны? Если вы не знаете, какие техники помогут в вашем случае сократить количество тестов? Если вы не знакомы с инструментарием, который помогает экономить время на генерации тестовых наборов, на поддержке документации? В этом случае приходится увеличивать усилия, перерабатывая или расширяя команду, но получая на выходе крохотный прирост в результате.
Мы предлагаем уйти от этой порочной практики. Как сказал Стив Джобс, «работать надо не 12 часов, а головой». Поэтому, на курсе «Школа Тест-Аналитика» мы собрали и заботливо для вас упаковали только те знания, которые позволяют получить качественный прирост в результате. Что из этого получилось – посмотрите в Программе курса.
«Курс, практически, перевернул мое сознание в сфере тестирования. До него я ничего не слышала про тест-анализ, была только куча разной информации, плавающей где-то на поверхности… В общем, ощущение, что у меня был сломан мозг, а мне его вправили!»
Один из отзывов на Школу Тест-Аналитика
Хотите записаться? Не торопитесь! Для начала, оцените, готовы ли вы к участию в курсе:
Курс рассчитан не на новичков, так что записывайтесь, только если у вас есть не менее 1-2 года активного стажа в тестировании
Помимо ознакомления с теорией, вас ждёт объёмная практическая часть – не стоит регистрироваться, если вы не сможете выделить на обучение как минимум 5-6 часов в неделю
О компании: разработчик облачных решений на базе OpenStack, отличная атмосфера в офисе, крутые профессионалы, возможность стать частью масштабного сообщества, очень интересный компенсационный пакет, командировки и общение с зарубежными коллегами
Требования:
Опыт автоматизации тестирования
Опыт работы в качестве QA/QC инженера от 2 лет;
Понимание базовых принципов разработки ПО;
Опыт самостоятельного создания тест-кейсов;
Хорошие знания хотя бы одного языка программирования (Python - в приоритете);
Опыт работы со средами Continuous integration;
Знания Linux/Unix и сетевых технологий;
Английский на уровен Intermediate (чтение, письмо);
Готовность к командировкам;
Будет плюсом:
Знание экосистемы Python;
Представление об облачных технологиях;
Сильные аналитические способности.
Обязанности:
Анализ решений, предоставляемых техническими партнёрами;
Анализ функциональных спецификаций на полноту и тестируемость;
Анализ тест-планов и координация с QA командами, чтобы убедиться, что тест-планы полные, корректные и поддаются автоматизации;
Анализ результатов тестирования и информирование команды QA и команды разработчиков;
Оценка тестового покрытия;
Разработка автотестов и инструментов проверки;
Консалтинг и поддержка технических партнёров.
Условия:
Работа в высокопрофессиональной команде, влюблённой в то, что делает;
достойная заработная плата + бонусы;
Полное соблюдение ТК РФ, “белая” заработная плата;
ДМС, обучение, интересный компенсационный пакет;
свобода для творчества и среда для профессионального развития
офис - м. Пролетарская/Крестьянская застава;
помощь в релокейте.
Вопросы и резюме на tikon@mail.ru. Если в чём-то опыта недостаёт, всё равно высылайте с комментариями, с чем работать не приходилось.
Задача: как сделать так чтобы при запуске автотестов, они автоматически отмечались в ТестЛинке?
Моей первой идеей было использовать дженкинс как промежуточное звено. Он позволяет слать HTTP request и есть плагин для TestLink который умеет отмечать тесты (pass/fail). Но тут есть проблема как считать HTTP response и распарсить его в результаты Jenkins'a? Подобного плагина я не нашел...
Любые комментарии, пожелания, предложения, идеи, опыт решения подобных задач пожалуйста оставляйте ниже...
Привет всем, недавно начал работать с WebDriver + TestNG + Java. Излазив по нету, ничего вразумительного не нашел, задача такая: есть XML-файл с данными, как из него вычитать данные, например
driver.findElement(By.className("login_edit")).sendKeys("данные из XML");
т.е в вычитывать данные из xml-файла и вставлять их в поля FireFox? Спасибо за любую помощь
Уважаемые автоматизаторы, есть ли у кого нибудь опыт разработки автотестов на Groovy?
Заранее спасибо.
IT-календарь 2016: типы багов
2015-08-31 18:07
Скоро 2016 год - яркий, наполненный бурными событиями, легкий и веселый — таким обещает быть год обезьяны. Уже сегодня нужно задумываться о том, что подарить коллегам айтишникам на Новый год… Мы сделали недорогой, но при этом красивый настольный календарь, сочетающий символику нового года и айтишную тематику. Мы надеемся, что он станет отличным подарком и порадует всех кто работает в it-сфере: программистов, тестировщиков, аналитиков, менеджеров. В своей работе мы сталкиваемся с багами каждый день. Какие-то баги мы легко узнаем и ловим их, а на какие-то не обращаем внимания. Наш календарь напомнит о том, что баги бывают разные, а обезьяна, символ нового года, продемонстрирует их так, что даже ребенок это запомнит. Стоимость календаря от 140 рублей (зависит от количества и сроков заказа) Заказывай IT-календарь и встречай 2016 год вместе с нами!
Тестирование на основе модели (model-based testing): Тестирование, основанное на модели исследуемого компонента или системы. Например: модели роста надежности, моделей использования (таких как функциональный разрез) или поведенческих моделей (таких как таблицы альтернатив или таблиц переходов состояний). [ISTQB Стандартный глоссарий терминов, используемых в тестировании программного обеспечения Версия 2.2]
Ага, я понял. Сергей, Вы смешиваете два понятия -- анализ моделей (model checking) и тестирование на основе моделей (model-based testing).
Анализ моделей -- это техника, цель которой состоит в моделировании какого-либо явления и изучения этой модели на полноту, непротиворечивость и т.д. Здесь действительно довольно хорошо работают методы логического программирования.
Тестирование на основе моделей -- это несколько другая техника, которая не занимается изучением того, хороша модель или плоха. Модель принимается за эталон, и задача ставится иначе -- проверить, что данная реализация соответствует модели (в более общем случае -- проверить соответствие двух моделей разного уровня абстракции, ибо реализацию тоже можно трактовать как модель). Для этого, конечно, тоже можно применять методы формального анализа (то есть формально выводить, что если некоторое свойство выполняется в одной модели, то оно выполняется и в другой), но, к сожалению, если на относительно простых моделях эти методы работают, применять их к реальным программам не удается из-за очень высокой сложности. Поэтому применяются другие методы и термин "тестирование на основе моделей" обычно относится именно к этим другим.
Чтобы понять разницу более фактурно, представьте, что Вы разработали замечательную модель, включающую всё, что Вам хочется (в том числе стихийные бедствия, пожары и т.д. :)), потом проверили, что эта модель действительно удовлетворяет всем требованиям, короче -- конфетка. А потом Ваши программисты разработали реальную программную систему, которая ЯКОБЫ реализует эти требования и ЯКОБЫ должна соответствовать модели. А как проверить, соответствует ли на самом деле? Вот этим и занимается model-based testing.
Здравствуйте!
Давно интересует вопрос, использует ли кто-то на практике тестирование на основе моделей (Model-Based Testing). Я имею в виду, для действительно сложных случаев, когда автоматически сформированные тестовые последовательности было бы сложно реализовать вручную.
Фактически, MBT соответствует технике тест-дизайна с применением диаграммы состояний и переходов.
Так вот, на практике встречал 3 случая:
1) Пытаются применить для автоматизации обхода очень простого набора состояний, для которого не составляет сложности написать кейсы вручную.
2) Учитывается состояние многих элементов интерфейса. В результате, количество комбинаций растет как степенная функция, и полный обход схемы выдает десятки тысяч кейсов. Если это кейсы на UI, время выполнения получается абсолютно нереальное. В итоге, всё равно начинаем искать основные маршруты с помощью человеческого разума, и составляем кейсы вручную.
3) Юнит-тесты, которые проходят за мгновения, поэтому несколько тысяч тестов - не проблема.
Интересно, в каких случаях возможно применение MBT, так, чтобы диаграмма была и не слишком простая, и не астрономически сложная.
Или же это всё миф, и концепт не имеет практического применения для "медленных" UI-тестов.
В качестве бонуса про model-based тестирование уже - Томми Такала и Мико Катара из Техноголического Университета Тампере применяя свой model-based-testing софт для BBC News виджета на Андроиде сообщили следующие цифры - 2/3 обнаруженных этим методом проблем были обнаружены в процессе составления модели, а еще 1/3 после прогона этих тестов. Это не повод не заниматься этим в принципе, но повод составить модель даже если у вас нет ПО или ресурсов на полноценную автоматизацию (да, я знаю что в model-based тестировании составление модели это чуть ли не самая затратная часть). (Сергей Высоцкий) - Отсюда.