Підвищення надійності в IE8

У попередній статті Енді писав про деякі нові функціямх, впроваджених нами для підвищення надійності Internet Explorer, Серед яких вільно зв'язані сесії (від англ. Loosely Coupled IE) і автоматичне відновлення після збою (від англ. Automatic Crash Recovery). Ці функції допомагають знизити негативний ефект від виникаючих проблем з надійністю (збої і зависання). Якщо таке трапляється, зазначені функції дозволять якомога швидше відновити працездатність програми.

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

Відгуки кінцевих користувачів
Кінцеві користувачі – наш найцінніший ресурс у питаннях, що стосуються надійності. Ми отримуємо величезну кількість інформації про проблеми, з якими стикаються користувачі, саме по каналах надходження користувацьких відгуків. Ми також максимально використовуємо інструментарій звітів про помилки (від англ. Windows Error Reporting), через який у Microsoft надходять детальні описи збоїв та зависань, з якими стикаються користувачі. Обробка цих повідомлень допомагає нам зрозуміти, наскільки надійний наш браузер в різних призначених для користувача системах, і знаходити найбільш важливі проблеми, пов'язані зі стабільністю.

У статті за минулий місяць я розповідав, як ми використаємо графік випадків збою (криву збоїв) для визначення та виправлення помилок, викликаних незадовільною стабільністю програми в бета-версії Windows 7. Такий же схемі ми йшли під час підготовки до випуску остаточної версії IE8. Нижче ви бачите зображення кривої збоїв, пік якої припадає на бета-версію IE8. Інформація заснована на даних, зібраних протягом 50 днів після виходу чергової збірки. Зелені стовпчики – це помилки, вже виправлені в IE8.



Діаграма збоїв програми. Кожен стовпчик – збій програми. Сортування за кількістю випадків. Легенда розташована праворуч в рамці.

Крива демонструє, що невелика кількість збоїв відчувають дуже багато користувачів. Стовпчики в лівій частині діаграми – це найбільш ймовірні збої в найпоширеніших сценаріях використання. Те, що виявилося в "довгому хвості" діаграми – неполадки, які виникають відносно рідко при специфічних конфігураціях обладнання та ПЗ. Незважаючи на важливість виправлення таких помилок, ми зосередилися в першу чергу на найболючіших моментах і обережно просувалися далі вниз за графіком. Найбільш суттєві помилки, які поки не виправлені, будуть усунені трохи пізніше за допомогою оновлень. На сьогоднішній день ми усунули причини 80% збоїв та зависань IE8, про які нам повідомили.

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

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

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

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

Наприклад, багато хто з наших колег перейшли на бета-версію Windows 7 за кілька тижнів до її відкритого випуску. Дані, які генеруються в результаті масового тестування, дозволяють нам створювати попередній варіант графіка збоїв. Ми почали досліджувати групу збоїв, яку можна охарактеризувати як найбільш критичні. Виправляючи ці помилки достроково, ми йшли з випередженням графіка, і тому у нас була можливість швидко відреагувати на проблеми користувачів через короткий час після випуску бета-версії.

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

Стрес-тести
Стресовий тестування браузера дуже важливо для визначення архітектурних проблем, що викликають збої, поряд з іншими прихованими проблемами. Ми прагнули організувати стресове тестування IE8 в заздалегідь певному проміжку часу без перерви. Заміряючи цей проміжок, ми швидко переміщалися по різних веб-сторінок і здійснювали ті ж дії, що і звичайні користувачі: відкриття і закриття вкладок, вікон і т.д. Ми сподіваємося, що нам вдалося виявити деякі важливі проблеми, які не помітні при рутинному використанні браузера. У нашому стрес-тесті нам вдалося в рамках єдиної сесії – за один день – відкрити 100 тисяч веб-сторінок!

Безперервне тестування
Частина нашої концепції стабільності IE8 – Дозволити IE працювати без перерви так довго, як цього хочуть користувачі. Ми розробили кілька варіантів тестування, симулюють тривале використання браузера і заміряли, як довго виконується тест, поки не відбувається збій або отримання повідомлення про нестачу пам'яті. Потім ми намагалися усунути найважливіші причини збоїв як можна швидше. Ми також тестували потреби в пам'яті після періодів довгого використання.

Висновок
Кожен із використаних підходів зіграв важливу роль у поліпшенні стабільності IE8. Більше того, нам вдалося представити зроблені нами удосконалення в кількісному вираженні, використовуючи різні тести і методи аналізу, і порівнюючи результати з IE7. Наприклад, в рамках стрес-тестування ми переконалися, що IE8 може працювати 12 годин поспіль, на відміну від IE7, який більше 8 годин не витримав. До того ж ми виявили, що IE8 після 24-годинної сесії використовує на 90% менше пам'яті, ніж IE7. Встановити це нам допомогло безперервне тестування.

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

Дякуємо за вашу підтримку і впевненість у відмінній якості нашого браузера!

Схожі статті:


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

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*