Files
easy-png-tools2/docs/checklist-manual-testing.md

7.8 KiB
Raw Permalink Blame History

Чек-лист ручного тестирования preview

Вспомогательный документ к docs/archive/plan-testing-preview.md и e2e-тестам (web/e2e/, pnpm --dir web test:e2e). Автоматизированная часть закрывает «нет падений/ошибок»; здесь — то, что руками, и что Playwright не покрывает.

Перед прогоном: pnpm --dir web build, поднять локально web/ (dev или build → node scripts/serve-static.mjs).

Критерий приёмки большинства пунктов: нет зависит, нет «залипания», сообщения об ошибках человекочитаемые.

A. Краевые PNG-файлы

Фикстуры для этого раздела генерируются скриптом: pnpm generate:fixturestests/fixtures/manual-edge-cases/.

  • Огромное изображение (мегапиксели) — загрузка не висит, прогресс есть.
  • PNG 1×1 — инструменты не падают (проверено авто: flip-png, см. suite).
  • PNG с полупрозрачностью/чётким альфа-краёв (чёрно-белая шахматка) — remove-background, feather-edges, clean-edges дают корректные края.
  • Палитровый PNG (индексированные цвета) — конвертируется/анализируется.
  • Анимированный/APNG, если попадётся — не ломает конвейер.
  • Повреждённый/не-PNG файл — понятная ошибка, нет краша (авто-чека в pipeline.spec.ts).
  • PNG с битой CRCh / 16-bit — как ведут себя анализаторы (ориентация, размер, прозрачность).

Файлы (tests/fixtures/manual-edge-cases/)

Файл Описание
1x1.png Минимальное изображение 1×1, сплошной красный
1x1-transparent.png 1×1, полностью прозрачный (alpha=0)
2x2-extreme.png 2×2: чёрный, белый, полупрозрачный красный, прозрачный синий
1024x1024-checker.png 1024×1024, шахматка ≈1 мегапиксель
1920x1080-gradient.png 1920×1080, градиент ≈2 мегапикселя
alpha-checkerboard.png 64×64, чёрно-белая шахматка с чередующейся альфой
alpha-gradient.png 128×64, альфа-градиент 0→255 по ширине
sparse-alpha.png 100×100, 10% пикселей с alpha=0
all-black-opaque.png 64×64, сплошной чёрный
all-white-opaque.png 64×64, сплошной белый
all-transparent.png 64×64, полностью прозрачное
palette-4colors.png 32×32, палитровый 4 цвета (RGBW)
palette-256.png 64×64, палитровый полная палитра 256 цветов
16bit-subtle.png 32×32, 16-bit RGBA, тонкий градиент
noise-pattern.png 100×100, шумовая текстура
1x4000-strip.png 1×4000, длинная вертикальная полоса
4000x1-strip.png 4000×1, широкая горизонтальная полоса
corrupt-bad-crc.png 4×4, повреждённый CRC в IDAT
truncated.png Обрезанный файл (только PNG-заголовок + часть IHDR)
fake-png.txt Текстовый файл «.png» — не-PNG

B. Края параметров

  • Экстремальные значения слайдеров (0 и max) в blur/sharpen/pixelate — не «залипает» running.
  • Пустые/NaN поля (напр. width/height) — санитизация (silent repair), нет красного alert-текста в виде errors.*.
  • Невалидные цвета в плашках/градиентах (мисс-спелл #xyz, короткие hex, именные цвета) — silent repair или понятная ошибка.
  • Пустой text-source на text-инструменте — run пропускается, ошибок нет (кейс из плана п.14).
  • Смена параметра после Reset — авто-перезапуск работает (Debounce 200 мс).

C. Буфер обмена и drag-n-drop

  • В реальном браузере кнопка copy на текстовом результате (png-to-base64 и т.п.) кладёт текст в буфер (в Playwright не тестируем из-за permissions).
  • Drag-n-drop файла на dropzone страницы инструмента (не только файл-диалог) — UX-ощущения и корректность.

D. Производительность и отзывчивость

  • Долгие авто-рераны на больших картинках (jpeg-artifacts, dithering, quantize на 4К) — UI не фризит, канселяция/дебаунс срабатывает.
  • Скролл страницы при длинных настройках (например, text-инструменты) — нет залипаний, панели не прыгают.
  • Вкладка не «съедает» память при 10+ повторах blur/sharpen на мегапикселе (утечек blob-URL/bitmap быть не должно).

E. Визуальный слой (доделываем по ходу)

  • Сетки/выравнивание на брейкпоинтах 640 / 800 / 1100 (mobile/tablet/ desktop) на всех 4 маршрутах.
  • Тема light/dark: контраст вердиктов (Yes/No), статус «LIVE PREVIEW», мета-инфо бликов не даёт.
  • Иконки в каталоге на всех категориях — не «бьются» (missing icon).
  • Язык RU/EN на превью-страницах — переключение без регресса рендера.

F. Субъективная корректность

  • dithering / two-colors / quantize — результат «по ощущениям» соответствует описанию.
  • watermark-tile / add-text / date-stamp на кириллице — рендер текста корректный (не «кракозябры»).
  • remove-background на сложной полупрозрачности — края не «звенят».

Как долго

  • Полный прогон: ~40 минут (все разделы, включая мегапиксели и 4К) в двух браузерах.
  • Быстрый смоук (< 15 мин): A (кроме мегапикселей), B (выборочно), C, F выборочно, G обязательно.