Мой Справочник | Оптимизация

Тестирование

  1. Функциональное (работа приложения)
  2. Нефункциональное
    • Нагрузочное (DDos)
    • Кроссплатфоренное (Работа на всех платформах)
    • Установочное тестиование (Как устанавливается)
    • Тестиование безопасности (Безопасность данных)
    • Отказ и восстановление (Варианты отказа, как восстановить данные)
  3. Юзабилити (как удобно пользоваться)
  4. Регрессионное (перепровека старого функционала, после внедрения нового)
  5. Дымовое (smoke-testing, проверка только нового функционала)
  6. Позитивное (проверка системы с работой с ожидаемыми типами данных)
    Негативное (проверка системы с работой с неожидаемыми типами данных, например если в цифровое поле будет введен еще текст, как система будет себя вести)
  7. Ящики
    • Черный (без поверки кода, с позиции пользователя)
    • Белый (проверка кода, unit-тесты, проверяется самими разработчиками)
    • Серый (если тестировщик имеет опыт программирования, совместно с разработчиком)
Верификация и валидация, Selenium IDE


Критерии оптимизации

  1. Время загрузки сайта
  2. Работа сайта без js
  3. Прогрессивное улучшение
  4. Количество запросов к серверу
  5. Отказ от большого количества библиотек
  6. Шрифты и изображения - самые тяжёлые ресурсы (можно использовать тег picture)
  7. Нужно ли загружать кастомные шрифты? (Есть же много системных)
  8. Не стоит грузить шрифты, анимации, тяжелые картинки на mobile вообще (делаем @media на @font-face)
  9. Оптимизация изображений. SVG вместо png для декорирования. Встроенный в html svg-спрайт
  10. Минификация и конкатинация js и css
  11. Critical CSS & Load CSS (встроенный css в html для первых 1000px высоты страницы)
  12. Google page speed, GT-Metrix
  13. Web page test (speed index около 1000 это круто)
  14. Кеширование и Storage

Делить весь контент на три составляющие по значимсти:

  1. Core content

    Должно начать отображаться уже в первой секунде загрузки и содержаться в 14kB

    Должно загружаться даже без JS и в старых браузерах

  2. Enhancent

    Улучшение

  3. Leftovers

    Необязательый, тяжёлый контент, которым можно пожертвовать (Аналитика, реклама, виджеты)

Если не загрузился полностью какой-либо этап, то не слеующий не грузится (реализация на JS)

Уже готовые реализации: