Початківцю тестувальника - автоматизація тестування
Цим постом я хотів би почати серію міні-мінлива для початківця тестувальника. Попутно зазначу з чого я починав і з якими проблемами стикався.
Автоматизація тестування
Автоматизоване тестування це завжди цікаво. Якщо вийде, то це ще й ефективно і зручно. Навчитися досить легко і думаю кожному це під силу.
Безумовно тут варто написати про Selenium. Сьогодні це найвідоміший і використовуваний інструмент для тестування. Майже кожен фреймворк для автоматизації тестування в веб використовує бібліотеку Selenium. До того ж знання Selenium, це часте вимога для тестувальників в сучасних компаніях. Якраз через такого вимоги я почав вивчати цю технологію. Буду перераховувати в тому ж порядку, в якому вивчав.
Selenium IDE
Щоб пройти співбесіду на чергове місце роботи мені потрібно було виконати просте завдання.
Написати сценарій на Selenium IDE який виконає наступні кроки:
- відкрити Яндекс
- Зробити пошук за словом - «тестування»
- Відкрити перше посилання
- Зробити перевірку наявності слова «тестування» на сторінці
У той час у мене вже був досвід в тестуванні, близько року. Здебільшого я займався тестуванням внутрішніх бекенд систем, зав'язаних на потужну логіку, а тестування web додатків було для мене чимось новим. Про Selenium IDE я почув вперше, і відразу ж зацікавився цим.
Пошук: selenium ide, як писати тести на selenium ide
Прочитавши 2-3 сторінки з пошуку у вас буде приблизне уявлення про що це і як з цим працювати. Потім просто постарайтеся виконати завдання котре трапилося мені.
З вивчення Selenium IDE у мене з'явилися питання по селекторам. Щоб їх прояснити я став шукати інформацію про те як виходять XPATH або CSS селектори.
Пошук: css xpath селектори
Якщо ви взагалі не знаєте що таке html, то приступайте до вивчення. Це основи основ для тестувальника веб-додатків.
Selenium Webdriver
З Selenium IDE у мене якось не склалося. Я швидко зрозумів як це працює, але мені не сподобався процес написання тестів і я закинув цю справу. Якщо зараз мені потрібно буде написати тест з використанням Selenium IDE я витрачу на це більше часу ніж на Webdriver. Думаю якщо ви почнете вивчення з Webdriver, то нічого не втратите.
Пошук: selenium webdriver
Писатимуть тести на Selenium Webdriver можна кількома мовами, тим самим отримуючи той чи інший профіт саме від ЯП. Я починав з Java. І зараз мені здається що з Python новачкові буде по простіше.
Пошук: Автотест selenium webdriver java
Приблизно на тому рівні коли я міг написати практично будь-який сценарій для тестування, я став натикатися на часті проблеми Selenium Webdriver. Зокрема це очікування, drag-n-drop, cookie, таби і вікна, АЛЕРТ, iframe та інше. Думаю з цими граблями треба зіткнутися особисто і перейти через них, щоб мати досвід.
Далі я раджу вивчити підключення різних браузерів. Спробуйте запустити свої сценарії в Chrome або IE, спробуйте підключити PhantomJS
Пошук: webdriver chromedriver, webdriver internet explorer, phantomjs
Після цього кроку можна також спробувати Selenium Grid. Це можливість запуску авто-тестів на віддалених машинах. Ви зможете проганяти тести на різних системних вимогах і з різними браузерами, що значно підвищує якість тестування. Але в той же час значно збільшується час на підтримку таких тестів.
PageObject Pattern
Прості покрокові тести на Selenium Webdriver це добре. Виділяєш сценарій, пишеш кроки і перевіряєш результат. Але завжди є куди рости. Ваші тести повинні бути оптимізовані, адже можна скоротити купу рядків коду і зробити їх ефективними в плані виконання і зручними для майбутньої підтримки.
Пошук: selenium page object pattern
На цьому етапі буде більше програмування. Я б порекомендував подивитися або почитати щось коротке на тему ООП за потрібною ЯП.
тестові фреймворки
Коли ти знаєш як писати тести, починаєш замислюватися над тим як їх запускати, отримувати звіти, скріншоти, статистику та ще купу різних булочок. Зазвичай якщо ти шукаєш якийсь функціонал, то його вже хтось реалізовував до тебе. Тому варто звернути увагу на фреймворки для тестування. завдяки яким можна отримати ці самі плюшки.
Пошук: testing frameworks, тестові фреймворки
Після вибору фреймворка ви отримаєте більше практики в ЯП і оформленні своїх тестів. Можливо ви навіть переробите його під власний лад. До того ж знання фреймворків послужить вам на руку на співбесідах для тестувальника. Багато разів бачив коли роботодавець вважає великим плюсом досвід роботи з певним фреймворком.
самодіяльність
На цьому етапі після невеликої практики можна спробувати написати щось своє. Якщо у вас не великий проект і ви не хочете використовувати щось чуже, то спробуйте написати свій велосипед. Хто б що не говорив, але це дуже хороший досвід. Тут багато простору для фантазії. Наприклад я пробував написати інструмент для звірки скріншотів використовуючи Python і Webdriver. Мені потрібно було автоматично порівнювати верстку старої і оновленої версії продукту і я вирішив спробувати. Зараз я розумію що написав щось жахливе, але задоволення від працюючого коду затьмарює цей недолік.
P.S. сподіваюся мій колега Олексій скоро напише про автоматизоване тестування десктоп додатків.