# Тестування та QA

> Вибрані роботи Engineer ApS, що демонструють Тестування та QA — досягнення, які це підтверджують.

- [Мігрувала HTTP API з Fiber на Huma v2 — 649 шляхів і 760 операцій — досягнувши та втримавши 100% відповідність між маршрутами, які реєструє сервер, і описом OpenAPI, який він публікує.](https://software.engineer.company/uk/portfolio/migrated-the-http-api-from-fiber-to-huma-60/)
- [Згенерувала контракт API з бази даних назовні — OpenAPI, типізований TypeScript‑клієнт на 44 076 рядків, 61 mock‑обробник та обмеження, які застосовує UI, — з перевіркою на кожній ланці, що падає при розходженні.](https://software.engineer.company/uk/portfolio/built-a-request-schema-validation-contract-with-automated-61/)
- [Побудувала багаторівневий набір автоматизованих тестів — 981 тест Go, 543 фронтендні та браузерні специфікації, 494 поведінкові тести SQL — з мутаційним тестуванням, property‑based тестами та обов'язковою перевіркою доступності.](https://software.engineer.company/uk/portfolio/built-a-layered-automated-test-suite-across-four-layers-94/)
- [Скоротила керовані браузером ворота якості сайту з 1 636 секунд до 615, плануючи їхні перевірки від найдовшої через пул воркерів, обмежений чотирма смугами, вимірявши, що абеткова черга коштувала 320 секунд проти 224.](https://software.engineer.company/uk/portfolio/cut-the-visual-quality-gate-to-ten-minutes-128/)
- [Замінила 27 відтворених розмірів шрифту, чиї найближчі сусіди різнилися на 0,6%, шестикроковою шкалою Major Third і написала лінтер, який валить двадцять восьмий.](https://software.engineer.company/uk/portfolio/replaced-27-font-sizes-with-a-six-step-scale-129/)
- [Довела WCAG 2.2 рівня AA на 32 представницьких сторінках — по одній на шаблон на мову — в обох колірних темах, плюс два критерії AAA, із задокументованим записом відповідності та перевіркою, що захищає кожне твердження.](https://software.engineer.company/uk/portfolio/took-wcag-2-2-level-aa-across-the-whole-site-130/)
- [Знайшла й виправила 11 дефектів доступності, які браузер звітував здоровими: вісім посилань підвалу, що лишалися в порядку табуляції за pointer‑events, шкалу прокрутки, яка обрізала колофон на трьох сторінках, і механізм правил, що виконував 70 зі своїх 105 правил.](https://software.engineer.company/uk/portfolio/fixed-11-accessibility-defects-the-browser-called-healthy-131/)
- [Закрила систему кольорів на 28 задокументованих кольорах із лінтером, який валить значення, намальоване але незадокументоване, задокументоване але ненамальоване, хибно виміряне, переписане як літерал або в межах перцептивної відстані 0,02 від уже наявного.](https://software.engineer.company/uk/portfolio/closed-the-colour-system-at-28-colours-133/)
- [Виявила, що світлій темі бракувало повносторінкового шару накладання від самого дня її написання, стверджуючи, що обидві теми малюють кожну шарувату поверхню однаковою кількістю шарів.](https://software.engineer.company/uk/portfolio/found-the-light-theme-missing-an-overlay-layer-134/)
- [Зробила зменшений рух чесним, знайшовши одинадцять селекторів, які досі анімувалися під цією настройкою, бо універсальне правило transition‑none програє за специфічністю будь‑якому правилу з класом.](https://software.engineer.company/uk/portfolio/made-reduced-motion-honest-135/)
- [Виправила мапу сайту, де 172 з 176 URL мали одну позначку часу зміни, взявши дату з історії git після встановлення, що експорт переписує кожен файл при кожному запуску.](https://software.engineer.company/uk/portfolio/fixed-a-sitemap-with-one-shared-timestamp-140/)
- [Підвела 10 242 рядки JavaScript воріт якості під форматувальник і лінтер, встановивши, що це найбільший обсяг коду в репозиторії й єдиний, якого ніщо не читало, виправила 13 знахідок і не придушила жодної.](https://software.engineer.company/uk/portfolio/brought-the-quality-gate-code-under-a-linter-143/)
- [Втримала генератор на 981 тестовому випадку із порогом покриття гілок 92% і попередженнями як помилками та ствердила ідемпотентність, запустивши весь конвеєр збірки двічі з порожнього файлу й вимагаючи, щоб другий прохід нічого не змінив.](https://software.engineer.company/uk/portfolio/held-the-generator-to-964-tests-and-a-coverage-floor-145/)
- [Встановила відповідність PDF/UA‑1 на дев'яти документах за 106 зі 106 правил і виявила, що архівний варіант валить одне правило зі 146 — майже‑успіх, який читається як успіх для будь‑кого, хто не запускає валідатор.](https://software.engineer.company/uk/portfolio/established-pdf-ua-1-conformance-across-nine-documents-146/)
- [Обрала кожне правило, яке має лінтер Python, як помилку й опрацювала 1 815 знахідок до нуля, де кожен із небагатьох винятків несе письмову причину, а два з них підперті перевіркою, а не коментарем.](https://software.engineer.company/uk/portfolio/enabled-every-python-linter-rule-as-an-error-147/)
- [Вбудувала кодувальник QR — Ріда‑Соломона над GF(256), фіксоване розташування модулів, вісім шаблонів маски — на 522 рядках, замість брати третю залежність часу виконання, і перевірила його, зчитавши готову матрицю незалежно написаним декодером.](https://software.engineer.company/uk/portfolio/vendored-a-qr-encoder-in-522-lines-148/)
- [Побудувала міжмовну перевірку контенту, яка валиться, коли переклад губить число, вказане англійською, і коли мова вживає нотацію, якої не вживає, — знайшовши два данські описи без метрики і шістнадцять українських фрагментів, що цитували на англійський лад.](https://software.engineer.company/uk/portfolio/built-a-cross-language-figure-and-notation-check-153/)
- [Спинила застосунок, що наповнював пам'ять зі швидкістю 41 МБ за секунду — зафіксовані 111 ГБ стиснених сторінок на машині з 36 ГБ, — обмеживши кожен потік подій, підписуючись за типом події та поклавши бюджет швидкості на журналювання, що звело 610 996 рядків журналу до 1 411.](https://software.engineer.company/uk/portfolio/stopped-an-application-filling-memory-at-41mb-a-second-155/)
- [Прийняла повну сувору паралельність Swift 6 без акторів, перекинувши місток від блокувального циклу подій C до головного актора через одного виробника, одного споживача й один порядок — після встановлення, що задача на подію губить порядок, від якого залежить інтерфейс.](https://software.engineer.company/uk/portfolio/adopted-swift-6-strict-concurrency-over-a-c-event-loop-156/)
- [Написала парсер, який читає справжній C‑заголовок на 7 308 рядків і перевіряє кожне місце виклику, кожну константу переліку й те, що кожен клас‑власник вказівника є final, після того як рукописний заголовок‑заглушка дозволив викликам до трьох вилучених функцій скомпілюватися, злінкуватися й впасти.](https://software.engineer.company/uk/portfolio/wrote-a-parser-that-verifies-every-ffi-call-site-157/)
- [Назвала кожен суто піктограмний елемент керування в інтерфейсі для зчитувачів екрана після того, як кнопка надсилання оголошувалася як «arrow up circle, button», і написала лінтер, що вимагає підпис у межах восьми рядків від піктограми.](https://software.engineer.company/uk/portfolio/named-all-seventeen-interface-icons-for-screen-readers-159/)
- [Побудувала систему дизайну на 48 токенів поверх власного скляного матеріалу платформи й написала лінтер, який відхиляє магічне число, жорстко задений розмір шрифту чи анімацію, що ігнорує настройку зменшеного руху.](https://software.engineer.company/uk/portfolio/built-a-48-token-design-system-160/)
- [Дістала ту половину ядра обміну повідомленнями, якої застосунок ніколи не використовував, — передавання резервної копії, зникомі повідомлення, редагування та повторне надсилання, підтверджені запрошення, проксі та політику шифрування, — ведучи кожен тест проти справжньої бібліотеки без заглушок.](https://software.engineer.company/uk/portfolio/reached-the-unused-half-of-the-messaging-core-161/)
- [Переписала повідомлення про помилки застосунку за письмовим стандартом тону після того, як відмовлений вхід звинуватив користувача в друкарській помилці, тоді як провайдер насправді вимагав пароль для застосунку, і покрила це тестом, який називає провайдера.](https://software.engineer.company/uk/portfolio/rewrote-the-error-messages-against-a-tone-standard-162/)
- [Побудувала набори піктограм і фавіконів компанії з двох рукотворних малюнків, де кожен похідний ресурс перегенеровується скриптом, а перевірка валиться, коли похідний файл закомічено раніше за своє джерело.](https://software.engineer.company/uk/portfolio/built-the-visual-identity-from-two-drawings-164/)

<https://software.engineer.company/uk/categories/testing/>
