Skip to Content

Теперь я тестировщик!

Опубликовано в

 Disclaimer: Во-первых, этот пост начинал писаться еще в средине января, а был закончен только в марте, поэтому он может выглядеть слегка странным, как в плане тематики и хронологии, так и в плане связности повествования. Во-вторых, он может показаться кому-то бессмысленным «самопиаром», и отчасти так оно и есть. Ну и, в-третьих, если вы все же решили его прочесть, то сделайте вначале кофе, потому как пост слегка длинноват.

Ох. Как же давно я сюда ничего не писал! Хотя нет, на самом деле писал. Да не дописал. Так и валяется все обрывками да огрызками. И сам не могу понять, то ли это от нехватки времени, то ли от моей лени, то ли еще от чего. Надо бы в этом разобраться. Как раз подходящее время для таких «разбирательств» - январь, начало года… Когда как не сейчас заниматься самокопанием? 

И вот, сижу я, значит, «копаюсь» и добираюсь, наконец, до своей профессиональной деятельности. И в этот момент понимаю, что, несмотря на то, что весь 2012 год прошел в каком-то совершенно сумасшедшем темпе, и я не успел сделать многое из того, что было запланировано, мне-таки есть что рассказать. Нет, я не выступал на конференциях, не начал вести тренинги, не устроился работать в Google, не открыл «стартап», и не продал его за миллиард, и даже не придумал идею для него. Нет, я ничего этого не сделал. Я просто занимался тем делом, которое мне нравится, и которое, по счастливому стечению обстоятельств, совпадает с теми задачами, которые мне приходится выполнять. Именно об этом и пойдет речь ниже. Такой себе «один год из жизни тестировщика».

И снова январь

В начале 2012 года внезапно случился январь. Опытные товарищи говорят, что он случается каждый год, но я, в силу своих профессиональных качеств, не верю. Хотя приходится соглашаться, плотно не занимался, не проверял. 
Закончились праздники, и снова начались трудовые будни. Вот эта фигня точно происходит каждый год – проверял.

И сидел я, значит, после праздников, никого не трогал, занимался потихоньку своим, уже привычным, проектом. Ворочал тонны тест кейсов, тыкал мышкой в продукт, ваял тесты в Test Complete. Короче, «выполнял задачи». А задачи, сами знаете, разные. Бывают интересные, а бывают хоть вешайся (кстати, вторых почему-то всегда больше, тем, кто убеждает вас в обратном, плю не верьте). В общем, такая себе «рутина с проблесками». 

Время шло к февралю. Замороченные задачи, которые по традиции доставались мне, закончились, и я даже успел заскучать. И вот на излете января падает мне на почту уведомление из ишью трекера – так, мол, и так, мы решили перепилить data layer, получите, распишитесь.

И тут началось…

Почему-то мне кажется, что именно в этом месте стоит рассказать о том, что это вообще за продукт. Конечно, было бы здорово дать ссылку да не мучиться с объяснениями, но я, за давностью лет, не помню уже, что было написано в этих ваших NDA, поэтому ну его. Масштабы трагедии я и так смогу описать. А они таковы:

  • в начале 2012 года продукт достиг весьма почтенного возраста – что-то между 13ю и 14ю годами
  • образ «золотого диска» содержит примерно 300Мб всяческих бинарников: монструозное десктопное приложение, огромное веб приложение, приложение для интеграции в SharePoint, а также добрых два десятка всяческих утилит для синхронизаций, интеграций, кастомизаций и прочих странных вещей
  • объемы пользовательских данных исчисляются гигабайтами
  • тысячи строк кода и, конечно же, впечатляющие 12000+ тест кейсов
  • ясен хрен Enterprise и Mission Critical

За почти 3 года работы над этим продуктом, я ко всему этому как-то привык и относился спокойно. Через какое-то время я даже перестал нервничать и волноваться, когда осознавал, что не могу найти ту или иную фичу, и даже перестал удивляться тому, что и никто другой тоже не может ее найти. Но, как вы понимаете, где-то между январем и февралем спокойствие меня покинуло…

Нет, у нас не было цели сделать что-то сверхъестественное. Было только вполне объяснимое и здравое желание начать переезд в SQL Server (в 21ом веке-то!). Не то чтобы у нас совсем не было SQL, он был. Правда, он представлял собой кучку файлов а-ля SQLite (только хуже) разбросанных по диску то тут, то там, местоположение которых определялось непосредственно живым путем к файлу… со всеми вытекающими. Естественно, что такое положение вещей не устраивало ни нас, ни SQL Server.

Задача-то на самом деле простая. Всего-навсего занести все пути в таблицы и раздать им айдишники, и сделать так, чтобы все работало. Че тут сложного, а?

И таки началось…

Пока девелоперы добивались того, чтобы приложения хотя бы собирались, я пытался придумать, как все это тестировать. Хотя че тут думать – бери и тестируй все. Нет не так. Вот так будет правильней – ВСЕ! 

Именно в этот момент я осознал, что иметь тест кейсы – это хорошо. А иметь актуальные тест кейсы – еще лучше. Подумал, и сел их перебирать, с твердым намерением сократить количество оных тысяч так на одиннадцать с половиной. За этим чертовски интересным занятием я и не заметил, как промелькнула рабочая неделя.

Когда сознание вернулось, стало понятно, что количество тест кейсов хоть и уменьшилось, но все равно их слишком много для того, чтобы проходить весь набор по нескольку раз. Как я не пытался их фильтровать, ужимать и объединять меньше 7ми сотен не получалось, хоть тресни. К тому же, пока я пытался уменьшить тестовый набор, у меня появились смутные подозрения, что выполнять тесты будет сложно не только из-за внушительного объема, но и из-за того, что, во-первых, в них слишком много букв, а, во-вторых, находятся они в специальной тестерско-монструозной системе, которая специально обучена отнимать драгоценное время и убивать невосстанавливаемые нервные клетки обширным набором процессной мишуры. В общем, недолго думая я открыл Excel и начал писать чеклист. Эта увлекательнейшая процедура отняла еще пару дней моей жизни.

Когда сознание вернулось, у меня в руках оказался вполне приличный чеклист пунктов эдак в 500, а у девелоперов в билдмашине первые рабочие билды.

И он сказал: «Поехали!»

Двумя строчками выше я сказал, что у нас появились рабочие билды. Тут я, конечно, поторопился. Правильней было бы назвать их «запускающимися». Да, действительно кое-какие приложения можно было запустить, но не более того. В них работали только самые базовые вещи и то через раз.

Вообще, первые дни тестирования выглядели примерно так:

Клик, клик, ой…

Клик, ой…

Кли… ну бляяяя!

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

Следующие пару недель мы провели в режиме перманентного багрепортига и багфиксинга постепенно увеличивая количество кликов между ближайшими «ну бля!»

И вот, когда приложениями можно было пользоваться несколько минут кряду, а количество ругательств в минуту снизилось до приемлемой величины, возникла весьма неожиданная проблема. Заключалась она вот в чем: несмотря на то, что изначально мы разбили всю функциональность на более-менее независимые части, описав в общих чертах, что нужно переделать в каждой из них, программисты все равно делали не то. Нет, не то чтобы они занимались пьянством и разбоем вместо программирования, но взявшись перепиливать какую-либо фичу исправляли только то, что лежало совсем уж на поверхности, забывая о том, что почти каждая из этих фич распускала свои метастазы практически по всему необъятному продукту. Хотя нет, «забывали» - неправильное слово, они просто об этом не знали, просто потому, что они… программисты (с этим нужно просто смириться). В итоге, каждая задача, которую программист объявлял законченной, возвращалась к нему по 5 – 10 – 15 раз. Эдакий “bug driven development”. Естественно, что через несколько дней пинания тасков в багтрекере, стало ясно – мы что-то делаем не так. 

И тут я вспомнил… про чеклист! Достал его, стряхнул пыль, скопившуюся за месяц, чуток обновил, положил в сетевую папку, скинул программистам ссылку, и договорился, что никто не будет отправлять на тестирование очередную задачу, пока не сможет прокликать все пункты из чеклиста относящиеся к ней.

Не могу сказать, что после этого мы стали безмерно счастливы и наступил мир во всем мире, но расстояние между «ну бля!» выросло скачкообразно, а количество разговоров начинающихся с «да откуда я ваще мог об этом знать» сократилось. В общем, стало немного проще.

А дальше начались долгие дни, недели и даже месяцы доведения всего этого безобразия до ума.

За это время мы успели выпилить десятки костылей живущих в продукте годами, найти несколько фич, о которых не сохранилось ни только упоминаний в документации, но и тайных знаний у «старожилов», наткнуться на множество неожиданных багов, начиная от проблем в UI, вызванных изменениями «где-то там глубоко внутри», и заканчивая проблемами с производительностью там, где их не ждали.

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

А тем временем…

Пока программисты переписывали продукт, разгребая тонны багов, мне подкидывали всякие-разные задачки. Интересные и не очень. К «не очень» я однозначно отношу генерацию всяких нудных и бесполезных документов, которые позарез нужны заказчикам для расширения ассортимента электронной макулатуры. Впрочем, я об этом уже как-то писал, и повторяться, пожалуй, не буду.

К счастью, далеко не все задачи заключались в «прокачивании» навыков словоблудства. Были и более полезные вещи с более осязаемым результатом. Например, мне наконец-то удалось привести в божеский вид наше тестовое окружение, благодаря тому, что тестировщикам наконец досталась большая железяка с «много всего», вместо кучи других железяк где «всего» было поменьше. Нет, не то чтобы проблема была в железяках, проблема-то, как всегда во времени, а тут хороший повод сделать все по-человечески: спрятать все в отдельную подсеть, которую не будут трогать админы, убрать лишние сущности, вроде торчащих то тут то там почтовых серверов, контроллеров домена и прочей фигни, написать несколько скриптов, чтобы тебе не выедали мозг при очередном откате виртуалки по снепшоту или не гоняли гигабайтные файлы по сети без причины. В общем, избавиться от того, с чем долгое время приходилось мириться.  

А еще мне удалось поучаствовать в тестировании приложений под iOS и Android, которые теперь проживают в маркетах да аппсторах. В процессе тестирования я сделал для себя несколько открытий, о которых тоже хотел написать пост. Но опять же, не написал, отчасти потому, что некогда\лень, отчасти потому, что он получился бы чересчур капитанским и закончился бы «неожиданным» выводом о том, что мобильные приложения нифига не похожи ни на десктоп, ни на веб.

Между прочим, самый интересный баг, который удалось найти во время тестирования этих приложений, совершенно не связан с мобильным миром. Причем, он, как положено, нашелся ровно за день до релиза и заставил всех нас изрядно удивиться. Оказалось, что Mono (а с ним за компанию и MonoDroid) совершенно не знает не знал о том, что такое UPN. К своему стыду, я тоже имел весьма смутное представление об этом явлении. Благо теперь мы вместе с Mono о нем знаем и, возможно, об этом я еще напишу.

Кстати, пока я тестировал эти приложения, мне в uTest, после долгого затишья, подкинули парочку проектов и тоже на Android. Почему бы и нет, подумал я? И взялся за них, чтобы попутно посмотреть «а как у других». За то время пока я крутил-вертел эти приложения, даже слегка поддался мобильной истерии, что вылилось вот в такой пост. А еще осознал, что мой супербюджетный смартфон, купленный на заре андроидостроения, «слегка» устарел, и твердо решил заработать на новый. В итоге примерно за месяц заработал на два. Так что всем тем, кто говорит, что в ютесте денег нет, я не верю.

А параллельно всем этим, безусловно, полезным вещам, я проводил собеседования. Много собеседований. Сейчас даже не вспомню сколько, но только очных было никак не меньше четырех десятков, которые постепенно трансформировались в четырех новехоньких тестеров. Кстати, где-то после первого десятка собеседований, я все-таки не выдержал и решил научиться собеседовать сначала по телефону, а потом… а потом как получится. И об этом решении не пожалел. Количество бесполезных интервью, а также количество неадеквата на них снизилось в разы. 

Из самых забавно-неадекватных случаев запомнился вот такой:

- А вы можете рассказать про вот эту штуку?

- Могу, но не расскажу.

- ??

- ??

- Почему, у вас же в резюме написано, что вы имеете о ней представление?

- Да имею, и вообще знаю про нее все, что только можно знать. Но это очень много и долго.

- Ну, вы кратко, самое основное. Но если кратко не получится, не беда, я не тороплюсь.

- Я же сказал, это очень много! Может мне вам еще реферат написать?!

- !?

- !?

- Давай, до свидания!

Помимо работы на работе я пытался делать еще кое-что связанное с тестированием, но, увы, особых результатов нет, опять же, то ли от нехватки времени, то ли от моей врожденной лени. Так, написал пару программулинок в стол, написал несколько постов в блоге (и, как не трудно заметить, забросил его почти на полгода), ну и сделал небольшой глоссарий для тестировщиков. Кстати, что касается глоссария, то на его счет были более масштабные планы, но они так и остались планами. Хотя, не могу сказать, что он получился совсем уж бесполезен. Во-первых, я сам заглядывал в него несколько раз в поисках нужного термина, а, во-вторых, его посещает примерно 200 человек в месяц, которые просматривают по 1500+ страниц, что, в целом, немного, но и не заставляет задумываться о его выпиливании. 

Ну а пока я всем этим занимался…

…наступил сентябрь

Наш, не побоюсь этого слова, масштабный проект по переписыванию data layer двигался к концу. К этому моменту мы уже пару месяцев как влились в основную ветку, умудрившись ничего особо важного при этом не поломать. И это, я считаю, epic win!

Под аккомпанемент падающей с деревьев листвы, неторопливо шла последняя фаза регрессии, и все приложившие руку к этому проекту были, конечно же, довольны. Нет, ну правда, далеко не каждый день приходится делать вещи, которые можно сравнить с заменой фундамента в жилом доме – чуть приподнять, старое убрать, новое уложить, опустить и ничего не уронить. И далеко не каждый раз подобные действия заканчиваются успешно. Но, тем не менее, у нас получилось. 

Почти 8 месяцев работы, 1,5-2 программиста, 1-1,5 тестировшика, 250+ дефектов в багтрекере, тысячи пройденных тестов, долгие часы обсуждений и споров. Все это не пропало даром. Продукт жив и работает. И, забегая немного вперед, скажу, что работает, по всей видимости, неплохо – уже вышла новая версия, которая разослана всем желающим обновится, и о каких-либо жутких проблемах нам не известно. 

Почти весь сентябрь, я вместе с коллегами, провел в бесконечном прохождении тестов, и, не без удовольствия осознавал, что теперь-то они, наконец, не падают. И вот, практически в самом конце месяца, открыл ту самую задачу в ишью трекере, написал длинное послание техническому писателю и потомкам, подвел мышь к кнопке «Отправить» и понял что…

Теперь я тестировщик!

  

 

… а теперь я аналитик

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

В октябре я покинул тот самый проект, которому, признаться, многим обязан. И подался в бизнес-аналитики. Не могу сказать, что я окунулся в аналитику с головой, но теперь занимаюсь и ей в придачу. Конечно, на этом поприще я пока не достиг того момента, когда могу позволить себе написать что-то вроде «Теперь я …», и поставить восклицательный знак в конце. Но кое-какие результаты уже есть. Например, первый продукт, в разработке которого я принимал участие как аналитик, уже увидел свет. А все желающие могут полюбоваться на него здесь (и, конечно же, купить Smile).  

О том как это было, и что оно такое эта ваша аналитика, я, возможно, еще напишу, если найду время и поборю свою лень. А на этот раз, пожалуй, хватит.

Всем, кто осилил этот текст до конца, огромное спасибо. И надеюсь, что и в вашей профессиональной деятельности был (или еще будет) момент, когда вы сможете сказать: «Блин, да я ведь могу!»
 

++++++++--

 нужен совет по uTest.

 нужен совет по uTest. Help_)

 Спасибо)

skype: live4ever86

Спасибо! Интересно было

Спасибо! Интересно было прочитать)

Отправить комментарий

  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.
  • Pairs of<blockquote> tags will be styled as a block that indicates a quotation.
  • Textual smileys will be replaced with graphical ones.

Подробнее о форматировании