Cooperative bug isolation - залучаємо користувачів до пошуку помилок в програмах

Відео: manualtestinglab-bug (помилка / дефект)

Cooperative Bug Isolation - залучаємо користувачів до пошуку помилок в програмах
Локалізація помилок і пошук їх першопричин - одна з основних задач при розробці та налагодженні програм. За десятиліття розвитку індустрії ІТ з`явилося чимало інструментів, частково автоматизують цю задачу.

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

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

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




Cooperative Bug Isolation - залучаємо користувачів до пошуку помилок в програмах



Бенджамін Лібліт, один з авторів CBI

Однією із спроб розширити спектр даних, автоматично збираються інструментами формування звітів про помилки, є Cooperative Bug Isolation - CBI (http: // research. Cs.wisc.edu/cbi). CBI зародився як дослідницький проект в університеті Вісконсіна в Мадісоне (University of Wisconsin-Madison) і послужив основою для дисертації одного з основних авторів - Бенджаміна Лібліта (Benjamin Liblit) (див. Рис. Вище). Дисертація була захищена ще в 2004 році, а в 2005 році її визнала найкращою в області комп`ютерних наук організація ACM (Association for Computing Machinery, Асоціація обчислювальної техніки - авторитетна наукова організація, яка присуджує, крім іншого, премію Тьюринга). Після захисту робота не була закинута (як це нерідко трапляється не тільки у нас, але і за кордоном) - проект продовжує розвиватися і зараз.

Принципи роботи

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

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

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

ІНШЕ

Torque фото

Torque

Відео: Огляд програми Torque pro TORQUE - це додаток для телефонів з операційною системою андроїд Воно без сумніву…

Droidpad фото

Droidpad

Відео: Як налаштувати додаток Droidpad DroidPad - ефективна програма-емулятор комп`ютерної миші або ігрового джойстика…

Ultraiso фото

Ultraiso

Відео: Завантажувальна флешка з WINDOWS 7-8 за допомогою UltraISO UltraISO - дуже «легка», проста і в той…

Driverpack solution фото

Driverpack solution

Відео: Як встановити чи оновити драйвери за допомогою DriverPack Solution DriverPack Solution - програма-помічник,…

Lbe privacy guard фото

Lbe privacy guard

Відео: LBE Privacy Guard LBE Privacy Guard - одна з програм для захисту конфіденційних даних телефону на платформі…

Cbi і співтовариство фото

Cbi і співтовариство

Відео: Dr Grinstead On Community Bridges Inc Treatment Center In Arizona Метою проекту CBI декларується залучення…

» » Cooperative bug isolation - залучаємо користувачів до пошуку помилок в програмах