Red flying lady bug insect with hearts. Cute cartoon character. Happy Valentines Day. I Love you text. Greeting card. White background. Flat design. Vector illustration
У сучасному світі nothing is perfect — ніщо не бездоганно. Дрібниця, що впливає на фідбек від користувача або суттєва проблема, що уповільнює розробку?
Так, сьогодні ми поговоримо про баги. Що це таке та чому їх обов’язково потрібно фіксувати? Давайте розберемося.
З технічної точки зору баг — це помилка, що виникає під час розробки програмного забезпечення (ПЗ).
Баг — від англійського bug, тобто «жук». Восени 1947 року інженери Гарвардського університету ніяк не могли зрозуміти, в чому причина несправності ЕОМ Mark II, поки не виявили метелика, що застряг між контактами реле. Один із них записав у документації це як «Перший випадок виявлення бага». Таким чином з того часу помилки виконання ПЗ стали називати багами.
Як із ними боротися? По-перше, відтворіть баг і переконайтеся, що вам зрозуміло, в якому випадку він виникає. Після цього можна розпочинати роботу з кодом.
У цьому процесі криється два завдання: найголовніше — усунути проблему, але й не допустити появи нових. Що ж, головне правило лікаря – не нашкодити. Це підходить і для світу розробки.
Щоб перевірити, що баг виправлено і нічого нового у процесі не зламалося, потрібно буде провести автоматичні чи мануальні тести.
Алгоритм виправлення бага виглядає так:
З урахуванням статистики, виникнення помилок пов’язані з написанням чи зміною коду. І найчастіше це відповідальність розробника.
До вищезазначених причин додамо такі:
Давайте трохи детальніше поговоримо про кожну з причин, наведених вище.
Помилки — невід’ємна частина життя. Іноді натхнення приходить так швидко, що записати все правильно ми просто не встигаємо.
Приклад: вся команда не могла зрозуміти, чому текст не працює, перевіряли в полі значення Сontact
. Під час перевірки коду тесту (з увімкненим spellchecker) виявили, що буква «С» написана кирилицею.
У прикладі нижче в missKey пропущено букву «s»:
У таких випадках на допомогу прийдуть:
Це трапляється, коли розробнику потрібно взаємодіяти з кодом колег чи кодом, який було написано досить давно.
Якщо можливості зв’язатися з автором коду немає, можна використовувати тести. Також брейншторм з менеджером проекту чи QA — хороша альтернатива.
Мова програмування дуже швидко змінюється. Потрібно стежити за оновленнями та бути уважним до деталей.
Наприклад, для вхідного параметра value = 10
умова виконуватиметься. Потрібно додати порівняння ===
.
Як ми вже писали вище, тести поділяються на мануальні та автоматизовані.
Мануальне тестування — це тестування вручну, коли тестувальник перевіряє помилки під час виконання програми, сам вигадуючи тести чи користуючись відповідною документацією.
Іноді таких фахівців називають «манкі-тестерами»
Мануальний тестувальник повинен мати посидючість, уважність, логіку і любов до досліджень, інакше йому не вдасться знайти всі помилки.
Тестувальник-автоматизатор зазвичай сам знає одну або кілька мов програмування та покриває код автотестами, які допомагають виявити баги набагато швидше.
Автотестер повинен вміти:
Щоб пізнати дзен та навчитися ефективно взаємодіяти з багами, потрібно вміти убезпечити свій код від зовнішнього впливу:
Копіювання чужого коду може скоротити час розробки вдвічі та вчетверо збільшити час фіксингу багів. В інтернеті можна знайти багато готових рішень. Що ж, будьте уважні до деталей!
Існують дві основні класифікації багів: за ступенем критичності та пріоритетності.
За ступенем критичності можна назвати такі баги:
За пріоритетністю виділяють баги:
Чи можна уникнути появи багів? Це практично неможливо. Будь-яка помилка — це досвід. Головне своєчасно її помітити та виправити.
Уважність до деталей, добре знання мови програмування та написання тестів — речі, які суттєво полегшують роботу.
Уникнути появи багів не вдасться — розробник не може все передбачити. Для цього в командах завжди є тестувальники, які працюють з програмістами у щільній зв’язці.
Щоб спростити собі роботу і менше переписувати код після рев’ю тестувальників, багато розробників відразу покривають код автотестами.
Сундар Пічаї, який очолює Google з 2015 року, заявив, що його компанія продовжуватиме збільшувати число…
Українські телекомунікаційні компанії та провайдери масово здають в оренду IPv4-адреси, які свого часу були виділені…
У ChatGPT додали конектори для підключення до хмарних сервісів, таких як Google Drive, Box, Dropbox,…
Співробітники управління Кіберполіції НПУ в Запорізькій області затримали 35-річного хакера, який зламав 5000 хостинг-акаунтів і…
Внутрішня команда розробників Apple у новому тематичному дослідженні виявила, що «підхід Java до управління пам’яттю…
Компанія GlobalLogic заявила, що європейський регіон відтепер очолюватиме Юлія Штукатурова, повідомили в DOU. У GlobalLogic Юлія…