Підвищення надійності в 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 000 веб-сторінок!

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

Висновок
Кожен з використаних підходів зіграв важливу роль у поліпшенні стабільності IE8. Більше того, нам вдалося представити зроблені нами удосконалення в кількісному вираженні, використовуючи різні тести і методи аналізу, і порівнюючи результати з IE7. Наприклад, в рамках стрес-тестування ми переконалися, що IE8 може працювати 12 годин поспіль, на відміну від IE7, який більше 8:00 не витримав. До того ж ми виявили, що 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>

*

*