tag:blogger.com,1999:blog-60782440584896821392024-03-05T03:55:10.915-08:00Re:Vision | IT sketchesVladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.comBlogger30125tag:blogger.com,1999:blog-6078244058489682139.post-61838345930507571072016-09-26T11:42:00.001-07:002016-09-26T11:51:24.227-07:00Автоматизируем измерение времени загрузки страниц. Полезный инструмент для любого QA-инженера<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi55O0eBNT6wvbsisXPwPd1md3ct51ea-X0hnIuvT0QDq01Ko9fPRXFkuzuUWc1qNZ0l0n47l6V5BaXF5eMcmh63rr8SC1ErsQTzIyLV_AUq_x428sh3D6IuS4pE8DkpyPNW59IGX99qd4K/s1600/loading.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="256" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi55O0eBNT6wvbsisXPwPd1md3ct51ea-X0hnIuvT0QDq01Ko9fPRXFkuzuUWc1qNZ0l0n47l6V5BaXF5eMcmh63rr8SC1ErsQTzIyLV_AUq_x428sh3D6IuS4pE8DkpyPNW59IGX99qd4K/s320/loading.png" width="320" /></a></div>
<br />
Этот инструмент будет полезен всем, кто на постоянной основе меряет производительность на фронт-энде.<br />
Хитрого в нем ничего нет. по этому не растекаясь мыслью под древу, сразу приступим к реализации.<br />
<br />
<br />
<a name='more'></a>Реализовывать инструмент будем с помощью Python и биндингов WebDriver для него.<br />
<br />
<br />
Условно он будет состоять из 3 компонентов.<br />
<br />
Первый - это конфигурация для нашей "мерялки"<br />
<br />
<iframe src="//pastebin.com/embed_iframe/ESjwLVc7" style="border: none; width: 100%;"></iframe><br />
Всего три константы.<br />
<br />
В первой(MAP_FILE) указываем название файла профиля, в котором хранятся все ссылки на страницы, время загрузки которых необходимо будет измерить.<br />
Во второй(TRIES_COUNT) - количество попыток загрузить страницу(для чистоты эксперимента). Обычно я указываю 5-7.<br />
В третьей(TIME_THRESHOLD) - время в секундах, считающееся пороговым. Среднее значение по отрасли - это порядка 2.4 секунд. Всё, что за ним - это страдание, боль и потенциальные "узкие места" в производительности вашей системы.<br />
<br />
Следующий "кусок" - это непосредственно логика измерения времени загрузки:<br />
<br />
<iframe src="//pastebin.com/embed_iframe/XWJEF6kA" style="border: none; width: 100%;"></iframe>
<br />
Итак, что происходит:<br />
<br />
по количеству попыток, указанных в конфиг-секции, мы вызываем get-метод для webdriver'а, в котором выполняется встроенный скрипт, измеряющий разницу во времени loadEventEnd - последним в хронологическом порядке ивентом, который можно получить из <a href="https://developer.mozilla.org/ru/docs/Web/API/PerformanceTiming"> PerformanceTiming API </a>встроенных средств JS и navigationStart - первым в хронологическом порядке ивентом.<br />
<br />
Такой подход значительно лучше "игр" с встроенными средствами для измерения таймингов, т.к. позволяет оперировать данными полученными напрямую из инстанса webdriver'а, исключая особенности языка, связанные с временем выполнения операций и их измерением.<br />
<br />
Затем, усредняем время загрузки(мы ведь грузим страницу несколько раз подряд, помните?) и сравниваем с пороговым значением. И уже исходя из этого генерируем информационное сообщение.<br />
<br />
Всё это, конечно же, выводим на консоль.<br />
<br />
И третий компонент - это, собственно говоря, разбор map-файла и запуск измерения для каждого из указанных в файле URL:<br />
<br />
<iframe src="//pastebin.com/embed_iframe/tZ3ti1hz" style="border: none; width: 100%;"></iframe>
<br />
<br />
Затем всё это запускаем на словаре, содержащем в себе все необходимые нам браузеры.<br />
Возьмем для примера два наиболее часто используемых в автоматизации тестирования:<br />
<br />
<iframe src="//pastebin.com/embed_iframe/bPGuQ2tG" style="border: none; width: 100%;"></iframe>
<br />
На этом - всё. Наслаждаемся происходящим, попивая чаёк и забывая об измерении времени загрузки с помощью консоли разработчика.<br />
Опционально - импортируем результаты в CSV-файл, меряем разницу между различными ивентами<br />
<br />
Ну а всем, кому интересно попробовать его в действии, сюда: <a href="https://github.com/vbilohorodskyi/peregrin">https://github.com/vbilohorodskyi/peregrin</a><br />
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-26895106929197063832016-06-29T14:39:00.001-07:002016-06-30T01:28:05.505-07:00Автоматизируем автоматизированные тесты<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHA741Xv-rt4mnApADiJcuNnEeNeHgyGAQy4EPcYKT_ZM0UafrKjOaelH2BOq3boLJCPlcD2Ve_i0TnsxNgBRWe84fbF_JLIvXHXqdxJjUUTHWSj3f1FSXuaV-Fct3et915pJu9QdcbUXL/s1600/CI.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="258" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHA741Xv-rt4mnApADiJcuNnEeNeHgyGAQy4EPcYKT_ZM0UafrKjOaelH2BOq3boLJCPlcD2Ve_i0TnsxNgBRWe84fbF_JLIvXHXqdxJjUUTHWSj3f1FSXuaV-Fct3et915pJu9QdcbUXL/s320/CI.jpg" width="320" /></a></div>
<br />
<br />
Современный мир development operations предоставляет любому инженеру-автоматизатору прекрасную возможность использования CI-утилит, упрощая задачу ручного запуска автотестов на каждом из изменений в репозитории.<br />
<br />
Но как быть, если ресурсов или времени на внедрение CI в процесс не хватает?<br />
<br />
В этом деле нам помогут <strike>костыли</strike> смекалка и немного знаний Linux-систем. С помощью нехитрых манипуляций мы сможем автоматизировать запуск и доставку результатов автотестов. Итак, поехали.<br />
<br />
<br />
<a name='more'></a>Нужно оговориться, что автоматизировать можно запуск, как тестов, обращающихся к GUI(с использованием Chromedriver/Firefox и иже с ними), так и не работающих с графикой тестов(Phantom.js, ghostdriver, любые консольные тесты, которые работают с базами/"железом" серверов).<br />
<br />
<br />
Итак, для этого нам понадобится:<br />
1. Устройство, на котором будем запускать автотесты - 1 штук.<br />
2. Умение работать с bash - 1 штук.<br />
3. Умение работать с Cron - 1 штук.<br />
4. Достаточное количество времени на разобраться с SSMTP/любым API для мессенджера - 1 штук.<br />
<br />
<div style="text-align: left;">
Первое, что необходимо сделать - определиться со средой запуска для автотестов. В моем случае использовался Linux-дистрибутив(Ubuntu 14.10), и Chromedriver + Chrome.</div>
<div>
<br />
Изначально вся инфраструктура строилась на локальной машине, но из-за неудобства в использовании(сидишь ты такой, работаешь, а тут - бах - и полетели по пол часа бегать тесты на весь экран) было принято решение перенести ее на виртуальную машину где-нибудь <strike>в забайкалье</strike> на удаленном сервере. </div>
<div>
<br /></div>
<div>
И тут возникла первая проблема. Фразу "ребят, сделайте, пожалуйста, виртуалочку для автотестов", наши админы восприняли очень буквально и запилили голую Убунту с ssh-доступом. Пришлось просить их <strike>переустановить Ubuntu</strike> поднять на виртуалке X-сервер и настроить доступ через VNC. Можно пойти более простым путём и, например, установить TeamViewer, но мой вам совет, пользуйтесь VNC, он обладает значительно меньшим визуальным лагом и позволяет более гибко взаимодействовать с GUI удалённой машины.</div>
<br />
Собственно,<br />
<b>Шаг 1. Конфигурация удаленной среды для запуска тестов.</b><br />
<b><br /></b>
Важно помнить, что в первый шаг входит так же установка всех необходимых для запуска тестов библиотек. и утилит. Можно, конечно, билдить или прописывать requierements с установкой из install-файла внутри скрипта(в случае python), но, как показывает практика, обновляю библиотеки я на удаленной машине довольно редко. Так что пока опустим этот момент.<br />
<br />
<b>Шаг 2. Перенос тестов на удалённую машину.</b><br />
<br />
Для этого можно использовать систему контроля версий и забирать код руками, ssh-ась на сервер, но я написал простенький скрипт, который делает scp из необходимых директорий на удалённый сервер(нужно вытащить три разных файла и рассовать их по разным директориям, вводя пароль от пользователя на удалённом сервере). Учитывая, что разработку веду я сам - это заметно проще использования любой VCS.<br />
<br />
Если же скрипт вам писать не охота - используйте команду копирования по ssh-протоколу:<br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">scp -P 123 /path_to_tests_folder/* user@1.2.3.5:~/tests/</span><br />
<span style="font-family: "arial" , "helvetica" , sans-serif;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">scp</span><span style="font-family: inherit;"> - команда копирования по протоколу ssh</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: inherit;">Аргумент </span><span style="font-family: "courier new" , "courier" , monospace;">-P</span><span style="font-family: inherit;"> - указание порта, на который вы будете стучаться, в надежде увидеть на сервере ssh-демон(по умолчанию - 22, но лучше уточнять у ваших админов).</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">/path_to_tests_folder/*</span><span style="font-family: inherit;"> - указание абсолютного пути(хотя можно использовать и относительныый, начиная, например, с ~). Ну и звёздочкой отмечаем. что хотим скопировать все файлы из папки(ведь у нас же разнесенная структура тестов, правда?)</span><br />
<span style="font-family: inherit;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace;">user@1.2.3.4.5:~/tests/</span><span style="font-family: inherit;"> - указание имени пользования, под которым мы хотим стучаться на удалённый сервер, собственно, сам адрес сервера и через двоеточие - путь к конечной папке, в которую будут копироваться файлы. В моём случае - это папка tests. </span><br />
<br />
После переноса тестов, адски советую запустить их, проверив тем самым, что никаких подводных камней в виде недоустановленных модулей, а то и, не приведи г-ди, браузеров, нет.<br />
<br />
<b>Шаг 3. Автоматизация запуска тестов.</b><br />
<b><br /></b>
Итак, тесты находятся на сервере, запускаются и наша основная задача - заставить их делать это без нашего участия.<br />
<br />
Для этого создадим файл <span style="font-family: "courier new" , "courier" , monospace;">run_tests.sh</span> в домашней директории пользователя. В этом файле будет храниться наш скрипт, с помощью которого тесты будут запускаться.<br />
<br />
И вот, как он выглядит:<br />
<script src="//pastebin.com/embed_js/4pmvY0PH"></script>
<br />
<br />
Для того, чтобы этот скрипт можно было запустить, необходимо дать ему права на выполнение.<br />
Сделать это можно с помощью команды<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo chmod +x run_tests.sh</span><br />
<br />
Итак, проверим корректность работы, введя<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">./run_tests.sh</span><br />
<br />
Магия начинает потихоньку проявляться, всё складывается, нашему счастью нет предела. Но не тут-то было.<br />
Нам так или иначе приходится вводить ненавистную команду для запуска скрипта. Теперь давайте исправим эту вопиющую несправедливость.<br />
<br />
<b>Шаг 4. Настройка Crontab.</b><br />
<b><br /></b>
<a href="http://linux.die.net/man/8/cron">Cron </a>- встроенный в большинство Linux-дистрибутивов журнал автоматического выполнения задач. Кроны бывают разные по типу и временным промежуткам для выполняемых задач.<br />
Но сегодня мы будем разбирать crontab - надстройку над cron, позволяющую легко управлять запуском задач через периоды времени.<br />
<br />
Для просмотра текущего состояния крона, необходимо выполнить команду<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">crontab -l</span><br />
<br />
Вероятнее всего, вы увидите что-нибудь подобное:<br />
<script src="//pastebin.com/embed_js/YYprV5QH"></script>
<br />
Это означает, что ваша таблица крона пуста. Давайте внесем в нее команду для запуска нашего чудесного скрипта.<br />
Для этого, предположим, что нам необходмо запускать нашу команду один раз в два часа.<br />
<br />
Для редактирования файла crontab, необходимо выполнить команду<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">crontab -e</span><br />
<br />
В некоторых случаях вам могут понадобиться привелегии супер-пользователя.<br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Итак, теперь всё, что нам необходимо - добавить маску для периода повторения запуска и исполняемую команду. Для простоты ориентирования во временных промежутках в маске, можно использовать эту прекрасную инструкцию: <br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiczqpsLmpDjhGRdpaWhhky6swvgOmfQIZ22IW_ohLtXuphTBCjP6gyFL_Lt4NWbYUn_w_8agOMv-SVrWEUh7ZFZUlEHYYvhTlrT2vih1IDjwlOP8UK9_5Y4aR13DDisyW0tn8GS0HqHRLq/s1600/cron.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="129" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiczqpsLmpDjhGRdpaWhhky6swvgOmfQIZ22IW_ohLtXuphTBCjP6gyFL_Lt4NWbYUn_w_8agOMv-SVrWEUh7ZFZUlEHYYvhTlrT2vih1IDjwlOP8UK9_5Y4aR13DDisyW0tn8GS0HqHRLq/s320/cron.png" width="320" /></a><br />
<br />
Соответственно, если я хочу запускать свой скрипт каждые 2 часа(каждый чётный час, если быть точным), мне необходимо ввести следующую строку в конец файла, открытого на редактирование с помощью предыдущей команды<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">0 */2 * * * ~/./run_tests.sh</span><br />
<br />
То есть, мы задаем запуск в ноль минут каждого чётного часа, каждого дня, каждого месяца, каждого дня недели.<br />
И не забудьте нажать после этого Enter. Правила оформления требуют, чтобы перед EOF-символом в кронтабе обязательно присутстовала пустая строка.<br />
<br />
Сохраняем этот файл с помощью редактора, которым он был открыт, и если проблем не будет, вы увидите строчку подтверждения<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">Installing new crontab...</span><br />
<br />
Итак, тесты запускаются процесс идёт. Казалось бы, что может быть лучше.<br />
<br />
Эээй, погодите-ка... А как узнать, что, например, все тесты прошли? Или как узнать, что они вообще были запущены?<br />
<br />
И мы плавно подходим к "изюминке" нашей системы:<br />
<br />
<b>Шаг 5. Трекинг и доставка результатов.</b><br />
<b><br /></b>
У unittest-модуля Python есть предустановленный вывод, который помогает нам понять, сколько тестов прошло, по скольким был пасс и какие из них свалились с ошибками.<br />
<br />
Собственно, этот вывод я и пытался сохранять в файл. Пытался, пытался, пытался... но сделать это средствами языка у меня не получилось.<br />
<br />
Пробовал писать кастомный враппер, пробовал подключать модуль logging, но выполнение кода прекращалось автоматически при выводе эксепшена, по этому сам его текст никак не мог отловиться и записаться в файл.<br />
Методом <strike>тыка</strike> научного эксперимента было принято решение перенаправлять вывод в файл средствами операционной системы, объединяя стандартный поток вывода и поток вывода ошибок.<br />
<br />
Для этого добавим создание файла лога и его заполнение результатами выполнения наших тестов. хранящихся в стандартном потоке вывода и потоке ошибок.<br />
<br />
<script src="//pastebin.com/embed_js/TDCTJd39"></script>
<br />
Вот таким нехитрым образом после каждого запуска скрипт будет оставлять лог-файл, в котором будет храниться информация о тест-ране.<br />
<br />
Но, опять-таки, согласитесь, это не совсем удобно, т.к. с определенной периодичностью нам придётся заходить на удалённую машину и проверять логи.<br />
<br />
Справиться с этим нам поможет утилита <a href="http://linux.die.net/man/1/mail">mail</a> - надстройка над сервисом ssmtp. Для этого, необходиму установить обе эти программы через пакетный менеджер вашего дистрибутива.<br />
<br />
На настройке ssmtp долго стопориться не буду. Было много гугла, много StackOverflow и StackExchange, но настраивал в итоге вот по этому гайду: <a href="http://www.havetheknowhow.com/Configure-the-server/Install-ssmtp.html">http://www.havetheknowhow.com/Configure-the-server/Install-ssmtp.html</a><br />
<br />
Итак, базовые конфигурации верны, тестовое письмо отправлено и получено, а значит, необходимо приступить к еще одному редактированию нашего скрипта.<br />
<br />
<script src="//pastebin.com/embed_js/HRUdDPq4"></script>
<br />
Если всё сделано правильно, теперь каждые 2 часа после выполнения всего тест-рана к вам на почтовый адрес, указанный в скрипте, будут приходить письма с результатами запуска тестов.<br />
<br />
Как вариант, строку с отправкой почты в скрипте можно заменить на POST-запрос с помощью утилиты curl, который бы дёргал по API любой из представленных на рынке мессенджеров и отправлял результаты в специализированный канал, тем более, что сделать это очень даже не тяжело. Главное - запастись терпением, чтобы разобраться в API того мессенджера, куда вы хотите отправлять результаты тестов.<br />
<br />
Собственно, на этом всё. Надеюсь, эта статья смотивирует вас разобраться с утилитами и решениями, представленными в ней. А кто-то даже заимплементирует всё это в свой рабочий процесс. :)<br />
<br />
В комментариях буду рад услышать от вас ваши интерпритации на тему автоматизации запуска и трекинга результатов автотестов.<br />
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com5tag:blogger.com,1999:blog-6078244058489682139.post-20760935492824720552016-06-18T16:49:00.001-07:002016-06-26T04:05:05.673-07:00Собеседование "по другую сторону": опыт поиска Junior QA Engineer<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWw4RyyUIhgNnPGVCz5-sq0mhlDQNEcabJZs64-QSROe1hCdEyttgvsJG_QOY2sskS1NMVoYUO8hkI_ID3tQcRLlWUYAkl-qdy187iAuh30Lkj_R-4qKGwJ1wqgaisYfnLgIP5epaPb7T/s1600/qa.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWWw4RyyUIhgNnPGVCz5-sq0mhlDQNEcabJZs64-QSROe1hCdEyttgvsJG_QOY2sskS1NMVoYUO8hkI_ID3tQcRLlWUYAkl-qdy187iAuh30Lkj_R-4qKGwJ1wqgaisYfnLgIP5epaPb7T/s320/qa.jpg" width="320" /></a></div>
<br />
Отправной точкой на старте карьеры для каждого специалиста является собеседование. И, уверен, каждый из нас бывал на этом "празднике жизни".<br />
Но не каждый сидел с другой стороны, в качестве интервьюера.<br />
<br />
Мне вот посчастливилось принять участие в подборе помощника для себя. Попробую поделиться опытом. Эта статья может быть полезна как для ребят, готовящихся к своему первому собеседованию на Junior QA Engineer, так и тем, у кого это собеседование будет первым в качестве интервьюера по технической части.<br />
<br />
Итак, погнали.<br />
<br />
<br />
<a name='more'></a><b>Постановка задачи для позиции: </b>в компанию, в связи с наращиванием мощностей разработки понадобился человек, которому я смогу передать <strike>тайное мастерство</strike> все свои знания и тот <strike>небольшой</strike> скромный кусок экспертизы в отрасли, которым обладаю, для того, чтобы он в последствии взял на себя часть ежедневной работы, дав мне возможность сосредоточиться на инженерных/стратегических решениях для процесса тестирования.<br />
Исходя из этих вводных было принято решение искать именно джуна.<br />
<b><br /></b>
<b>Постановка требований для позиции: </b>по правде говоря, отбирая человека на junior-позицию, я осознавал, что здесь бОльшую роль играют человеческие качества и тот самый майнд-сет тестировщика, чем, например, опыт работы и тех-скиллы. Но элементарный минимум знаний для отсева на уровне скрининга резюме всё-таки был сформирован и переформатирован в требования.<br />
<br />
<h4 dir="ltr" style="line-height: 1.7999999999999998; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 16px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Requirements:</span></h4>
<b id="docs-internal-guid-2f7ded84-6569-00e0-a0f6-3e0c6fdf3570" style="font-weight: normal;"><br /></b>
<br />
<ul style="margin-bottom: 0pt; margin-top: 0pt;">
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Previous work experience as a QA Engineer (0,5+ years)</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Solid understanding of testing principles</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Familiarity with Agile methodologies and agile testing approaches</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Experience in writing and executing test cases</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Experience with TestLink, Jira, Git</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">An ability to learn quickly</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Analytical skills</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Good communication skills</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Desire to learn QA automation processes</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Basic knowledge of Python or/and Node.JS is a plus</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Basic knowledge of MVC and REST is a plus</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 0pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Basic knowledge of RTB mechanisms is a plus</span></div>
</li>
<li dir="ltr" style="background-color: white; color: #0d0d0d; font-family: Arial; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; list-style-type: disc; text-decoration: none; vertical-align: baseline;"><div dir="ltr" style="line-height: 1.8857142857142857; margin-bottom: 5pt; margin-top: 0pt;">
<span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 400; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Intermediate English </span><span style="background-color: white; color: #0d0d0d; font-family: "arial"; font-size: 14px; font-style: normal; font-variant: normal; font-weight: 700; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">IS A MUST</span></div>
</li>
</ul>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
В идеале, человек, проходивший по резюме по всем из этих требований, получал приглашение на собеседование. На деле же было принято решение на первом контакте(телефонный звонок от HR'а) уточнять, как обстоят дела с Линуксом, Git и английским языком.<br />
Всего на рассмотрение за две недели отбора пришло порядка 300 резюме, что лишний раз подтверждает ошибочный стереотип, плотно засевший в разумах людей, о том, что тестирование - самый простой и безболезненный способ войти в отрасль. И мы начали скринить.<br />
Скрининг - процесс отбора кандидатов на следующий этап - контактный звонок.<br />
Переживая з то, что есть ненулевая вероятность кого-то потерять, я фильтровал резюме очень осторожно, делая щедрые скидки на тех. скиллы(помним, что ранее уже решили - человеческие качества превыше технических скиллов). И спустя несколько часов первые кандидаты были прозвонены, собеседования назначены и началось самое интересное.</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
О самом процессе собеседования, вопросах, ожиданиях и интересных моментах я напишу чуть ниже в этой статье, а пока остановлюсь на некоторых наблюдениях, которые были сделаны в ходе скрининга и первых "тестовых" интервью. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<br /></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<b>1. 95% отправителей резюме - выпускники курсов по тестированию. </b></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Не то, чтобы я прям хэйтил курсы по тестированию, как явление в себе. Здесь всё очень сильно зависит от конкретной организации и преподавателя. Но результаты "выпускников" почти всегда разочаровывали. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Этому есть две возможных причины. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Первая - мотивация человека, идущего на курсы. Часто всё сводится к "Пойду работать, буду получать доллары, покупать сыры, отрасль стабильная, работа есть, профессия востребованная, почему бы и нет". Человек не горит профессией, а фокусируется на деньгах, которые за свою работу будет получать.</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Вторая - философия организаторов/преподавателей. Не буду утверждать на все 100 процентов, т.к. никогда в организации/проведении курсов по тестированию участия не принимал, но складывается ощущение, что у предоставителей подобных услуг начисто отсутствует чувство ответственности за знания, почерпнутые на курсах. Мне всё это видится как-то так:</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
1. Обещаем доллары и сыры, завлекая потенциальных свитчеров</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
2. Парим урезанный ISTQB Foundation(и это при оптимистическом сценарии, а есть еще и пессимистический, когда на занятиях пересказывают Савина)</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
3. Тратим по пол часа на каждого студента, составляя ему резюме, на которое клюнут. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
....</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
4. PROFIT!!11<br />
<br />
Вот, честно говоря, жертвой красивых резюме выпускников курсов оказался и ваш покорный слуга. И из этого выплыло следующее наблюдение. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<br /></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<b>2. Примерно две трети скиллов, описанных в резюме, человек не может подтвердить на собеседовании. </b></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Есть такое правило, написанное кровью, проверенное уймой потраченного зря времени и доносимое каждым здравомыслящим специалистом до своего брата: <b>Никогда, слышишь, никогда не указывай в резюме те технологии/подходы/инструменты, по которым не будешь готов отвечать по всей строгости на собеседовании. </b></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
- Гит? Ой, да когда-то что-то читал, но не особо помню, что там. Если надо - выучу. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
- CSS? Ну каскадная таблица стилей, да. HTML там, верстка.</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
- Selenium? Ну я знаю, что это такая штука, чтобы автотесты записывать. Ну нам рассказывали о нем, но я не работал. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Всё это - следствие подхода "пойду на курсы, там меня всему научат и расскажут. А потом в бой.", возможно, имеет место такой ход мыслей "вот у Васи всё это в резюме написано, его взяли. Почитаю википедию, допишу себе, а там на месте разберемся.". И тот и другой подходы - проигрышные. Т.к. страшнее незнания определенных инструментов или технологий по специальности может быть только откровенное вранье в резюме. Как относиться к человеку, который с первых минут знакомства(скрининг и собеседование) начинает лукавить и выдавать себя за того, кем он не является?</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<br /></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<b>3. Умение читать техническую документацию - это еще не Fluent English. </b></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Это очень больная тема, когда на собеседование приходит человек, у которого в резюме указан сильный английский, но который теряется при простом вопросе о том, чем он, в двух словах, занимался на предыдущей работе. На английском языке, конечно. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Еще больнее становится, когда находишь грамматические ошибки в резюме, составленном на английском, с указанным в нём уровне Upper-Intermediate/Advanced.</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<br /></div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Исходя из <strike>горького опыта</strike> этих наблюдений было принято решение ввести дополнительный этап до очного собеседования: тестовое задание. Оно же являлось и практическим заданием на очном собеседовании. </div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Но о нем чуть ниже. А сейчас опишу список наиболее часто задаваемых вопросов кандидатам на моих интервью и ответы, которые хотелось бы и было приятно услышать.</div>
<div style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
<br /></div>
<h3 style="line-height: 1.8; margin-bottom: 0pt; margin-top: 0pt; text-align: left;">
Вопросы, которые я чаще всего задавал кандидатам. </h3>
<div>
<br /></div>
<div>
<b>1. Почему именно тестирование? </b></div>
<div>
Задавая этот вопрос, можно легко увидеть мотивацию человека, который подается на позицию. Сюрприз-сюрприз: не думайте, что заготовленные на тех же курсах или прочитанные в книгах ответы не раскусят. По тем людям, которые реально этим горели, было настолько видно, насколько видно было и по тем, кто просто говорил заученными ответами. </div>
<div>
Правильный ответ на этот вопрос - самый искренний, без обкатанных клише. И таких ответов, к сожалению, было очень мало. Многие слагали оды профессии, часть говорила о друзьях-тестировщиках, которые посоветовали попробовать, но искренних ответов было очень мало. </div>
<div>
<br /></div>
<div>
<b>2. Кем себя видите в тестировании? Техническим специалистом или на руководящей позиции через тестирование, как отправную точку? </b><br />
Это очень скользкий вопрос со стороны интервьюера, т.к. единственно верного ответа на него нет. Но если ко мне приходит человек, который за полтора года сменил 3 профессии, и утверждает, что хочет с головой уходить в техническую часть - с очень большой долей вероятности, это не совсем искренний ответ.</div>
<div>
Так же, не радует, когда человек без опыта работы утверждает, что из тестирования хочет прийти к лидовым позициям. </div>
<div>
Когда мне задают такой вопрос, я, как правило, отвечаю "Как пойдёт.", и мое мнение таково: если ты активно развиваешься по тех. части, опыт и возможности перейти в управление процессом/проектом к тебе придут. А если ты изначально задаешь себе установку, что здесь ты ненадолго и твоя работа — всего-навсего ступенька к позиции тех-лида или проектного менеджера, тогда стоит задуматься над самим подходом.</div>
<div>
<br /></div>
<div>
<b>3. Есть ли найденный вами дефект, которым вы гордитесь больше всего? </b></div>
<div>
Этот ответ говорит о том, чем является для человека работа в отрасли. Если такой дефект он назвать затрудняется - значит на лицо схема "к дорогим сырам через тестирование". Если же он называет тривиальные вещи, с которыми люди сталкиваются в ежедневной работе постоянно - возможно, такому человеку не хватает напористости, уверенности в правильности своих действий и желания развиваться в специальности в общем и баг-хантинге в частности. </div>
<div>
Достойный кандидат ответит таким образом, что найденный дефект или подход к его обнаружению удивит интервьюера. </div>
<div>
<br /></div>
<div>
<b>4. Какие профессиональные ресурсы читаете? Откуда берете знания? </b></div>
<div>
Большинство опрошенных называют в кач-ве опорных точек Святую Троицу: <a href="http://adm-lib.ru/testirovanie/testirovanie-dot-com.html">Савина</a>, <a href="http://www.ex.ua/19209038">Канера</a>, <a href="http://adm-lib.ru/programmirovanie/kalbertson-braun-kobb-byistroe-testirovanie.html">Калбертсона.</a> </div>
<div>
Некоторые говорят про <a href="https://dou.ua/">ДОУ</a> и <a href="https://habrahabr.ru/">хабр</a>. И(сюрприз-сюрприз) о школе Портнова. </div>
<div>
Достойный кандидат упомянет хотя бы пару специализированных форумов, пару блогов(<a href="http://www.satisfice.com/blog/">Дж. Баха</a>, <a href="http://googletesting.blogspot.com/">Google Testing Blog</a>), расскажет о <a href="http://www.booksgid.com/www/42507-kak-testirujut-v-google.html">книге Уиттакера</a>. Укажет на конференции, которые посещал, или <a href="https://www.youtube.com/results?search_query=sqa+days">записи</a> которых смотрел. Вспомнит о <a href="http://natalyarukol.ru/">Руколь</a>. Заикнется о Stack Exchange.</div>
<div>
Вообще, знания по тестированию можно черпать из любых книг по <a href="http://www.proklondike.com/books/design/mcconel_prof_software_development.html">разработке программного обеспечения</a>, т.к. в реалиях современной доставки продуктов эти процессы максимально переплетены и неразделимы.</div>
<div>
<br /></div>
<div>
<b>5. REST API, коды ответов cервера по протоколу HTTP.</b></div>
<div>
Здесь никакого рокет-сайенса не ждал. Хотелось просто услышать определение о том, что такое REST, и человеческое описание основных, но непопулярных кодов ответов(403, 502, 302, 204). Работая с веб-сервисами, часто невозможно найти root cause возникшей проблемы без обращения к консоли или анализу запроса и ответа на него, пришедшего от сервера. </div>
<div>
В основном, вопрос был подъемным. Но называли не частые коды, а определения для групп. В прочем, это не является большой проблемой. </div>
<div>
<br /></div>
<div>
<b>6. Начальный тег HTML-документа, сокрытие элемента средствами CSS. </b></div>
<div>
Это простые вопросы, призванные дать понимание о том, на каком уровне человек работал с огромным множеством аббревиатур, указанных в его резюме. И цифра дня для этого вопроса - ОДИН. Ровно столько кандидатов дало правильный ответ на оба этих вопроса.</div>
<div>
<br /></div>
<div>
<b>7. Есть удаленный репозиторий по ссылке http://1.2.6.192/test.git. Какие шаги нужно выполнить для того, чтобы подтянуть этот репозиторий локально? </b></div>
<div>
Тут всё просто. Проверяем умение человека работать с системами контроля версий. Как ни странно, этот вопрос тоже оказался неподъемным для большинства кандидатов. </div>
<div>
Какого ответа я жду: </div>
<div>
1. Проверить, установлен ли git локально(мы же тестировщики, помните?)</div>
<div>
2. Проверить, есть ли у нас права на доступ к этому репозиторию.</div>
<div>
3. Сделать git init/checkout/pull ИЛИ git clone для репозитория, если предыдущие два шага не выявили проблем. </div>
<div>
К сожалению, такого ответа не дал никто. </div>
<div>
<br /></div>
<div>
<b>8. Вопросы по техникам тестирования, указанным в резюме. </b></div>
<div>
Здесь не буду разделять, так как конкретные вопросы варьировались относительно каждого кандидата, пока могу только сказать, что самые большие проблемы у соискателей с тестированием производительности и тестированием систем на мобильных устройствах. Вопросы, задаваемые в этом блоке дают понимание о том, слышал ли человек о той или иной технике или об определенном виде/методе тестирования только в теории или обладает пониманием того, как действительно он работает на практике. </div>
<div>
Иногда спрашивал, какие виды тестирования понравились, а какие - не очень. Как правило, это дает понять, как много времени человек тратил на изучение или работу с тем или иным видом. </div>
<div>
И да, лично я ненавижу регрессию. =) </div>
<div>
<br /></div>
<div>
<b>9. У вас есть доступ к серверу на Linux без графической оболочки. Вам нужно собрать максимум информации о нём. Какими командами будете пользоваться? </b></div>
<div>
Просто открытый вопрос, не имеющий правильного ответа, призванный понять, насколько глубоко человек знаком с Linux-подобными операционными системами. И тут, к сожалению, большинство людей не могли назвать даже элементарных команд, необходимых для повседневной работы с ОСью.</div>
<div>
<br /></div>
<div>
И мы плавно переходим к изюминке каждого собеседования. </div>
<div>
<br /></div>
<h3 style="text-align: left;">
Практическое задание. </h3>
<div>
Практическое задание на эту позицию формировалось с нуля. За основу брался так любимый всеми интервьюерами на позицию QA Engineer-ов калькулятор. </div>
<div>
<br /></div>
<div>
Вот, как он выглядел: </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq4SwU4bAhaLNIGxGUw-bmjN6qFNKIyMI9nfcF6zY5uTaSK20l9730OgxpGLwmpZtLWyHuKAz9MCDhvzHuSq16wUGazxMgL1_zVIqTCaLfqYeNQImWRp9zLcmxzB_AJhn-b3-araPUK_FP/s1600/Page+1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="548" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjq4SwU4bAhaLNIGxGUw-bmjN6qFNKIyMI9nfcF6zY5uTaSK20l9730OgxpGLwmpZtLWyHuKAz9MCDhvzHuSq16wUGazxMgL1_zVIqTCaLfqYeNQImWRp9zLcmxzB_AJhn-b3-araPUK_FP/s640/Page+1.png" width="640" /></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
Это самый простецкий мок-ап, который был нарисован, исходя из того, что хотелось бы проверить. Само практическое задание звучало следующим образом: <b>"Внимательно посмотрите и отметьте всё, что, по вашему мнению, достойно баг-репорта."</b></div>
<div>
<b><br /></b></div>
<div>
И, собственно, дефекты, которые должны были найти соискатели.</div>
<div>
<br /></div>
<div>
1. Лишняя буква "l" в слове "Wellcome". <br />
2. Недостающая буква "r" в слове "corect" внутри окна подтверждения. </div>
<div>
Здесь мы смотрим на знание английского языка и умение кандидата работать с очепятками визуально. Первый дефект, к слову, находили, буквально, единицы.</div>
<div>
<br /></div>
<div>
3. Отсутствие кнопок "0", "С", "+/-" и других управляющих элементов функционала.</div>
<div>
4. Неправильное расположение цифровых кнопок(Расположены инвертированно, относительно стандартной раскладке для калькулятора). </div>
<div>
5. Отсутствие символа "."</div>
<div>
<br /></div>
<div>
Эти дефекты должны были дать понимание того, откуда кандидат черпает требования к качеству продукта в случае, если прямых требований нету. Есть официальные стандарты, есть индустриальные стандарты, есть продукты конкурентов, и глядя на это, можно было дать кучу правок и замечаний или, хотя бы, задать определенное кол-во вопросов по целесообразности данного инженерного решения. </div>
<div>
С дефектом под номером 5 связан отдельный вопрос: "Каким образом возможно видеть подобную цепочку действий, если точка в функционале отсутствует?". Задавался он для того, чтобы понять, на каком уровне люди взаимодействуют с продуктом и исследуют ли они его достаточно, чтобы делать выводы. А ответ был очень простым - точку очень легко можно ввести с клавиатуры. </div>
<div>
<br /></div>
<div>
6. Неподходящее обозначение кнопки для умножения(mul). </div>
<div>
По правде говоря, здесь этот дефект был своеобразной пасхалкой, так как утилита для мок-апов не умела по-человечески отрисовывать звёздочку, по этому было принято решение заменить ее на сокращение от multiplication и заодно проверить умение ребят мыслить аналитически. </div>
<div>
<br /></div>
<div>
7. Проблемы с расположением элементов. </div>
<div>
<br /></div>
<div>
Это очень обширная область, где каждый из соискателей мог дать волю своему внутреннему Джонни Айву и указать элементы, расположение которых не совсем удовлетворяет чувству прекрасного, обязательно присущему и нужному для тестировщика.<br />
<br />
8. Неочевидные решения по функционалу элементов.</div>
<div>
<br /></div>
<div>
Опять-таки, в отсутствие прямых требований, включаем здравый смысл и принимаем решение, нужно ли нам окно подтверждения, нужен ли нам функционал выбора калькулятора в таком виде, в котором он представлен здесь, и так далее. </div>
<div>
<br /></div>
<div>
9. Инвертированное положение кнопок Yes и No в окне подтверждения. </div>
<div>
<br /></div>
<div>
Дефект этот задавался для того, чтобы понять, знаком ли человек с гайдлайнами для устоявшихся структурных единиц. Практика показала, что большинство замечавших просто привыкли к другому расположению, но не задавались вопросом, чем это продиктовано. </div>
<div>
<br /></div>
<div>
Наиболее запомнившиеся мне кандидаты были готовы завести от 10 до 18(рекорд) баг-репортов. </div>
<div>
Некоторые обращали внимание на картинку, подозрительно напоминающую непрогрузившееся изображение и пустой URL(побочный эффект стандартного окна браузера в утилите для создания мок-апов). </div>
<div>
<br /></div>
<h3 style="text-align: left;">
Резюмируя...</h3>
<div>
Возьму на себя смелость подобрать список рекомендаций, основанный на опыте более чем 20 собеседований за 2 недели, проведенных с нуля. </div>
<div>
<br /></div>
<div>
<b>1. Тестирование - это не просто. И с этим надо смириться. Оно не проще разработки, а местами даже сложнее. Помните это.</b></div>
<div>
<b><br /></b></div>
<div>
<b>2. Курсы - не панацея и не самый короткий путь в индустрию. Только желание + упорство + практика + уверенность в себе = успех на собеседовании. </b></div>
<div>
<b><br /></b></div>
<div>
<b>3. Будьте готовы отвечать кровью за каждую написанную в резюме строчку. </b></div>
<div>
<b><br /></b></div>
<div>
<b>4. Если вы в тестировании ради денег, тогда продуктовая разработка - скорее всего не ваш вариант. Ориентируйтесь на аутсорс, там проще с входным порогом и мотивацией. </b></div>
<div>
<b><br /></b></div>
<div>
<b>5. Развивайтесь. Сколько бы вы не прочитали. этого всегда будет мало. Всегда. Не останавливайтесь и не зацикливайтесь на одном подходе, одном ресурсе, одной методологии. </b></div>
<div>
<b><br /></b></div>
<div>
<b>6. Если вы действительно всерьёз настроены на то, чтобы получать хорошие офферы - займитесь английским и Linux'ом. А если еще и разберетесь с основными принципами работы мобильных ОС - цены вам не будет.</b><br />
<b><br /></b></div>
<div>
<b>7. Практикуйтесь. Всегда и везде. Набивайте руку на всём, на чём только можно. И поворачивайте мозги(Савин, привет!) в сторону тестирования. Это неоценимый скилл. </b></div>
<div>
<b><br /></b></div>
<div>
<b>8. И главное, помните: каждое проанализированное заваленное собеседование приближает вас к успешному. Ничего не бойтесь, верьте в себя и у вас всё обязательно получится. </b></div>
</div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com36tag:blogger.com,1999:blog-6078244058489682139.post-70603935291305127972015-06-08T06:29:00.001-07:002015-06-08T06:29:28.844-07:00"Роза Ветров" QA<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://image-store.slidesharecdn.com/2fc80c98-9ab6-4e18-99a3-2fcc8ed773c7-original.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="464" src="https://image-store.slidesharecdn.com/2fc80c98-9ab6-4e18-99a3-2fcc8ed773c7-original.jpeg" width="640" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-82391442786805343642015-04-17T13:14:00.000-07:002015-04-17T13:54:57.151-07:00Еще один баг Android-приложения Вконтакте: опять просмотрщик фото<div dir="ltr" style="text-align: left;" trbidi="on">
В последнее время очень везёт на баги, связанные с Android-приложением Вконтакте.<br />
Не буду вдаваться в подробности о том, в каких условиях баг был найден, но скажу одно: <a href="http://siliconrus.com/2014/12/google-restroom/" target="_blank">туалетная методика от Google</a> работает. :)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cs618623.vk.me/v618623702/cf7/UuUk18QlQCg.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cs618623.vk.me/v618623702/cf7/UuUk18QlQCg.jpg" /></a></div>
<br />
<br />
Итак, добро пожаловать под кат...<br />
<a name='more'></a>Пронаблюдать дефект очень легко.<br />
<br />
<b>1.</b> Заходим в приложение социальной сети;<br />
<b>2.</b> Поворачиваем телефон в горизонтальное положение, приложение переходит в альбомный формат:<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c623816/v623816856/2b545/4-dXgsuE6H0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://pp.vk.me/c623816/v623816856/2b545/4-dXgsuE6H0.jpg" width="320" /></a></div>
<br />
<b>3.</b> Находим любую фотографию с портретным форматом или с соотношением сторон 1:1(квадрат), открываем ее в просмотрщике.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c623816/v623816856/2b53c/3QCI7zQGEfc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="192" src="https://pp.vk.me/c623816/v623816856/2b53c/3QCI7zQGEfc.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="" style="clear: both; text-align: left;">
<b>4.</b> Обращаем внимание на затемненную область сверху интерфейса. Так как в интерфейсе отображаются вспомогательные элементы(меню, порядковый номер фото, кнопки лайка, комментария и отметки человека), области сверху и снизу слегка затемнены. Смотрим на верхнюю область:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAk43-Env1fS5ULI19VGVbag3RGn5X8nEty02xSK0O16mWxSu4lqTKlC6cdgxMfVZeV5ZGP2KVn-Rx3F2BNCjBy4po-Y3AheTtdHG1_3OQijDwRY9UrjfxTX6_6w9QtikfYRB549UPPPKa/s1600/medved.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAk43-Env1fS5ULI19VGVbag3RGn5X8nEty02xSK0O16mWxSu4lqTKlC6cdgxMfVZeV5ZGP2KVn-Rx3F2BNCjBy4po-Y3AheTtdHG1_3OQijDwRY9UrjfxTX6_6w9QtikfYRB549UPPPKa/s1600/medved.jpg" height="192" width="320" /></a></div>
<br />
<b>5.</b> Делаем тап(нажатие) в произвольном месте экрана кроме кнопок и наблюдаем, что покрытая затемнением область чудным образом на долю секунды поворачивается по горизонтали во время плавного исчезновения меню.<br />
<br />
К сожалению, вечер пятницы накладывает на рабочий процесс свои коррективы и снимать видео реально лень, но бага воспроизводится в 100% случаев.<br />
Справедливости ради стоит заметить, что в портретном режиме всё работает без нареканий.<br />
<br />
<b>Девайс:</b> LG Nexus 4, Android Lollipop<br />
<b>Версия приложения: </b>3.11, билд 738.<br />
<br />
<div style="text-align: center;">
<div style="text-align: left;">
<b>UPD:</b> На Android 4.1.1 с версией приложения 3.10.1(билд 710) бага не воспроизводится. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>UPD2:</b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH12JYn_9KTNu-J6Un8V4cV0gae47BBN0Fgn9PvegiMqkMD1g3zoTfce2R3uRrhvk12d_6gpnxBNKK9DvMdzIUcC5eBa4gC8speuZ5y0jCjEfHu7tSORzAMXMFE-ys3PgK63KmFtUs8fWk/s1600/dorosh.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiH12JYn_9KTNu-J6Un8V4cV0gae47BBN0Fgn9PvegiMqkMD1g3zoTfce2R3uRrhvk12d_6gpnxBNKK9DvMdzIUcC5eBa4gC8speuZ5y0jCjEfHu7tSORzAMXMFE-ys3PgK63KmFtUs8fWk/s1600/dorosh.PNG" height="85" width="400" /></a></div>
<div style="text-align: left;">
<b>UPD3:</b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0eH1QuoCkxMKcTAm81UJG5XIFCnuqxmxWhtgm5awsvC9_-D5sKlshlqnYyZ6OIocKQG13lTN5vqzzj9TI00LMF8_UVG8tDIIMu7kvyHZyM9pw-u5UoNhzvtRACsUo6s7ZQrmSOM5TyQxa/s1600/dorosh2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0eH1QuoCkxMKcTAm81UJG5XIFCnuqxmxWhtgm5awsvC9_-D5sKlshlqnYyZ6OIocKQG13lTN5vqzzj9TI00LMF8_UVG8tDIIMu7kvyHZyM9pw-u5UoNhzvtRACsUo6s7ZQrmSOM5TyQxa/s1600/dorosh2.PNG" height="67" width="400" /></a></div>
<b>UPD4:</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9UeSkgj3ZsaoHoAsT7HXGqDbuCTKL7PMR4USLNYJLgz9fPEYP44RoNrM6bp3EjtNh1282PuYyexKwwZicPB1M3uu8lqfnT7ULP7yq-7H6_Z04rMT2QJFmHwcn_jHAcJlyWlEoP1b8bhOu/s1600/4eberyak.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh9UeSkgj3ZsaoHoAsT7HXGqDbuCTKL7PMR4USLNYJLgz9fPEYP44RoNrM6bp3EjtNh1282PuYyexKwwZicPB1M3uu8lqfnT7ULP7yq-7H6_Z04rMT2QJFmHwcn_jHAcJlyWlEoP1b8bhOu/s1600/4eberyak.PNG" height="70" width="400" /></a></div>
<b><br /></b></div>
</div>
<div style="text-align: center;">
<br /></div>
<h3 style="text-align: center;">
Всем хороших весенних выходных, пёсики. :) </h3>
<div style="text-align: center;">
<br /></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen="" class="YOUTUBE-iframe-video" data-thumbnail-src="https://i.ytimg.com/vi/2zNSgSzhBfM/0.jpg" frameborder="0" height="266" src="http://www.youtube.com/embed/2zNSgSzhBfM?feature=player_embedded" width="320"></iframe></div>
<div style="text-align: center;">
<br /></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-88262244401335510892015-04-02T06:35:00.000-07:002015-04-02T06:57:56.800-07:00Занимательная математика: новая бага android-приложения Вконтакте <div dir="ltr" style="text-align: left;" trbidi="on">
За наводку огромное спасибо любимой Даше.<br />
<div style="text-align: left;">
Проблема заключается в неправильной работе счётчика просмотра фотографий в приложении Вконтакте для Android.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c403617/v403617492/7e46/Aoga6GwGkg8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://pp.vk.me/c403617/v403617492/7e46/Aoga6GwGkg8.jpg" width="209" /></a></div>
<br /></div>
<br />
Итак, чтобы увидеть, как работает занимательная математика, мы:<br />
<a name='more'></a><br />
<br />
1. Находим в ваших группах ту, в которой хранится не так много фото(можно и много, но тогда листать задолбаетесь)<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c621726/v621726856/1918b/W5a0SZsBYS4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://pp.vk.me/c621726/v621726856/1918b/W5a0SZsBYS4.jpg" width="238" /></a></div>
<br />
<br />
2. Благополучно покидаем группу.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c621726/v621726856/19181/CQVPdc85_KM.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://pp.vk.me/c621726/v621726856/19181/CQVPdc85_KM.jpg" width="238" /></a></div>
<br />
3. Затем заново вступаем в неё.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c621726/v621726856/19177/PccTBHJh140.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://pp.vk.me/c621726/v621726856/19177/PccTBHJh140.jpg" width="238" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
4. Из сниппета с фотографиями, находящегося над записями сообщества, начинаем листать фотографии. И осознаем, что что-то пошло не так.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://pp.vk.me/c621726/v621726856/1916d/f-9pQ94A1f4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://pp.vk.me/c621726/v621726856/1916d/f-9pQ94A1f4.jpg" width="238" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Наблюдаем мы три одинаковых повторяющихся фотографии. Каждый раз количество выхода "за рамки" будет зависеть от общего количества фотографий в данном снипете. Т.е., если в сообществе размещено 7 фотографий, листать мы сможем ровно 21 раз (кол-во фото * 3), и три раза будем видеть пачку из семи повторяющихся фото.</div>
<br />
Что-то это мне напоминает...<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://gblor.ru/media/images/top/preview/lh5.googleusercontent.com--JsA8nge4olg-U_RtBtu-enI-AAAAAAABGdk-nOkgOGglm2c-w620-h428-25D0259A25D025BB25D025B825D1258725D025BA25D025BE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://gblor.ru/media/images/top/preview/lh5.googleusercontent.com--JsA8nge4olg-U_RtBtu-enI-AAAAAAABGdk-nOkgOGglm2c-w620-h428-25D0259A25D025BB25D025B825D1258725D025BA25D025BE.jpg" height="275" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Вот так и у нас, есть одна фотография, три из которых мы можем посмотреть. :)<br />
<br />
Воспроизводится наша бага на версиях приложения 3.10 и 3.11. Остальные пока не проверял, т.к. нет возможности их получить в обход Play Market'а.</div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-73338628428546132692015-03-28T06:40:00.004-07:002016-09-13T10:19:10.827-07:00"Бритва Оккама": ACC-методология от Google<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="text-align: justify;">
Давайте я покажу вам, как выглядят мечты и амбиции среднестатистического фаундера(заказчика) при планировании продукта: </div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwo27hWkyZR-xW2jsXXD_xtRi6hY1e2Ja8ZiUG0bjNTMGUAI-nRjxpU8N1JfgA0mevT3XxnNLoUga3rHfc7v3LZAAqmoRw4UjrruKAQbFP95LN34dQhLrBJu1nudb0gfjbGQqF1nEYsnEq/s1600/supermultitool.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="236" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwo27hWkyZR-xW2jsXXD_xtRi6hY1e2Ja8ZiUG0bjNTMGUAI-nRjxpU8N1JfgA0mevT3XxnNLoUga3rHfc7v3LZAAqmoRw4UjrruKAQbFP95LN34dQhLrBJu1nudb0gfjbGQqF1nEYsnEq/s1600/supermultitool.jpg" width="320" /></a></div>
<br />
<div style="text-align: justify;">
Продукт его мечты - эдакий супермультитул, с помощью которого можно решить любую проблему. Еще и ногти подстричь. </div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
А теперь давайте посмотрим, как выглядит в представлении tech-lead'а работа по планированию такого проекта:</div>
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTUiCjuRbqQZU1nsfoz3ic440rcidvLrBRqUB2RL9KrenHTfYi5XPDJ30BZpu8btd-6V_BVEXgyOPcd0XrXeIBGthLyy0xgA5IwiwlEP-xqO3yv_zs7Rbh8i-i5mZ_asg1tQx3eGbE7JoT/s1600/siburde.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="265" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgTUiCjuRbqQZU1nsfoz3ic440rcidvLrBRqUB2RL9KrenHTfYi5XPDJ30BZpu8btd-6V_BVEXgyOPcd0XrXeIBGthLyy0xgA5IwiwlEP-xqO3yv_zs7Rbh8i-i5mZ_asg1tQx3eGbE7JoT/s1600/siburde.jpg" width="400" /></a></div>
<br />
<div style="text-align: justify;">
Проблема заключается в том, что в представлении разработчика, каждый из элементов его продукта-супермультитула является одинаково приоритетным. И именно на этом он методично настаивает на каждом митинге. </div>
<div style="text-align: justify;">
Такой подход к ведению проекта не выгоден никому из исполнителей, будь то менеджеры разнообразных направлений, разработчики, отделы контроля качества и технической поддержки. </div>
<div style="text-align: justify;">
Но, что самое главное, не выгоден он так же и заказчику, так как изначально обрекает его продукт на медленное становление и с очень большой вероятностью хоронит его еще до того момента, когда результат трудов нескольких десятков(сотен/тысяч) людей увидит свет. </div>
<div style="text-align: justify;">
<br />
В этой статье я поделюсь с вами прекрасной методикой планирования, использующейся в Google. Это действительно тот случай, когда заново изобретенный велосипед, благодаря правильному подходу, соревнуется в надежности и скорости с некоторыми творениями отечественного автопрома. :)</div>
<div style="text-align: justify;">
<b><i>Итак, погнали.</i></b></div>
<div style="text-align: justify;">
</div>
<a name='more'></a>Еще раз взглянем на то, как наш заказчик видит продукт мечты:<br />
<div style="text-align: justify;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTnZySxecCXj9vdfQSkvfzJeQNZ1nH5LjY71GpV61LeiRH4UthNup1-KnnnUCPLR2oK53rByVVkIl3mJO_s2NHWMPSnt3-NSgrkVxmg4LUNXUo5c_2Mp_JrFMmyUFe0bfXBMahFVZfDGFH/s1600/megagun.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="239" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTnZySxecCXj9vdfQSkvfzJeQNZ1nH5LjY71GpV61LeiRH4UthNup1-KnnnUCPLR2oK53rByVVkIl3mJO_s2NHWMPSnt3-NSgrkVxmg4LUNXUo5c_2Mp_JrFMmyUFe0bfXBMahFVZfDGFH/s1600/megagun.jpg" width="320" /></a></div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Но давайте задумаемся, нужен ли подобный продукт пользователю? </div>
<ul>
<li>Удобен ли он в использовании? </li>
<li>Надежен ли продукт, состоящий из огромного количества связанных между собой компонент?</li>
<li>Является ли необходимым использование широкого спектра возможностей, если, согласно анализу рынка, пользователям продукта-конкурента необходимо решение только узкого круга задач?</li>
<li>Сказывается ли излишняя функциональность на цене продукта?</li>
<li>Насколько легок продукт в поддержке при непредвиденных ситуациях? </li>
</ul>
<div>
Можно сформулировать еще уйму подобных вопросов, ответив на которые, мы осознаем, что в отличии от видения заказчика, клиент хочет пользоваться примерно таким продуктом: </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu7Dav1apq1kYPOybVWabHrSTc-3OzLNDaDC3Mbxyf32Hh8eA-Rbw0Hzkal_UeZrkPE185ZNCSjfdE87VR31wkJ3Dy7wzLYhvBYWXD66RJfDhtFLi4sjbunUb2b7gZTvFIDgiMGlCmBG9t/s1600/ak100.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiu7Dav1apq1kYPOybVWabHrSTc-3OzLNDaDC3Mbxyf32Hh8eA-Rbw0Hzkal_UeZrkPE185ZNCSjfdE87VR31wkJ3Dy7wzLYhvBYWXD66RJfDhtFLi4sjbunUb2b7gZTvFIDgiMGlCmBG9t/s1600/ak100.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
а в некоторых случаях, даже вот таким: </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS_qXtZ8h8Ji_pJZwIGuhJ7_Ttj-azRFfU78wpbETIA-uikVuV9Yb7b_dPB7pdK2kpk3gC7TglSfItLuHo2BZ0_qdIOSWVs6OlBLQuobd6KBhA7BbGmbj6RKL3F7ApYupqV69dzhVUltOz/s1600/spoon_PNG3036.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="133" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjS_qXtZ8h8Ji_pJZwIGuhJ7_Ttj-azRFfU78wpbETIA-uikVuV9Yb7b_dPB7pdK2kpk3gC7TglSfItLuHo2BZ0_qdIOSWVs6OlBLQuobd6KBhA7BbGmbj6RKL3F7ApYupqV69dzhVUltOz/s1600/spoon_PNG3036.png" width="200" /></a></div>
<div>
Итак, давайте попробуем превратить то, что видит заказчик в то, что любо сердцу и кошельку пользователя.<br />
<b>И поможет нам в этом АСС-методология.</b></div>
<div>
<br /></div>
<div>
<h3 style="text-align: left;">
АСС - это аббревиатура, состоящая из трёх слов: Attribute, Component, Capability(Атрибут, Компонента, Способность). </h3>
<br />
<b>Атрибуты</b> - это описательные характеристики готового продукта. Его "фишечка", благодаря которой пользователь будет покупать продукт. </div>
<div>
<br />
И, раз уж мы заговорили об оружии, давайте рассмотрим всю эту историю на примере туристического ножа.</div>
<div>
Будь я производителем туристических ножей, для меня атрибутами продукта были бы: </div>
<div>
<ul style="text-align: left;">
<li>Надежность</li>
<li>Безопасность</li>
<li>Комфорт</li>
<li>Стильность</li>
<li>Долговечность</li>
</ul>
<div>
Пройдемся подробнее по каждому из атрибутов: </div>
</div>
<div>
<br /></div>
<div>
<b>Надежность</b> гарантирует то, что при рубке дров, ваш нож не подведет вас и не сломается(что и произошло с моим предыдущим ножом). Она описывает то, насколько безотказным будет ваш нож, вне зависимости от того, режете ли вы им колбасу или колючую проволоку тюремного заграждения. </div>
<div>
<br /></div>
<div>
<b>Безопасность</b> предполагает, что если вы попробуете зарезать этим ножом товарища, которого застали в постели со своей женой, то несовместимых с жизнью травм ни себе ни ему вы не нанесете(кроме, конечно же, психологических). Само собой, безопасным с точки зрения проектирования ножом труднее порезаться во время работы. </div>
<div>
<br /></div>
<div>
Под <b>комфортом</b> подразумевается удобство в ношении, хранении, заточке ножа, отсутствие неприятных ощущений при рабочем хвате, отсутствие всех этих бестолковых шипов и металлических выступов, "благодаря" которым, после открытия консервной банки, на ваших руках остаются многочисленные мозоли. </div>
<div>
<br /></div>
<div>
<b>Стильность</b> говорит о том, что доставая ваш нож из рюкзака на привале, вы будете испытывать на себе завистливые взгляды своих друзей, которым приходится довольствоваться обычным раскладным ножичком, купленным в супермаркете.<br />
<br />
<b>Долговечность</b> декларирует тот факт, что, сохранив свои рабочие свойства, ваш нож прослужит вам верой и правдой не один год. И, возможно, станет наглядным примером для историй детям о том, как вы покоряли самые неприступные вершины. </div>
<div>
<br /></div>
<div>
Словом, готовясь к планированию работы над продуктом, вам необходимо выделить основной список прилагательных, которыми можно было бы его описать.<br />
<b>Мой нож будет надежным, стабильным в работе, комфортным, стильным, безопасным и долговечным. </b></div>
<div>
Не стоит растекаться мыслью по древу. Выделите до десятка самых необходимых атрибутов и работайте с ними. </div>
<div>
<b><br /></b></div>
<div>
Когда атрибуты системы описаны, приходит время переходить к описанию компонент. Итак, компоненты — это составляющие части, определяющие наш продукт, как единое целое.<br />
<br />
Мой туристический нож состоит из таких компонент: </div>
<div>
<ul style="text-align: left;">
<li>Лезвие</li>
<li>Ручка</li>
<li>Стеклобой</li>
<li>Петля под темляк</li>
</ul>
<div>
Конечно, список можно было бы урезать до лезвия и ручки, но, как было сказано раньше, наш нож должен быть комфортным. А значит, последние два пункта must be.</div>
<div>
С компонентами история такая же, как и с атрибутами. Не пихайте в этот пункт ничего лишнего, постарайтесь минимизировать и абстрагировать список основных компонент до десятка. Если у вас не получается это сделать - значит вам стоит пересмотреть подход к проектированию своего продукта. Правда. </div>
<div>
<br /></div>
<div>
А теперь самое интересное. :)<br />
Способности продукта рождаются на пересечении его атрибутов и компонент. Тогда, когда прилагательное встречается с существительным. Давайте попробуем сообразить небольшой списочек способностей нашего туристического ножа: </div>
<div>
<ul style="text-align: left;">
<li><b>Надежность</b> + <b>лезвие</b> = устойчивость к воздействию плотных металов и камня.</li>
<li><b>Комфорт</b> + <b>петля под темляк</b> = возможность использования шнура разной ширины в качестве темляка.</li>
<li><b>Стильность</b> + <b>лезвие</b> = персональная гравировка лазером на каждом клинке. </li>
<li><b>Комфорт</b> + <b>ручка</b> = эргономичная конструкция ручки</li>
<li><b>Комфорт</b> + <b>ручка</b> = приятный для хвата материал ручки</li>
</ul>
<div>
И так далее... </div>
</div>
<div>
Вот здесь-то, в отличие от предыдущих двух шагов, ваша фантазия может реализовать себя чуть более, чем полностью. Но <b>не забывайте, что фантазировать можно только в пределах матрицы пересечения атрибутов и компонент.</b> </div>
<div>
<br />
После того, как все пересечения-способности прописаны, начинается следующий этап планирования - оценка рисков.<br />
Допустим, что в результате определения ACC-составляющих, у нас получилась следующая матрица:<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi75iJ_C5v0Po3vlge3_RUjGBuRHdkhUHPFFKYbKYFYspzT6mcroOuGPO9O8Jnp2H-Obe6hWRrmGCLcCgQV8WTp9F1rvKvd5ZhGl8Jla6XksNa0PKOE4bQHSp-SpHouEp-5ozSYBeNxdSNI/s1600/table1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="156" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi75iJ_C5v0Po3vlge3_RUjGBuRHdkhUHPFFKYbKYFYspzT6mcroOuGPO9O8Jnp2H-Obe6hWRrmGCLcCgQV8WTp9F1rvKvd5ZhGl8Jla6XksNa0PKOE4bQHSp-SpHouEp-5ozSYBeNxdSNI/s1600/table1.PNG" width="640" /></a></div>
</div>
<div>
<br /></div>
<div>
Теперь на каждом пересечении атрибута и компоненты выставим индекс количества способностей, получившихся из каждой конкретной пары. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYoDbhmeoofYhNmRzKMl7lASVoie2OtOLQ5gETvU5Dr6Ejd4JwdY4xUxhKoMMqpGfElqfz5rxxYGHxadKZxBwCoEYEHu-fJsG_k_x2QRHwvr4lA6GrNr0u8PFzZznyjdaUamFVHftrZcIA/s1600/table2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYoDbhmeoofYhNmRzKMl7lASVoie2OtOLQ5gETvU5Dr6Ejd4JwdY4xUxhKoMMqpGfElqfz5rxxYGHxadKZxBwCoEYEHu-fJsG_k_x2QRHwvr4lA6GrNr0u8PFzZznyjdaUamFVHftrZcIA/s1600/table2.PNG" width="640" /></a></div>
<div>
<br /></div>
<div>
Рассмотрим этот шаг подробнее. Допустим, если на пересечении атрибута <b>безопасность</b> и компоненты <b>ручка</b> стоит цифра "1". Это значит, что всего в плане у нас есть одна способность функционала продукта, связанная с безопасностью ручки. </div>
<div>
<br /></div>
<div>
А вот цифра "3" на пересечении атрибута <b>комфорт</b> и компоненты <b>ручка </b>указывает на то, что нам необходимо реализовать целых три способности продукта, благодаря которым мы сможем обеспечить необходимое качество комфорта для ручки.</div>
<div>
Можно слегка упростить себе работу, и сделать "тепловое" покрытие по данной таблице, упростив визуальное восприятие содержимого. </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSF_snjKYncD40RH_vNUblt8wf0y9Py9sUeXax3AnwwJ4NHU_hBYslriItLIUEWqq30X4unFXjWv8q-tJJKMISKlzlxACvB1O9rOyW9pHm8N5wbVLhTxc7rujXx_iMUIJi-xQgBi6iHG21/s1600/table3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="164" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiSF_snjKYncD40RH_vNUblt8wf0y9Py9sUeXax3AnwwJ4NHU_hBYslriItLIUEWqq30X4unFXjWv8q-tJJKMISKlzlxACvB1O9rOyW9pHm8N5wbVLhTxc7rujXx_iMUIJi-xQgBi6iHG21/s1600/table3.PNG" width="640" /></a></div>
<div>
<br /></div>
<div>
Наиболее "сочным" цветом обозначены области с наибольшими рисками, на которых необходимо сосредоточиться. Почему риски наибольшие? Потому что <b>для обеспечения качества данной связки атрибут + компонент необходимо сделать больший объем работы</b>. </div>
<div>
Чем тусклее цвет, тем меньше приоритет в проработке именно этих частей продукта. </div>
<div>
<br /></div>
<div>
Области, выделенные белым, не говорят о том, что понятий "безопасность стеклобоя" или "долговечность петли под темляк" не существует. Просто на понятие качественного продукта они влияют очень посредственно, а потому разработка решений по этим связкам аттрибут-компонента будет происходить только в случаях, когда свободного времени на это более, чем достаточно. Изначально же, в план они не вносятся. </div>
<div>
<br /></div>
<h3 style="text-align: left;">
Подводим итоги </h3>
<div>
Благодаря методике АСС нам удалось чётко обозначить для себя основные сильные стороны нашего продукта и спектр задач, с которыми он будет справляться, прописать основные функциональные элементы и способности продукта и приоритезировать их для дальнейшей работы.<br />
<br />
Мы можем смело передавать эту таблицу разработчикам, которые всегда будут знать, на каких именно "способностях" продукта им стоит сосредотачиваться в первую очередь. </div>
<div>
Так же, попользоваться плодами АСС-методологии не побрезгуют и инженеры тестирования продукта, которые при планировании контроля качества будут сразу знать, чему стоит уделить больше времени, а что вообще не рассматривать на первых порах.<br />
<br />
Этот метод прекрасно масштабируется и поддерживается в рамках одной электронной таблицы, позволяющей на одном экране видеть и АСС-матрицу и список всех способностей для продукта(каждую из которых, к слову, стоит подсвечивать тем же цветом, которым подсвечено пересечение ее атрибута и компоненты). </div>
<div>
<br /></div>
<div>
При этом, насколько бы мы не углублялись в сам процесс масштабирования и расширения функциональных возможностей продукта, мы всегда сможем держать руку на пульсе наиболее нуждающихся во внимании компонентов.</div>
<div>
</div>
<div>
И напоследок, хочу пожелать всем, кто планирует заниматься бизнесом в IT, только одно: </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVX_IqrFIIwPvXYfXtBdpkyH_sz-10D3PFRkykTta54T5TvGJqSTdHjiopC3Ioy0A22dXTRX4phD81WiTG_qCjq3ax-Ql8eFDR2uZALCrJAmRLr4Zn2FDNsUoCpu9SUt3jiD8dZNN4VFF/s1600/neslozh.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="225" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsVX_IqrFIIwPvXYfXtBdpkyH_sz-10D3PFRkykTta54T5TvGJqSTdHjiopC3Ioy0A22dXTRX4phD81WiTG_qCjq3ax-Ql8eFDR2uZALCrJAmRLr4Zn2FDNsUoCpu9SUt3jiD8dZNN4VFF/s1600/neslozh.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<b>Хороших выходных, котаны! :) </b></div>
<div>
<br /></div>
</div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-78635590892576903272015-03-26T01:12:00.003-07:002015-03-26T01:16:44.183-07:00Профессиональное мышление<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="text-align: center;">
<h3>
<b>Задача: </b><br /><span style="font-weight: normal;"><i><i>Есть две фигуры: прямоугольник и квадрат. </i></i><i><i>Что из них является частным случаем чего? </i></i></span></h3>
</div>
<i></i><br />
<i>
</i>
<br />
<i>
</i>
<i><br /></i>В школе на уроках геометрии нам объясняли, что у любого прямоугольника есть четыре стороны, два измерения и каждый из его уголов равен 90 градусам. И случай, когда оба измерения равны(когда мы получаем квадрат) является частным.<br />
<br />
А что, если взглянуть на проблему глубже и представить квадрат в качестве объекта? С точки зрения объектно-ориентированной концепции, у объекта "квадрат" всего одно поле размера, значение из которого используется для определения обоих измерений. А в объекте "прямоугольник", помимо всего прочего, есть необходимость определять еще и второе поле для другого измерения. Вот и получается, что квадрат является неким абстрактным классом, а класс "прямоугольник" его дополняет.<br />
<br />
Этот вопрос часто задают на собеседованиях разработчикам, которые программируют на объектно-ориентированных языках.<br />
И именно благодаря таким нетривиальным загадкам удается выделить очень важное качество успешного кандидата - способность профессионально мыслить.<br />
<br />
Разработчики воспринимают тривиальные для обычной жизни вещи, как объекты. Тестировщики нюхом чуют дефекты в лифтах(ох, какой каламбур получился), кофемолках и душевых распылителях. И, наверное, именно с этого, с постановки профессионального мышления, стоит начинать составлять план развития по своей специализации.<br />
<br />
А какие вы знаете примеры профессионального мышления?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://rostup.ru/wp-content/uploads/2012/05/%D0%BA%D1%80%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_kriticheskoe_myshlenie.jpeg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://rostup.ru/wp-content/uploads/2012/05/%D0%BA%D1%80%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B5_%D0%BC%D1%8B%D1%88%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_kriticheskoe_myshlenie.jpeg" height="254" width="320" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com2tag:blogger.com,1999:blog-6078244058489682139.post-15648478287099587352015-03-21T04:45:00.001-07:002017-03-23T10:04:26.770-07:00IT-Jam 2015<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="blogaway-section">
Итак, сегодняшний<a href="http://www.itjam.com.ua/" target="_blank"> IT-Jam 2015</a> завершен. Переварив всё пережитое, думаю, есть смысл дополнить текстовую трансляцию, которую я вел, и сформировать более или менее внятный отчётец по прошедшему мероприятию. Всё это плюс немного фото под катом, так что вэлкам.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://blog.rabota.ua/wp-content/uploads/2015/03/ay-ty-dzhem1-678x268.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://blog.rabota.ua/wp-content/uploads/2015/03/ay-ty-dzhem1-678x268.jpg" height="126" width="320" /></a></div>
<div style="text-align: center;">
<br /></div>
<br />
<a name='more'></a><br />
<br />
<h3 style="text-align: left;">
Дух мероприятия.</h3>
<div>
Вот уж не знаю, то ли это всё очень завышенные ожидания по результатам посещения других серьёзных конференций, то ли размах, с которым IT-Jam рекламировался, но я почему-то ждал увидеть что-то вроде <a href="http://idcee.org/" target="_blank">IDCEE </a>или <a href="http://item.dp.ua/" target="_blank">ITEM</a>, а на деле получил что-то из разряда <a href="https://vk.com/university_2014" target="_blank">UniversITy</a>. Словом, серьёзность конференции из впечатлений об оной улетучивалась с каждой минутой, проведенной в конференс-холле "Олимпийский".<br />
<br />
В какой-то момент из сурьёзного такого мероприятия всё это превратилось в самую банальную "движуху", тусовку IT-шников и околоITшных людей, смачно разбавленных школьниками и любителями бесплатно перекусить(с этим, кстати, не сложилось).<br />
Вы, конечно, можете возразить, что любое подобное мероприятие - площадка для нетворкинга. Не поспорю. Но каким-то странным образом тому же украинскому офису Яндекса умудряется делать очень информативные и интересные доклады и прекрасно планировать агенду конференций и субботников так, что времени хватает и на послушать и на пообщаться.</div>
<div>
<br />
<script type="text/javascript">
SmartyOutVideo.addPlacement({
"placement_id":"4445"
});
</script>
<br />
<br /></div>
<div>
К слову, впервые за четыре года посещения или организации разнообразных айтишных(и не очень) ивентов я почувствовал себя не совсем в своей тарелке. Не было что ли организованности в происходящем. И, возможно, виноваты в этом две главных площадки для спикеров с бесконечным потоком народа между ними, практически минимальное присутствие волонтёров, отсутствие каких-то внятных спотов для общения, так чтобы вокруг тебя постоянно не шаталась толпа людей.<br />
<br />
А вот так выглядел регистрационный "набор":<a href="https://pp.vk.me/c625421/v625421856/22a23/lNkbmZo-eo0.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" height="377" src="https://pp.vk.me/c625421/v625421856/22a23/lNkbmZo-eo0.jpg" width="640" /></a></div>
<div>
Магнитик, стикер, браслет и карта/агенда мероприятия. Словом, ничего необычного. </div>
<div>
<br /></div>
<div>
<h3>
Доклады и докладчики.</h3>
</div>
<div>
Заранее попрошу прощения за необъективность, т.к. "Галя балувана" и ходил я только на те доклады на которые хотел.</div>
<div>
Что касается общего впечатления - это опять таки низкая информативность. И потеряли ее докладчики, стараясь о серьёзных темах рассказывать на доступном языке. И вот эта "общеобразовательность" всё и погубила. Доклады были, имхо, в большинстве своём ни о чём, коротенькие и без какого-либо call-to-action.</div>
<div>
<br /></div>
<b>Доклад Жульена Пенальбы о хакинге</b> запомнился тем, что спикер реально акцентировал внимание только на поп-культуре хакинга. Была, конечно, относительно толковая типизация хакеров, но всё это очень быстро переключилось на "Анонимус", клише из фильмов и приправлялось сальными шутками и рассказами про приключения спикера, в которых он выступал в роли чуть ли не Нео из реального мира, способного с помощью социального инжиниринга решить любые свои проблемы.<br />
<br />
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCA17iToAdnyOczmuI6rB2C-WjWrkJwuiitjXFC06trXczxMAUbHVARqZ_VcqXIJjis1isbjXLoel-hOL0utXDRn532YY72skO9NHo3qmYR5pVhhykeSm0xeBcLR8XKaMxPg9cs7KQ1A5Y/s640/1426938244191.jpg" imageanchor="1"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCA17iToAdnyOczmuI6rB2C-WjWrkJwuiitjXFC06trXczxMAUbHVARqZ_VcqXIJjis1isbjXLoel-hOL0utXDRn532YY72skO9NHo3qmYR5pVhhykeSm0xeBcLR8XKaMxPg9cs7KQ1A5Y/s640/1426938244191.jpg" /></a></div>
<div class="blogaway-section">
<b>В докладе о криптовалюте</b> мне больше всего понравилась фраза "Биткоин - реализация криптовалюты. Сеть ваших компьютеров - это Биткоин."<br />
Ну тут я, конечно, не растерялся, зашел в туалет, сжег все книги Олифера и Таненбаума по сетям, которые считал авторитетными источниками для получения знаний, и отправился слушать дальше.<br />
Словом, доклад был своего рода вводной для тех, кому слово "биткоин" было не знакомо вовсе. </div>
<div class="blogaway-section">
<br /></div>
<div class="blogaway-section">
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgHFUv5WDZLLJ687etvUlu4LTVZkZ-UOT5IlUrVEcccNgKqsam-r37S44fcNxqEIPa0rYux39TSaGRMuus_ZPJ5LjX7jj57P6oEvXvui4bjX5r_xufSX8btmZiJnTRgaE8wk16FMu4Z4-ok/s640/1426939495897.jpg" /></div>
<div class="blogaway-section">
<blockquote class="tr_bq">
<i>"А еще рассказывает про ребят, собирающих марки. Ммм, мы поняли, о чем ты, друг.)"</i></blockquote>
<br />
Затем следовал <b>доклад на тему egaming</b> от одного из главных спонсоров конференции - компании BetLab. </div>
<div class="blogaway-section">
В докладе СЕО Илья Страх рассказывал о том, что электронный гэмблинг — это тренд, при чем, тренд, в лучших традициях отрасли, уходящий в мобайл. Говорил о том, что, конечно, чтобы выпускать качественный продукт, нужно немножко покрутиться в оффлайновой отрасли ставок и азартных игр, и напоследок рассказал несколько саксесс- и одну ансаксесс-стори. :) </div>
<div class="blogaway-section">
Эпичности именно этому докладу добавил священник в рясе, мерно прошедшийся по правому краю зала и севший где-то в первых рядах. :)</div>
<div class="blogaway-section">
<br /></div>
<div class="blogaway-section">
Ещё <b>половина доклада про IoT</b> и я окончательно убедился в том, что большинство докладов здесь старались сделать доступными и общеобразовательнными, и в погоне за этой доступностью напрочь пожертвовали информативностью материала. </div>
<div class="blogaway-section">
Двигаемся дальше. </div>
<div class="blogaway-section">
<br /></div>
<div class="blogaway-section">
<h3>
Стенды компаний-партнёров.</h3>
<div>
По скольку выставка была совмещена с церемонией награждения IT Education Awards, то большинством компаний-партнёров были образовательные курсы в сфере IT. 99% - платные. Из них 70% - по QA. Что это? Попытки впихнуть в рынок кучу двухмесячных джунов, оплативших курсы? Или всё-таки тренд и потребность рынка? Не знаю.<br />
Но всё-таки предположу, что просто кризис и желание основателей курса срубить лёгких и быстрых денег на иллюзии о том, что через тестирование войти в IT можно без особых умственных усилий.<br />
<br />
Зато могу вам сказать, что среди всего этого образовательного угара из разряда "Выучить С++ за 21 день" я встретил основателей крутячего проекта МООК <a href="http://prometheus.org.ua/" target="_blank">Prometheus</a>. У них наполеоновские планы на будущее и куча оптимизма в запасе. Уверен, у них все получится. Ребята не словом, а делом пытаются изменить высшее образование в стране. И пока у них это прекрасно получается. <br />
Поддержать ребят, кстати, можно <a href="http://prometheus.org.ua/%D0%B7%D0%B1%D1%96%D1%80-%D0%BA%D0%BE%D1%88%D1%82%D1%96%D0%B2-%D0%BD%D0%B0-%D0%BD%D0%BE%D0%B2%D1%96-%D0%BA%D1%83%D1%80%D1%81%D0%B8-%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D1%83/" target="_blank">ТУТ</a>.</div>
</div>
<div class="blogaway-section">
<br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT6I9DyJ_dp38zxeJY8q1LEkBgm7Cer0-tLNKAeJrN8WarJDfZBxq8SPvunSatcDEgM-RHYonj5AViEw117oY5W_N-gxa16CK4L8_DhxO3cB2Fi_X-_5u-kv92VWxlZdobLfy-DsU9FAJy/s640/1426942008497.jpg" /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhT6I9DyJ_dp38zxeJY8q1LEkBgm7Cer0-tLNKAeJrN8WarJDfZBxq8SPvunSatcDEgM-RHYonj5AViEw117oY5W_N-gxa16CK4L8_DhxO3cB2Fi_X-_5u-kv92VWxlZdobLfy-DsU9FAJy/s1600/1426942008497.jpg"> </a><br />
<br />
<img src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwXI46cQxBZMk8JzvXm6g4FgNFjudGHwzZfqmbgRbs5QeXMhECU5WM3aqfP6_sdGGuNDCob888StK8vxosgfq5lb7Pwe8KE8tVg5flwO_jPvf8ROa5UnDc6FgZM-LXxVFPFqIPtO7qx-0p/s640/1426942024106.jpg" /><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjwXI46cQxBZMk8JzvXm6g4FgNFjudGHwzZfqmbgRbs5QeXMhECU5WM3aqfP6_sdGGuNDCob888StK8vxosgfq5lb7Pwe8KE8tVg5flwO_jPvf8ROa5UnDc6FgZM-LXxVFPFqIPtO7qx-0p/s1600/1426942024106.jpg"> </a></div>
<div class="blogaway-section">
<br /></div>
<div class="blogaway-section">
<br /></div>
Интересный случай был возле стенда академии "Шаг". Признаюсь сразу, ребят серьёзным образовательным учреждением не считаю.<br />
У них скоро должен открыться класс по робототехнике в киевском филиале, в честь чего они на свой стенд навалили вагон неработающих роботов и два квадрокоптера. Один из них - DJI Phantom.<br />
Подойдя к стенду "Шага", у меня состоялся вот такой диалог с их представительницей:<br />
<br />
Девочка:<i> - Здравствуйте! у нас вот открывается новый класс, в котором вы сможете научиться программировать под все эти устройства и даже сделать такие. </i><br />
<br />
Я(показывая пальцем на Фантомку): <i>- А такое тоже можете научить делать? </i><br />
<br />
Девочка:<i> - Ну да! </i><br />
<br />
Я:<i> - Подскажите, а сколько вот такая штука примерно по времени делается? </i><br />
<br />
Девочка(толкая своего сотрудника, играющего на смартфоне): <i>- Сколько это делается? </i><br />
<br />
Сотрудник(явно прочувствовавший всю толстоту троллинга): <i>ну месяца 2-3, сколько там доставка из Штатов идет.</i><br />
<i><br /></i>
Девочка(явно желая "отыграться"): <i>зато у нас можно будет научиться печатать лопости для него на 3D-принтере!..</i><br />
<br />
Занавес...<br />
<br />
<h3>
IT Education awards.</h3>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div>
Ну, здесь особо-то и говорить не о чем. Сложилось ощущение, что номинации были для всех.<br />
Знаете, это как на выпускном.<br />
<br />
Те, у кого были хорошие оценки, получали грамоты за примерную успеваемость.<br />
Те, кто что-то организовывал - за активное участие в жизни школы.<br />
А остальные - благодарность родителям за выпускника. :)<br />
<br />
Просто отдельно хотел бы отметить харьковскую<a href="http://itbursa.com/" target="_blank"> IT-бурсу</a>, <a href="http://lits.com.ua/" target="_blank">Lviv IT School</a> и <a href="http://bionic-university.com/" target="_blank">Bionic University</a> за то что на фоне всех этих "Всего 20 дней и вы сможете сдать на сертификат Oracle и написать свою первую продающуюся программу" достойно держат марку независимого образования и делают свою работу очень качественно.<br />
<br />
Ну и, конечно же, Prometheus получили награду в номинации "Лідери Змін". Очень заслуженно и справедливо, имхо. </div>
<div>
<br /></div>
<div style="text-align: left;">
<img border="0" height="480" src="https://pp.vk.me/c625421/v625421856/229f1/rsAR9L9XseY.jpg" width="640" /></div>
<div>
<br /></div>
<div>
<br />
На этом для меня сегодняшний ивент был окончен. </div>
<div>
Резюмируя, скажу что ходить на подобные тусовки стоит как минимум для того, чтобы увидеться с уймой народу, которую не видел до этого по 2-3 года, пообщаться, потролить нерадивых "тыжайтишник"-ов и порадоваться за свои любимые проекты. </div>
</div>
<!-- Blogger automated replacement: "https://images-blogger-opensocial.googleusercontent.com/gadgets/proxy?url=http%3A%2F%2Flh6.ggpht.com%2F-O332cYI6_i4%2FVQ1ZuC_EkuI%2FAAAAAAAAAXY%2Fl5tgE0wzzc4%2Fs640%2F1426938244191.jpg&container=blogger&gadget=a&rewriteMime=image%2F*" with "https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhCA17iToAdnyOczmuI6rB2C-WjWrkJwuiitjXFC06trXczxMAUbHVARqZ_VcqXIJjis1isbjXLoel-hOL0utXDRn532YY72skO9NHo3qmYR5pVhhykeSm0xeBcLR8XKaMxPg9cs7KQ1A5Y/s640/1426938244191.jpg" -->Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0Київ, Україна50.4331731 30.5198619tag:blogger.com,1999:blog-6078244058489682139.post-19051398695273284632015-03-02T03:58:00.000-08:002015-03-02T03:58:47.184-08:00Хакинг: из разработки в тестирование.<div dir="ltr" style="text-align: left;" trbidi="on">
Привяу!<br /><br />
Паршивая погода и проблемы с давлением - неприятная неожиданность, благодаря которой сегодня пришлось поработать из дому.<br /><br />Но это стало своеобразным преимуществом для меня, позволив мне наконец-то открыть новую страничку в освоении и обучении тестированию - Pentesting.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://podcast.concordiashanghai.org/wp-content/uploads/2014/12/hacking-data.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://podcast.concordiashanghai.org/wp-content/uploads/2014/12/hacking-data.jpg" height="240" width="320" /></a></div>
<br />
<br />
Под катом куча интересностей.<br />
<br />
<a name='more'></a><br />
<br />
<b>PenTesting(Penetration testing)</b> - методика произведения оценки защищенности компьютерной системы(или сети) путём моделирования вторжений.<br />
<br />
Если проще - то это "добрый" хакинг с целью выяснить слабые места в защите той или иной системы, задокументировать их и передать отделу компьютерной безопасности с целью скорейшего устранения оных. Распространяется как на аппаратную часть системы, так и на программную.<br />
<br />
<br />
В свое время Марк <strike>Цукерман</strike> Цукерберг именно таким образом набирал себе разработчиков в команду, устраивая мероприятия, название которых стало позже именем нарицательным и трендом среди соревнований для программистов и стартап-команд - хакатоны.<br />
<br />
Но стоит задаться вопросом: неужели знания методологии пентестинга полезны только разработчикам и сетевым специалистам? Контроль и аудит качества безопасности с использованием пентестинга заставляет работу QA-инженеров заиграть новыми красками, а их мозги - хорошенько поднапрячь извилины.<br />
Вот и я на всё это созрел.<br />
<br />
В блоге попробую вести своего рода конспект, состоящий из видео, цитат, переводов и мемов, связанных с пентестингом.<br /><br />Начать изучение планирую с курса Ethical Hacking на Youtube: http://goo.gl/V5orMB(ссыль на плейлист)<br /><br />
Так же хочу осилить несколько книг по Certified Ethical Hacking на русском и <strike>нерусском</strike> английском языках.<br />
<br />
Возможно, будет несколько переводов зарубежных статей на русский или украинский языки.<br />
<br />
Поехали!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://funny-pictures-blog.com/wp-content/uploads/2012/10/Hacking.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://funny-pictures-blog.com/wp-content/uploads/2012/10/Hacking.jpg" height="320" width="212" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-41559830000428260252015-01-14T12:23:00.000-08:002015-01-14T12:23:26.326-08:00Кракозябры в LinkedIn<div dir="ltr" style="text-align: left;" trbidi="on">
Как-то и в бложеке стало пусто, и у меня медленно, но верно испаряется время для написания сюда. Работа, сайд-проекты, поиски квартиры(кстати да, если вы вдруг сдаете квартиру - пишите в комментарии, буду рад. о том, что хотим - <a href="https://pp.vk.me/c621720/v621720856/6c81/uUxXbu4mG40.jpg" target="_blank">здесь</a>).<br /><br />
Случайно заскочил с почты в LinkedIn и увидел вот такую кракозябровую красоту.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvcsATlh-ng_uxUuSVwGO4cPb94HKTIfxU3iASrUkhJIRaDaYdLhSTtGVBzvlWuhXqCZpBgY4JVl456muTcsjZ3WeDUpqowbjEQt73rLvBESlmuBH4rgLKrD_zxLf-Ai6YK11eqEwHnFCK/s1600/linkedin.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvcsATlh-ng_uxUuSVwGO4cPb94HKTIfxU3iASrUkhJIRaDaYdLhSTtGVBzvlWuhXqCZpBgY4JVl456muTcsjZ3WeDUpqowbjEQt73rLvBESlmuBH4rgLKrD_zxLf-Ai6YK11eqEwHnFCK/s1600/linkedin.PNG" height="183" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
У кого-нибудь еще так?</div>
</div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-56585193365020433382014-12-18T03:15:00.003-08:002014-12-18T03:15:42.654-08:00Снова Twitter...<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyMvEi6z5Rbv8y9aNIzGaQI-WtngTIgAPRtRzLf-fI0YsvtynTFgbxePttXLXKaridsOGhZ37UVmIMip-t40EkvZlGThyxly8ExzACWVh5McsUp92IO1dkxQyr-minIi83Y1RWxmVIaWr8/s1600/Screenshot+from+2014-12-18+13:14:02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhyMvEi6z5Rbv8y9aNIzGaQI-WtngTIgAPRtRzLf-fI0YsvtynTFgbxePttXLXKaridsOGhZ37UVmIMip-t40EkvZlGThyxly8ExzACWVh5McsUp92IO1dkxQyr-minIi83Y1RWxmVIaWr8/s1600/Screenshot+from+2014-12-18+13:14:02.png" height="376" width="400" /></a></div>
<br />Ничего странного. Просто обратите внимание на поле для логина. А это один из мировых топ-ресурсов. Так и живем. :) </div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-34553845491688177202014-12-16T02:54:00.001-08:002014-12-16T04:50:10.276-08:00Будьте осторожны. В Facebook орудует новый вирус<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Сегодня утром мне на почту пришло уведомление(даже три) о том, что меня отметили на Private Video. :) И рандомная текстовая строка(видимо для того, чтобы сообщения не помечались, как спам).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwUumJHBTOm_pPNEmlP3-tdvSp6d-9ZEzlfORZT-gE203ak_1o8InK7-Ns-beOZQ0piYlYIZUdG7bOIzzvA3Y8TidGS9Eb-070n5hsU-khig_JtOPmdeWvKelU-31MBQXRTI4ICbPigaxI/s1600/Screenshot+from+2014-12-16+12:42:56.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwUumJHBTOm_pPNEmlP3-tdvSp6d-9ZEzlfORZT-gE203ak_1o8InK7-Ns-beOZQ0piYlYIZUdG7bOIzzvA3Y8TidGS9Eb-070n5hsU-khig_JtOPmdeWvKelU-31MBQXRTI4ICbPigaxI/s1600/Screenshot+from+2014-12-16+12:42:56.png" height="214" width="320" /></a></div>
<br />
<br />
Заход по ссылке ведет на FB реального пользователя. Тыц по сообщению с этим видео ведет на амазоновское зеркало, на котором крутится сайт с подозрительно похожим на FB интерфейсом.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRwH3WPNsq-bIIYg6rpAcgYC_GTjRvsHqtd4mO0Iq88uGxEXBjNdPOE64VoB1HdZaKVdkNQZytf_Caldr7ywQ8axvhJWcO_WTCXH9P1BADwumfEVWtP-09Li1qqYttySaTj5i791s6FvTQ/s1600/Screenshot+from+2014-12-16+12:44:10.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhRwH3WPNsq-bIIYg6rpAcgYC_GTjRvsHqtd4mO0Iq88uGxEXBjNdPOE64VoB1HdZaKVdkNQZytf_Caldr7ywQ8axvhJWcO_WTCXH9P1BADwumfEVWtP-09Li1qqYttySaTj5i791s6FvTQ/s1600/Screenshot+from+2014-12-16+12:44:10.png" height="148" width="320" /></a></div>
<br />
Кроме значка "PLAY" на псевдо-youtube фрэйме ни одного кликабельного элемента на этом сайте нет. Подозреваю, что именно после клика на значок PLAY происходит угон аккаунта.<br />
<br />
Так же, угнанные аккаунты благополучно рассылают похожие ссылки в личных сообщениях.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhkdCfdjzUkHAznz1NFDL1lvbUlO821roQBly3TLIuxEJt5Bok8CAhajfzLD05lXDHAJRcVvUqy7Cd0uLLJv4PnY_f1u1sgeK8GkedMpmMNJeK9NTKvZZU8SaISZiTszClyCzglmT2enpd/s1600/Screenshot+from+2014-12-16+12:45:04.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjhkdCfdjzUkHAznz1NFDL1lvbUlO821roQBly3TLIuxEJt5Bok8CAhajfzLD05lXDHAJRcVvUqy7Cd0uLLJv4PnY_f1u1sgeK8GkedMpmMNJeK9NTKvZZU8SaISZiTszClyCzglmT2enpd/s1600/Screenshot+from+2014-12-16+12:45:04.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Гневить судьбу и кликать на "PLAY" и ссылки в сообщениях я не стал. Судя по тому, что письма пришли уже с трёх аккаунтов, нужно сказать, что тенденция у вируса опасная. Поменяйте пароли и берегите свои профили в лицокниге. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Вот небольшой гайдик по исправлению: </div>
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/FACb8-UMFkg" width="560"></iframe>
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Мир. </div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-50680414617481271122014-12-02T06:39:00.002-08:002014-12-02T10:35:27.657-08:00Не всё то видео, что твоё. Баг ВК с заменой контента<div dir="ltr" style="text-align: left;" trbidi="on">
Мой знакомый, <a href="https://vk.com/paulpotseluev" target="_blank">Паша</a>, сегодня обнаружил, что переозвученное им видео рекламы ВС РФ, выложенное в социальную сеть Вконтакте было заменено на оригинальный ролик.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/--O0bE0vQFg?feature=player_embedded' frameborder='0'></iframe></div>
<div style="text-align: center;">
<b>(пародия)</b></div>
<div class="separator" style="clear: both; text-align: center;">
<object class="BLOGGER-youtube-video" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0" data-thumbnail-src="https://ytimg.googleusercontent.com/vi/1idTSSc_7Ts/0.jpg" height="266" width="320"><param name="movie" value="https://youtube.googleapis.com/v/1idTSSc_7Ts&source=uds" /><param name="bgcolor" value="#FFFFFF" /><param name="allowFullScreen" value="true" /><embed width="320" height="266" src="https://youtube.googleapis.com/v/1idTSSc_7Ts&source=uds" type="application/x-shockwave-flash" allowfullscreen="true"></embed></object></div>
<div style="text-align: center;">
<b>(оригинал)</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
И всё, что смогла ответить тех-поддержка на этот прецедент - это то что "Само по себе видео замениться не могло."</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
То же самое ответил и пресс-секретарь VK.com Георгий Лобушкин и проинформировал о том, что ответственные за работу видео-сервисов уже разбираются с проблемой. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Такие пироги. :) </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Подробное описание истории со скринами службы поддержки ВК тут: <a href="https://medium.com/@paulpotseluev/81cee43b432">https://medium.com/@paulpotseluev/81cee43b432</a></div>
</div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-2177336220722241622014-11-27T10:09:00.000-08:002014-11-27T14:06:40.848-08:00П - Популярность<div dir="ltr" style="text-align: left;" trbidi="on">
Мониторил сегодня статистику блога. Оказывается, кроме статей о <a href="http://bilohorodskyi.blogspot.com/2014/10/blog-post_2.html" target="_blank">багах Вконтакте</a>, самый масштабный источник траффика - это очередной <a href="http://dou.ua/lenta/digests/qa-digest-1/" target="_blank">дайджест новостей из мира QA</a> на DOU, в который успела попасть моя статья о <a href="http://bilohorodskyi.blogspot.com/2014/10/blog-post_25.html" target="_blank">портфолио для тестировщика</a>.<br />
<br />
В общем, спасибо вам, что читаете. Я прям такой весь азаза. Словом, растаял. :)<br />
<br />
В комментариях к этому посту буду рад увидеть темы, освещения которых не хватает и вы хотели бы лицезреть их в моем скромненьком и уютненьком(ПОКА ЧТО!111адинадин ПОРАБОЩЕНИЕ ЗАХВАТ МИРА) бложеке.<br />
<br />
Пис.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRoHT894gavyh-OXt5cvDmWSmF2mFKWcQ92x-r87jUTROjwaEj8Jg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://encrypted-tbn1.gstatic.com/images?q=tbn:ANd9GcRoHT894gavyh-OXt5cvDmWSmF2mFKWcQ92x-r87jUTROjwaEj8Jg" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com1tag:blogger.com,1999:blog-6078244058489682139.post-78058493178662482142014-11-27T09:55:00.000-08:002014-11-27T09:55:10.082-08:00Разговор на работе<div dir="ltr" style="text-align: left;" trbidi="on">
<i>- А вот есть у нас один въетнамец, Бао, так вот его имя у нас уже - имя нарицательное. </i><br />
<i>Мы даже придумали такой термин, как <b>БаоБаг</b>. </i><br />
<i>В общем, этот въетнамец заводит баги, половину которых в Jira'е закрывают как "Invalid". На что он их потом заново открывает и закрывает как "Fixed"... Такое ощущение, что им положенную миску риса дают только за фикшеные баги...</i><br />
<i><br /></i>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.theprisma.co.uk/wp-content/uploads/2011/09/La-rebelion-Nguyen-muejers.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.theprisma.co.uk/wp-content/uploads/2011/09/La-rebelion-Nguyen-muejers.jpg" height="230" width="320" /></a></div>
<i><br /></i></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-7430634273702955872014-11-25T13:53:00.002-08:002014-11-25T13:56:59.159-08:00Friday morning...<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: left;">
В Google, например, есть даже специальные meet-up'ы команд разработки/тестирования, которые называются "Thanks God It's Friday!"</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.troll.me/images/little-girl-finger-crossed/how-qa-feels-on-friday-morning.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.troll.me/images/little-girl-finger-crossed/how-qa-feels-on-friday-morning.jpg" height="320" width="307" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-3301979087375767312014-11-24T07:37:00.000-08:002014-11-24T07:37:17.563-08:00Как выяснилось...<div dir="ltr" style="text-align: left;" trbidi="on">
Оказывается, часто для тестирования так же нанимают дешевую рабочую силу, но, в отличие от разработчиков из Индии, тестировщики очень часто - вьетнамцы или корейцы.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://mc7.ru/images/peoples.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://mc7.ru/images/peoples.png" height="84" width="320" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-67013559790525526962014-11-22T05:12:00.000-08:002014-11-22T05:20:10.496-08:00Не Говори Так: Пять Наиболее Нелюбимых Терминов Тестирования ПО [Перевод] <div dir="ltr" style="text-align: left;" trbidi="on">
<a href="http://ih3.redbubble.net/image.12076485.9222/sticker,375x360.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em; text-align: center;"><img border="0" src="http://ih3.redbubble.net/image.12076485.9222/sticker,375x360.png" height="307" width="320" /></a><br />
<i>Когда ты так говоришь, ты выглядишь идиотом. </i><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
Или, по крайней мере, складывается ощущение, что ты не до конца понимаешь, о чем говоришь. Существует огромное количество слов и фраз, используемых в сфере тестирования программного обеспечения, вызывающих расстройство у тестировщиков, в равной мере из-за того, что эти термины используются слишком часто или их использование является абсолютно неуместным.<br />
<br />
<a name='more'></a><br /><br />
Ранее в статьях уже упоминалось о <a href="https://blog.utest.com/2014/05/15/testing-buzzwords-that-have-no-place-in-testing/" target="_blank">заумных словечках</a>, используемых тестировщиками, но один из членов сообщества недавно решил развить эту тему, разобравшись с терминологией, вызывающей наибольшее негодование среди прочих слэнговых и часто употребляемых слов из лексикона тестировщиков. Вот несколько самых ярких из них:<br />
<br />
<br />
<ul style="text-align: left;">
<li><b>Мануальное(ручное) тестирование:</b> это один из наиболее ненавистных терминов в индустрии. <i>Мануальный тестировщик, мануальный менеджер проекта и мануальный сетевой администратор заходят в бар...</i></li>
<li><b>Глюк(лаг):</b> Баг — это не глюк. Глюк — это что-то необъяснимое и случайное в своем появлении. Тестировщики же ищут баги(дефекты) — повторяемые сбои в коде, которые могут быть выявлены с помощью определенного набора действий.</li>
<li><b>Ручное тестирование vs. Автоматизированное тестирование:</b> Как только второй термин набрал популярность, итак бесконечные обсуждения превратились в настоящую войну. </li>
<li><b>Валидация vs. Верификация:</b> Иногда я могу сказать "верифицирую", когда на самом деле говорю о валидации, просто, чтобы пораздражать некоторых тестировщиков. По-моему, значимость этих терминов не превосходит того количества страданий и боли, которую я получаю, пытаясь заставить людей правильно оперировать этими понятиями, по этому я просто забил на то, чтобы волноваться об этом. </li>
<li><b>Тест vs. Проверка:</b> чесно говоря, неужели кому-то кроме тестировщиков есть какая-то разница? Тестировщики постоянно дискутируют насчёт того, как и когда эти два термина должны употребляться. А ведь это пустая трата времени. Каждый инженер из тех, с кем мне когда-либо приходилось общаться, всегда знает, что такое регрессионное тестирование. Нет смысла это объяснять. </li>
</ul>
<i>А что бы вы добавили в этот список? Комментируйте!</i><br />
<br />
Оригинальная статья: <a href="http://blog.utest.com/2014/10/09/dont-say-that-the-most-disliked-software-testing-terminology/" target="_blank"> http://blog.utest.com/2014/10/09/dont-say-that-the-most-disliked-software-testing-terminology/</a><br />
Картинка для тех, кто поймет соль статьи. :) </div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-48450549161292476572014-11-07T05:18:00.003-08:002014-11-07T05:18:56.436-08:00О постановке мозгов для тестировщика<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://www.altamirarecovery.com/wordpress/wp-content/uploads/2013/09/brain-icon.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://www.altamirarecovery.com/wordpress/wp-content/uploads/2013/09/brain-icon.png" /></a></div>
Предположим, перед вами - текстовое поле. Самое обычное текстовое поле. В него можно ввести число от -99 до 99. После "тыца" на Enter на выходе получаете Строку в формате "Вы ввели число: ..."<br />
<br />
И вот садится наш тестировщик Вася за машинку, открывает софтину и начинает думать:<br />
<i>1. Оукей, давайте сначала разгребемся с классами эквивалентности. У нас их четыре: </i><br />
<i>[1..9], [-9..-1], [10..99]. [-99..-10]. </i><br />
<i><br /></i>
<i>2. Хм, а нолик-то ни туда, ни туда не влезает, и его вообще можно со знаками загонять в это самое поле. Давайте и это учтём. </i><br />
<i><br /></i>
<i>3. Продумаем тестирование граничных значений.</i><br />
<br />
И вот сидит наш Вася, довольный и радостный, т.к. умудрился за столь короткое время покрыть все-все валидные значения и даже несколько невалидных(+0, -0, негативные граничные значения меньше -99 и больше 99)<br />
Пятница, вечер, сидеть на работе не хочется, и наш Василий, хватая конверт с очередной зарплатой, идет отмечать окончание рабочей недели в рэсторан.<br />
<br />
<b>Но верно ли, что при правильном прохождении тест-кейсов, кусок, назначенный Василию для проверки, будет работать правильно? </b><br />
<br />
Теперь перенесемся на секунду в отдел разработки, где очень молодой, но безумно перспективный Junior Java Developer Сергей пишет код для данного функционала. И принимает его метод на вход далеко не строку, а коды ASCII-символов.<br />
Сергей, будучи разработчиком перспективным, заранее определяет граничные значения кодов для чисел. Например, по верхней границе - 57(ASCII-код девятки). Но конец тяжелой рабочей недели и пламенная СМСка от любимой девушки не дают Сергею сосредоточиться, и вместо 57 в коде оказывается граничное верхнее значение 58.<br /><br />Казалось бы, при правильных значениях всё должно работать.Но стоит нашему дорогому и горячо любимому пользователю ввести символ двоеточия, и программа будет свято убеждать его в том, что этот символ является числом. Итог: Сергея в предынфарктном состоянии срывают на работу(Release is coming) прямо из объятий любимой, Василий остается без премии, а наш дорогой пользователь строчит гневные комментарии в раздел поддержки программы.<br />
<br />
<h3 style="text-align: left;">
<span style="font-weight: normal;"><i>А всего этого могло бы и не случиться, если бы Василий заранее принял бы во внимание подобный аспект. Вот почему так важно ставить себе мозги в правильное русло, занимаясь тестированием. </i></span></h3>
</div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com3tag:blogger.com,1999:blog-6078244058489682139.post-54419129580912258392014-11-02T16:15:00.000-08:002014-11-02T16:19:51.089-08:00Бага на eBay.com: рассылаем письма в никуда.<div dir="ltr" style="text-align: left;" trbidi="on">
Доброй ночи, котаны. Багу эту нашел где-то с 2-3 дня назад. Оказывается, такие серьёзные ребятки, как <a href="http://ebay.com/" target="_blank">eBay.com</a>, умеют отправлять списьма из своей рассылки в никуда.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://znay-kak.ru/wp-content/uploads/2013/03/kak-pokupat-na-ebay-poisk.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://znay-kak.ru/wp-content/uploads/2013/03/kak-pokupat-na-ebay-poisk.png" height="192" width="320" /></a></div>
Итак, милости просим под кат за подробностями:<br />
<br />
<a name='more'></a>Не знаю, насколько давно, <strike>и пофиг,</strike> но на eBay существует специальный распродажный раздел. Зайти в него можно либо по поп-апу, который вываливается в последнее время довольно часто, либо нажав на изображение сверху сайта:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhifgf-7McgaPjmiHWcDgLs9YWh-w1RVvsXge9yv0eE8VDrlECV9v7eniKSxZnb_RVtn59JJozEXPUarQDNiINsUL5rS-ROc9Nz1Miz9_1cCaHFP8p1WRjORmiZoZ2dRnexi4l7fdLLYQ8q/s1600/ebay1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhifgf-7McgaPjmiHWcDgLs9YWh-w1RVvsXge9yv0eE8VDrlECV9v7eniKSxZnb_RVtn59JJozEXPUarQDNiINsUL5rS-ROc9Nz1Miz9_1cCaHFP8p1WRjORmiZoZ2dRnexi4l7fdLLYQ8q/s1600/ebay1.PNG" height="235" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
После нажатия, нас с вами должно перебросить на страничку <a href="http://globaldeals.ebay.com/">http://globaldeals.ebay.com/</a></div>
<div class="separator" style="clear: both; text-align: left;">
И тут-то начинается самое интересное. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidFwEYmB8ZZATI-_l2Uxj88maVdDeqOr61ZCWvgP17-5p7WRFsq-hGvXNLckG-6eFR8PoLmTf3D-_-AmlkjUlkfUq-KyAfOB20s0f1WPtwL3m5Xq8Iu3uvmNx6CGGEyBgBVfhBRC_mcKTJ/s1600/ebay2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEidFwEYmB8ZZATI-_l2Uxj88maVdDeqOr61ZCWvgP17-5p7WRFsq-hGvXNLckG-6eFR8PoLmTf3D-_-AmlkjUlkfUq-KyAfOB20s0f1WPtwL3m5Xq8Iu3uvmNx6CGGEyBgBVfhBRC_mcKTJ/s1600/ebay2.PNG" height="233" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Форма подписки. Стандартный формат, казалось бы, ничего нового. И при попытке ввести неправильный адрес, мы получаем резонное сообщение об ошибке(давайте введем адрес типа "<i>vlad@portfolio</i>") </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKHeB2T2IKykuyZj2WTLurIyK4fS52p1nFjkfx-fVnXf5GvuPtqYUSH-dRt0R3Opa0m8jdssWjY1pvnSejLLGc2MnmOsb8f1V-zHdWMvNBBeeJCFeffDhr9fy_szPXst3AHCZhXfb8cJDC/s1600/ebay3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjKHeB2T2IKykuyZj2WTLurIyK4fS52p1nFjkfx-fVnXf5GvuPtqYUSH-dRt0R3Opa0m8jdssWjY1pvnSejLLGc2MnmOsb8f1V-zHdWMvNBBeeJCFeffDhr9fy_szPXst3AHCZhXfb8cJDC/s1600/ebay3.PNG" height="230" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Но добавив в конец адреса точку, получаем валидный, с точки зрения проверщика формы, email-адрес("<i>vlad@portfolio.</i>"), и благодарность за подписку на ежедневные объявления. Красота! :)<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg4Zqd1V8hgomXHl3KZgCrrOzbrCimDW1qwYaDb_Wg_8p646cMb2Sk9DdBeu0AsuqwUZl1BRQy9pjU7LS-RgBwRrViLZIHc65P6ZzjMhhdm3nCrKmamaUvIwQFIGpi_F5dNzqNhQ_S8wRO/s1600/ebay4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg4Zqd1V8hgomXHl3KZgCrrOzbrCimDW1qwYaDb_Wg_8p646cMb2Sk9DdBeu0AsuqwUZl1BRQy9pjU7LS-RgBwRrViLZIHc65P6ZzjMhhdm3nCrKmamaUvIwQFIGpi_F5dNzqNhQ_S8wRO/s1600/ebay4.PNG" height="213" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Так же, система считает валидными адреса с:</div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<ul style="text-align: left;">
<li>двумя символами "@":<i> vlad@@portfolio.com</i></li>
<li>кириллическим именем пользователя: <i>влад@portfolio.com</i></li>
<li>пропущенным доменным именем:<i> vlad@.com</i></li>
<li>только именем пользователя:<i> vlad@. </i>(интересно, что email "@." не приняло, говорит - инвалид. =/ )</li>
</ul>
<div>
<br /></div>
<div>
Вот такие дела, ребята. + 1 кейс с большим и респектабельным ресурсом. А где-то в недрах офисов eBay грустят e-mail маркетологи, топят в алкоголе свою печаль базисты и прозябают без работы тестировщики. </div>
<div>
<br /></div>
<div>
Хорошего понедельника, рабочего настроения и успехов! </div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/6nsPzZ3AkVc?feature=player_embedded' frameborder='0'></iframe></div>
<div>
<br /></div>
<br />
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-1337589619644790382014-11-01T01:19:00.001-07:002014-11-01T01:24:19.256-07:00"Основная идея в том, что тестирование должно перестать предоставлять информацию и начать влиять на качество..."<div dir="ltr" style="text-align: left;" trbidi="on">
<blockquote class="tr_bq">
<i> "Я пришла в тестирование в 2006 году маленьким тестировщиком на большой </i><i>аутсорсный проект. Сначала я научилась тестировать, заводить баги и общаться </i><i>с разработчиками и менеджерами.</i> </blockquote>
<blockquote class="tr_bq">
<i>Со временем я стала писать тесты, научилась </i><i>планировать и управлять тестированием. У меня появилась своя команда. </i><i>И чем дальше, тем больше мне становилось понятно, что тестировщики только </i><i>находят проблемы, но не могут их исправить. Они не могут сделать так, чтобы </i><i>проблема больше не повторилась. </i> </blockquote>
<blockquote class="tr_bq">
<i>И я чувствовала, что тестирование может при</i><i>носить больше пользы. </i><i>Я начала ездить на конференции, читала книги и статьи по тестированию, обща</i><i>лась с коллегами по индустрии. Везде учили, как лучше тестировать, как находить </i><i>больше ошибок, как быстрее находить ошибки. Тестировщики не хотели выходить </i><i>за рамки своей профессии. Им как будто нравилось чувствовать собственную важ</i><i>ность от того, что они нашли много багов.</i><i>Ответы на свои вопросы я нашла в статьях и докладах Джеймса Уиттакера. Его </i><i>основная идея в том, что тестирование должно перестать просто предоставлять </i><i>информацию и начать влиять на качество. Главная задача тестирования, говорил</i><i>Уиттакер, — это уменьшение количества ошибок в процессах разработки. Тогда </i><i>улучшится качество выпускаемого продукта.</i><i>Создать процесс, в котором сложно допустить ошибку, — вот настоящая цель </i><i>тестирования. Мы не можем полностью избавиться от ошибок, но можем построить </i><i>работу так, что сделать сразу правильно будет легче, чем ошибиться.</i> </blockquote>
<blockquote class="tr_bq">
<i> </i><i>В Google пошли именно в эту сторону, отказавшись от тестирования, которое </i><i>просто сообщало об ошибках. «Служба тестирования» трансформировалась в «На</i><i>правление продуктивности разработки», которое помогает разработчикам и ме</i><i>неджерам делать меньше ошибок и получать обратную связь как можно раньше. </i><i>Тестировщики в Google влияют на качество, потому что встраивают его на всех </i><i>этапах разработки программных продуктов."</i></blockquote>
Из книги "Как тестируют в Google".<br />
Ccылка: <a href="http://vk.cc/37avHc">http://vk.cc/37avHc</a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cdn2.business2community.com/wp-content/uploads/2013/12/QATesting.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cdn2.business2community.com/wp-content/uploads/2013/12/QATesting.jpg" height="244" width="320" /></a></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com0tag:blogger.com,1999:blog-6078244058489682139.post-34738643789515410262014-10-28T16:08:00.000-07:002014-10-29T05:16:52.745-07:00Спустя несколько часов после нахождения бага с деаноном администрации сообществ Вконтакте<div dir="ltr" style="text-align: left;" trbidi="on">
Честно говоря, я и не ожидал, что найденый дефект с сообществами(подробнее тут: <a href="http://goo.gl/RkeF6o">http://goo.gl/RkeF6o</a>) вызовет такую офигенную обратную связь, при чем не от команды поддержки, куда я отправил линк на статейку в блоге, а именно у пользователей соц. сети.<br />
<br />
И в последствии о нашей с Владом затее написали даже <a href="http://tjournal.ru/paper/admins-uncovered" target="_blank">TJournal</a>, <a href="http://ain.ua/2014/10/29/547481">AIN.ua</a> и один из самых популярнейших и старейших блоггеров рунета <a href="http://ibigdan.livejournal.com/15887837.html">Игорь Бигдан</a>.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-FPqtrXw0IXyQEksGjsQjYDLRs92RpRJ6-ywcaalutQnYW4P1HlEVCV5Z8thc6LLc0VvqFbdI-Kdals9MSsumPbnQ3XkPc9mestHkGppruxe3yFdJ5ux3a7M-IfouMCvSXK_T7wqtSV6w/s1600/res4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-FPqtrXw0IXyQEksGjsQjYDLRs92RpRJ6-ywcaalutQnYW4P1HlEVCV5Z8thc6LLc0VvqFbdI-Kdals9MSsumPbnQ3XkPc9mestHkGppruxe3yFdJ5ux3a7M-IfouMCvSXK_T7wqtSV6w/s1600/res4.PNG" height="85" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Подробности под катом:<br />
<br />
<a name='more'></a><br />
Сначала знакомые айтишники начали задаваться извечным скептицизмом: "Всё-таки, баг или фича?"<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGn0H9eDIkaC1pi3IWFywLciUEGbYVvPc-qB_GSRUt5e_5_sRUPl1EclSOdkY2PkTF_9-H8QAPGzgzcighA55UXvNAZRxxzy5oHLqxLexc-S9um_zy4GlkBUqNK99UUyR3UKij3oTG18YE/s1600/dialogue.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjGn0H9eDIkaC1pi3IWFywLciUEGbYVvPc-qB_GSRUt5e_5_sRUPl1EclSOdkY2PkTF_9-H8QAPGzgzcighA55UXvNAZRxxzy5oHLqxLexc-S9um_zy4GlkBUqNK99UUyR3UKij3oTG18YE/s1600/dialogue.PNG" height="640" width="428" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Затем, запись из социальной сети со ссылкой на блог подхватил мой любимый КПИшный паблик пиратской журналистики - <a href="https://vk.com/kpi_live" target="_blank">КПИ Live</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJr_Xawe2FZRWtGebP819gOExPCMT3krCWF2GB_JGXtPRcS4xbcQOGeXcy56STlKu_OSYi9GKEV_n1heeQcPTzGVVMbKPMPfxI9HKLzRWFsjE3giNBWkrGHPTGPsDmGSPlH2bc0DcNQTS/s1600/res1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjEJr_Xawe2FZRWtGebP819gOExPCMT3krCWF2GB_JGXtPRcS4xbcQOGeXcy56STlKu_OSYi9GKEV_n1heeQcPTzGVVMbKPMPfxI9HKLzRWFsjE3giNBWkrGHPTGPsDmGSPlH2bc0DcNQTS/s1600/res1.PNG" height="281" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Кстати, то, что репост сделал именно Гена, администратор паблика и мой хороший знакомый, узнал я именно по тому же самому алгоритму. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Опуская разнообразные флудопосты, стоит отметить, что идея с деанонимизацией ушла в массы и к вечеру <a href="https://vk.com/executeinstaller" target="_blank">Влад Герасименко</a> выложил на своей страничке <a href="https://vk.com/executeinstaller?w=wall115663510_464" target="_blank">пост</a>: </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHA3rQD-Qe27WqUDJNMBYZWwDFYjrv4_iCCN2BOKazVYs6g2pEkMqMslwlgLqpL901CC2hNybFPzEfOJ4YOiJLLDOPMUrtVUCrptw2slLTpXyJ2KDuRdJ-Im7VLapHQmdCzCy6_thf2IW5/s1600/res2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhHA3rQD-Qe27WqUDJNMBYZWwDFYjrv4_iCCN2BOKazVYs6g2pEkMqMslwlgLqpL901CC2hNybFPzEfOJ4YOiJLLDOPMUrtVUCrptw2slLTpXyJ2KDuRdJ-Im7VLapHQmdCzCy6_thf2IW5/s1600/res2.PNG" height="223" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Суть в чём: С помощью VK API, Влад(гг, тёзка) написал небольшое веб-приложение, которое по найденному мной алгоритму позволяет находить ID и имена-фамилии администраторов. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Сам же Влад указал, что "инфа сотка" бывает не всегда. Но по-крайней мере эта штука правда работает, например, я узнал, что закрытую группу нашего ректора ведет его помощница. ;) </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
И, собственно, ссылка на приложуху для тех, кому влом набирать с клавиатуры. самим: <a href="https://vk.com/away.php?to=http%3A%2F%2Fdrimacus182.github.io%2Fvk_admin%2F&post=115663510_464" style="background-color: white; color: #2b587a; cursor: pointer; font-family: tahoma, arial, verdana, sans-serif, 'Lucida Sans'; font-size: 11px; line-height: 15.3999996185303px; outline: none; text-decoration: none;" target="_blank">http://drimacus182.github.io/vk_admin/</a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Движуху вовремя подхватил <a href="https://vk.com/shevadno" target="_blank">паблик пиратской журналистики КНУ</a>, где использовали наши с Владом наработки в корыстных целях - дабы снять маски с администраторов <a href="https://vk.com/knustudents" target="_blank">самого популярного паблика студентов Шевы</a>:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgsiPFFDhQhc3puacQRNnGK_4jXFWQOsNPr05zBnvECFkr2pTd-ltT7ddJQXf3LtxkDyrHT1nWhnO8yxxWsgBXTd6M277iQLc-tvFhKXVT1jqB0KzPVhfagLrFQHiTC1UQeSz-MKiKionH/s1600/res3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhgsiPFFDhQhc3puacQRNnGK_4jXFWQOsNPr05zBnvECFkr2pTd-ltT7ddJQXf3LtxkDyrHT1nWhnO8yxxWsgBXTd6M277iQLc-tvFhKXVT1jqB0KzPVhfagLrFQHiTC1UQeSz-MKiKionH/s1600/res3.PNG" height="640" width="428" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Риали, очень приятно осознавать, что всё обернулось именно так, и одна небольшая бага стала своеобразной почвой для целого информационного бума, пусть и на ограниченом пространстве. : )</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Но куда более приятно было прочитать последнюю фразу в паблике "Х#@вая Шева": "КПИшники, ну вы и черти!)"</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
А утром информация о наших с Владом манипуляциях оказалась на TJournal: http://tjournal.ru/paper/admins-uncovered</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<b>И закончить, собственно, хотелось бы тем, что таки да, я действительно рассматриваю предложения по работе в области контроля качества программных продуктов.)</b></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-FPqtrXw0IXyQEksGjsQjYDLRs92RpRJ6-ywcaalutQnYW4P1HlEVCV5Z8thc6LLc0VvqFbdI-Kdals9MSsumPbnQ3XkPc9mestHkGppruxe3yFdJ5ux3a7M-IfouMCvSXK_T7wqtSV6w/s1600/res4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-FPqtrXw0IXyQEksGjsQjYDLRs92RpRJ6-ywcaalutQnYW4P1HlEVCV5Z8thc6LLc0VvqFbdI-Kdals9MSsumPbnQ3XkPc9mestHkGppruxe3yFdJ5ux3a7M-IfouMCvSXK_T7wqtSV6w/s1600/res4.PNG" height="85" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Мне это безумно интересно и я хочу развиваться в этой отрасли не на словах или для галочки. Меня очень качают и вдохновляют подобные моменты. А получать удовольствие от работы - это лучшее, что может быть для человека, стремящегося развиваться и делать толковые вещи. :) </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com3tag:blogger.com,1999:blog-6078244058489682139.post-74905549486659518152014-10-28T06:25:00.000-07:002014-11-02T16:18:22.561-08:00Два бага Вконтакте или "вычисляем автора репоста в сообщество" и "День Сурка в статистике сообщества"<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="http://vk.com/" target="_blank">ВК</a> мне всегда казался неким эталоном качества, ведь чем больше и масштабнее в плане охвата аудитории ресурс, тем больше внимания должно уделяться именно качеству выпускаемого продукта, ведь соответствовать нужно ожиданиям куда большего количества людей.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cs413320.vk.me/v413320453/32ef/MVJS9YHDGbc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cs413320.vk.me/v413320453/32ef/MVJS9YHDGbc.jpg" /></a></div>
<br />
Но, как показали сегодняшняя и вчерашняя истории, даже воротилы интернет-бизнеса не имеют возможности гарантировать на все сто процентов качество продукта и отсутствие в нём дефектов. И тем самым позволяют тестировщикам зарабатывать на хлебушек с маслом. Итак, приступим. Описание двух дефектов крупнейшей соц. сети СНГ-шных интернетов под катом:<br />
<br />
<b>UPD:</b> Оба бага, и статистику и "незадокументированную фичу"(со слов пресс-секретаря ВК Георгия Лобушкина) пофиксили ^_^<br />
<br />
<a name='more'></a><span style="font-size: large;">Баг #1</span><br />
Первая бага связана с работой сообществ. Когда мы хотим посмотреть, кому же из участников понравилась запись в сообществе, мы просто наводим курсор нашего "грызуна" на сердечко под постом и нажимаем на текстовую ссылку "Понравилось... людям"<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMsYzy0ngHXmXiKM5EmbPqwZ4iLaWEcxEGUfVaWyXATNNMIaAXbNokdcbrQPLouzLSR341j-oTUvePRI7Z3bggfpIbvp7H5rL1ALQB9pwqgFY8IOHgOIW8AbWI4Mu0hPsAs4sEprZ962AE/s1600/vk_community1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiMsYzy0ngHXmXiKM5EmbPqwZ4iLaWEcxEGUfVaWyXATNNMIaAXbNokdcbrQPLouzLSR341j-oTUvePRI7Z3bggfpIbvp7H5rL1ALQB9pwqgFY8IOHgOIW8AbWI4Mu0hPsAs4sEprZ962AE/s1600/vk_community1.PNG" height="285" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
В новом поп-ап окошке мы получаем список с пиктограммами аватарок всех людей, которые оценили ту или иную запись сообщества. </div>
<div class="separator" style="clear: both; text-align: left;">
Выглядит он примерно так: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh08XNssprNwdc33TwEtqS4UyrumIgmnSUhY5kJAs6EhBOweq63fP1oJV4I6Ox1F4nJuY5iwyRRO0yef4Pkj2xxqmCx5IADQl0RQLTXUYCYPSYuSnE57jaP3jQDV-22KqBC0keXVy0X0wa7/s1600/vk_community2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh08XNssprNwdc33TwEtqS4UyrumIgmnSUhY5kJAs6EhBOweq63fP1oJV4I6Ox1F4nJuY5iwyRRO0yef4Pkj2xxqmCx5IADQl0RQLTXUYCYPSYuSnE57jaP3jQDV-22KqBC0keXVy0X0wa7/s1600/vk_community2.PNG" height="282" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Обратите внимание, что описание окошка выводится с текстом "Оцінили запис спільноти", если по-русски - "Оценили запись сообщества"</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
И интересности начинаются, когда мы хотим посмотреть, кто же оценил репост той или иной новости в сообщество. Процедура стандартная, выбираем запись, являющуюся репостом с какого-либо другого сообщества или страницы пользователя: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAhhyphenhyphenEQdcdF73ATJm18grQXbUz_5mirt8igXdn6N0evFoDkx6JVlwTf6d44sD8QQIdgiSANhnvprqVGi5tdW_h3vJ7RYg80Ni7Xs0z00_k_3lqEayB-dEs4njwWeB_6FAu7laYEnV1pPJr/s1600/vk_community3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiAhhyphenhyphenEQdcdF73ATJm18grQXbUz_5mirt8igXdn6N0evFoDkx6JVlwTf6d44sD8QQIdgiSANhnvprqVGi5tdW_h3vJ7RYg80Ni7Xs0z00_k_3lqEayB-dEs4njwWeB_6FAu7laYEnV1pPJr/s1600/vk_community3.PNG" height="288" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Я специально выделил желтым идентификатор того, что запись является репостом. </div>
<div class="separator" style="clear: both; text-align: left;">
Далее следует стандартная процедура: </div>
<div class="separator" style="clear: both; text-align: left;">
Наводим курсор на сердечко(надпись "Мені подобається/Мне нравится") и нажимаем на текстовую ссылку "Сподобалось ... людям"</div>
<div class="separator" style="clear: both; text-align: left;">
Получаем всё то же поп-ап окошко, но с очень интересным результатом: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrK9C1UDksGHSXymvFW0-jr26E0cmsxIfkcZ12rkhlEaEPdJVjeKryYQWOSFmp19cVSJ2fiwd2aqaS-PWCIrlhNpHFPCmfnD9WDiy2xrRAaxtFWoeBDgGU0uPnXYRfXbkFCHIPXuzNkhof/s1600/vk_community4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjrK9C1UDksGHSXymvFW0-jr26E0cmsxIfkcZ12rkhlEaEPdJVjeKryYQWOSFmp19cVSJ2fiwd2aqaS-PWCIrlhNpHFPCmfnD9WDiy2xrRAaxtFWoeBDgGU0uPnXYRfXbkFCHIPXuzNkhof/s1600/vk_community4.PNG" height="320" width="278" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
Надпись сверху уже выглядит так: "Оцінили запис Гамлета". Путём несложных логических размышлений приходим к выводу, что Гамлет - это имя одного из администраторов сообщества, и с ненулевой вероятностью, репост делал именно он.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Быстренько тестируем проблему на группе, в которой имеем права администратора. Убеждаемся в правильности своих рассуждений. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Для пущей уверенности, смотрим список администраторов сообщества и находим того самого Гамлета. :) </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimmgJ9qIqdwCse9G3aIXPsR5VxF2ing8APwZvDIxXRn0DF7RVMJcZ9LKk09Q1OnM8wZO-AIGSST3yr3qvO7pu2DjEhKpIxA0H5qxgpdYmlobyf4_5TeefWxBiOWoGdCXIcVg4QQ0BXvPge/s1600/vk_community5.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEimmgJ9qIqdwCse9G3aIXPsR5VxF2ing8APwZvDIxXRn0DF7RVMJcZ9LKk09Q1OnM8wZO-AIGSST3yr3qvO7pu2DjEhKpIxA0H5qxgpdYmlobyf4_5TeefWxBiOWoGdCXIcVg4QQ0BXvPge/s1600/vk_community5.PNG" height="640" width="392" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
И, перефразируя главного героя одного из моих любимых фильмов "История Рыцаря", баг был взвешен, баг был измерен, и признан никуда не годным. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<span style="font-size: large;">Баг #2 </span></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Этот баг не такой яркий, но, в свою очередь, так же имеет место быть. Ниже привожу два графика из одного из сообществ ВК, доступ к администрированию которого имею.</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Если коротко описать ситуацию - то одному значению по оси X соответствуют два значения по оси Y, что не совсем подпадает под определение графика функции, а так же присутствуют проблемы с отрисовкой определенных областей графиков. </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOC4NwBZ7mK3R6ythikvwgsKt4OSS-dDFdyCKU1uo0iTymnU0N5_EJdYMuwIiTBHMwJ7wq6OxwveqhYzK7LOO_R_AazbO585UxWCsE0FOeK-Rcb9wlKAx5kCIal6q-pKQJc5b1uwr4sYIL/s1600/vk_chart2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOC4NwBZ7mK3R6ythikvwgsKt4OSS-dDFdyCKU1uo0iTymnU0N5_EJdYMuwIiTBHMwJ7wq6OxwveqhYzK7LOO_R_AazbO585UxWCsE0FOeK-Rcb9wlKAx5kCIal6q-pKQJc5b1uwr4sYIL/s1600/vk_chart2.PNG" height="219" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
Проблема с отрисовкой(левая отметка) и отображением двух значений в один момент времени(правая отметка)</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11XkI-XMM_PN6WI6TSensoPwC7_Rd87h2Pg0PYcVdTX0hnMvYLIEARhGdkjDUBMtH5HnYyDk9hoLLVMVkEuukpvQIDpM5-km0TJAThn1l5onEvAX3xxM_GS2g2Eir6B5IJNKnWLgpVh7e/s1600/vk_chart1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj11XkI-XMM_PN6WI6TSensoPwC7_Rd87h2Pg0PYcVdTX0hnMvYLIEARhGdkjDUBMtH5HnYyDk9hoLLVMVkEuukpvQIDpM5-km0TJAThn1l5onEvAX3xxM_GS2g2Eir6B5IJNKnWLgpVh7e/s1600/vk_chart1.PNG" height="211" width="320" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
А здесь несколько раз имеем наличие двух значений в один момент времени</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Да и вообще всё это напоминает "День Сурка", когда в один и тот же момент времени имеем разные значения показателей. </div>
<div class="separator" style="clear: both; text-align: left;">
Наверное, мои ребята-администраторы таки изобрели машину времени и в дни с плохими показателями статистики просто возвращаются назад во времени и делают всё возможное, чтобы подобная ситуация изменилась. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Вот такая история. Сейчас отправлю статейку в поддержку ВК и добавлю еще один серьёзный и большой ресурс в свое портфолио. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Всем мир. ;)</div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com2tag:blogger.com,1999:blog-6078244058489682139.post-55078973184829469772014-10-27T08:34:00.001-07:002014-11-02T16:17:16.144-08:00О том, как я нашел баги в Twitter и Google Chrome<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="http://nativemobile.com/wordpress/wp-content/uploads/2014/09/Security-Flaw-Save-Twitter-Pays-Techie-Bounty-Hunter-for-Potentially-Deadly-Bug-Fix.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://nativemobile.com/wordpress/wp-content/uploads/2014/09/Security-Flaw-Save-Twitter-Pays-Techie-Bounty-Hunter-for-Potentially-Deadly-Bug-Fix.jpg" height="240" width="400" /></a></div>
<br />
Так уж получилось, что блог, который я создавал в качестве одного из элементов портфолио, помог мне добавить в это самое портфолио одну важную и толковую галочку - дефекты в серьёзных проектах. Подробности под катом:<br /><br /><b>UPD:</b> Пофиксили ^_^<br />Если что, под катом есть видос того, как это выглядело.<br />
<br />
<a name='more'></a><br />
<br />
Началось всё с того, что мне в голову пришла <strike>бредовая</strike> идея забросить на страничку блога виджет для известной социальной сети <a href="http://twitter.com/" target="_blank">Twitter</a>. Ну и вот я, значится, захожу в настройки блога и тщетно пытаюсь найти стандартные виджеты Твиттерка для blogspot. Попытки мои увенчались неудачей, но зато я заметил, что в блог можно вставить кастомный HTML/JS.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0n94Rj1FjVNdajU6XREyr_y5aoNwcjihPjrOareS8fiJvwON6sRztn0CnCzXZz0ZN5zc7PTvJw35447uk-ATxxmmjClo4yH9wjbEvgfLLLUmeLTGnKySojIVvxQ8jdQ962DlnL8wewZIV/s1600/twitter1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0n94Rj1FjVNdajU6XREyr_y5aoNwcjihPjrOareS8fiJvwON6sRztn0CnCzXZz0ZN5zc7PTvJw35447uk-ATxxmmjClo4yH9wjbEvgfLLLUmeLTGnKySojIVvxQ8jdQ962DlnL8wewZIV/s1600/twitter1.PNG" height="193" width="400" /></a></div>
<br />
<br />
Ну, думаю, всё! Вот он - мой шанс реализовать себя в социальной интеграции! Бегу в гугл, ищу по запросу "twitter widgets" и, о чудо! Нахожу возможность создания своего виджета в настройках Twitter. Уже потирая ручки нажимаю кнопку "Create", настраиваю все необходимые поля, мышка тянется к окошку с кодом скрипта, палец плавно нажимает на левую кнопку мыши... Доу!<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRZyIkNaiICprj_hGohGX2Aep-8E7MCIjCvwSlIjCQq0YErJhTlPcylWv-grOP6xx-rW1MjNUOVKwG7voX6tdtbtaFN1wJb4rvqioVPX0kCmwJx3_Cl8lDX-LeEPxPaR9rXNzcQuEP0F5K/s1600/twitter2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgRZyIkNaiICprj_hGohGX2Aep-8E7MCIjCvwSlIjCQq0YErJhTlPcylWv-grOP6xx-rW1MjNUOVKwG7voX6tdtbtaFN1wJb4rvqioVPX0kCmwJx3_Cl8lDX-LeEPxPaR9rXNzcQuEP0F5K/s1600/twitter2.PNG" height="231" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Моя реакция на происходящее: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://cs406229.vk.me/v406229940/4c87/Is_aWgc0XaE.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://cs406229.vk.me/v406229940/4c87/Is_aWgc0XaE.jpg" height="118" width="200" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Но расстройство сменилось ликованием и, во благо научного интереса, решил затестить эту же проблему на еще одной машине. Пробовал в четырёх вариантах: </div>
<div class="separator" style="clear: both; text-align: left;">
<i>1. Залогиненый заранее пользователь пытается отредактировать уже созданный виджет</i></div>
<div class="separator" style="clear: both; text-align: left;">
<i>2. Залогиненный заранее пользователь пытается создать виджет</i></div>
<div class="separator" style="clear: both; text-align: left;">
<i>3. Незалогиненный пользователь пытается создать виджет</i></div>
<div class="separator" style="clear: both; text-align: left;">
<i>4. Незалогиненный пользователь пытается отредактировать уже </i></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Во всех четырёх случаях в браузере Google Chrome(как мой, так и товарища) получил аналогичную ошибку. </div>
<div class="separator" style="clear: both; text-align: left;">
Так же, абсолютно аналогичная ошибка была найдена и в Opera-браузере. </div>
<div class="separator" style="clear: both; text-align: left;">
Что логически наталкивает на мысль, что проблемы кроются в работе Twitter и движка Chromium, коим управляются и Google Chrome и Opera. </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Справедливости ради, стоит отметить, что в Mozilla и Safari всё работает прекрасно. Именно по этому можете лицезреть у меня в боковой панели мой твиттер-аккаунт. Кстати, подписывайтесь, давайте дружить. ;)</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Ну и записал небольшой видос о найденной беде, цените: </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/cKFBXUiZuOc" width="420"></iframe>
<br />
<div class="separator" style="clear: both; text-align: left;">
<span id="goog_1810490291"></span><span id="goog_1810490292"></span><br /></div>
<div class="separator" style="clear: both; text-align: left;">
Но на этом моя история, как ни странно, не заканчивается. Вернемся буквально на несколько мгновений раньше, беру я у товарища, значится, ноутбук, открываю там Хром, захожу на твиттерок(а язык системы у товарища русский, язык Хрома - русский. Угадайте, какой язык будет у Твиттерка в Хроме на ноуте товарища?) и вижу вот это: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmEVRgSXl6bIQb6SQnDifMi74dHuEIv1P8o1quvGIepxdICJPCFnY84YzYqB9ZlT6QYAXoLbgBwlw4OJm4ynXkhLnlQYc4PCVAc7BtF_1dKMnQxs4fUYAN7thILOs-L3Y2-SBiSbvMNPmO/s1600/twitter3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmEVRgSXl6bIQb6SQnDifMi74dHuEIv1P8o1quvGIepxdICJPCFnY84YzYqB9ZlT6QYAXoLbgBwlw4OJm4ynXkhLnlQYc4PCVAc7BtF_1dKMnQxs4fUYAN7thILOs-L3Y2-SBiSbvMNPmO/s1600/twitter3.PNG" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Занятый своим неожиданным открытием, игнорирую сие чудо и двигаюсь дальше, на страничку виджетов. И угадайте, что вижу?<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV7i3_NvsoI7ekdMiKHs7VIiVCsUX4duU2lHP6qJ92xQPJSM6y-7YS2G4cCFWaSW87C1Px4P5N6FePNgPftniJNlSeu8-UxbZ9_v_oYgPYA7Fp2RrNT8uPEtDDVHgjUF3fouBLmB7Bm4rF/s1600/twitter4.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV7i3_NvsoI7ekdMiKHs7VIiVCsUX4duU2lHP6qJ92xQPJSM6y-7YS2G4cCFWaSW87C1Px4P5N6FePNgPftniJNlSeu8-UxbZ9_v_oYgPYA7Fp2RrNT8uPEtDDVHgjUF3fouBLmB7Bm4rF/s1600/twitter4.PNG" height="141" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
В итоге - вторая бага(пусть и не такая valuable) в крупном проекте за пол часа. :) </div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
Кстати, она мне уж очень напомнила вот это: </div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://beliy.ru/private/perfontana/perfontana_nozhivilka.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://beliy.ru/private/perfontana/perfontana_nozhivilka.jpg" /></a></div>
Это картинка на одном из китайских кубиков из обзора Паши Воли.<br />
Хорошей и лёгкой вам всем рабочей недели и побольше позитивного настроения!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<iframe allowfullscreen='allowfullscreen' webkitallowfullscreen='webkitallowfullscreen' mozallowfullscreen='mozallowfullscreen' width='320' height='266' src='https://www.youtube.com/embed/uuiLr5SgjNA?feature=player_embedded' frameborder='0'></iframe></div>
<br /></div>
Vladyslav Bilohorodskyihttp://www.blogger.com/profile/04489184400790826012noreply@blogger.com1