TagСофия

ISTA 2018 live blogging, day 2

Добро утро.
Винаги е приятно да влезеш в зала с десетки хора, които говорят за Agile, код и тестване.

 

Всичко започна с лекцията на Mathias Verraes – “Design Heuristics”

Това, бога ми, беше първия keynote speech без презентация, който гледам. Чувството е като онези push-up bras. Всичко беше ок, но нещо липсваше.

Аз лично се изгубих напълно още в началото.

 

Hindsight lessons about API testing
Viktor Slavchev

 

Да слушаш тестинг трола винаги е удоволствие. Дали е заради лекотата с която засажда идеи в главите ни или за интересните теми или заради братата, не знам, но при мен се получава.

И да не звуча тенденциозно мога да го хейтна (без хейт не може!1!!) – тази брада трябва да расте, по вързможност до колената! Край на хейта.

Сега, сериозно.

Лекцията му започна с препрепълнена зала и хора седящи по земята.

Първо да уточним думата hindsight. Това е “умението” да разбираме някакво събитие или ситуация само след като то се е случило. И един много подходящ пример “With hindsight, we would recommend exactly the opposite.”

Виктор каза нещо познато, което трябва да се казва много по-често и да се използва – “Tools don’t make software (tools are not a solution). You’re the one who solve the problem”.

Преди да влезем в контекста на API тестинга трябва да обясним какво е web service и Виктор го обясни по интересен начин:

Web service-а е като комуникацията със сервитьор*:

  • Правите поръчка (request);
  • Получавате отговор (от типа да/не) (status code);
  • Получавате това, което сте поръчали (data, result)

Извън контекста на презентацията на Виктор – примера със сервитьора може да се използва и при security testing-а като му поръчаш да ти сервира ‘, *, NULL, 0 OR 1=1, шкембе с крутони и т.н. И после следим резултатите.

 

Относно точката за status code-а – понеже статус кодовете наистина са много и е хубаво да знаем поне основните най-лесния начин за това е да видите http status cat. От там аз научих повечето :D

 

Няколко неща преди да започнем с API тестовете:

  • Документацията не е винаги е пълно описание на продукта. Особено автоматично генерираната, outdated или зле написаната документация. За това трябва да мислим, да идентифицираме да  намерим нашия testing oracle (дефиницията си я намерете в блога на Виктор), да задаваме въпроси;
  • Настройката ви при писане на тестове – не пишете тестове, които минават, светят в зелено и еднорози скачат по репорта, а тестове, които тестват функционалност (понеже тук може да се говори много можете да пишете коментар в този блогпост или в поста на Виктор в неговия блог);
  • При API тестинга често забравяме да тестваме истински сценарии, а не само кой call какви отговори връща;

 

Кои тестове си струва да автоматизираме

  • Всички тестове, които връщат грешен response code (status code checks);
  • Всички тестове, които връщат грешни данни (structure checks);
  • Всички тестове, които не връщат никакви данни;
  • В добавка – освен единични, изолирани тестове е нужно да правим тестове по цели сценарии, знаете, но да кажа.

 

Status code checks – плюсове и минуси:

  • Плюсове:
    • Пишат се бързо и лесно;
    • Много дефинитивни;
    • Работят като sanity/smoke тестове.
  • Минуси:
    • Много повърхностни;
    • Трудно получаваме някаква полезна информация ако използваме GET методи (получаваме само status code без никакъв контент);
    • Status code checks сами по себе си не дефинират сериозни проблеми;

 

Structure checks – плюсове и минуси:

  • Плюсове:
    • С тях лесно може да проверим данните, които получаваме (no shit, Sherlock);
    • Тестовете могат да са много конкретнил
    • Ако използвате Codecept, например, можете да използвате regex.
  • Минуси:
    • Тези тестове са използваеми само за тестване на съдържание;
    • Трудни са при тестове на променливи данни;
    • Не са лесни когато имате deep nesting/дълги респонси.

 

Scenario checks – плюсове и минуси:

  • Плюсове:
    • Много близки до потребителското изживяване;
    • Използваеми при намирането на integration problems;
    • Могат да бъдат изпозлвани като леки regression suits;
    • Когато пишете scenario checks приемайте API-то като приложение (не ме целете с домати, но помислете за това). Много по-лесно е да измислите някакъв flow и да работите по него..
  • Минуси:
    • Бавни за писане/изпънение;
    • Изискват добра абстракция;
    • Трудно е да се каже кога са достатъчни

Както е писано неведнъж – при писане на тестовете използвайте ААА метода – arrange, act, assert. Това е достатъчно. Ако обаче се оплетете в морето от arrange/act-ове драмата ще е по-голяма от тия в индийските сериали.

Сега като си препрочетох описанието с тази кирилско/английска плетка не ми звучи толкова добре колко я чух, може би трябваше да я опиша на английски.
В блога на Виктор има голяма част от това, което каза на лекцията така, че смятам ще ви е интересно.

 

 

Sales Skillz for IT People
Iancho Dimitrov, VP Innovation, Strategic Clients & Business Development, Musala Soft

Доста извън моя интерес реших да участвам в лекцията на Янчо Димитров, който беше представен като легенда. Сигурно е.

Разакза ни малко за продажбите като имаше две интересни попадения:

  • “Sales are not bad thing if done right”;
  • “People don’t want a quarter-inch drill, they want a quarter-inch hole” Ted Levitt.

 

Why Teams and Culture Matter: Leadership lessons – Vasil Popovski

Преди години слушах за пръв път Васил Поповски на едно от първите издания на ISTA. Тогава той работеше за VMWare и тогава и сега разказваше супер интересните неща. И понеже този път няма да мина през превеждането на термини и презентация ще е на английски.

 

 

Google have quite interesting project called project Google Aristotle. With that in mind Vasil gives us couple of vision about what’s the most important thing in team:

5) Impact – team members think their work matters and creates change;

4) Meaningful work – is personally important to team members;

3) Structure and clarity – team members have clear roles, plans and goals;

2) Dependability – team members get things done on time and meet Google’s high bar for excellence;

1) Psychological safety – team members feel safe to take risks and be vulnerable in front of each other.

 

How to build a great team:

  • Team is not family – family is structure that is inherited, you cannot make changes there;
  • Lead the team, do not manage it – lead people, manage projects. Manager says “Go”, leader say’s “Let’s go”;
  • Foster a culture – culture is the shared core values, practices and beliefs of the team members.
  • Integrity is what you do when no one is watching

 

Hiring:

  • Hire for cultural fit;
  • Prefer skills over knowledge (skill is to know how to apply knowledge);
  • How many interviews you do as company – Google make a survey (how much interviews to hire someone) – fourth interviews was enough to predict a new hire’s performance with 86% confidence. After the fourth interview the accuracy of the mean score increases by less than one percent. More info can be found here
  • In Leanplum for example one backend developer goes trough next interviews:
  • Algorithmic
  • Coding/OOP
  • Design
  • Cultural fit
  • For Leadership skills

Performance management:

  • A single negative employee or bad performer can cause a 30%-40% drop in a team’s performance.

16.12.2017

Стана 18:00 и започнахме да се сбогуваме с домакинката и двете очарователни деца. В 18:20 аз вече звъня на такси и … никой не отговаря. Пробвах с ОК Такси и Yellow Taxi. После с Taxi Me. Поглеждаме през прозореца – навън вали.
Сестрата на Злати ни закара до летището, което не е никак близо до тях. Почти бегом стигнахме до гишетата и после се зататрузихме към security check-а. В самолета бяхме на различни места и се паднах до майка с момченце на около 6. През втората половина на полета започна да се закача, а аз слушах много съсредоточено новия албум на Еминем и гледах да не му обръщам внимание. Пипането с пръстче прерастна с ръчкане, после скубане на косми и накрая се заиграхме. През цялото време се чуваше – “Спри се бе, Иване!”. Като кацнахме дори ми удари една целувка на ръката за довиждане. Прибрахме се по живо по здраво. Котката Иво много се зарадва да ни види.

Тези две седмици в София бяха крайно изтощителни. Да си на работа и после да помагаш с децата беше нещо много предизвикателно за мен. Нямах сила, време и възможност да съм навън за повече от 30 минути.
Следващия път като се видим и вече малко по-големички се надявам да е различно.

08.12.2017

Никога няма да свикна да се возя в софийските трамваи. Цялото това блъскане ми идва в повече.

В офиса мина доста добре деня, а вечерта излязохме да пийнем по една – две бири с колегите. Станаха три – четири. Не знам как сервитьорката не ни изгони заради крайно специфичния фаталистичен черен хумор с нотки на извращения. Много се кефя с какви хора работя!

Утре е събота и мисля, че ще мога да се наспя най-накрая.

 

In other news:

10.12.2017

Днес имаше време за разходка. Около 2 часа бродихме около Витошка основно, покарак Аудито (с главно А, баси животното) и даже имаше време да поснимам. Харесаха снимките така, че съм доволен. Отдавна не бях вадил апарата.

Утре ме чака интересен ден.

09.12.2017

Днес е малко време за четене и спокойствие. И разходка!

Не можах да прочета много, но излязохме на свеж въздух в южен парк, пихме по една Коста и се прибрахме. Носих голямата на нещо като раница, скачах и беснях като изтърван. Липсваше ми студения въздух и разходките.

Вечерта започнах да се подготвям за миграцията на marvin към php-fpm (не с manually build PHP (и при това две – едно антично и едно latest and greatest)), Никото ми представи няколко много вълнуващи идеи и конфигурации за nginx-а.
Плана е да deploy-на наново nginx, php-fpm и да пренапиша изцяло vhost-овете. Освен това сега използвам letsencrypt за … да – да генерирам сертификати за Let’s Encrypt. Ще мигрирам на certbot.

Тези промени ще подобрят:

  • Работата на marvin като цяло;
  • Много по-леката конфигурация на nginx, очаквам скоростта на блога и останалите сайтове да се качи значително;
  • Всичко, което носи PHP 7.2 и най-вече сигурност и скорост;
  • Сигурността трябва да се повиши (имам някои проблеми си правата и потребителите, които ще бъдат разрешени с деплоя на новия nginix);
  • Ще науча много за nginx, конфигурацията му и работата с vhosts;
  • Ще разкарам всичките php-fpm глупости – в момента търкалям PHP 5.3 (което е свръх-антично) и PHP 7.0.3. Накрая ще стане само един (колко крайно прозвуча това :D) – 7.2.

 

In other news:

07.12.2017

Хубав ден, но предната вечер ни се спря тока с плачещите деца. Изморително е.

Иначе в офиса е стадартно весело – ходихме да хапваме, свършихме работа и така.

Другото интересно нещо, което се случи днес е, че Първа Инвестиционна Банка спря сметките на всички онлайн биткойн търговци. Те са единствената банка, която позволяваше търговия с bitcoins в България. Ще видим сега колко наши борси(чки) (или по-скоро сайтове предлагащи тази услуга) ще излязат коректни и колко ще преебат хората.

 

Леон Анави пусна своя ANAVI Light pHAT. Това е open-source add-on board, който контролира 12 V RGB LED летна. Борда поддържа сензори за светлина, температура, влажност, датчик за движение. С малко програмни познания и MQTT можете да направите буквално чудеса.

05.12.2017

Днес ориентацията ми към офиса беше отлична и освен крайно натъпкания градски транспорт всичко беше супер. Дори успях в някакъв момент да почета малко.

Пак се сетих за Bring me the Horizon, та:

 

In other news:

 

04.12.2017

Първи ден в софийския офис. Сутринта се събудих и Злати ми съобщи страхотната новина – навън най-накрая заваля снях. Е – не обилен и натрупващ, но пак много по-добре от нищо. Доволен съм.

Приготвих се и се изстрелях навън. -1, кал и киша, но ентусиазма ми беше несломим за разлика от адекватността на Google Maps. Завъртях се 2-3 пъти из квартала докато намеря спирката на трамвая. Качих се в отвратителната тъпканица и не можах да се добера да си купя билет. Не беше честно да се возя гратис 15 спирки, слязох, пак не намерих билетен център. Качих се пак и с неистови усилия се добрах, взех един билет и зачаках. Google Maps пак ме прееба и откачи напълно (това се случи след последния ъпдейт на Paranoid Android-а на моя OnePlus One). Anyway – спрях  1-2 спирки по-рано и вървях до офиса.

С влизането в офиса на Немечек ме посрещнаха разни колеги, направихме няколко дълго отлагани срещи, хапнахме и деня взе, че свърши. Прибра ме един от клегите, а после реших да помогна малко на момичетата, взех малката (на почти 3 седмици е) и така стояхме някъде от 20:00 до 23.30 вечерта. Изтръпнаха ми и ръцете и краката, но си струваше :)

03.12.2017

Бебета. Едното плаче, другото ме дърпа за косата докато аз съм на пост, а Злати и кака ѝ готвят, чистят и правят подготовка за баня и там каквото друго трябва.

Към края на Хари Потър и Огнения Бокал съм и екшъна ме държи на тръни.

Още си чакам снега!

02.12.2017

През деня обикаляхме по задачки и привечер тръгнахме към летището. Полета беше в 21:55. Времето не беше най-страхотното и имаше доста турболенция на моменти, но пък стигнахме успешно в София :)
Бяхме посрещнати от 2 спящи бебета и сестрата на Злати.
Утре се надявам да направим една разходка и си чакам снега!