Про роботу дівчата-тестувальника ігрового проекту

Привіт, Хабр!

Мене звати Олександра, я працюю тестувальником ігрового проекту VirCities, про який розповів в загальних рисах мій колега раніше у цій публікації. У свою ж чергу, я хотіла б поділитися своєю історією про те, як же живеться дівчині в «чоловічому царстві» GameDev і через що довелося пройти в ході розробки нашого проекту.


Вкрай необхідний та корисний у роботі девайс.


Все почалося з переїзду в сусіднє місто в жовтні 2012 року. За освітою я професійний перекладач з англійської та новогрецької на українську, але так склалося, що в основному я перекладала технічну літературу, в тому числі і з програмування. Як-то раз, прагнучи будь тяжкими думами про те, що редактор не заплатив мені за останній переклад книги і пропав, на очі мені потрапило оголошення про набір на курси тестувальників в однієї великої IT-компанії. А чому б і ні? Англійська, самі розумієте, на рівні, а постійна робота з технічними матеріалами вже не викликали ніякого трепету перед незрозумілими багатьом абревіатурами типу UI. Проект, на базі якого нас навчали був «суворий» і ставився до медицини, і досить швидко набив усім нам оскому, але кидати тестування мені не хотілося. Після закінчення курсів я приступила до пошуку роботи і натрапила на оголошення про пошук тестувальника ігрового проекту. Так я й потрапила в команду VirCities.

Початок роботи

Відгукнувшись на вакансію, я стала чекати класичного співбесіди. Як виявилося, даремно. Його як такого і не було. Сашко, наш керівник, підійшов до питання нетривіально. Поспілкувавшись буквально хвилин п'ять він дав мені посилання на тестовий сервер ще тоді Веб-версії проекту і сказав: «тестує», а сам ушуршал в туман. Сказати, що я впоралася можна з великою натяжкою. Приступивши до тестування я запоролась на першому ж ігровому квесті, виконавши його, але так і не зумівши зрозуміти, як же його, цей довбаний квест, здати. Поковырявшись ще деякий час, я плюнула на нього і почала бадьоро відловлювати і описувати в невеликій табличці інші баги, які могла виявити. Результат Сашу задовольнив і так я отримала роботу тестувальником.

Я відразу ж вирішила дізнатися, що не так було з тим самим нещасливим квестом, який не змогла здати. Все виявилося до болю тривіально — це не баг, це фіча ©. Все впиралося в систему юзабіліті, яку потім довелося переробляти, а потім ще раз, при переході на мобільну платформу. Якщо в цілому, то собака була зарита в тому, що після виконання квесту потрібно було йти на окрему вкладку квестів, знаходити потрібний, відкрити і тільки потім ти отримував доступ до заповітної кнопки ЗДАТИ. Пекло, Гоморра і Содом. І все це доводилося тестувати, ну ви самі все розумієте. Зараз ми працюємо над приведенням у єдиний стиль і мобільного, і веб-функціоналу, що само собою, так само доставляє чимало радісних моментів.

Всі ми працюємо віддалено і розкидані іноді на тисячі кілометрів один від одного. Все спілкування і обговорення робочих моментів велося через скайп-конференції.

Трохи про команду, про стан справ

Правда, я була не єдиною дівчиною в команді. Була ще дівчинка-копірайтер, але вона завжди, як мені здавалося, тихо сиділа в кутку і жувала клей — її не було ні видно, ні чутно 99% часу. Мені ж, виходячи зі специфіки роботи постійно доводилося штовхати розробників і доводити їм, що ось тут, так-так, саме тут, все ж таки баг і вистачить списувати на фічі, працюйте вже. Звичайна, буденна ситуація для будь-якого QA-інженера, як я думаю. Процес штурхання розробників часто ускладнювався тим, що кількість документації за проектом вражало уяву. Строго кажучи, її просто не було.

Доводилося використовувати внутрішню wiki, яка готувалася для гравців, де так-сяк описувалася ігрова механіка і передбачувана робота тих, чи інших модулів проекту. Це рятувало тільки частково, тому що документація по UI і робота бека описані просто ніде не було, єдине джерело інформації — голови розробників. Майже півроку мені доводилося займатися левову частку часу в основному эксплоративным і регресійним тестуванням, тобто тыкаться носом як сліпе кошеня у всі кути поспіль.

Звичайно, по ходу роботи і зростання команди всі ці «дитячі» хвороби ми змогли подолати, тому що на певному етапі стало зрозуміло навіть самим тугим — без документації та опису того, що як і коли робилося нормальний продукт ми випустити не зможемо. Дуже пощастило і в тому, що всі робочі тертя з розробниками, в підсумку, ніяк не вплинули на наші відносини як команди, чому я дуже рада.

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

Є відмінна жарт про те, що було б, якби лікарі працювали як програмісти:

— Доктор, у мене болить нога, допоможіть!
— Дуже дивно, у мене така ж нога і нічого не болить.

З нашим провідним розробником інколи доводилося дуже складно в цьому плані. Часто у нас траплялися суперечки, як у тому анекдоті, коли у мене баг відтворювався, а у нього «немає». Пару разів навіть доводилося навіть писати відео його відтворення :). Ну після такого звичайно так, баг фиксился, проблема вирішувалася.

Ще в нашому проекті реалізовано управління хитрою системою локацій через адмінку і частина дрібних багів можна правити прямо в ній, але в перші місяці роботи я навіть не підозрювала про її існування, а розробники героїчно мовчали. От і виходили у нас стада тікетів на всяку нісенітницю, яку, по розуму, я могла поправити за допомогою адмінки за пару хвилин самостійно. Але все хороше коли-небудь закінчується і розробники таки здригнулися: про існування адмінки згадали і ввели мене в курс справи. Цей інструмент став для мене мало не основним, а з плином часу його функціонал ще й серйозно розрісся.

Привіт, автоматизація!

А ось потім почалася сама біль — автоматизація функціональних тестів тоді ще веб-проекту з використанням селениума. Капітан нашого корабля прийняв рішення найняти мені на допомогу ще одного хлопця, з яким ми непогано порозумілися. В подальшому саме на нього лягло основне навантаження щодо складання тест-планів і тест-кейсів, я їх ревьюила, а потім вже разом ми покривали їх автоматичними тестами.

Оскільки досвіду у програмуванні або знання якоїсь мови програмування у мене не було (книга про Пітон для дітей не вважається ж, ну), був обраний читерский варіант: беремо інструмент Selenium IDE, записуємо сценарій, експортуємо для зв'язки Ruby+Rspec, подшаманиваем боєм в бубон і отримуємо профіт.

Але і тут біль почалася майже відразу — зв'язка Ruby+Rspec некоректно працювала під Win. Вже не знаю, чому, але не працювала. Врятувало мене те, що раніше я познайомилася з профільним для мене, як порядної дівчини, лінем, а саме Ubuntu, яка завжди висіла другою системою в очікуванні зоряної години. Втерши пил з Ubuntu і оновившись до останньої актуальної версії на неї були накачані необхідні для роботи пакети. І ось тут вже Rspec+Ruby пішов-поїхав як треба.

Радість, сльози щастя, танці на вулицях? Вже! Selenium IDE видає дивний вихлоп в деяких випадках, тому тести доводилося дуже істотно допілівать. До цього моменту я і раніше іноді користувалася порталом stackoverflow, але тепер він став моїм найкращим другом, майже як мій кіт. Як підсумок IDE був, по суті, покинутий — простіше написати тест руками.

Коли перший великий тест видав кілька запусків без падінь, я вже відчувала себе загартованим в боях ветераном. Тільки не вистачало кубинської сигари, стаканчика чого-небудь міцного і закинути ноги на стіл. Але на цьому основна біль так і не закінчилася.

А ще селектори. Довбані селектори, з допомогою яких вебдрайвер чіпляється за елементи UI. У багатьох випадках він не чіплявся. Найпрозорішим рішенням для мене було використовувати xpath.
Я не думаю, що я розповіла про якісь принципово нові проблеми в тестуванні, так і не претендувала на це. Описане вище — біль того, з чим мені довелося зіткнутися працюючи над VirCities. Практично для кожного нового функціонального тесту ми знаходили свої рішення, але все одно у нас є невеликий відсоток помилкових спрацьовувань.

А ось потім прийшло осяяння, про який розповідалося у попередній статті ми почали перехід з веб-платформи на мобільний. Цей період мого життя я називаю Велика Біль 2014 року.

Тестування на мобільних платформах

Командування поставило мені, як досвідченому бійцеві наступну задачу: знайти рішення для автоматизації функціональних тестів на мобайле. А мобайл у нас і під iOS, і під Android і під WinPhone.

Що робити в подібних ситуаціях? Правильно, гуглити! І добре погугливши, ми знайшли для себе такий варіант як Appium. Підходить для Android і iOS. Установка там була описана проста, запускається тест також через Rspec, використовує той же гем селениум-вебдрайвер, усе нам знайоме і «легко реалізовується».

Ага, вже. У мене все посипалося на першому ж кроці — встановлення Android SDK ( Appium з iOS працює тільки під MacOS, тому почала з адроида — не було в мене ще маку :) )
Android SDK не хотів ставати, не хотів бачити PATH, та багато ще чого не хотів. Загалом, поставила.
Далі більше — сам Appium. Я його ставила через npm-g, але це потрібно було робити не з-під рута — такі були рекомендації по його установці. А без рута він встановлюватися не хотів. А з рутом — не хотів працювати. Тадам! Магія! Вихід був знайдений (відкрити папку для запису, привіт, кеп), всі шляхи і залежно налаштовані, Appium запущений. Це все зайняло 7,5 годин мого робочого часу. А написання першого тесту і його запуск зайняли 5 хвилин, все як я люблю :).

Так-c, як ви зрозуміли, аппиум був підкорений, тести пишуться, оновлюються і підтримуються. Окей, впоралися, живемо. Є невелика біль у визначенням локаторів, але рідні інструменти SDK з цим, начебто, справляються. Ну і само собою, іноді доводиться використовувати методи тику, куди ж без них.

Подивившись, що в мене все добре і я знову перебуваю в стані душевної рівноваги, керівництво вважало, що функціональних тестів буде мало. І знову мені була поставлена задача: покрити код проекту тестами з використанням зв'язки Jasmine+Karma. Як я казала раніше, всі мої знання мов програмування обмежувалися дитячою книжкою по вивченню пітона і ніякого досвіду і знань в js у мене не було.

Звичайно, один з розробників допомагав мені порадами, але особливо часто його хитати було не можна, йому ж свої завдання робити треба. Плюс він використовує coffeescript, backbone і ще купу страшних полузнакомых для мене слів і іноді від його допомогою легше не ставало.

Що робити?

Був пройдений курс js на кодакадемии, потім вивчений док по coffeescript, склонирован проект з нашого репо. Встановлені всі бібліотеки і залежності. Після всього цього я написала самий елементарний тест типу:

describe 'wow, such test', ->
it 'should run the test', ->
expect(@foo).toBeDefined.


І-і-і Karma видає помилку і навіть не запускає тест!

Загалом, як можна вже здогадатися, конфіги karma, jasmine і requirejs не були налаштовані. Гугл в допомогу! Через кілька спроб і варіацій конфігураційних файлів і структури тестового проекту на локальній машині все зрослося. І мій such test був успішно завершений (я замінила
@foo
потрібним значенням з робочого проекту). Це було чудово.

Зараз вже написано енну кількість тестів, все успішно виконуються, я продовжую над ними працювати і подумую також використовувати і SinonJS для цієї зв'язки, але ще не прийшла до остаточного вирішення. Цілком можливо, що найближчим часом керівництво придумає для мене ще якась пригода.

Ну і ще я хотіла б поділитися своїм досвідом повернення в стан душевної рівноваги. Все просто — це кіт і страйкбол.

Познайомтеся, мої красені:

image

І так як ми бачимо, що бажаючі доторкнутися нашу гру є в достатніх кількостях, закритою альфі для читачів Habrahabr, Geektimes і Мегамозок бути однозначно!

Після того як наші розробники зможуть розповісти про те, як проходив процес створення гри (так, матеріали по розробці вже пишуться) і ми будемо готові до проведення альфа-тесту, на Хабре буде зроблений окремий анонс цього заходу. Для тих, хто не постійно стежить за новинами і публікаціями в блогах компаній можемо запропонувати підписатися на нашу розсилку по електронній пошті. Надішлемо інформацію про альфа-тесті на ящик.

Всім дякую за увагу :)


Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.