Неделя 3. Теория тестирования. Часть 3

Всем доброго времени суток. Данная неделя была не очень эффективной, но имеет то что имеем. Я планирую еще одну неделю потратить на теорию тестирования, но пока не знаю какие темы нужно будет посмотреть. Как минимум это будут гибкие методологии разработки, а также техники тест-дизайна. Если есть предложения, то прошу в комментарии :) А теперь конспект:

Сущности:

  • Improvement - запрос на улучшение существующих функций (оформляется как дефект, но только в ожидаемом результате пишется предложение о улучшении).

  • Feature - запрос на расширение ПО новой функцией или изменение существующей функциональности.

  • Change Request - запрос для настолки или изменения системы (может содержаться в Feature).

  • Enhancement - запрос на воплощение новых идей, нового поведения или новой функциональности ПО (оформляется как дефект, но только в ожидаемом результате пишется предложение о улучшении).

  • Ошибка - совершается человеком и в будущем может привести к возникновению дефекта.

  • Дефект - недостаток в в компоненте или системе, способный привести к ситуации сбоя или отказа.

  • Отказ - событие, заключающееся в нарушении работоспособного состояния объекта.

  • Сбой - Самоустраняющийся отказ или однократный отказ, устраняемый незначительным вмешательством оператора.

Клиент-серверная архитектура.
Клиент-серверная архитектура
- это такая архитектура, в которой сетевая нагрузка распределяется между поставщиками услуг (серверы) и заказчиками услуг (клиенты).

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Плюсы:

  • Отсутствует дублирование кода программы сервера программами клиента.

  • Так как все вычисления происходят на сервере, то требования к мощностям клиента снижаются.

  • Все данные хранятся на сервере и это является более безопасным вариантом, чем хранения данных на машинах клиентов.

Минусы:

  • Если перестанет работать сервер, то вся вычислительная сеть тоже не будет работать.

Виды архитектуры:

  • Двухуровневая - имеется клиент и сервер.

  • Трехуровневая - имеется клиент, сервер и база данных.

Самым распространенным видом клиента является браузер.

Виды клиентов:

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

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

Веб - сайт - обычно носит какая-то информационный характер, т.е. он состоит из каких-то веб-страниц, объединенных в единый ресурс. Имеет какую-то простую архитектуру на основе HTML - кода. Веб - сайт не предоставляет возможности взаимодействия с программой, т.е. пользователи не имеют возможности для размещения своей информации (например - новостные сайты, сайты прогноза погоды).

Веб - приложение - это интерактивные компьютерные приложения, которые специально разрабатываются для сети интернет и позволяют пользователям вводить, получать и манипулировать данными с помощью взаимодействия (например - соц. сети, почта, youtube, переводчики и т.п.).

Веб - сервис - это прикладной программный интерфейс (API), который работает на сервере и предоставляет клиенту данные через HTTP через стандартизированную систему обмена сообщениями.

ИЛИ


Веб-сервисы (или веб-службы) — это технология, позволяющая системам обмениваться данными друг с другом через сетевое подключение. Обычно веб-сервисы работают поверх протокола HTTP или протокола более высокого уровня. Веб-сервис — просто адрес, ссылка, обращение к которому позволяет получить данные или выполнить действие.

  • SOAP (Simple Object Access Protocol)

  • REST (Representational State Transfer)

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

Информационный набор Extensible Markup Language (XML) используется для SOAP в качестве формата сообщений, а передача и их согласование происходит с помощью протоколов прикладного уровня – таких, как HTTP.

XSD (XML Schema Definition) - описание структуру XML документа и типы данных, которые там могут храниться.

WSDL (Web Services Description Language) - это файл, написанный на языке WSDL, который описывает сообщения, заголовки, события, которые свойственны для веб-сервиса. Он является обязательным для SOAP.

Правила написания XML:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Только один корневой элемент

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Все элементы должны иметь закрывающие теги

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Название регистрозависимые

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Элементы не должны пересекаться

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Все значение атрибутов в кавычках

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • <,>,& нельзя использовать в текстовых блоках

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Нужно использовать:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
  • Объявления XML - первая строка

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

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

Данный архитектурный стиль представляет собой согласованный набор ограничений, учитываемых при проектировании распределенной системы. Эти ограничения иногда называют принципами REST. Их всего 6.

RESTful - это любая сеть, которая отвечает принципам (ограничениям) REST.

Большинство RESTful-реализаций используют такие стандарты, как HTTP, URL, JSON и, реже, XML.

JSON (JavaScript Object Notation) - текстовый формат обмена данными, основанный на JavaScript. Но при этом формат независим от JS и может использоваться в любом языке программирования. Состоит он из неупорядоченного множества пар «ключ:значение».

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Отличия между REST и SOAP:

  • REST поддерживает различные форматы

  • REST работает только по протоколам HTTP и HTTPS

  • SOAP во время чтения не может быть помещен в кэш

  • REST - архитектурный стиль, у которого нет огромного количества правил, которым он должен подчиняться, а SOAP - протокол, который сильно ограничен правилами, которые к нему предъявляются

  • За REST скорость, простота, расширяемость, поддержка многих форматом, отсутствие жесткой привязанности к правилам, а в случае SOAP - больше возможностей по безопасности и больше возможностей проводить тестирование качественно из-за наличия WSDL, где будут прописаны образцы запросов (из-за этого нужно реже обращаться к разработчикам)

HTTP (HyperText Transfer Protocol) Протокол.

Протокол - набор правил передачи информации.

HTTP — это гипертекстовый протокол передачи данных прикладного уровня в сетевой модели OSI. Главная особенность HTTP — представление всех данных в нём в виде простого текста. Через HTTP разные узлы в сети общаются между собой. Модель клиент-серверного взаимодействия классическая: клиент посылает запрос серверу, сервер обрабатывает запрос и возвращает ответ клиенту. Полученный ответ клиент обрабатывает и решает: прекратить взаимодействие или продолжить отправлять запросы.

Ещё одна особенность: протокол не сохраняет состояние между запросами. Каждый запрос от клиента для сервера — отдельная транзакция. Когда поступают два соседних запроса, сервер не понимает, от одного и того же клиента они поступили, или от разных. Такой подход значительно упрощает построение архитектуры веб-серверов.

HTTPS (HTTP Secure) — это надстройка над протоколом HTTP, которая поддерживает шифрование посредством криптографических протоколов SSL и TLS. Они шифруют отправляемые данные на клиенте и дешифруют их на сервере. Это защищает данные от чтения злоумышленниками, даже если им удастся их перехватить.

Сетевые модели:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост
Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

На уровне сетевых интерфейсов передаются какие-то физические импульсы (например - оптоволокно).

На сетевом уровне происходит передача физических сигналов в виде битов или байтов.

На транспортном уровне происходят транспортные взаимодействия.

  • TCP протокол - надежный транспортный протокол, в результате которого при передаче данных происходит гарантия того, что данные доходят до клиента. Если информация не доходит и нет никакой гарантии, что клиент получил данные, то происходит повторная отправка данных (может применяться в почтовых сервисах).

  • UDP протокол - информация передается беспрерывным потоком без проверки того, дошли данные до клиента или нет (применяется в онлайн играх).

На прикладном уровне взаимодействие происходит посредством протоколов.

Составные части протокола HTTP:

  • Основная часть (payload)

  • Служебная информация (headers - заголовки)

HTTP - request:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

HTTP - response:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Методы HTTP - запроса:

GET - запрашивает представление ресурса. Запросы с использованием этого метода могут только извлекать данные.

HEAD - запрашивает ресурс так же, как и метод GET, но без тела ответа.

POST - используется для отправки сущностей к определённому ресурсу. Часто вызывает изменение состояния или какие-то побочные эффекты на сервере.

PUT - заменяет все текущие представления ресурса данными запроса.

DELETE - удаляет указанный ресурс.

CONNECT - устанавливает "туннель" к серверу, определённому по ресурсу.

OPTIONS - используется для описания параметров соединения с ресурсом.

TRACE - выполняет вызов возвращаемого тестового сообщения с ресурса.

PATCH - используется для частичного изменения ресурса.

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Коды ошибок:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Неплохая статья по HTTP - https://habr.com/ru/companies/avito/articles/710660/

Различия HTTP 1.0 от HTTP 2.0:

https://seob.ru/blog/protocol-http-2
https://vc.ru/seo/442112-http-2-chto-eto-i-zachem-on-vam

Web Glossary.

IP-адрес (от англ. Internet Protocol) — уникальный числовой идентификатор устройства в компьютерной сети, работающий по протоколу TCP/IP.

URI - последовательность символов, идентифицирующая физический или абстрактный ресурс, который не обязательно должен быть доступен через сеть Интернет, причем, тип ресурса, к которому будет получен доступ, определяется контекстом и/или механизмом.

URL - это URI, который, помимо идентификации ресурса, предоставляет ещё и информацию о местонахождении этого ресурса.

URN — это URI, который только идентифицирует ресурс в определённом пространстве имён (и, соответственно, в определённом контексте), но не указывает его местонахождение.

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Маска подсети:

Для того, чтобы определить какие биты IP-адреса относятся к номеру хоста, а какие к номеру подсети используют так называемую маску подсети.

Допустим у вас есть IP-адрес, записанный в двоичном виде:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Красным цветом отмечены биты, ответственные за номер сети, зеленым – за номер хоста. Да, так тоже можно. Тут нет жесткой привязки к байтам.

Маской подсети будет называться такое число, где битам подсети будут соответствовать единички, а битам хоста – нули. Пример маски подсети для предыдущего адреса:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Все биты подсети равны 1 (красный), все биты хоста равны 0 (зеленый).

Пример выделения номера сети и идентификатора хоста в IP-адресе:

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

Важно: Всегда зарезервировано два ip-адреса (самый первый - адрес подсети, самый последний - широковещательный адрес (Broadcast Address) (широковещательный адрес - это такой IP адрес, который позволяет передать сетевые данные одновременно на все хосты заданной подсети, вместо передачи на конкретный хост).

Неделя 3. Теория тестирования. Часть 3 IT, QA, Тестирование, Компьютерные сети, Программирование, Длиннопост

MAC - адрес - это физический адрес устройства. Он прописывается при производстве сетевой карты.

DNS (Domain Name System) - это глобальное распределенное хранилище ключей и значений. Она необходима, в первую очередь, для соотнесения IP-адресов устройств в сети и более удобных для человеческого восприятия символьных имен.

Кэш (cash) - данные, которые загружаются с ПК при повторном посещении сайта для ускорения загрузки сайта (например - различные элементы дизайна сайта, изображения, музыка и т.п.).

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