Selenium. Зрозуміти та полюбити:)

Selenium. Понять и полюбить:) Як сказав колись наш гуру Олексій Ніколаєв: «Справжній тестувальник не довіряє нікому, і тому любить особисто перевіряти все, до чого може дістати. Наполегливість, цікавість і уважність – ось його «коник». І це правда:) Рік тому в бунтарських душах наших хлопців-автоматизаторів зародилося бажання попрацювати з платформою для тестування веб-додатків Selenium. Вони вивчали платформу самі, методом спроб і помилок. Треба сказати, у наших це вийшло досить успішно і вже дало свої плоди. Керівництво компанії оцінило старання хлопців та результати, які принесли ці старання, давши хлопцям можливість продовжувати розвиватися у вибраному напрямку та заохочивши команду поїздкою на конференцію «SeleniumCamp». Діти вирушили на конференцію за свіжими ідеями для покращення наших методів роботи. Вони повернулися натхненними та вже встигли поділитися своїми знаннями з жителями Королівства.

Ми вирішили дізнатися у хлопців все від початку – як вони познайомилися з цією платформою, як працювали, і, звісно, як там тренінг?:)

І ось що розповів нам Саша – тім лід одного з напрямків відділу Automation (tx-fx).

Як у нашому житті з’явився Selenium

«Спочатку було слово», як кажуть. Це слово народилося разом із появою в Ніксах нашого нинішнього тимліда Діми, котрий з другого дня роботи вимовляв як заклинання слово «Селеніум». Ми не зовсім розуміли як це може нам допомогти, але вірили, що це дуже крута штука. Діма навіть провів кілька всередині королівських тренінгів з SeleniumRC, стало зрозуміліше, але не вистачало практики, щоб усвідомити всю «глибину селеніумських глибин». Час минав і ми поступово виросли в окрему команду автоматизаторів. Ми, як і раніше, використовували технології, які нам диктували замовники, і продовжували героїчно боротися з усіма проблемами, пов’язаними з цими технологіями. Було як в анектдоті: “Мишки плакали і кололися, але продовжували жерти кактус”. У якийсь момент нам вдалося отримати (вірніше Дімі вдалося пробити/протягнути/проломити :)) у замовника дозвіл на тестування одного з наших додатків за допомогою Селеніума. (До речі, якщо двома словами: Селеніум – це технологія для тестування веб-додатків – сторінок браузера, елементів на сторінці). Наше щастя було безмежно. Ми нарешті позбулися старих проблем і прискорили розробку тестів, скоротили час на їх прогін.

Камінці спотикання

Але разом з цим ми отримали нові проблеми =), десь через брак досвіду практичного використання Selenium, десь через специфіки самого додатка. Але найважливішим було те, що будь-яка нестабільність тестів кидала тінь на Selenium як на технологію, і на нас як на спеціалістів. Настав період «доведення» що Seleinum все-таки краще. Нам вдалося багато досягти, ми досягли стабільності тестів, простоти написання тест кейсів. І в той же час розуміли, що нам дуже потрібні свіжі ідеї, нам потрібно дізнатися, чого досягли інші команди в цій галузі. І в цей момент – бінго! – Діма запропонував нам з’їздити на конференцію «Selenium Camp» до Києва.

День Х

Selenium. Понять и полюбить:)

Ми поїхали до Києва компанією хлопців, які у своїй роботі постійно використовують платформу Селеніум. Наразі ми вже використовували її на трьох проектах. У перший день були всі разом (і, забігаючи вперед, скажу – найбільший вихлоп був якраз від першого дня) і почули багато речей про можливості цієї платформи, вникали в усі подробиці. Незважаючи на те, що нас головним чином цікавив Selenium WebDriver, ми дізналися дуже багато і про інші пов’язані з ним інструменти для запуску тестів, створення звітності тощо. Ми дізналися, що можливості та сфера застосування селеніуму значно ширші, ніж ми собі уявляли. Особисто для мене було несподіваним так зване «побутове» використання селеніуму. Наприклад, багатьом із нас, айтішникам, доводилося вчити працювати на комп’ютері людей віку наших батьків чи навіть бабусь та дідусів. Це дуже складне завдання. Навіть я сказав би нервова і за неї треба видавати молоко:). Так ось, щоб полегшити запам’ятовування дій, які необхідно виконати, наприклад, щоб потрапити на якийсь конкретний сайт, якусь конкретну сторінку, виконати там якісь конкретні дії, можна елементарно записати ці дії у вигляді SeleniumIDE тесту. В результаті, все, що потрібно зробити – це запустити тест і вуаля – ти в потрібній точці. Та й ще, навіть «зубри», часто створюють собі різні «помогалки». Наприклад, макроси в екселі, різні скрипти. Селеніум теж, виявляється, можна використовувати. І так, в перший день ми з гордістю для себе зрозуміли – те, до чого ми самостійно дійшли в роботі з WebDriver-ом в частині побудови фреймворків – це, виявляється, найпередовіша і найпрогресивніша практика в тестуванні на базі Selenium платформи.

Selenium. Понять и полюбить:)

Другий день – це була безпосередньо конференція. Доповідачі виступали паралельно у трьох аудиторіях. Щоб увібрати максимум, ми розподілилися, хто на яку доповідь йде. Цей день порадував нас трохи менше, бо розповідали, за великим рахунком, те саме, що ми вже почули першого дня, тільки розглядалися конкретніші, окреміші випадки. І, до речі, все, чого ми досягли самостійно (несподівано опинившись у першому вагоні), це завдяки Дімону “Selenium God” :) Але ми не зупинялися і продовжували підкріплювати теорією, що вже є практикою.

Сухий залишок

До конференції ми приймали додаток і будь-які пов’язані з їх тестуванням складності як належне – нам давали «корявий» додаток, ми говорили спасибі та починали тестувати. Нестабільні випробування? – Винен Selenium. Важко прив’язатися до об’єктів чи виконати з ними дії? – Нестача Selenium-а. Так вийшло, що перед конференцією ми зіткнулися з критичною проблемою, яка блокувала виконання тестів. Вручну ця проблема не відтворюється. Замовники вже почали вважати, що це баг Селеніума і думали про те, щоб повернутися на стару платформу. Тепер, озброївшись новими знаннями, ми маємо більше підстав довести, що проблема не в тестовому фреймворку, а в самому додатку. (Примітка: поки верстався номер, з’ясувалося, що це таки баг програми, оскільки цей баг був відтворений вручну. Замовники стали більше довіряти нам і Selenium, а ми стали спати спокійніше). Тепер ми знаємо, як повинен працювати правильно написаний додаток, тому будемо сміливішими, проситимемо виправляти «корявість» самого додатка, а не вигадувати обхідні шляхи.

Ми дізналися, які бувають варіації в організації фреймворку, і тепер можемо оцінити плюси і мінуси нашого поточного фреймворку.

Ну і, мабуть, головне – ми знайшли відповіді на складні технічні питання, які заважали працювати.

А ще нам сподобалося у Києві. Ми чудово провели час і поза тренінгом теж, гуляючи вулицями столиці.

Ділимося досвідом

Повернувшись із тренінгу, за традицією, ми стали нести знання в маси та ділитися ними з усіма, хто цікавиться тестуванням веб-додатків взагалі та Селеніумом зокрема. Кожен з нас вибрав тему, підготував презентацію, доскональну доповідь і готовий відповісти на каверзні питання. Дівчатка з відділу ОХО підсолодили це все смачним печивом:) На мій погляд, нам вдалося розкрити всі основні питання по темі і, сподіваюся, тепер багатьом стало цікавіше жити і працювати:)

Selenium. Понять и полюбить:) Selenium. Понять и полюбить:)

До речі, ми запитали самих хлопців, які відвідували тренінги, про їх враження:

Selenium. Понять и полюбить:) Женя, тестувальник-початківець:

У перший день тренінгу йшлося про продукти Selenium IDE та WebDriver. Інформацію про них виклали дуже коротко та інформативно. Вказали всі плюси та мінуси, а також особливості налаштування та встановлення Selenium IDE.Після цього тренінгу я прийшов і налаштував у себе цю софтинку, легко навіть записав свій перший автоматизований тест, який автоматично заповнював потрібні мені поля на сторінці:) Була зрозуміла практично вся інформація викладена в перший день тренінгу, за винятком деяких термінів. Ну і не можу не згадати про печиво – вони піднімали бойовий дух і мотивували до навчання.

На другий день була охоплена більш серйозніша тема, як створення Framework’a. Тренінг дав мені зрозуміти навіщо взагалі потрібний Framework і наскільки ефективно його використання. Дякую доповідачам Саші і Наді – розжували теорію складних технічних термінів і виклали доступною всім мовою. Єдине, що я хотів би додати до такого роду тренінгів – це практичну частину. Хотілося б не тільки розуміти теорію, а й вчитися застосовувати її на практиці.

Загалом у роботі я з цією технологією тестування не стикаюся, але я дуже зацікавився, коли про неї почув. Я в ній розібрався і вивчив її для себе, свого розвитку, щоб внести щось цікаве і свіженьке в повсякденну роботу. Тож я радий, що встиг зареєструватися на тренінг:):)

Selenium. Понять и полюбить:) Валера, автоматизатор, досвід роботи – 1 рік:

Найкласніше в навчанні – це коли цікаво вчитися. На наших Селеніум тренінгах цікаво:) Наші друзі з’їздили до Києва на конференцію, повернулися жах як розумними і діляться мудрістю з усіма бажаючими. І розповідь йде жваво. Виникає багато питань, видно, що слухачі вникають та переймаються. Нехай не завжди на запитання знаходяться відповіді, але потім оповідач наздожене тебе на перерві і все роз’яснить. Я ось пробував Селеніум разок і давно, але мені стало зрозуміло після тренінгів. Прямо руки засвербіли спробувати:) Дуже корисно отримати такий напрямок для роздумів. Тепер, якщо раптом зіткнуся з проектом на Селеніумі, швидше зайду в робочий процес. Що ще чудово – дізнався багато нових технологій, знаю про що Google запитувати вечорами. А ще там були печеньки.

Selenium. Понять и полюбить:) Антон, тестувальник, досвід роботи – 3.5 роки:
З цим продуктом по роботі знайомився дуже поверхово, все якось не вистачало часу розібратися докладніше. А зараз, коли виникла потреба у використанні продукту, ці лекції стали дуже доречними. У всякому разі, мені після прослуханого буде дуже легко почати розбиратися в тонкощах Селеніуму, коли вже маєш гарне уявлення про продукт в цілому. Імхо потрібно побільше таких заходів. Хлопці ж, доповідачі, викладали матеріал дуже добре і доступно, було видно, що розповідають зі знанням справи.

Selenium. Понять и полюбить:) Марина, тестувальник, досвід роботи – 2 роки:
Коли прийшов лист на пошту про курс лекцій з автоматизації, що намічається, я відразу представила купу прикладів на живому коді, які незнайомій з Selenium людині буде досить важко зрозуміти, а з поганим зором ще й розглянути.
Виділити будь-кого з доповідачів дуже важко, тому що всі виступили дуже добре, всі яскраві і кожен по-своєму може привернути увагу слухачів. Саме тому, що вони такі різні, я думаю, успіх у ньому забезпечений (додамо сюди ще працездатність і бажання використати всі best practices, які вони дізналися на київській конференції).
Хочу відзначити ще, що завдяки лекціям я дізналася, що є такі цікаві Open Source tools, як Cucumber та Thuсydides. Також остання лекція про можливі проблеми тестування за допомогою автоматизованого фреймверку та способи їх вирішення на прикладі компанії Parallels була дуже пізнавальна для тих, хто думає про можливі шляхи автоматизації у своєму проекті.