Читать Статью:
Двухзвенная архитектура —распределение трех базовых компонентов между двумя узлами (клиентом и сервером).
🔷Основные модели их взаимодействия в рамках двухзвенной архитектуры:
🔹Сервер терминалов— распределенное представление данных.
🔹Файл-сервер—доступ к удаленной базе данных и файловым ресурсам.
🔹Сервер БД—удаленное представление данных.
🔹Сервер приложений— удаленное приложение.
Веб-приложение – это клиент-серверное приложение, в котором клиентом выступает браузер, а сервером – веб-сервер (в широком смысле).
Клиент – это браузер, но встречаются и исключения (в тех случаях, когда один веб-сервер (ВС1) выполняет запрос к другому (ВС2), роль клиента играет веб-сервер ВС1).
Веб-сервер – это сервер, принимающий HTTP-запросы от клиентов и выдающий им HTTP-ответы. Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает.
#теория
Двухзвенная архитектура —распределение трех базовых компонентов между двумя узлами (клиентом и сервером).
🔷Основные модели их взаимодействия в рамках двухзвенной архитектуры:
🔹Сервер терминалов— распределенное представление данных.
🔹Файл-сервер—доступ к удаленной базе данных и файловым ресурсам.
🔹Сервер БД—удаленное представление данных.
🔹Сервер приложений— удаленное приложение.
Веб-приложение – это клиент-серверное приложение, в котором клиентом выступает браузер, а сервером – веб-сервер (в широком смысле).
Клиент – это браузер, но встречаются и исключения (в тех случаях, когда один веб-сервер (ВС1) выполняет запрос к другому (ВС2), роль клиента играет веб-сервер ВС1).
Веб-сервер – это сервер, принимающий HTTP-запросы от клиентов и выдающий им HTTP-ответы. Веб-сервером называют как программное обеспечение, выполняющее функции веб-сервера, так и непосредственно компьютер, на котором это программное обеспечение работает.
#теория
База данных — это информационная модель, позволяющая упорядоченно хранить данные об объекте или группе объектов, обладающих набором свойств, которые можно категоризировать. Базы данных функционируют под управлением так называемых систем управления базами данных (далее – СУБД). Самыми популярными СУБД являются MySQL, MS SQL Server, PostgreSQL, Oracle (все – клиент-серверные).
Трехзвенная архитектура — сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате.
Третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом:
✅Представление данных — на стороне клиента.
✅ Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).
✅ Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.
#теория
Трехзвенная архитектура — сетевое приложение разделено на две и более частей, каждая из которых может выполняться на отдельном компьютере. Выделенные части приложения взаимодействуют друг с другом, обмениваясь сообщениями в заранее согласованном формате.
Третьим звеном в трехзвенной архитектуре становится сервер приложений, т.е. компоненты распределяются следующим образом:
✅Представление данных — на стороне клиента.
✅ Прикладной компонент — на выделенном сервере приложений (как вариант, выполняющем функции промежуточного ПО).
✅ Управление ресурсами — на сервере БД, который и представляет запрашиваемые данные.
#теория
И вот ещё отличная статья про клиент-серверную архитектуру в картинках .
Мне очень нравится читать статьи данного автора на Хабре (Ольга @Molechka )
Все так подробно и в иллюстрациях
Указала основные картинки. Главное последовательность.
Более подробно прочитайте данную статью.
Мне очень нравится читать статьи данного автора на Хабре (Ольга @Molechka )
Все так подробно и в иллюстрациях
Указала основные картинки. Главное последовательность.
Более подробно прочитайте данную статью.
Таблица принятия решений
(таблица решений) — способ компактного представления модели со сложной логикой; инструмент для упорядочения сложных бизнес требований, которые должны быть реализованы в продукте. Это взаимосвязь между множеством условий и действий.
❗️Как составлять таблицу
По горизонтали — выписываем условия, которые влияют на результат. А чуть ниже — сам результат, в оригинале Action — действие, которое нужно выполнить.
По вертикали — правила: конкретная комбинация входных условий.
То есть мы указываем значения условий и результата
#техникатестдизайна
(таблица решений) — способ компактного представления модели со сложной логикой; инструмент для упорядочения сложных бизнес требований, которые должны быть реализованы в продукте. Это взаимосвязь между множеством условий и действий.
❗️Как составлять таблицу
По горизонтали — выписываем условия, которые влияют на результат. А чуть ниже — сам результат, в оригинале Action — действие, которое нужно выполнить.
По вертикали — правила: конкретная комбинация входных условий.
То есть мы указываем значения условий и результата
#техникатестдизайна
Forwarded from Серьезный тестировщик 🐞
Decision Table — что это и как применять
Читать...
Читать...
Хабр
Decision Table — что это и как применять
Decision Table (таблица решений) — техника, помогающая наглядно изобразить комбинаторику условий из ТЗ. Чем проще и понятнее требования, тем меньше будет разночтений. И тем меньше исправлений после...
Таблица принятия решений, как правило, разделяется на 4 квадранта:
Условия - Варианты выполнения действий
Действия - Необходимость действий
Условия — список возможных условий.
#техникатестдизайна #таблицапринятиярешений #таблицарешений
Условия - Варианты выполнения действий
Действия - Необходимость действий
Условия — список возможных условий.
Варианты выполнения действий — комбинация из выполнения и/или невыполнения условий этого списка.
Действия — список возможных действий.Необходимость действий — указание надо или не надо выполнять соответствующее действие для каждой из комбинаций условий.#техникатестдизайна #таблицапринятиярешений #таблицарешений
Пример на регистрацию:
Используем понятия “корректные” и “некорректные” данные.
Чтобы регистрация прошла успешно, необходимо заполнить корректными оба поля. Если поля заполняются некорректными данными, то система должна выдать ошибку: “Введены невалидные данные”.
Значения 2, 3, 4 приводят к одному и тому же результату с разными входными значениями.
#техникатестдизайна #таблицапринятиярешений #таблицарешений
Используем понятия “корректные” и “некорректные” данные.
Чтобы регистрация прошла успешно, необходимо заполнить корректными оба поля. Если поля заполняются некорректными данными, то система должна выдать ошибку: “Введены невалидные данные”.
Значения 2, 3, 4 приводят к одному и тому же результату с разными входными значениями.
#техникатестдизайна #таблицапринятиярешений #таблицарешений
Пример на двухфакторную аутентификацию.
Предположим, чтобы войти в систему, пользователю нужно ввести сначала логин и пароль, а затем еще подтвердить свою личность присланным в смс кодом.
Какие возможны сценарии:
1. Правильный логин и правильный пароль.
2. Правильный логин, неправильный пароль.
3. Неправильный логин, правильный пароль.
4. Неправильный логин, неправильный пароль.
Первый из этих сценариев сопровождается либо правильным, либо неправильным вводом смс-кода, итого у нас получается 5 тестов. При этом только один из сценариев приведет к положительному результату (пользователь успешно авторизуется), а остальные закончатся неудачей.
Однако, может быть так, что система выдает разные сообщения в зависимости от того, на каком этапе была допущена ошибка, скажем: invalid login, invalid password. Соответственно, групп потребуется больше, а таблица станет обширнее.
#техникатестдизайна #таблицапринятиярешений #таблицарешений
Предположим, чтобы войти в систему, пользователю нужно ввести сначала логин и пароль, а затем еще подтвердить свою личность присланным в смс кодом.
Какие возможны сценарии:
1. Правильный логин и правильный пароль.
2. Правильный логин, неправильный пароль.
3. Неправильный логин, правильный пароль.
4. Неправильный логин, неправильный пароль.
Первый из этих сценариев сопровождается либо правильным, либо неправильным вводом смс-кода, итого у нас получается 5 тестов. При этом только один из сценариев приведет к положительному результату (пользователь успешно авторизуется), а остальные закончатся неудачей.
Однако, может быть так, что система выдает разные сообщения в зависимости от того, на каком этапе была допущена ошибка, скажем: invalid login, invalid password. Соответственно, групп потребуется больше, а таблица станет обширнее.
#техникатестдизайна #таблицапринятиярешений #таблицарешений
👍1
#FYI
Обзор пирамид тестирования - примеры из книг по тестированию, методологиям разработки:
http://www.testingreferences.com/here_be_pyramids.php
Основание пирамиды составляет модульное тестирование (unit tests) – процесс проверки отдельных модулей исходного кода.
За ним следует интеграционное тестирование (integration tests) – на этом этапе отдельные программные модули тестируются в группах.
Далее следует приемочное тестирование (acceptance tests), определяющее пригодность продукта к предстоящей эксплуатации. На вершине пирамиды обосновалось тестирование пользовательского интерфейса (UI tests), которое может проводиться как автоматизированно, так и вручную.
Над вершиной часто располагают ручное тестирование в форме облака, поскольку оно не считается неотъемлемой частью пирамиды, хоть и взаимосвязано с ней. Данная пирамида считается типичной для автоматизации тестирования, хотя может быть перевернута и модифицирована в зависимости от специфики работ.
Обзор пирамид тестирования - примеры из книг по тестированию, методологиям разработки:
http://www.testingreferences.com/here_be_pyramids.php
Основание пирамиды составляет модульное тестирование (unit tests) – процесс проверки отдельных модулей исходного кода.
За ним следует интеграционное тестирование (integration tests) – на этом этапе отдельные программные модули тестируются в группах.
Далее следует приемочное тестирование (acceptance tests), определяющее пригодность продукта к предстоящей эксплуатации. На вершине пирамиды обосновалось тестирование пользовательского интерфейса (UI tests), которое может проводиться как автоматизированно, так и вручную.
Над вершиной часто располагают ручное тестирование в форме облака, поскольку оно не считается неотъемлемой частью пирамиды, хоть и взаимосвязано с ней. Данная пирамида считается типичной для автоматизации тестирования, хотя может быть перевернута и модифицирована в зависимости от специфики работ.
👍2
Статьи:
О пирамидах в тестировании и реальных сложностях автоматизатора - https://otus.ru/nest/post/592/
Пирамида тестов (тестирования) - https://www.qastart.by/mainterms/64-piramida-testov-testirovaniya
О пирамидах в тестировании и реальных сложностях автоматизатора - https://otus.ru/nest/post/592/
Пирамида тестов (тестирования) - https://www.qastart.by/mainterms/64-piramida-testov-testirovaniya
Техника тест-дизайна "#Эквивалентноеразбиение".
Разделение на #классыэквивалентности – это техника, при которой диапазон возможных входных значений разделяется на группы значений эквивалентных по воздействию на систему.
Имеются три возрастных группы:
1️⃣старше 0 и младше 18 лет,
2️⃣старше 18 и младше 45 лет,
3️⃣старше 45 и младше 99 лет.
❗️ При этом главное требование:
в поле для ввода возраста помещается всего два символа, поэтому указать возраст более 99 лет технически невозможно.❗️
Тем более, есть еще недопустимые значения (спецсимволы, отрицательные числа, буквы и т.п.), ввод которых нужно проверить.
В данном случае не нужно писать 99 тестов для каждого возраста, хватит трёх значений: по одному для каждой возрастной группы (это и есть эквивалентное разбиение), например,
🖍12 лет,
🖍28 лет,
🖍66 лет.
Дополнительно можно ввести следующие проверки:
🖍если возраст человека превышает 99 лет.
🖍Буквы "ро"
🖍Спецсимволы "-#"
🖍Отрицательное число "-2"
🔴
🔶Шаги применения техники разделения на классы эквивалентности следующие:
🔸Определить классы эквивалентности. От правильности выполнения данного шага зависит эффективность предстоящего тестирования.
🔸Выбрать представителя каждого класса.
🔸Выполнить тесты.
‼️#Анализграничныхзначений – #техникатестдизайна, которая направлена на проверку поведения системы на граничных значениях входных данных (границах классов эквивалентности).
❗️Техника граничных значений основана на предположении, что большинство ошибок может возникнуть на границах эквивалентных классов. Она тесно связана с вышеописанной техникой эквивалентного разбиения, из-за чего часто используется с ней в паре.
❗️На каждой границе диапазона нужно проверить 3 значения: граничное значение, значения до и после границы.❗️
Для примера из предыдущего пункта границами будут являться значения 0, 18, 45 и 99.
❗️Граничными значениями будут -1, 0, 1, 17, 18, 19, 44, 45, 46, 98, 99, 100.❗️
‼️‼️‼️Из комментариев Инстаграма дополню, что 1 и 17 , 19 и 44, 46 и 98 относятся к одному классу эквивалентности, и , например, 17, 44 и 98 вероятно будут избыточными
-1 и 100 на границе,
100 по условию требования - недопустимое значение,
а -1 негативная проверка, о которой не нужно забывать.
🔶Алгоритм использования техники граничных значений следующий:
🔸Определить классы эквивалентности.
🔸Определить граничные значения для каждого класса (важно понимать к какому классу относится значение).
🔸Провести тесты по проверке значения до границы, на границе и сразу после границы.
Разделение на #классыэквивалентности – это техника, при которой диапазон возможных входных значений разделяется на группы значений эквивалентных по воздействию на систему.
Имеются три возрастных группы:
1️⃣старше 0 и младше 18 лет,
2️⃣старше 18 и младше 45 лет,
3️⃣старше 45 и младше 99 лет.
❗️ При этом главное требование:
в поле для ввода возраста помещается всего два символа, поэтому указать возраст более 99 лет технически невозможно.❗️
Тем более, есть еще недопустимые значения (спецсимволы, отрицательные числа, буквы и т.п.), ввод которых нужно проверить.
В данном случае не нужно писать 99 тестов для каждого возраста, хватит трёх значений: по одному для каждой возрастной группы (это и есть эквивалентное разбиение), например,
🖍12 лет,
🖍28 лет,
🖍66 лет.
Дополнительно можно ввести следующие проверки:
🖍если возраст человека превышает 99 лет.
🖍Буквы "ро"
🖍Спецсимволы "-#"
🖍Отрицательное число "-2"
🔴
На практике последние три проверки негативны, а а проверка выше 99 невозможна, поскольку в поле возраста невозможно ввести более двух знаков, а про буквы и спецсимволы не следует забывать.
🔷Все значения одного класса эквивалентности одинаково влияют на систему, т.е. допустимые значения система принимает, а недопустимые – нет. В поле должен быть запрещен ввод недопустимых значений.🔷🔶Шаги применения техники разделения на классы эквивалентности следующие:
🔸Определить классы эквивалентности. От правильности выполнения данного шага зависит эффективность предстоящего тестирования.
🔸Выбрать представителя каждого класса.
🔸Выполнить тесты.
‼️#Анализграничныхзначений – #техникатестдизайна, которая направлена на проверку поведения системы на граничных значениях входных данных (границах классов эквивалентности).
❗️Техника граничных значений основана на предположении, что большинство ошибок может возникнуть на границах эквивалентных классов. Она тесно связана с вышеописанной техникой эквивалентного разбиения, из-за чего часто используется с ней в паре.
❗️На каждой границе диапазона нужно проверить 3 значения: граничное значение, значения до и после границы.❗️
Для примера из предыдущего пункта границами будут являться значения 0, 18, 45 и 99.
❗️Граничными значениями будут -1, 0, 1, 17, 18, 19, 44, 45, 46, 98, 99, 100.❗️
‼️‼️‼️Из комментариев Инстаграма дополню, что 1 и 17 , 19 и 44, 46 и 98 относятся к одному классу эквивалентности, и , например, 17, 44 и 98 вероятно будут избыточными
-1 и 100 на границе,
100 по условию требования - недопустимое значение,
а -1 негативная проверка, о которой не нужно забывать.
🔶Алгоритм использования техники граничных значений следующий:
🔸Определить классы эквивалентности.
🔸Определить граничные значения для каждого класса (важно понимать к какому классу относится значение).
🔸Провести тесты по проверке значения до границы, на границе и сразу после границы.
👍2