Обираємо баг року 🐞🎄

Усі статті, обговорення, новини про тестування — в одному місці. Підписуйтеся на DOU | QA!

Всі підбивають підсумки року, і спільнота тестувальників теж. Тож оберімо баг року! ☃️
Пишіть в коментарях вашу історію про найбільший, найдивніший, най-най-най баг, який трапився вам цього року.

Знаємо, вам точно є чим поділитись. Автор найпопулярнішого коментаря отримає подарунок від DOU, визначимо його 18 грудня 😉

UPD: Найпопулярніший коментар ось цей, вітаємо автора! Вже зв’язались щодо отримання подарунка.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному2
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Робив якось покупку на одному сайті. Ввів некоректний cvv, гроші списались)

Якщо спрацьовує 3D Secure то cvv може тупо не перевірятись.

бага, яка має власний вуглецевий (по)слід:
певна система із беку на фронтенд клієнти піродично шле апдейт статусів певних сутностей (умовно маркер онлайновості), фронтенд якось на це реагує і робить певні калькуляції та зміни в інтерфейсі. Через багу івенти з беку улітали в кілька разів частіше, ніж треба, а фронт справно продовжував на них реагувати, що призводило до банально надмірного нагріву клієнтських тазіків та диких лагів інтерфейса.

Враховуючи клієнтську базу, то баг стовідсотково додав кілька тисячних відсотка до середньорічної температури по планеті, і трохи наблизив теплову смерть всесвіту)

Писали біль’ярд
Кий проткнув стіл і застряг у ньому )

Був доволі цікавий баг, не вводився номер карти, expiration date і сvv, на моб девайсі у юзера, ми отримали відео і дійсно данні не вводились. Ми 2 тижні шукали в чому проблема перетестили 20 телефонів на різних платформах і версіях, і в нас цей баг ніяк не репродюсився. І тут один QA замітив що клавіатура юзера відрізняється від стандартної, тобто юзер скачав кастомну клавіатуру і вводив дані))) Баг ми пофіксили, але було дуже весело.

Коли я ще був джуном, в проект треба було додати якесь зображення, чисто для тесту — для цього я відкрив Google images і скопіював в проект перше, що видало, при цьому я детально не роздивлявся, що саме в цьому зображенні. Здається, це було зображення салону автобуса із людьми там. Начебто все ок, але на код рев’ю лід кличе до себе із питанням «Це що таке??!!» — як виявилось, на стелі цього автобуса була величезна свастика, а я цього не помітив, коли додавав зображення )) при цьому, цей проект був для ізраїльского замовника, якщо б це пішло в прод, там би точно таке не оцінили ))

Цікаво по якому запиту в гуглі ти найшов автобус з свастикою.

автобус зі свастикою картинки jpg

Свастика досі використовується у Японії як символ добробуту
Щоправда хрест там дзеркальний від фашистського звісно

Робили свій аналог стрічки новин типу як у ФБ. Дизайнери не намалювали empty state, то я захардкодив там просто текст «Nobody loves you!»

Звісно тестувальники того не побачили, бо на тестових даних у них завжди щось було у стрічці. Звісно ніхто не загадав про той empty state до релізу =)

Нещодавно я знайшов баг в одній з великих компаній ІТ-конференцій, за допомогою якого легко зайшов до їх CRM. Я не можу сказати, як це було, тому що підписав NDA, але це було дуже тупо. На все це витратив 3 години.
Зрештою компанія дали тикет на наступний івент та 1000 євро.

А 3 роки тому, коли я працював iOS dev, замість тестового облікового запису у додатку я просто прокоментував перевірку преміум-облікового запису. Запушив проект в AppStore. Усі були в захваті від можливості використовувати преміум-функції безкоштовно 😁

2016 рік, начитався про SQL ін’єкції. пішов поповнювати домонет в айбокс, а там у полі «номер рахунку» чи «призначення» — гуляй рванина, будь які символи дозволені. пишу «номер_рахунку_домонету’drop table users». поповнюю, все ок. друкується чек, а там на місці значення поля «отримувач платежу» і ще аналогічних — лише ключі типу :) для наступних чеків таблиці вже не було, тому теж у чеках писало ключі. напряму їм не повідомляв, а через кілька місяців вже таки пофіксили

Так а без интернета в результате не остались?

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

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

Прикольний баг я спостерігав, коли розробник забув прибрати тестовий страйп і викотив все в продакшн) Бізнес раділи, 3 дні, поки не зайшли на страйп і не побачили нулі, бо страйп тестовий, хтось викупив фішку і замовили товарів на 10000 баксів.

На скільки памʼятаю, в тестовому моді тільки тестові реквізити приймаються, тому ті, хто викупив — або працював зі страйпом раніше і в курсі цієї валідації, або це хтось з команди розробки, і баг — насправді така собі незадокументована фіча =)
Але випадок цікавий)

Мої улюблені баги — це коли 2-3 баги поєднується разом й в результаті все працює правильно. З такого що згадується:
— Коли програмісти одночасно напутали в булевих виразах, в результаті код не коректний, а результат працює.
— Баг в фреймворку — який прийняв кривий конфіг, який він не підтримує по документації: в резльтаті код який повинен був заблокувати event-loop запрацював в окремих потоках. Причому фічі через які саме це не підтримується — так сталось що не юзались.
— Переплутані місцямі відправник й отримувач два рази — в результаті, через баг в API замість переводу А -> Б сервер робить перевод Б -> А, але через баг в сервері, все ж таки гроші йдуть А -> Б

Дивишся на цей код й «якого х*ра він працює!»

Ооо так. А потім один з багів випадково знаходиться і виправляється. І ще треба дивуватися як воно не вилазило раніше. І через деякий час вилазить інший баг

Цей баг називається — похуїзм

В одному з наших банків знайшов шпаринку, як купити долари по курсу 8. Якщо купляєш по 0.29 центів, курс 8, 0.30 — центів вже 37). Купив так 30 доларів. Потім подзвонили з банку і запитали, як так вийшло. Я оформив їм баг, долари мені залишили).

цікаво як знайшов що саме на 29 та 30 центах таке?

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

Може просто брутфорс перебором? Почав зі стартової купівлі 1 центу і з інкрементом в 1 цент дійшов до значення в 30 центів, де баг вже не працював.

ну там що, хтось тупо захардкодив перевірку? типа
currency = amount<=0.29 ? 8 : getCurrentCurrency()

Якби конвертувалося навпаки, то я би подумав про round і якийсь фаллбек, коли після конвертації виходить нульова сума чи курс чи щось таке.
amount = amount * getExchangeRate(980, 840) ?: 8.00 // for test: localno konvertacia ne rabotayet
а в сабжеву сторону нічого не придумується

А прикиньте, якщо це колишній техлід або сеніор команди розробки собі такий «баг/фічу» залишив і код в продакшен залив без рев’ю? :) А потім написав скрипт, щоб кожної години протягом років автоматично купляти по 29 центів. Це небагато, всього 7$ за добу, 210$ на місяць, може банк і не помічав всі ці роки.

«шукати копійку» в кінці дня/періоду у бухів — улюблене заняття. І якщо розходження «за добу» може можна списати на щось, на якусь утруску, то розходження в двісті баксів у кінці місяця — ето вам не хухри-мухри.

Так і було стартанув 3 цента, потім 15 і 30, побачив, що на 30 не працює, спробував 29 і зрозумів граничне значення

Це про те як спіздити гроші, і за це не поплатитися. Тупо жесть...

Хтось з розробників поціновувач «Office space»

Дуже повчальна бага, після якої варто перевірити свій фінансовий мейл!
Користувалась одним відомим банком, і регулярно знаходила в нього баги. Серйозні і не дуже.

З якогось моменту в мене там почав злітати мейл (Гугл пошта, для точності). Я почала його перевстановлювати, а він продовжував злітати. Звернулась в службу підтримки, мені розказували що я маю перевірити спам, клікнути по лінку на верифікацію, і всякі такі предефайни.
Водили мене колами, до моменту коли мені почали приходити чужі мейли від цього ж банку, з чужими транзакціями / чеками. Я підофігіла, і виявила дещо дуже цікаве.
Як ви знаєте (напевне) пошта Google з умовним юзером admin та ad.min то колись були різні скриньки. Недавно Google це змінив, і тепер всі нові скриньки можуть створюватись виключно без крапки, а додавання крапки редіректить всі листи на основну пошту, аналогічно як колись працювала плюс переадресація (для прикладу admin+shopping йшов на той ж admin). Так от, банк напевне «врахував» зміни, і почав вважати мій мейл, і мейл іншої людини — одним. І відповідно в нас він злітав. То в мене, то в іншої людини. Все було б добре, але листи також почали ходити хаотично (відповідно до того як ми верифікувались), як я розумію то мої іншій людині, то листи тої людини — мені. Враховуючи що це фінансові мейли, то це катастрофа. Я зарепортила це їм, але нажаль не можу сказати резолюшина, бо...

Свій фінансовий мейл я змінила.

мені чомусь згадується що в гмилі крапка завжди ігнорувалася. В усякому разі на момент створення моєї скриньки така примітка вже була.

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

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

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

Якщо ви зараз надішлете листа на отой імейл — то він вам у скриньку назад не впаде, хоча відрізняється всього лиш крапкою? Дивно і ще більш дивно, що такого зробив банк. Бо, імхо, якраз банку просто немає потреби робити якісь маніпуляції з імейлом. Хоча може така необхідність і є (об’єднання профілів можливо?). Якщо банк вам звітує — дайте сюди знати, бо дійсно цікаво.

що такого зробив банк

1 — В мене «злітав» мій мейл, який був верифікований, і мені переставали надходити мої мейли від банку. При спробі його верифікувати, він приймався, а потім потворно злітав.
2 — Мені банк прислав чужі дані (особисті, фінансові іншої людини).
Банк таки щось зробив не так. Можу знайти деталі кейсу, який відкрили, але не впевнена що мені скинуть технічні деталі.

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

Ви просто занадто молоді :)

маю gmail з крапкою, без крапки на той момент акаунт був зайнятий

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

Те що ви описали неможливо. Gmail не розрізняє адресів з крапкою та без, тобто якщо ви колись створили john.smith@..., ви автоматично «володіли» адресами з будь якою комбінацією крапок (johnsmith, j.ohnsmith, ...). Відправте лист на оту «чужу» адресу — ви його отримаєте в своєму акаунті «з крапкою» (так само, спроба залогінитись з «чужою» поштою та своїм паролем буде успішною — ви просто знов опинитесь в своєму акаунті). Це не недавно, це так було завжди.

Якщо ви почали отримувати листи адресовані не вам — це не тому, що гугл «заплутався», а тому, що якийсь бовдур десь при реєстрації вказав ваш імейл або один з його аліасів (скоріше за все помилково). Більшість адекватних сервісів ще за царя гороха почали веріфікувати імейли, але офіси банків це часто окремий світ, невиключено що в даному конкретному випадку клерк міг зафігачити в форму будь-яке мило без його веріфікації.

Я створила свою адресу так давно, що це ще були різні адреси. Я створила з крапкою, саме тому що без крапки була зайнята.

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

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

В мене, нажаль, немає відповідей. Лише рекомендація змінити фінансовий мейл.

Я маю ще страшніші історії про гугл і банки, і секюріті вцілому. Так що це ще квіточки...

Я створила свою адресу так давно, що це ще були різні адреси. Я створила з крапкою, саме тому що без крапки була зайнята.

Ви можете залогінитись в свій акаунт використовуючи «чужу» адресу без крапки?

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

Так повинно бути в ідеальному світі, але не факт що так є в реалі. Мій банк примудрився відправити мені кредитку «на дєрєвню дєдушкє», бо якийсь клерк вписав польский адрес вказавши при цьому UKRAINE (куди ділась картка невідомо до сьогодні), хоча за логікою там повинна бути валідація адреси (і вона є, якщо спробувати зареєструвати акаунт онлайн, але «quod licet Iovi...»).

Баг не пов’язаний з роботою але я зміг відтворити на андроід та айфон. Коли починається відображення вхідного дзвінка на заблокованому екрані, з закритим сенсором наближення (імітація телефону в кармані) відображаються кнопки прийому і відхилення дзвінку, і пів секунди екран не заблокований, і в ці пів секунди можна прийняти або відхилити дзвінок наприклад ногою в кишені джинсів. Так, треба провести пальцем але це можливо і таким чином я пропустив десятки дзвінків і слухав від шефа фразу (купи нормальний телефон). Цей баг існує може навіть всю історію андроід телефонів (айос не знаю але у друга відтворився баг на 11-тій моделі).

Молодша дитина знайшла баг на телефоні. Встановлений батьківський контроль та ліміти часу. Тобто якщо телефон заблокований, то при спробі ввімкнути його екран вмикається і через долю секунди показується чорний екран блокування. Але якщо в тебе винесений віджет для слухання аудіокнижок чи музики, то за цю долю секунди можна встигнути натиснути на іконку play і слухати далі з заблокованим телефоном :)

Два місяці намагались фіксити форму вводу... адреси, на якій намертво виснуть десь 15% юзерів (а загалом юзерів просто мільйони). В результаті так і не помержили, забили.

Can we fix it? No, it’s fucked!

Результати виборів?
Тільки то було раніше

Мабуть, не дуже веселий, але досить серйозний і повчальний. Сервіс з доставки відео, який ми робили для одного з найбільших операторів США. Вони хотіли наш софт он преміс. Зробити такий самий тестовий сетап у себе ми не могли, бо ми не найбільший оператор в штатах ) Тому тестили як могли, але все не врахуєш. А кастомер був на стільки впевнений в наших силах, шо вирішив почати транслювати через нас з першої серії останнього сезону гри престолів, яка, м’яко кажучі, була вельми очікувана ) Одразу після початку ми, звичайно, відвалилися. Конф’южин і фрастрейшн був в соц мережах і очах нашого сапорту ) Найбільше запам’ятався 1 коментар, який я досі пам’ятаю: «You had one thing to do. ONE THING...»

Була більш весела історія. Не дуже критичний сервіс, який продавали клієнту. До впровадження на прод розгорнули для нього тестовий сервак де спокійно тестували, виправляли баги. Потім розгорнули нормальну інфраструктуру на прод із моніторингом, лоад балансерами і т/д.
Віддали і забули. Сервіс не складний і навантаження не велике та і ломатись там нічому.
Десь через пів року вирішили повидаляти зайві тестові віртуалки. Через. пів години дзвонить клієнт — не працює. Дивимось наче все ок. Виявляється вони задеплоїли на прод із посиланням на тестову віртуалку і усі ці пів року через неї працювали. Добре що сервіс нічого персистентно не зберігав, а тільки був гейтвеєм

В процессе переработки архитектуры полностью отключил проверку лицензии. Баг заметили только через 6 месяцев.

Знайомий чел три дні намагався пофіксити авторизацію з MSAL, а я це зробив за 5 хвилин, оновивши пакети до нових версій.

Дуже пізнавально. Дякую, що поділились

Після чергової інтеграції коли новий клієнт неочікувано після редіректу із реклами перейшов на сайт по ддос атаці москалів)😂

Багів було багато, але чомусь запам’ятався один, коли я ще був трейнішкою.
Зумів при обміні валюти загнати баланс в мінусовий, а такого не мало бути))

Це було років так 5-6 тому. Працював в геймдев компанії, я тестував 3D шутер, це був буквально мій 2-ий чи 3-ій день на проекті і ми знайшли ділдо на дивані, так як є обмеження в контенті (гра12+ pegi 12) то таких штук в грі не має бути. Це був найсмішний баг, котрий я тільки памятаю «Actual Result: Dildo is present on the sofa. Expected Result: Dildo is absent on the sofa»

В тему. Перша робота, слоти, без можливості виводу. Цільова аудиторія — жінки домохозяйки середнього віку здебільшого в америці. Одна з тем аладин. Коли шось там виграєш, то є анімована заставка. На заставці тіні грають таким чином, що дамочка побачила у аладіна прутень більше ніж по коліно і попросила вкоротити, бо це неподобство ) Найцікавіше, шо ми просили різних людей подивитися на ту анімацію і сказати чи бачать вони шось не то. Ніхто не побачив. Після того, як вказували на прутень то «розвідєть» його вже було неможливо )

Цікава аудиторія слотів у штатах.

Просто чим робили ту гру те положили ...

Якщо цей коментар виграє, здогадуюсь який приз чекає на автора від DOU 😂

Нагадав мені баг, що трапився декілька років назад.
Тестувала веб-сайт.
Була проблема: банер, який мав з’являтися один раз на кожні 10 завантажень сторінки, перестав відображатися.
Розробник довго виправляв це. Він паралельно вносив зміни в іншу гілку. Якось невдало змержив код. Код ще й пройшов код-рев’ю і його залили в main. Задеплоіли.
В результаті іноді на сайті у блоці банера відображалося слово «жопа».
Це було слово, яким розробник дебажив код.
Було смішно.
Actual result: «The word ’жопа’ is displayed on the main page.»...

Це і насправді поки найсмішніший баг 😆 А головне, розгледіли, не пропустили.

Підписатись на коментарі