Начать. Это бесплатно
или регистрация c помощью Вашего email-адреса
Тестирование создатель Mind Map: Тестирование

1. How to use this template

2. Инструменты

2.1. Система контроля версий? GIT

2.1.1. Суть системы такова, что все файлы хранятся на сервере, а клиенты подключаются к серверу, скачивают актуальное состояние файлов, вносят правки и отсылают изменения обратно на сервер, чтобы другие клиенты могли работать уже и с их правками.

2.1.1.1. - git config - используется для настройки Git. Например, можно указать своё имя и email, которые будут использоваться для коммитов. - git clone - копирует удалённый репозиторий на твой локальный компьютер. Полезно, когда хочешь начать работать с проектом, который уже существует. - git status - Показывает текущее состояние твоего репозитория. Ты увидишь, какие файлы изменились, какие добавлены. - git pull - Обновляет твой локальный репозиторий, загружая изменения из удалённого репозитория. Полезно, чтобы быть в курсе последних изменений, сделанных другими.

2.1.1.1.1. - git push - Отправляет твои локальные изменения в удалённый репозиторий. Это нужно, чтобы другие могли увидеть твои изменения. - git checkout - Переключает тебя на другую ветку или версию файла. Полезно, чтобы работать с разными версиями кода или переключаться между задачами. - git commit - Сохраняет твои изменения в репозитории. Каждый коммит имеет сообщение, которое описывает, что именно было изменено. - git merge - Объединяет изменения из одной ветки в другую. Полезно, когда нужно интегрировать работу из разных веток в основную ветку.

2.2. Jaeger?

2.2.1. - нужен для проверки взаимодействий между микросервисами. ( где какой микросервис например не отрабатывает запрос)

2.3. Charles ?

2.3.1. сниффер трафика. Можно смотреть запросы, проверка при замедленном интернете, можно подменить запросы и тд. Выступает посредником между ПО и сервером.

2.3.1.1. 1. Breakpoints Достаточно универсальный инструмент. Позволяет перехватывать запрос и менять его в реальном времени. Удобно пользоваться для небольших изменений в запросе. Например, поменять статус кода ответа или для единичных случаев подмены параметров в теле ответа. 2.Map Local Функция «Map Local» в Charles Proxy используется для замены ответа с удаленного сервера на локальные ресурсы. Удобство этой функции особенно заметно, когда время на запрос сильно ограничено или тело ответа достаточно массивно для манипуляций через Breakpoints. 3.Map Remote Map Remote используется для перенаправления пользователя с одного URL-адреса на другой. Также позволяет изменить не только хост, но и отдельные параметры.

2.3.1.2. 4.Rewrite Rewrite можно назвать самым мощным инструментом Charles Proxy. Он позволяет задавать правила, по которым будут изменяться запросы и ответы, проходя через Charles. Например, можно добавлять и изменять заголовок, искать и заменять текст в теле ответа или запроса. 5. Throttling Инструмент Throttling позволяет тестировать поведение приложения при различных условиях сетевой задержки и ограниченных пропускных способностях сети. 6.Bandwidth — скорость соединения Utilisation — процент пропускной способности Round-trip latency — устанавливает задержку между клиентом и сервером MTU — максимальный размер пакета Reliability — вероятность, что соединение не удастся Stability — вероятность нестабильного соединения и снижения качества интернета. Это полезно для моделирования сетей, в которых периодически падает качество связи, например, мобильных

2.4. CI/CD?

2.4.1. CI — это процесс, при котором разработчики часто объединяют свои изменения в основной код проекта, и автоматически запускаются тесты для проверки этих изменений. Для чего нужно: 1. Раннее обнаружение ошибок: Если кто-то добавил ошибку, это будет видно сразу, а не через несколько дней. 2. Ускорение разработки: Разработчики могут быстрее получать обратную связь о своих изменениях. 3.Улучшение качества кода: Автоматические тесты помогают поддерживать высокое качество кода. CD — это процесс, при котором изменения, прошедшие все тесты, автоматически развертываются в рабочую среду. Для чего нужно: 1. Быстрая доставка новых функций: Пользователи получают обновления быстрее. 2.Снижение рисков: Частые и небольшие изменения легче исправить, если что-то пойдет не так. 3.Улучшение обратной связи: Команда может быстрее узнать, как пользователи реагируют на новые функции.

2.4.1.1. Quality Gate (качественные ворота) — это набор критериев и проверок, которые должны быть пройдены перед тем, как код будет считаться готовым для следующего этапа разработки или развертывания. Эти этапы помогают обеспечить высокое качество кода и минимизировать риски ошибок.

2.4.1.2. Этапы Quality Gate и что делаем: 1, Анализ: - Тестирование документации и статическое тестирование требований позволяют выявить возможные проблемы на ранней стадии, такие как недоразумения или пропущенные требования. Например, могут быть выявлены противоречия в требованиях, которые в дальнейшем могут привести к конфликтам на этапе разработки. 2.Разработка кода: - Статический анализ кода — это автоматизированный процесс, который помогает выявлять ошибки, уязвимости и несоответствия установленным стандартам. Например, статический анализ может обнаружить устаревший метод шифрования, который мог бы поставить под угрозу безопасность данных пользователей. - Одним из важнейших инструментов на этом этапе являются линтеры. Линтеры — это специальные программы, которые анализируют исходный код на соответствие стилевым соглашениям и другим правилам кодирования. Они помогают обнаруживать проблемы, такие как некорректное форматирование, использование устаревших синтаксических конструкций и потенциально неэффективные конструкции кода.

2.4.1.3. 3. Запрос на слияние ветки: - Модульное тестирование (unit-тестирование) является основой для оценки покрытия на данном этапе. Разработчики пишут тесты, которые проверяют функциональность отдельных модулей или компонентов системы. Это помогает удостовериться, что каждая часть кода работает правильно и не вызывает ошибок. Например, в рамках одного проекта модульное тестирование выявило некорректное поведение функции расчета налогов при определенных условиях. -Ревью кода на этапе запроса на слияние — это важный процесс, в ходе которого другие члены команды проверяют код на соответствие стандартам, логическую корректность и качество. Это также возможность для обсуждения альтернативных подходов и оптимизации решений. 4.Слияние с основной веткой: - После слияния кода с основной веткой первым шагом является сново проведение модульного тестирования. Этот процесс включает повторный запуск всех unit-тестов, чтобы проверить, что слияние не привело к ошибкам в работе отдельных модулей. - Статический анализ кода после слияния с основной веткой помогает проверить код на наличие потенциальных проблем, таких как уязвимости, утечки памяти или несоответствия стандартам кодирования. Например, если в процессе слияния были добавлены новые библиотеки или изменены ключевые части кода, статический анализ может выявить, что некоторые из них имеют известные уязвимости или не соответствуют корпоративным стандартам безопасности.

2.4.1.4. 5. Установка на тестовое окружение: - Первой важной активностью на этом этапе является интеграционное тестирование. Это тестирование направлено на проверку взаимодействия различных компонентов и модулей системы. Цель интеграционного тестирования — убедиться, что все части системы корректно работают вместе и не возникает конфликтов при их взаимодействии. Например, если в системе были внесены изменения в интерфейс API, интеграционное тестирование поможет проверить, что все модули, использующие этот интерфейс, работают корректно и передают данные без ошибок. - Конфигурационное тестирование направлено на проверку работы системы в различных конфигурациях окружения. Это может включать тестирование работы приложения с разными версиями операционных систем, баз данных или других ключевых компонентов инфраструктуры. В данном случае основная задача — убедиться, что система работает корректно в разных условиях и на разных платформах. - смоук - тестирование

2.4.1.5. 6, Тестирование на тестовом стенде: - Ручное тестирование — это процесс проверки системы вручную, без использования автоматизированных инструментов. Тестировщики выполняют тест-кейсы, чтобы убедиться, что все функции приложения работают правильно и соответствуют требованиям. - Тестирование производительности направлено на оценку поведения системы под нагрузкой. Оно включает проверку времени отклика, пропускной способности, стабильности и масштабируемости приложения при различных уровнях нагрузки. На данном этапе важно выявить узкие места и убедиться, что система может справляться с ожидаемыми объемами трафика и данных. - Автоматизированное тестирование на этом этапе включает выполнение автоматизированных тестов, которые покрывают основные функциональные и нефункциональные аспекты системы. Эти тесты помогают оперативно и эффективно проверять систему, обеспечивая высокую скорость и качество тестирования. 7.Приемка: - Приемочное тестирование пользователями направлено на проверку системы на соответствие критериям, установленным заказчиком или конечными пользователями. Это финальная оценка качества и функциональности продукта, чтобы убедиться, что он удовлетворяет всем требованиям и готов к использованию.

2.4.1.6. - Тестирование внешними пользователями (или бета-тестирование) — это важный процесс, в рамках которого ограниченный круг конечных пользователей получают доступ к системе для проверки ее работы в реальных условиях. Это позволяет получить ценные отзывы от пользователей и выявить скрытые проблемы, которые могли быть пропущены на предыдущих этапах тестирования. -Отдельный вид приемки в Agile процессе может быть демо. Демо — это презентация результатов работы, проведенная для заказчика или ключевых заинтересованных лиц. В ходе демо команда представляет новые функциональные возможности и улучшения, объясняет технические решения и демонстрирует работу системы. 8.Экспуатация: - Управление проблемами связано с анализом и решением корневых причин инцидентов, чтобы предотвратить их повторное возникновение. Это включает в себя глубокий анализ причин проблем и разработку долгосрочных решений.

2.5. Docker?

2.5.1. Docker — это платформа, которая позволяет упаковывать приложения и их зависимости в контейнеры. Контейнеры можно легко перемещать и запускать на любой системе, где установлен Docker. Контейнер — это легковесная и изолированная среда, в которой работает приложение. Контейнер включает в себя все необходимые зависимости и библиотеки, чтобы приложение работало корректно. Это похоже на виртуальную машину, но контейнеры легче и быстрее. Состав Docker: 1) Docker Engine: Основной компонент, который управляет контейнерами. 2) Docker CLI: Командная строка для управления Docker. 3) Docker Hub: Облачный сервис для хранения и распространения Docker-образов. 4) Docker Compose: Инструмент для управления многоконтейнерными приложениями.

2.5.2. Основные сущности: 1) Dockerfile: Файл, в котором описывается, как создать Docker-образ. 2) Образ (Image): Шаблон, из которого создаются контейнеры. Образ включает в себя все необходимые зависимости и настройки для приложения. 3) Контейнер (Container): Экземпляр образа, который работает в изолированной среде. 4) Реестр (Registry): Хранилище для Docker-образов. Пример — Docker Hub.

2.5.3. Dockerfile — это файл, в котором описывается, как создать Docker-образ. Вот основные команды, которые используются в Dockerfile: 1) FROM: Указывает базовый образ, на основе которого будет создаваться новый образ. 2) RUN: Выполняет команду в контейнере. 3) COPY: Копирует файлы и директории из хост-системы в контейнер. 4) WORKDIR: Устанавливает рабочую директорию в контейнере. 5) CMD: Указывает команду, которая будет выполнена при запуске контейнера. 6) EXPOSE: Указывает, какие порты будут открыты в контейнере. 7) ENV: Устанавливает переменные окружения в контейнере.

3. Интернет и сети

3.1. DNS?

3.2. IP адрес?

3.2.1. IP-адрес - это уникальный сетевой адрес узла в компьютерной сети, построенный по протоколу ip. IP-адрес представляет собой 32-битовое (по версии ipv4), либо же 128- битовое (по версии ipv6) двоичное число.

3.3. mac-адрес.?

3.3.1. Это физический адрес нашего устройства, он прописывается при производстве сетевой карты. Т.е. если у вас на собеседованиях спросят сколько вообще mac-адресов есть системе, то вы всегда должны сказать, что столько же, сколько сетевых карт у нас установлено в оборудовании, которое к этой системе принадлежит.

3.4. TCP/IP модель?

3.4.1. 1.Первый уровень - это уровень сетевых интерфейсов, т.е. в данном случае передаются какие-то физические импульсы, т.е. сюда можно отнести, например, оптоволокно. 2, Второй уровень - это уровень сетевой, т.е. здесь уже происходит передача физических сигналов в виде битов или байтов, здесь уже, например, можно выделить такой протокол, как IP. 3. Третий уровень - транспортный уровень, здесь уже происходят какие-то транспортные взаимодействия в нашей сети, здесь выделяют два вида протоколов - TCP и UDP. ( TCP протокол, т.е. это такой надежный транспортный протокол, в результате которого при передаче файлов происходит гарантия того, что информация доходит до нашего клиента. UDP, то здесь не нужно убеждаться в том, что наша информация дошла, т.е. это происходит непрерывным потоком. Информация передается и нет никаких механизмов, которые говорили бы о том, что гарантированно наша информация попала к клиенту, либо серверу.) 4.Четвертый уровень - это application (прикладной) уровень. Это специфический уровень для нашего приложения. Т.е. уже то, как в нашем приложении происходят различные взаимодействия.

3.5. HTTP протокол ?

3.6. URN, URI, URL?

3.6.1. 1. URN - это неизменяемая последовательность символов, определяющая только имя некоторого ресурса. Это имя определяет только название самого ресурса, но не говорит как к нему подключаться. 2.URI - наш какой-то уникальный идентификатор, это обобщенное понятие множества идентификаций нашего ресурса, которая включает как URL, так и URN, и может включать их по отдельности, либо же все вместе. Т.е. мы можем считать, что идентификатор - это наш локатор, либо же идентификатор - это имя, либо же идентификатор - это и наше URL и URN. 3.URL (Uniform Resource Locator) - это уникальный адрес сайта в сети, который определяет его местонахождение в сети интернет.

3.7. модель OSI?

4. Мобильное тестирование

4.1. что такое эмулятор?

4.1.1. 1. Эмулятор — это программа, которая полностью воспроизводит аппаратные характеристики и операционную систему мобильного устройства. Эмулятор имитирует как аппаратную платформу устройства, так и его операционную систему, поэтому он может запускать мобильные приложения так, как это сделал бы настоящий смартфон. Эмулятор - имитирует работу мобильного устройства, включая аппаратную составляющую. Имитирует операционную систему и характеристики устройства. ( процессор, память, сенсоры, сеть и тд). Эмулятор полезен, когда необходимо тестировать приложение в условиях, максимально приближенных к реальному устройству. Он позволяет тестировать поведение приложения на разных версиях ОС и моделях устройств. Эмуляторы Android, например, запускаются через Android Studio и могут имитировать разные версии Android и различные устройства (с настройкой экрана, разрешения, процессора и других параметров). Эмуляторы могут быть более медленными по сравнению с реальными устройствами, так как они используют вычислительные ресурсы компьютера для эмуляции устройства. (работа микрофона,динамика, камеры и тд))

4.2. симулятор?

4.2.1. Симулятор, в отличие от эмулятора, не имитирует реальные аппаратные характеристики устройства, а лишь копирует его поведение на уровне программного обеспечения. Он не может воспроизвести взаимодействие с устройством на низком уровне, например, работу с сенсорными экранами, камерами или сенсорами. Преимущества симуляторов: Легче и быстрее, так как не требует полной аппаратной эмуляции. Подходит для базового тестирования функциональности приложения. Чаще всего используется для тестирования программных аспектов приложения, например, UI или логики.

4.3. проверка ui?

4.3.1. 1.Навигация. Легко ли пользователям находить основные функции приложения? Все элементы интерфейса должны быть расположены логично и последовательно. 2.Согласованность интерфейса. Все экраны приложения должны иметь единый стиль и дизайн. Для этого используют одинаковые шрифты, цвета и элементы на всех экранах. 3.Размеры и читаемость текста. 4.Кликабельность и отзывчивость элементов. Все ли интерактивные элементы (кнопки, ссылки) легко нажимаются и реагируют на действия пользователя? 5.Скорость загрузки и плавность работы. Загружаются ли все экраны и контент быстро и плавно? 6,Обратная связь пользователя. Получает ли пользователь обратную связь при выполнении действий (например, подтверждения отправки формы)? 7.Устойчивость к ошибкам. Как приложение реагирует на неправильные действия пользователя?

4.3.2. 8. Ориентация и адаптивность. 9.Доступность для пользователей с ограниченными возможностями. Доступно ли приложение для пользователей с ограниченными возможностями (например, слабовидящих)?

4.4. баги на специфических устройствах?

4.4.1. 1. связанные с производителем устройства – например, нестандартный API камеры или кастомная системная библиотека; 2.связанные с версией ОС Android – например, несовместимые API и проблемы производительности (флагманы всего-то пятилетней давности и не мечтали о 512 Мб памяти); 3. связанные с размером/ разрешением экрана, чипсетом и прочими различиями в железе

4.5. на что нужно обращать внимание при выборе моб устройств?

4.5.1. 1. статистика 2. целевая аудитория 3. производители 4. флагманские модели 5. версии операционных систем ( новая и самая старая) 6. размер экрана и разрешение 7. платформа ( айос или андроид) 8. географическое положение 9. оперативная память

4.6. отличия ios от android?

4.6.1. 1. навигация 2. размер экрана и разрешения 3.

4.7. виды мобильных приложений?

4.7.1. 1. Нативные - когда код пишется отдельно под каждую платформу. Например, для Android это Kotlin, а для iOS — Swift. Отличить такое приложение просто: оно устанавливается прямо на устройство, имеет свою иконку на рабочем столе и открывается даже без интернета. 2. кросс- платформенные - когда код пишется один раз, а потом запускается на разных устройствах. Такие приложения построены обычно не по гайдлайнам своих систем, а потому могут выглядеть чужеродно.

4.7.2. 3. Веб - приложения - технически это не совсем мобильные приложения, а скорее сайты, адаптированные под мобильные устройства. Например, сайт банка «Тинькофф» — это веб-приложение. Можно даже вывести его иконку на рабочий стол смартфона и запускать как обычное нативное приложение. 4. Гибридные - это когда веб-страница или сайт открывается внутри мобильного приложения. Работает это обычно на базе технологии WebView: есть окно браузера, которое загружает контент, и есть несколько нативных элементов интерфейса, например кнопки навигации, анимация загрузки и другие.

4.8. Что нужно проверять при тестировании мобилок?

4.8.1. 1. работа на разных устройствах. 2. интерактивность и жесты 3.производительность 4.работа при разном уровне сигнала 5.удобство ui/ux 6.обновление/установка/удаление 7.тестирование совместимости 8.безопастность 9.

4.9. зачем нужен TestFlight?

4.9.1. TestFlight - это тестовая платформа Apple для приложений, где разработчики могут размещать свои программы, чтобы протестировать их на узкой аудитории пользователей непосредственно перед публикацией в App Store.

5. Теория тестирования

5.1. Что такое тестирование? Отличие QA/QC ?

5.1.1. Тестирование - это поиск несоответсвий между фактическим и ожидаемым результатом. QA(фокус на процесс) - основная задача предотвратить появление дефектов на всех этапах разработки: от описания самого продукта до тестирования. Участвует в процессе совершенствования продукта. QC(фокус на продукт) - основная задача найти дефекты в уже готовом продукте и проверить его соответсвие установленным стандартам.

5.2. Цели тестирования?

5.2.1. 1. Предоставление актуальной информации о состоянии продукта заинтересованным лицам на текущий момент. 2. ПО соответствует заявленным требованиям. 3. Повысить вероятность того, что ПО будет работать хорошо при любых условиях. (серьезности дефектов) 4. Поиск дефектов.

5.3. Жизненный цикл ПО и на каких этапах участвует тестировщик?

5.3.1. 1.Планирование - 2.Анализ - ( Определяет цели ПО, изучает и оценивает требования к продукту, анализирует требования с целью выявить потенциальные проблемы в процессе разработки) 3.Проектирование - (изучает архитектуру по) 4.Разработка 5.Тестирование 6. Внедрение и поддержка

5.4. STLC?

5.4.1. 1.Анализ требований (тестирование и уточнение требований) 2. Планирование ( тест - план, определение цели тестирования) 3. Разработка тестов ( составление тест - кейсов и чек - листов, создание тестовых данных) 4. Выполнение тестов (выполнение тестов, создание отчетов по багам) 5. Оценка результатов (составление отчета по тестированию, определение состояние ПО)

5.5. Критерии входа(когда начинаем тестить) и выхода(и когда заканчиваем)?

5.5.1. Вход: 1. Готовность требований 2. Готовность среды 3. Готовность тестовых данных 4. Готовность документации 5. Готовность команды Выход: 1.Завершение выполнения тест - кейсов 2. Исправление критических дефектов 3. Покрытие требований 4. Отчетность и документация 5. Производительность и нагрузка

5.6. Отличие валидации от верификации?

5.6.1. Верификация ( делаем мы продукт правильно?) - подтверждение, что функциональность работает согласно требованиям. Например, новый баннер с акциями на главной странице такой же, как на макетах: по ширине, высоте, цвету и содержанию. Валидация ( делаем ли мы правильный продукт? ) - подтверждение, что ПО соответствует ожиданиям и требованиям клиента.

5.7. Принципы тестирования?

5.7.1. 1. Тестирование показывает наличие дефектов - показывает, что в продукте существуют дефекты, но не сигнализирует о том, что дефектов не существует вообще. 2. Исчерпывающее тестирование невозможно. 3.Раннее тестирование ( экономия средств заказчика) 4. Скопление дефектов ( 80 на 20) - в небольших количествах модулей сокрыто большое количество дефектов. 5. Парадокс пестицида. 6. Тестирование зависит от контекста. 7. Заблуждение об отсутствии ошибок - тестировщику не стоит полагать, что если тестирование не обнаружило дефект, то программа готова к релизу.

5.8. Что такое баг и фича?

5.8.1. баг - несоответствие фактического и ожидаемого результата. фича -функциональная возможность(особенность) программы.

5.9. Виды тестирования?

5.9.1. Функциональное тестирование. ( что программа делает?)

5.9.1.1. Нефункциональное тестирование (как должна программа работать?) 1) Тестирование пользовательского интерфейса - проверка дизайна на макеты. 2) тестирование производительности - определяем работоспособность системы под разными нагрузками. а)Нагрузочное тестирование - производительность при нормальных условиях.( 1000 пользователей должно быть, поэтому проверяем в этом диапазоне) б)Стресс - тестирование - работоспособность при экстремальных условиях (1000 пользователей должно быть, поэтому проверяем выше этого значения) в)Тестирование стабильности - проверка приложения при длительной работе. г)Объемное тестирование - тестируем при увеличенных объемах обрабатываемых данных. (когда одновременно отправляют энное количество мегабайт информации)

5.9.1.1.1. 1) Тестирование на отказ и восстановление - реакция системы на непредвиденные ситуации. Исследование программных систем на предмет восстановления после ошибок и сбоев. 2) Тестирования удобства использования. 3) Тестирование безопасности - защищенность пользовательских данных ( может ли неавторизованный пользователь получить доступ к системе, посторонний пользователь может ли получить данные) 4) Тестирование установки - успешность установки, настройки, обновления и удаления. 5) Конфигурационное тестирование -работоспособность программной системы в условиях различных программных конфигурациях. а) Кроссплатформенное - тестируем на различных типах и версиях оперативных систем. б) Кроссбраузерное - тестируем на различных браузерах .

5.10. Тестирование по использованию сценария?

5.10.1. AD - hoc - тестирование без использования каких - либо спецификаций. На эмпирическом уровне, чистая импровизация. Исследовательское тестирование - выполняет работу с приложением по конкретному выбранному сценарию, который дорабатывается в процессе выполнения с целью более полного исследования приложения. Сценарное тестирование - по предварительно написанным и задокументированным тестовым сценариям.

5.11. Тестирование по запуску кода?

5.11.1. 1. Динамическое - запуск программного кода. Анализируется поведение программы во время ее работы. 2.Статическое - Начинается на ранних этапах. Тестирование документации, ревью кода.

5.12. Тестовая документация?

5.12.1. Чек - лист ( что тестируем?) - это список проверок, который показывает что тестировать и обязательно должен содержать в себе результат наших проверок. Версия нашей сборки, окружение, на котором проводилось тестирование. - Дата проведения нашего теста - Тестировщик, который проводил данное тестирование - Название проверок - Результат нашего тестирования ( прошла или нет)

5.12.1.1. Тест - кейс ( как тестируем?) - документ, где пишем последовательность шагов для тестирования. Test - suite ( тестовый набор) - это набор тест кейсов, в котором результат выполнения каждого тест - кейса является некоторым предусловием для начала выполнения следующего, т.е эти кейсы идут друг за дружкой по порядку. - Идентификатор - Приоритет - ссылка на требования - название модуля ( регистр. нов. пользователя) - заглавие ( регистр.нов.польз. с помощью моб) - шаги воспроизведения и по каждому шагу или общий итог. - фактический результат -

5.12.1.1.1. Тест - план - документация, описывающая цели тестирования, которые должны быть достигнуты, средства и график их достижения, организованная для координации тестовой деятельности. 1. Что надо тестировать?(система, приложение, сайт и тд) 2. Что будем тестировать?( список функций, описание системы и ее компонентов) 3. Как будем тестировать? ( методы, подходы) 4. Когда будем тестировать?( последовательность: подготовка, тестирование, анализ результатов) 5. Критерии начала и окончания тестирования.( готовность тестовой среды, законченная разработка функционала, наличие документации; удовлетв. критерии качества,требования к количеству открытых багов, выдержка без багов) 6. Окружение 7. Ресурсы 8. риски

5.13. Тест кейс vs чек лист?

5.13.1. 1.Чек лист помогает тогда, когда плохо написана документация ( размытые требования) 2. Чек лист хорош в краткосрочных проектах ( если один на проекте например)

5.14. Баг - репорт и жизненный цикл бага?

5.14.1. - ID - Название ( что где когда?) - Описание - Приоритет и серьезность - Предусловие - Шаги - Постусловие - завершение сессии - Ожидаемый результат - Фактический результат - Окружение - доказательства( фотки, видео, скрины)

5.14.1.1. Обнаружен - назначен - исправлен - проверен - закрыт

5.15. Уровни тестирования?

5.15.1. 1. Unit ( модульное) - тестирование отдельных компонентов исходного кода программы. 2. Интеграционное - проверка взаимодействия между компонентами и связи с различными частями системы.(произвести оплату при помощи платежной системы?) 3.Системное - выполняется на полной интегрированной системе с целью проверки соответствия системы исходным требованиям.(все приложение целиком проверяем) 4.Приемочное - проводится на этапе сдачи готового продукта заказчику. Финальный этап перед релизом

5.16. Интеграционное тестирование?

5.16.1. 1.Подход большого взрыва - тестирование выполняется только после того, как все компоненты системы были разработаны и готовы к интеграции. Все компоненты интегрируются одновременно. 2.Инкрементальный подход. Нисходящий подход (сверху вниз) - начинается с верхних модулей и идет далеек нижним. Подход снизу вверх - с низкоуровневых модулей к верхним. Сэндвич - комбинация "сверху вниз" и "снизу вверх"

5.16.1.1. 1. Внешняя: - Авторизация ( вк,майл,яндекс) - Эквайринг ( платежная страница) - Баннеры рекламы ( директ) 2. Внутренняя: - Между сайтом и Бэкендом ( инструмент : девтулс) - Между Бэкендом и Базой данных ( инструмент: DBeaver, Metabase) - Между микросервисами с исп. Брокера ( инстр: Kafka UI) - Между микросервисами( инстр: jaeger) 3. На этапе разработки: Моки(заглушки) - инструменты: Postman Mock Servers, WireMock

5.17. Техники тест - дизайна?

5.17.1. 1.Граничные значения - данные на границах. 2. Классы эквивалентности 3. Таблицы принятия решений - создание таблицы с комбинациями входных данных и ожидаемыми результатами. 4. Причинно - следственная связь - например заполняем логин пароль и нажимаем ок. Ожидаем, что наши данные будут сохранены в базе данных. 5. Попарное тестирование - тестирование всевозможных пар комбинаций параметров.суть метода заключается в том, чтобы каждое значение хотя бы раз побывало в одной точке с другим значением. Это позволяет избежать избыточных проверок и сократить количество генерируемых тест-кейсов. 6. Тестирование состояний и переходов - переходы между состояниями. ( ожидание монеты, ожидание выбора, выдача билета) 7. Тестирование на основе пользовательских сценариев - тестировщик выполняет целый ряд действий, которые пользователь мог бы совершить в реальных условиях использования продукта. 8. Исследовательское тестирование - не требует подготовки и тестовых сценариев

5.18. Какие бывают виды требований?

5.18.1. 1. Прямые - бизнес -требования, системные требования, спецификации, макеты приложения, отчеты от заказчиков. 2.Косвенные - анализ конкурентов, UX принципы, отчеты бета - тестов.

5.19. Тестирование связанное с изменениями?

5.19.1. 1. Подтверждающее тестирование (ре - тестинг) - дефект исправлен 2. Регрессионное - не вызвало ли исправление бага или написание нового кода каких -либо изменений в других места. 3. Смоук - приложение стартует и выполняет свои основные функции. 4. Sanity - глубинное исследование определенной функции. 5. Тестирование сборки - стабильность сборки в целом, чтобы начать более тщательное тестирование.

5.20. Этапы тестирования?

5.20.1. 1. Планирование тестирования 2.Подготовка и выполнение проверок 3. Составление отчета по результатам

5.20.1.1. Подробнее: -Инициация процесса тестирования - Выявление прямых и косвенных требований - Генерация тестовых случаев - Отбор значимых тестовых случаев - Проведение проверок - Фиксация результатов - Анализ результатов Планирование: Тестировщик совместно с командой определяет объем работы и планирует тестирование на основе функциональности, которую необходимо реализовать в следующем спринте. Подготовка: во время разработки готовятся в тестированию, изучая требования, задавая уточняющие вопросы и проектируя тесты, такие как чек листы и тест кейсы. Составление отчета: составляют отчет, в котором указывается количество найденных ошибок и оценивается готовность к релизу.

5.21. Методы тестирования?

5.21.1. 1. Черный ящик - тестирование ПО без знания его внутренней структуры и реализации. От лица пользователя. 2. Серый ящик - некоторое представление о внутренней структуре ПО.( API) 3. Белый ящик - тестирование внутренней структуры и реализации ПО.

5.22. User story?

5.22.1. Cпособ описания требований к разрабатываемой системе, сформулированных как одно или несколько предложений на повседневном или деловом языке пользователя. Пользовательские истории – это один из самых быстрых способов документирования требований клиента (цель документирования состоит в том, чтобы оперативно и без затрат реагировать на возникающие изменения).

5.23. что такое shift-left testing?

5.23.1. Предполагает перемещение тестирования на более ранние этапы разработки. Основная идея заключается в том, чтобы обнаруживать и исправлять ошибки как можно раньше в процессе разработки, что позволяет снизить затраты и улучшить качество конечного продукта. Раннее тестирование помогает выявить и исправить проблемы, которые могут быть упущены на поздних этапах, и ускоряет процесс разработки, избегая задержек, связанных с исправлением ошибок на поздних этапах.

6. WEB

6.1. Что такое браузер?

6.1.1. Бразуер - это программа для просмотра веб - страниц. Выступает в качестве клиента в клиент - серверной архитектуре.

6.2. Что такое веб. сайты, веб сервисы, веб приложения?

6.2.1. 1. Веб сайты -обычно носят какой-то информационный характер, т.е. они состоят из неких веб-страниц, объединённых друг с другом в единый ресурс, имеют какую-то простую архитектуру на основе html кода.Сайты не предоставляют возможности взаимодействия с нашей программой. ( кулинарный сайты, новостной ресурс, погода) 2. Веб сервисы -это наш какой-то прикладной интерфейс программы, который позволяет различным веб-приложениям взаимодействовать между собой. 3. Веб приложения - интерактивные компьютерные приложения, которые специально разрабатываются для сети интернет и позволяет пользователям вводить, получать и манипулировать данными с помощью взаимодействия. ( ютуб, твитер, вконтакте и тд)

6.3. Какие движки браузеров есть? Зачем это QA?

6.3.1. Движок браузера - это программа, которая преобразует код веб - страницы в интерактивное изображение, которое мы видим на экране. Из-за движка браузера некоторые элементы и анимации веб - страницы могут не поддерживаться или отображаться иначе. Blink - Google Chrome, Opera, Microsoft Edge,Яндекс браузер Webkit - safari Chromium - Microsoft Edge, Brave Знание движков и различие между браузерами позволяет ориентироваться в кросс-браузерном тестировании и для чего оно проводится. ( отображение веб - сервиса на разных браузерах)

6.4. Что происходит, когда мы вводим в строку браузера что - то?

6.4.1. браузер связывается с DNS - сервером, который ищет IP адрес сайта. После получения IP - адреса по нему запрашивается код страницы.

6.5. Что такое HTML/CSS/JavaScript?

6.5.1. - HTML отвечает за разметку элементов на сайте. Создает структуру. - CSS отвечает за стилизацию элементов(внешний вид) - JavaScript отвечает за действия и интерактивность на странице( анимации, обработка событий)

6.6. Какие вкладки браузера Chrome отвечают за работу HTML/CSS/JavaScript?

6.6.1. 1. Elements: - Здесь можно просмотреть и изменить HTML - разметку страницы. - Можно также изменять и просматривать примененные CSS - стили. 2. Sources: - В этой вкладке можно просматривать и отлаживать JavaScript-код. - Можно ставить точки останова, отслеживать выполнение кода и анализировать скрипты. 3.Console: - Позволяет выполнять JavaScript-код в реальном времени и выводить различные данные для диагностики . - Полезна для просмотра ошибок и логов во время выполнения скриптов. 4. Network: - Отслеживает запросы и загрузку различных ресурсов. - Полезна для анализа производительности и решения проблем с сетевыми запросами.

6.7. Что такое клиент - серверная архитектура? Преимущества и недостатки?

6.7.1. Это архитектурный стиль, при котором идет взаимодействие клиента и сервера посредством передачи данных. Основные роли: - Клиент отправляет запросы и отображает информацию пользователю. - Балансировщик нагрузки распределяет входящие запросы между несколькими серверами для оптимизации нагрузки. - Сервер обрабатывает запросы клиентов и взаимодействует с базой данных. - База данных хранит данные и отвечает на запросы сервера.

6.7.1.1. Преимущества: 1. Все вычисления выполняются на сервере, то требование к компьютерам, на которых установлен клиент, снижаются. 2.Все данные хранятся на сервере, который, как правило, хорошо защищен, лучше, чем большинство клиентов, и на сервере проще организовать контроль полномочий, чтобы разрешать доступ к данным только клиентам с соответствующими правами доступа. Обычно этим занимается отдельно выделенный человек - системный администратор. Недостатки: 1. Если не работает сервер, то вся вычислительная сеть также не будет работать. 2.Для поддержки данной системы требуется отдельный специалист, системный администратор. 3.Серверное оборудование стоит очень дорого.

6.8. Какие виды бывают клиент - серверной архитектуры?

6.8.1. 1. Одноуровневая - Клиент и сервер расположены на одном устройстве. ( Приложение для работы в оффлайн -режиме с локальными данными) 2.Двухуровневая - клиент и сервер разделены, клиент взаимодействует с сервером напрямую.( приложения, требующие прямого доступа к базе данных через сеть) 3. Трехуровневая - клиент, приложение, база данных. ( Веб - приложения, где клиент обращается к веб - сервису, который в свою очередь взаимодействует с базой данных) 4.Многоуровневая - может включать веб - сервисы, серверы приложений, база данных и др сервисные уровни. 5.Микросервисная архитектура - приложение разрабатывается как набор небольших, независимых сервисов, каждый из которых выполняет одну четко определенную фукнцию и взаимодействует с другими службами через API.

6.9. Что может выступать в качестве клиента?

6.9.1. Браузер: веб - приложения, доступные через интернет - браузеры. Нативное приложение: приложение, разработанное для конкретной платформы, такое как андроид или айос. Гибридное приложение:приложение, объединяющее элементы нативных и веб - приложений, часто использует веб - технологии внутри нативного контейнера. Веб - приложение. Командная строка: текстовый клиент, взаимодействующий с сервером через командную строку.

6.10. Отличие толстого клиента от тонкого?

6.10.1. Толстый клиент представляет собой клиентское приложение, которое содержит значительную часть логики и функциональности непосредственно на стороне пользователя. ( 1с, онлайн игры) Тонкий клиент – это клиентское приложение, которое минимизирует логику и функциональность на стороне пользователя, делегируя большинство задач серверу. Он зависит от сервера для предоставления большей части функциональности.( эл почта)

6.11. Что такое протокол передачи данных? Основные протоколы

6.11.1. Сетевой протокол - это набор правил, определяющих принципы взаимодействия устройства в сети. Основные: HTTPS, FTP, SMTP, DNS, NTP.

6.12. Что такое микросервисная архитектура?

6.12.1. Это способ построения приложений, которые состоят из независимых друг от друга небольших модулей.

6.13. Devtools?

6.13.1. 1) Elements - можно посмотреть структуру страницы, html, стили css, подобрать локаторы для автотестов, проверяя их через Ctrl-F, изменить страницу, если нужно быстро посмотреть, как отобразится длинное значение на форме, снять ограничения maxlength, чтобы проверить валидацию на сервере. 2) Toggle device toolbar - можно посмотреть, как страница будет выглядеть на разных экранах, разрешениях и устройствах, можно добавить свои устройства для эмуляции. 3)Console - JavaScript ошибки 4) Sources - найти css- свойство

6.13.2. 5) Network - запросы и ответы. XHR > Headers (General, Request, Response Headers), Payload (Query Parameters), Response, Cookies; Throttling - имитация плохой сети, можно выгрузить HAR файл и отдать разрабу. Подмена UserAgent. 6) Application - cookies, local storage, session storage. 7) Performance - можно померить производительность. Ещё подменяла геолокацию. меню с тремя точками рядом с кнопкой настроек, > More Tools, а затем Sensors (Датчики). 8)Run command - Ctrl+Shift+P Можно снимать скриншоты элементов, целой страницы со скроллом, при загрузке страницы. Можно подключить андроид для отладки

6.14. Адресная строка?

6.14.1. 1. Пользователь вводит в браузере адрес сайта. 2. Браузер начинает искать сервер. За работу любого сайта обычно отвечает один из миллионов серверов, подключенных к интернету. Адрес сервера — это уникальный набор цифр, который называется IP-адресом. Поэтому первым делом браузеру нужно понять, какой IP-адрес у сервера, на котором находится сайт. 3. Браузер отправляет запрос к DNS-серверам. Не обнаружив подходящих записей в кэше, браузер формирует запрос к DNS-серверам, расположенным в интернете. Например, если нужно найти IP-адрес сайта mail.vc.ru, браузер спрашивает у ближайшего DNS-сервера «Какой IP-адрес у сайта mail.vc.ru?»

6.14.2. 4. Браузер устанавливает соединение с сервером. Как только браузер узнал IP-адрес нужного сервера, он пытается установить с ним соединение. В большинстве случаев для этого используется специальный протокол — TCP. TCP — это набор правил, который описывает способы соединения между устройствами, форматы отправки запросов, действия в случае потери данных и так далее. 5. Браузер отправляет HTTP-запрос, чтобы получить контент сайта. После установки соединения браузер отправляет специальный запрос, в котором просит сервер отправить данные для отображения страницы. В этом запросе содержится информация о самом браузере, временные файлы, требования к соединению и так далее. Задача браузера — как можно подробнее объяснить серверу, какая именно информация ему нужна 6. Сервер обрабатывает запрос Сервер получил запрос от браузера с подробным описанием того, что ему требуется. Теперь ему нужно обработать этот запрос. Этой задачей занимается специальное серверное программное обеспечение — например, nginx или Apache. Чаще всего такие программы принято называть веб-серверами. Веб-сервер в свою очередь перенаправляет запрос на дальнейшую обработку к программе-обработчику — например, PHP, Ruby или ASP.NET. Программа внимательно изучает содержимое запроса — например, понимает, в каком формате нужно отправить ответ и какие именно файлы нужны. И собирает ответ.

6.14.3. 7. Сервер отправляет ответ браузеру Когда ответ сформирован, он отправляется веб-сервером обратно браузеру. В ответе как правило содержится контент для отображения веб-страницы, информация о типе сжатия данных, способах кэширования, файлы cookie, которые нужно записать и так далее 8. Браузер обрабатывает полученный ответ и «рисует» веб-страницу Браузер распаковывает полученный ответ и постепенно начинает отображать полученный контент на экране пользователя — этот процесс называется рендерингом

6.15. Что такое куки и кэш?

6.15.1. Куки: Это маленькие файлы, которые веб-сайты сохраняют на твоём компьютере или телефоне. Они помогают сайтам запомнить информацию о тебе, например, твои настройки, предпочтения или данные для входа. Благодаря куки, сайты могут узнавать тебя при следующем посещении и делать твой опыт более удобным.

6.15.2. Кэш: Это временное хранилище данных, которое помогает ускорить загрузку веб-страниц. Когда ты посещаешь сайт, браузер сохраняет некоторые его элементы (например, изображения, стили) в кэше. В следующий раз, когда ты зайдёшь на этот сайт, браузер может загрузить эти элементы из кэша, а не скачивать их снова с интернета. Это делает загрузку страниц быстрее.

6.16. Что такое Curl и для чего используется?

6.16.1. Это инструмент командной строки для передачи данных с сервера и на сервер при помощи различных протоколов. Позволяет: - Загружать файлы с сайтов. - Отправлять данные на серверы (например, заполнять формы). - Аутентифицироваться на сайтах. - Работать с заголовками HTTP. - Использовать прокси-серверы. - Поддерживать защищённые соединения (HTTPS

6.17. Что такое User Agent? Какие данные может содержать?

6.17.1. User Agent — это информация, которую браузер или другое приложение отправляет веб-серверу, чтобы сообщить о себе. Это помогает серверу понять, с каким типом устройства или программы он работает. Что может содержать User Agent: 1) Название и версия браузера: Например, "Chrome", "Firefox", "Safari". 2)Операционная система: Например, "Windows", "MacOS", "Linux". 3)Тип устройства: Например, "компьютер", "смартфон", "планшет". 4)Другие данные: Например, версия операционной системы, язык интерфейса.

6.18. Что такое сниффер?Для чего предназначен в тестировании?

6.18.1. Снифферы – инструменты, которые перехватывают, анализируют и могут изменять все запросы, которые проходят через них. Они также полезны для извлечения информации о запросах или создания нужного ответа сервера. Основные функции: 1) анализ ответов сервера (просмотр статус-кода, дублирование ответов, просмотр заголовков и тела ответов, скорость выполнения запроса) 2) перенаправление (с одного адреса на другой) 3) замена информации в ответе от сервера 4) блокировка доступа к сайту 5) загрузка файла вместо ответа сервера 6)троттлинг – загрузка приложения при определённой ограниченной скорости интернета

6.19. Разница между Идентификацией, Аутентификацией, Авторизацией?

6.20. JWT токен?

7. API

7.1. Что такое API?

7.1.1. Представляет собой набор правил и инструкций, согласно которым различные программы и сервисы могут общаться между собой. Эти правила определяют, как данные и функциональность могут быть переданы от одной программы к другой, как они могут взаимодействовать и обмениваться информацией.

7.2. Из чего состоит URL?

7.2.1. структура: протокол/домен или хост/порт 443 и 80/путь/квери(параметры) после ?/ якорь только один и начинается с #. C помощью якоря можно сразу открыть нужную страницу либо же участок

7.3. Что такое Rest/Restfull?

7.3.1. Rest API - архитектурный стиль (Набор правил для серверного приложения) REST API Концепции: 1) Модель взаимодействия клиент - сервер 2)Система(Архитектура) может быть многоуровневой 3)Отсутствие состояния (Каждый раз клиент и сервер общаются, как в первый раз) 4)Единообразный унифицированный интерфейс 5)Кеширование GET и POST запросы могут быть кэшируемыми. Все остальные не кешируются.

7.3.1.1. RESTful — это подход к созданию веб-сервисов, который следует принципам архитектурного стиля REST (Representational State Transfer). Этот подход помогает создавать простые и масштабируемые веб-приложения, которые легко взаимодействуют друг с другом через интернет.

7.4. Отличия Rest от Soap?

7.4.1. 1) REST — это архитектурный стиль. SOAP — это формат обмена сообщениями. 2) Простота vs. Сложность: REST проще и гибче. SOAP сложнее, но поддерживает более сложные функции. 3)Форматы данных: REST использует различные форматы (JSON, XML, HTML). SOAP использует только XML. 4)Протоколы: REST использует HTTP. SOAP может использовать различные транспортные протоколы. 5)Состояние: REST безсостояние. SOAP поддерживает состояние.

7.5. Основные методы?

7.5.1. 1)GET используется для получения данных с сервера. Не изменяет состояние сервера. 2)POST используется для создания нового ресурса на сервере или для отправки данных для обработки. Изменяют состояние сервера. 3)PUT используется для обновления существующего ресурса или для создания ресурса, если он не существует.Не изменяют состояние сервера.

7.5.2. 4)DELETE используется для удаления ресурса с сервера.Не изменяет состояние сервера. 5)PATCH используется для частичного обновления ресурса. 6)OPTIONS используется для получения информации о возможностях сервера, например, о поддерживаемых методах HTTP, типах контента и т.д.

7.6. Какие отличия между XML и JSON?

7.6.1. 1) Синтаксис. XML использует разметку в виде открывающих и закрывающих тегов. JSON применяет более компактный синтаксис в виде пар «ключ-значение», массивов и объектов. XML считается менее читаемым для человека из-за множества тегов и разметки. JSON обычно более читаемый, что делает его удобным для отладки и восприятия. 3) Разметка. XML обеспечивает более сильную разметку и структурирование данных. JSON обеспечивает более простую структуру данных, что удобно для обмена данными в веб-приложениях. данных. XML непредоставляет встроенной поддержки для различных типов данных. Все данные представляются как строки. JSON поддерживает различные типы данных, включая строки, числа, логические значения, массивы, объекты, null.

7.7. Статусы ответов?

7.7.1. 1xx - информативные 2xx - успешно 3xx - перенаправление 4xx - ошибки клиента 5xx - ошибки сервера 401 - требуется проверка подлинности. 403 - запрещено 404- ресурс не найден

7.8. Этапы тестирования API?

7.8.1. 1. правильность тела JSON, имен, типов и значений полей ответа, в том числе в ответах на ошибочные запросы. 2.корректность кода состояния HTTP 3.заголовки ответа 4.правильность состояния приложения. 5.Проверьте базовую работоспособность. Если операция была завершена успешно, но заняла неоправданно много времени, тест не пройден.

8. База данных

8.1. Что такое база данных?

8.1.1. Это набор структурированной информации или данных. Используется для хранения и организации больших объемов данных. Также база данных предоставляет структурированное хранилище, в котором информация может быть легко доступна, управляема и обновляемая.

8.2. Виды баз данных?

8.2.1. 1.Реляционные (SQL) 2.Нереляционные (noSQL) 3.Объектно-ориентированные

8.3. Уровни детализации при проектировании БД?

8.3.1. 1.Концептуальный уровень На этом уровне определяются основные сущности (таблицы), их атрибуты и связи между ними. 2. Логический уровень Здесь определяются таблицы, поля, типы данных, ограничения целостности и связи между таблицами. 3. Физический уровень На этом уровне определяются конкретные технические детали реализации БД. Это включает выбор СУБД, определение индексов, размещение данных на диске, оптимизацию и тд.

8.4. Что такое СУБД и какие виды бывают?

8.4.1. СУБД - программное обеспечение при помощи которого можно взаимодействовать с базой данных. 1. Реляционные ( Oracle, MySQL, Microsoft SQL Server. PostgreSQL ) 2. Нереляционные (Apache, Cassandra, Redis, MongoDB) 3. Объектно-ориентированные (db4o)

8.5. Что такое SQL?

8.5.1. это язык структурированных запросов (Structured Query Language), с помощью которого можно взаимодействовать с данными в реляционных БД.

8.6. Реляционная база данных это?

8.6.1. Это базы, где связанная информация, представленная в виде двумерных таблиц.

8.7. Для чего нужна ER диаграмма?

8.7.1. показывает структуру и связи таблиц в БД. Помогает в написании SQL запросов.

8.8. Атрибуты и кортежи?

8.8.1. Атрибуты - это столбцы в таблице. Если быть точнее, то именованная характеристика столбца. Например, если у нас есть таблица "Сотрудники", то атрибутами могут быть "Имя", "Фамилия", "Возраст", "Должность" и т.д. Кортежи - это строки или записи в таблице, которые содержат конкретные значения для каждого атрибута. Например, если у нас есть таблица "Сотрудники", то каждый кортеж может представлять отдельного сотрудника со значениями для его имени, фамилии, возраста и должности.

8.9. Какие связи таблиц существуют?

8.9.1. 1. Один-к-одному В этом типе связи каждая запись в одной таблице соответствует только одной записи в другой таблице, и наоборот. Например, у нас может быть таблица "Сотрудники" и таблица "Паспортные данные". 2. Один-ко-многим В этом типе связи каждая запись в одной таблице может соответствовать нескольким записям в другой таблице. Например, у нас может быть таблица "Отделы" и таблица "Сотрудники", где каждый отдел имеет несколько сотрудников. 2. Многие-ко-многим В этом типе связи каждая запись в одной таблице может соответствовать нескольким записям в другой таблице, и наоборот. Для реализации этого типа связи требуется дополнительная таблица, называемая "соединительной" или "промежуточной" таблицей. Например, у нас может быть таблица "Студенты" и таблица "Курсы", и для отслеживания связей между ними мы создаем промежуточную таблицу "Запись на курс", где каждый студент может быть записан на несколько курсов, и каждый курс может иметь несколько студентов.

8.10. Нормализация отношений? ( первые 3 формы)

8.10.1. 1. Первая нормальная форма (1UNF) Данные в каждой таблице являются атомарными, то есть не могут быть дальше разделены на более мелкие части. 2. Вторая нормальная форма (2UNF) Каждое поле в таблице зависит только от всего первичного ключа, а не от какой-либо его части. 3. Третья нормальная форма (3UNF) Каждое поле в таблице непосредственно зависит от первичного ключа, а не от других полей в таблице.

8.11. Типы данных таблиц?

8.11.1. 1. Числовые: а) Unsigned — это модификатор, который означает, что поле может хранить только положительные значения и 0. б) Целочисленные - TINYINT - SMALLINT - INTEGER - представляет целые числа от -2147483648 до 2147483647 - BIGINT в) Десятичные - DECIMAL - хранит числа с фиксированной точностью - NUMERIC г) Вещественные - FLOAT - хранит дробные числа с плавающей точкой одинарной точности от -3.4028 до 3.4028 - DOUBLE

8.11.1.1. 2.Символьные: а) Строковые типы данных - CHAR представляет строку фиксированной длины. - VARCHAR представляет строку переменной длины. б) Тип данных для хранения текста - TINYTEXT - TEXT: представляет текст длиной до 65 КБ. - MEDIUMTEXT - LONGTEXT

8.11.1.1.1. 3. Даты и времена: а) Типы данных для хранения даты - DATE хранит даты с 1 января 1000 года до 31 декабря 9999 года б) Типы данных для хранения времени тронг778 - TIME хранит время от -838:59:59 до 838:59:59. - DATETIME объединяет время и дату, диапазон дат и времени - с 1 января 1000 года по 31 декабря 9999 года - TIMESTAMP также хранит дату и время, но в другом диапазоне: от "1970-01-01 00:00:01" UTC до "2038-01-19 03:14:07" UTC. TIMESTAMPTZ

8.12. Ограничения атрибутов?

8.12.1. 1. PRIMARY KEY - Первичный ключ уникально идентифицирует строку в таблице. 2. FOREIGN KEY - Он используется для создания связей между таблицами и поддержания целостности данных. 3. AUTO INCREMENT - позволяет указать, что значение столбца будет автоматически увеличиваться при добавлении новой строки. 4. UNIQUE - Если мы хотим, чтобы столбец имел только уникальные значения. 5. NULL и NOT NULL 6. DEFAULT - определяет значение по умолчанию для столбца. 7.CHECK - Это ограничение определяет условие, которое должно быть выполнено для каждой строки в таблице. 8. INDEX - Структуры данных, которые ускоряют процесс поиска и извлечения данных из таблицы.

8.13. Какие значения могут быть?

8.13.1. 1) Null - это отсутствие значения или неопределенное значение. Null используется, когда значение неизвестно или не применимо. 2) Empty - это пустое значение или отсутствие символов. Empty используется для строковых типов данных, таких как VARCHAR или TEXT, когда требуется явно указать отсутствие значения. Empty обычно представляется пустой строкой ''. 3) Whitespace - это значение, состоящее только из пробельных символов, таких как пробелы, табуляции и переводы строк. 4) 0 - это числовое значение ноль. Он используется для представления отсутствия или нулевого количества или значения.

9. Это мы должны освоить :) в дальнейшем глубже?

9.1. 1) Углубиться в кафку и понять как ее тестировать ?

9.2. 2) Плюсом большим будет автоматизация конечно:)

9.3. 3) Линукс:(

9.4. ci/cd