Тестування піци
Всі вже настрибалися під час тестування скакалки?
А тепер ми спробуємо розібратися в отому осоружному SDLC та яке місце в ньому займають тестувальники. На іноземному це звучить як Software Development Life Cycles, а по-простому то шось про те що велосипеди то на все жеття це звичайнісінькі етапи розробки програмного забезпечення. Хоча це можна прикрутити до чого завгодно.
Тому ми сьогодні будемо планувати та тестувати… піцу.
Ну, бо приклади зі сфери ПЗ це передбачувано і нудно і кожен в мережі й так 24/7 відчитується яке він сонечко, з яскравим сертифікатом по виходу з зони комфорту у вікно, намагаючись привернути до себе увагу за будь-яку ціну.
А піца ж… Піца просто є.
Як кіт.
Автор цього тексту жодного разу не піцайоло і ніколи на комерційних кухнях не працював. Але кулінарія то є ненайгірше хобі (яке чудово доповнюється скакалкою) і на різних там вечірках, в доковідні часи, автору таки іноді довіряли
ножащось складніше за тихенько постояти в куточку, з пляшкою бульбашкової води.
Отже, піца домашня SDLC.
Згідно з традиційним SDLC все починається з планування фронту робіт та аналізу ризиків (ну бо навіщо нам робить другий фейсбук, якщо в нас нема х2 бюджетів того фейсбуку на просування?).
Ну, взагалі все стартує з ідеї, яка неочікувано стріляє в нечесану голову о 2-й годині ночі. Але цю відповідь нам не зарахують як правильну бо книжки, з яких беруть правильні відповіді, пишуть нудні тіпи та тіпесси, які давно вже забули ті відчуття коли ідея стріляє в голову.
Отже, планування. Та ризики. Тестувальникам приготуватись.
Я хотів піцу. Я люблю піцу. Я люблю її ще з часів коли лише бачив по телеку, в Teenage Mutant Ninja Turtles.
І я знав що піца має буть смачна, помірно ситна, красіва™. Кругла. І недорога.
Вимоги дещо розмиті, але з ними таке бува. В процесі відшліфується. Ми ж бо Аджайл і оце от всьо.
В Katamari Damacy всі грали? Щось прилипне, щось відвалиться.
- Але у світі є багато різновидностей піци. Така, сяка, інакша. Ше отакаво.
- Яку саме ми хочемо? Бо саме з цього все й починається.
- Я зупинився на умовно класичній “соус + сир” бо колись у Львові (піца — національна українська їжа. Ну, як вареники) якусь таку їв і мені страшенно сподобались оті м’які бортики що хрустіли на всю вулицю. І після того ще хотілося (і моглося) гуляти, а не впасти десь на диван і щосили захропти.
- І рецептів такої піци в інтернетах — фантастичні кількості. Але всі вони однаково складаються з муки, води, дріжджів, солі та цукру. Це, так би мовити, обов’язковий бекенд.
- Фронтенд — все що згори. Соуси, сири, ковбаси, овочі та фрукти (піца з нутеллою та ананасами. Не чули? Ха!) і так далі.
- Також нам знадобляться певні інструменти для розробки. Різноманітні ємності, ваги, стіл, деко та пічка (головне середовище розробки взагалі).

З цим списком ми далі збираємо що нам треба, в залежності від потреб, вподобань, досвіду та бюджету.
Які ж в нас виникають ризики? Тестувальники на місці?
- Ну, ми можемо не домісити тісто. Також ми можемо його перемісити (і піца стане схожою на хліб).
- Якщо ми обрали варіант піци на заквасці (я з часом дійшов саме до такого) ми маємо враховувати ризики… втечі тіста з ємності.

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

Ну бо всі ми трохи Joey, який doesn’t share food!
В домашніх умовах наш “продукт” змасштабувати цілком можна, — все впирається в місце в холодильнику (для зберігання ємностей з готовим тістом). Є фреймворк “Пекарські проценти”, який працює не з абсолютними значеннями, а відносними. І ідеальний для такого масштабування. Інгредієнт, який має найбільше ваги, береться за 100%. Решта вираховується вже в процентах від нього. Доволі зручно записувати, коли нема можливості оперувати реальною вагою. Таким чином ми завжди знаємо, яку частку займає в продукті певний елемент прекрасного. І запросто його масштабуємо.

Мій стандартний рецепт останнім часом. Змасштабований.
І так далі.
Наступний етап — дизайн
Тут аналізуються всі вимоги (згадуємо вимоги до хороших вимог) і, виходячи з бюджетів, досвіду, чуйки, очікувань цільової аудиторії та власного почуття прекрасного, обираються найкращі “складові” майбутнього продукту.
- Ну тобто, а яких розмірів ми хочемо піцу? Я цілком схвалюю гігантоманію в цьому питанні, але треба розуміти що та піца має влізти в наше деко для випікання 🙂 А воно вже має влізти в духовку.
- От ми вчора домовились на тому, що треба дріжджі. Але які саме?
- А вода тепла чи холодна? А може ще й кип’ячена? А чому (чи навіщо)?
- А яку ми використаємо муку? А може, краще дві різні?
- А в якій мисці в нас буде готуватись закваска? А вона звідтіля не втече (в мене якось з банки втекла)?
- А чи вплине колір кулінарної лопатки (дуже корисна річ) на результат?
- А з чого саме ми будемо майструвати соус? А чи хочемо ми туди додати трохи Кароліни Ріпера?
Я хочу

І подібні питання.
Маючи час та натхнення їх можна нагенерувати безліч. Тут вже тестувальники працюють в повну силу, — саме час читати документацію та задавати незручні відповіді.
Але, як колись мені казав мій головний редактор, — головне вчасно зупинитися (бо дедлайн не спить).
Третій етап — безпосередньо розробка
Тут ми збираємо докупи все що отримали з попередніх етапів, запускаємо в роботу і сподіваємось що з того щось та вийде (бажано очікуване, але в нас все ще живе дух пригод).
Місимо тісто, а може навіть взагалі робимо спочатку закваску (з часом, все прийде з часом).

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

А за кілька годин до релізу можна почати й фронтендом займатись. Продукт собі тихенько компілюється то ж саме час кинути вільні ресурси на іншу задачу.
Готується фронтенд-соус, бо ж не годиться на такий проект використовувати куплений на стоках kapchuk.png, нарізається сир з оливками чи може ковбаскою.

Найбільш бентежний момент — деплой тіста на прод деко, для подальшого розтягування руками. З часом я прийшов саме до такого варіанту, для мого “оточення розробки”, хоча стандартний шлях дещо інакший. Але ж ну, у нас це поки MVP (minimum viable product) і взагалі нестача ресурсів (переважно досвіду)!
Тема для окремого та хвилюючого холівару — розтягування чи розкатування? В кожного варіанту є свої переваги та недоліки
Не забувайте добре нагріти ваше “середовище розробки”, перед розміщенням проекту всередині. Кажуть, градусів з 500 вже хороша цифра, але далеко не всі домашні духовки можуть таке видати. Тому просто гріємо до максимуму, а якщо нема термометра, то хвилин десь пів години.
І як би ви не старались, а перші версії піци у вас будуть страшнуваті 🙂 Добре що на смак це не впливає. Обмазуєте все соусом і… Маленький лайфхак життєзлам, — у звичайних домашніх умовах кращий результат виходить при випіканні збірці проекту в два етапи. Пляцок з соусом доводимо до стану “починає підрум’янюватись” і вже потім натягуємо решту фронтенду обсипаємо сиром та іншим добром. Якщо ж запікати все відразу, то, у відносно слабеньких домашніх пічках, у вас, на момент готовності тіста, сир вже згорить.

Десь отако.
І десь аж тут, згідно SDLC, нарешті згадується тестування. Хоча економічно вигідніше (і так воно зазвичай і бува) коли тестування стартує вже на етапі планування (ми ж пам’ятаємо одну з головних засад тестування: швидше зловили багу — дешевше фіксати). І тестувати тут можна… Все. План, вимоги, процеси, звісно ж кінцевий результат. Піраміду тестування всі пам’ятають? То ж вперед, тестувати… Часник. Та мірні ємності (я в чашці багу знайшов).

Технічно, це теж піца. Кругла. Просто вона кругла в іншій площині. Скручена в рулет.
ТЕСТУЙТЕ ВИМОГИ!11
І коли в нас все гарненько протестовано та відлагоджено, нарешті настає час “деплою на прод” (про всяк випадок, різні етапи розробки = різні середовища розробки), як вершина процесу SDLC. Ми cпекли десяток піц релізнули купу бета-версій, обкатали складові, десь оптимізували процес, десь щось змінили під нові потреби та вміння. І піца нарешті схожа на ту яку хотілося спекти з самого початку. Можна запрошувати приємну сусідку.
Постривайте, скаже уважний читач. Але ж сусідки не було в початковому плані?!
Нічо страшного. Аджайл ще й не таке дозволяє.
А після цього в нас стартує етап підтримки. Подальше шліфування проекту, виправлення помилок, оптимізація процесів. Наприклад, якщо не змінювати сіль, то значно простіше відміряти її мірною ложечкою, а не діставати кожного разу ваги.
Або можна дійти висновку що якщо взяти більшу миску, то перше замішування можна робити просто в ній ложкою і стіл залишатиметься чистим. А фінальний етап, коли тісто вже більш пружне і не так липне, можна вже і на столі виконувати.

А може… Автоматизувати етап збірки проекту і придбати тістоміс? Нє, у нас ж MVP.
Свої перші піци я старанно розкатував качалкою і не розумів чому нічого не росте “як в кіно”. В спробах отримати оті фетишні підпалини я кілька піц навіть пересушив. А в поєднанні з розкатуванням до стану газети (так я хотів отримати оте хрустіння), результат виходив наче… фанера 🙂

Але смачна фанера.
Так я дійшов до підминання тіста “конвертиком” та розтягування того пляцка руками. І жодної качалки для тіста!
А ще можна спробувать іншу муку. Інший соус. Інше ще щось. Навіть іншу цільову аудиторію!
Все це називається етапом підтримки.

Суттєва різниця, порівняно з першими версіями. Соковита, м’яка, хрустить. І сир не згорів.
І на цьому офіційний перелік етапів SDLC і закінчується.
Але це ще не кінець.
Це сумно, але життєвий цикл продукту також має в собі таке поняття як… “Смерть”. Чи просто перехід в категорію “abandonware”. Це коли команду розпускають, сервери вимикають і будь-яка офіційна підтримка припиняється.
Але піцу ніхто напризволяще не кине, не сподівайтесь.

А тепер авторський рецепт соусу для піци, для тих хто це таки дочитав до кінця 🙂
- 1 пачка томатної пасти (70 гр)
- 3 столові ложки води (я влив кип’ячену, бо соус трохи залишається завжди і його можна додати до чого завгодно)
- 2 зубчики часнику роздавити (старанно)
- По 1 чайній ложці орегано та трав італійських (з України)
- По 1/4 чайної ложки солі, цукру, чорного перцю, копченої паприки (бо, а чому б і ні?)
- Кароліна ріпер сушений — на кінчику ножа. Або нехай просто пляшечка збоку постоїть, для більшості й цього буде більш ніж достатньо ;D
- Змішати все. І нехай настоїться 2+ години (краще добу).

Якщо ваша піца відносно кругла і діаметром сантиметрів з 40 то соусу буде трохи більше ніж якраз.
І якщо ви аж сюди дочитали, то з вас 5 гривенів на потреби ЗСУ 🙂
