TGViewer
Test Engineering Notes Test Engineering Notes @testengineering · 4.01K subscribers
Post #730 1.54K
The most mysterious bug I solved at work

#bug

Пропоную до вашої уваги історію про вельми цікавий баг. Історію в своєму блозі розповів Cadence Ember.

Про систему

Одного разу Cadence працював кимось між розробником, тестувальником та сапортом. Продукт, над яким він працював був типу Patient Management Software. В цьому софті лікар міг створити електронне направлення до іншого лікаря. Частину даних про паціента отримували зі сторонніх систем - то ж лікарю треба було тільки заповнити декілька полів у формі, згенерувати у форматах HL7, XML чи PDF та відправити.

Про баг

Раз на два - чотири тижні, система кидала помилку на етапі відправки електронного відправлення:

Illegal Character entity: expansion character (code 0x2) not a valid XML character

Зазвичай, фіксити таку помилку можна було SQL скриптом, що видаляв "\u0002" із бази даних. Але Cadence вирішив знайти першопричину проблеми.

У пошуках відповідей

Що значить символ 0х2? Як ви знаєте, кожна літера тексту представлена числом у компʼютері. Числа нижче 31 використовуються для невидимих "керуючих символів". Керуючі символи були важливі в часи телетайпів - коли символи передавались одним потоком й треба було розрізняти розмітку тексту. Символ 0х2 - це початок тексту, а 0х3 - кінець тексту.

Провівши свої дослідження ще більше, Cadence зрозумів, що символ 0х2 чомусь виникає в кінці першого рядка тексту:


development. Physically, his well-
being is healthy, so likely needs


Тобто дефіс чомусь перетворюється на символ 0х2!

В чому була проблема

Виявляється, браузери та програми працюють з PDF текстами по різному. Автор спробував працювати з PDF з текстом з дефісами в Google Chrome, Mozilla Firefox, Microsoft Edge та Acrobat Reader.

Й саме браузер Edge перетворював дефіс на символ 0х2 ... коли скопіювати текст з PDF файлу відкритого в браузері в систему створення лікарських направлень.

Як пофіксили? Помилку виправили на стороні продукту самого розробника - шляхом автоматичної заміни символу 0х2 на дефіс.
  • 👍 23
  • 🤯 5
  • 🔥 1
More from @testengineering
  1. Oct 6, 2026Вже жовтень - саме час готуватися до ISTQB CT-GenAI "До Нового Року є ще цілий квартал щоб…
  2. Oct 5, 2026Ministry of Testing - англомовні івенти на всі смаки #testing #ai Всім привіт. Хочу розпов…
  3. Sep 30, 2026Скіл, щоб прибрати зайве #ai Цікавий скіл, щоб не продиратись через купу згенерованого тек…
  4. Sep 29, 2026Що таке агент? #ai Зрозумій, на небесах в тестуванні тільки й говорять, що про море агенті…
  5. Sep 28, 2026Navigating the AI Shift #testing@testengineering #ai@testengineering Трохи старе, але не м…
  6. Sep 25, 2026Сувора QA Конференція - AI в тестуванні Вже наступного тижня пройде найцікавіша онлайн-кон…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →