На соседнем форуме наткнулась на рассуждение о том, что тренинги не нужны. Что книг и статей достаточно. А расхваливаемая практика никому кроме тренера не нужна.
Мне интересно мнение участников этого форума, поэтому решила задать тот же вопрос здесь: Зачем нужны (или не нужны) тренинги именно Вам?
21 ноября в Технополисе «Москва» состоится новое кросс-индустриальное мероприятие Russian App Day про мобильные и облачные технологии в России. Организаторы:компания Microsoft при поддержке Российской Ассоциации Электронных коммуникаций (РАЭК) и сообщества разработчиков приложений Apps4All.
Именно сегодня, когда все больше людей начинает осознавать происходящие изменения, формировать облик будущего, экспериментируя и пробуя новое, мы хотим поговорить трендах и будущем индустрий, создающих и использующих информационные технологии.
Новые медиа, новый банкинг, новый ритейл, новый транспорт, — этот список можно долго продолжать, — каждая индустрия, сталкивающаяся ежедневно с миллионами пользователей, сегодня переживает бурный этап трансформаций, связанных с использованием мобильных приложений и переходом в облако.
Мы будем говорить про бизнес
Вы узнаете, как различные индустрии меняются под давлением современных мобильных технологий и как они смотрят в будущее.
Мы расскажем о трендах
Вы услышите обо всем, что определяет сегодня рынок мобильных приложений: как люди выбирают свои смартфоны, что они делают с устройствами, как в нынешних реалиях строить маркетинговые коммуникации и как их постоянно поддерживать, не сбавляя обороты.
Будет много интерактива
Мероприятие будет не просто интересным, но также динамичным и разнообразным. Вы сможете посетить два бизнес потока со множеством сессий в различных форматах (панельные дискуссии, лекции и интервью), интерактивная выставка и … специальный трек для детей — следите за анонсами, мы его скоро объявим!
Для кого это мероприятие?
Если вы:
Отвечаете за продвижение приложений или развитие бизнеса с помощью приложений.
Занимаетесь разработкой или дизайном и хотите узнать про бизнес вокруг приложений.
Являетесь мобильным или облачным стартапом.
Компания, которая хочет развиваться на волне современных технологий.
В рамках конференции мы построим город будущего, состоящий из интерактивных инсталляций с девайсами и приложениями. Зона будет разработана и сконструирована совместно с Британской Высшей школой Дизайна.
Давно наблюдаю тенденцию на проекте - один баг зафиксили и вместо него вылезло два. Релизы откладываются все дальше и дальше, багов все больше и больше. После каждого билда тестрование как ящик пандоры, никто не знает что там может быть, автотесты стали неактуальны так как нужно все переписать из-за изменений как в логике проекта так и в внешнем виде (локаторы).
Кто-то сталкивался с таким? Как это все преодолеть (пережить), исправить а то тестировать уже руки не поднимаются!
Выступление Алексея Баранцева на онлайн-конференции для тестировщиков Fun ConfeT&QA.
Техника покрытия попарных комбинаций (pairwise testing) – пожалуй, одна из самых «магических». Сотня параметров? Миллионы миллиарды триллионы дециллионы комбинаций? Нет проблем! Берём Магический Инструмент, закладываем в него данные об этих параметрах, нажимаем Магическую Кнопку. Месиво цифр – и на выходе всего десяток комбинаций, которые нужно проверить.
Я встречал две крайности в применении этой техники.
Одна крайность – использование везде, с потрясающе простым обоснованием применимости – «ну, тестов же мало получается, это классно!» Другая крайность – полный отказ от использования этой техники, с не менее замечательным объяснением – «непонятно, как это работает, а тестов получается подозрительно мало, не верю!»
Да, непонятно как это работает внутри. И я не призываю изучать алгоритмы генерации магических комбинаций. Многие прекрасно водят автомобиль, не понимая его внутреннего устройства, принципа работы, использованных инженерных решений. Зато все должны знать, как рулить и как тормозить.
Я расскажу, не прибегая к теории, какие существуют кнопки и рычаги управления техникой покрытия попарных комбинаций:
когда она эффективна, а когда не очень,
какие зависимости между параметрами мешают применять эту технику, а какие не мешают,
как «дробить» и «склеивать» переменные, чтобы заставить технику работать эффективнее,
меняется ли результат от «перестановки мест слагаемых»,
какие баги пропускает эта техника и почему.
Ах да, конечно, обязательно покажу Магические Инструменты, как же без этого :)
За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений Selenium приобрел фантастическую популярность.
Владение этим инструментом стало одним из обязательных умений для тестировщика-автоматизатора, достаточно посмотреть динамику вакансий, чтобы убедиться в этом.
Если вы хотите считаться профессионалом в области автоматизации тестирования, строчка "я знаю Selenium" обязательно должна присутствовать в вашем резюме.
Простые тесты можно создавать при помощи рекордеров Selenium IDE или Selenium Builder. Но при увеличении объёма и сложности тестов этот подход теряет свою эффективность и привлекательность. Профессионалы пишут тесты на языках программирования.
Основным "официальным" языком программирования для Selenium является Java, потому что большая часть самого Selenium реализована на этом языке и все новые возможности сначала реализуются на Java, а потом переносятся в реализации на других языках – .Net (C#), Ruby, Python.
Этот курс предназначен для тех, кто хочет освоить программный интерфейс Selenium 2.0 и научиться разрабатывать автотесты для веб-приложений на языке программирования Java.
Если до этого Вы не занимались автоматизацией и не знакомы с Selenium, то лучше начать с курса Selenium 2.0: стартовый уровень.
Также существует аналогичные тренинги на языке Python и на C#.
После прохождения тренинга учащийся будет уметь разрабатывать автоматизированные тесты для веб-приложений на языке программирования Java с использованием инструмента Selenium 2.0, в частности:
владеть базовым набором команд Selenium 2.0, эмулирующих действия пользователя (ввод текста, клики мышью),
владеть расширенным набором команд Selenium 2.0, эмулирующих действия пользователя (клавиатурные сочетания, перетаскивание элементов мышью и другие),
владеть техниками поиска (идентификации) элементов в окне браузера,
уметь обеспечивать стабильность и скорость выполнения тестов за счёт правильного использования ожиданий,
уметь выполнять проверки фактических данных, полученных из браузера, на соответствие ожидаемым значениям,
владеть основными шаблонами проектирования тестов, в том числе шаблоном PageObject,
уметь выстраивать архитектуру тестов таким образом, чтобы тесты можно было легко модифицировать и добавлять новые (при небольшом количестве тестов),
уметь организовывать инфраструктуру для запуска тестов на сервере непрерывной интеграции.
За прошедшие несколько лет инструмент автоматизации тестов для веб-приложений Selenium приобрел фантастическую популярность.
Владение этим инструментом стало одним из обязательных умений для тестировщика-автоматизатора, достаточно посмотреть динамику вакансий, чтобы убедиться в этом.
Если вы собираетесь развиваться в области автоматизации тестирования, вам обязательно нужно освоить Selenium хотя бы на начальном уровне.
Этот курс – самый простой в нашей линейке тренингов, посвященных инструменту Selenium.
От участников не требуется никакой предварительной подготовки в области автоматизации тестирования, не требуется умение программировать, не требуется предварительное знакомство с Selenium или иным инструментом автоматизации. Стартуем с нулевой отметки.
После прохождения тренинга учащийся будет уметь разрабатывать автоматизированные тесты для веб-приложений с использованием инструмента Selenium, в частности:
уметь использовать инструментальные средства, помогающие создавать тесты (рекордер, плагины к браузерам),
владеть техниками поиска (идентификации) элементов в окне браузера (в том числе уметь создавать несложные XPath и CSS запросы как вручную, так и с использованием специальных инструментов),
владеть базовым набором команд Selenium 2.0, эмулирующих действия пользователя (ввод текста, клики мышью),
владеть базовым набором команд Selenium 2.0, позволяющих получать данные из браузера (текст, атрибуты элементов),
уметь выполнять проверки фактических данных, полученных из браузера, на соответствие ожидаемым значениям.
Предусловия
понимание того, как работает веб-приложение в целом: клиент-серверная архитектура, понимание того, как работает браузер (отрисовка страниц, применение стилей CSS, интерпретация JavaSript-кода),
умение читать HTML-код, понимание основных принципов вёрстки HTML-страниц, знание основных тегов (a, div, span, table/tr/td, ul/li),
наличие опыта ручного тестирования веб-приложений.
Пишу автотест и хотелось бы объединить методы класса с одинаковыми параметрами в один метод (или несколько методов), а то код получается очень громоздким и объектно-ориентированный подход теряет смысл.
Есть класс локаторов и класс действий с локаторами, можно ли избавиться в классе MainPage(BasePage)
от одинаковых конструкций, меняя лишь локатор и группируя одинаковые методы по работе с локаторами. Методы из класаа MainPage вызываются в другом основном классе.
Подскажите как их объединить?
class MainPageLocators(object): login_line = (By.ID, 'loginName') password_line = (By.ID, 'loginPass') enter_button = (By.ID, 'logButton') worker_button = (By.XPATH, "//span[contains(@class, 'navigation-LeftNavigation__row') and @title='Сотрудники']") x_link = (By.ID, 'ourOrg') our_company_button = (By.XPATH, "//div[@title='Наша компания']") search_name = (By.ID, 'fld-ПоискСотрудникаПоЮрЛицам') record = (By.ID, 'userName409') close = (By.XPATH, "//div[@type='Control/Button' and @sbisname='windowTitleClose']") initial_button = (By.XPATH, "//div[contains(@class, 'username asLink username__link')]") class BasePage(object): def __init__(self, driver): self.driver = driver class MainPage(BasePage): def login(self): element = self.driver.find_element(*MainPageLocators.login_line).send_keys('check_rigth_user') def password(self): element = self.driver.find_element(*MainPageLocators.password_line) element.send_keys('qwerty123') def enter_button_click(self): element = self.driver.find_element(*MainPageLocators.enter_button) element.click() def worker_button_click(self): element = self.driver.find_element(*MainPageLocators.worker_button) element.click() def x_link_click (self): element = self.driver.find_element(*MainPageLocators.x_link) element.click() def our_company_button_click (self): element = self.driver.find_element(*MainPageLocators.our_company_button) element.click() def name_for_search(self): element = self.driver.find_element(*MainPageLocators.search_name) element.send_keys('Белова Олеся Александровна') def record_click (self): element = self.driver.find_element(*MainPageLocators.record) element.click() def close_click (self): element = self.driver.find_element(*MainPageLocators.close) element.click() def initial_click (self): element = self.driver.find_element(*MainPageLocators.initial_button) element.click()