# Тестирование систем розничной торговли (POS - Point Of Sale)

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

![](https://lh6.googleusercontent.com/OePHPvMfvlMLAJWc6ibMhdwb03dri165bKJLgHuFkRyFFBIp1dmvwN5VTOiRhFf9ILbYyPQ-9CLPueas1L95eWk3gfKEusy2I0YcQCeaW4I63N9_TUtwO3n9mO9spxEGBq5nfQoI)

Система является более сложной, чем вы думаете, и тесно интегрирована с другими программными системами, такими как Склад, Инвентарь, Заказ на поставку, Цепочка поставок, Маркетинг, Планирование товаров и т. д. Знание предметной области POS важно для тестирования.

![https://hsto.org/r/w1560/webt/4c/w1/di/4cw1dirvwqilaq\_sw-fv\_tjlxrg.png](https://hsto.org/r/w1560/webt/4c/w1/di/4cw1dirvwqilaq_sw-fv_tjlxrg.png)

Сначала покупатель проводит картой по считывателю терминала для оплаты своих покупок. Данные кредитной карты поступают в терминал, откуда отправляются в POS-систему. Далее, POS-система связывается с PSP (Payment Service Provider), который, в зависимости от типа кредитной карты, обращается в банк для прохождения процедуры авторизации транзакции. Как раз в этот момент покупателю предлагается ввести PIN-код для подтверждения транзакции. Если все прошло успешно, код авторизации возвращается из банковской сети в PSP и передается в POS-систему и терминал. Все вышеописанные коммуникации происходят в течении пары секунд.

**Бизнес-процессы**

Рассмотрим, например, классический сетевой магазин. В магазине есть менеджер, скорее всего, их несколько. Каждое утро менеджеру необходимо открывать магазин, а затем и POS-терминалы. Хочется заметить, что POS-терминалы - это не то же самое, что и платежные терминалы.

Во время запуска POS-терминалы синхронизируют время и получают обновленные параметры с сервера магазина, включая цены на товары, информацию об их наличии и другие служебные данные. После этого кассиры могут залогиниться за своими рабочими местами и начать работу. Очевидно, что каждое действие на кассе логируется.

В конце дня менеджеру необходимо повторить процедуру в обратном порядке: сначала закрыть кассы, а после - магазин. После этого действия ни одна транзакция не может быть проведена до открытия магазина. Во время закрытия POS-терминалы отправляют свои логи на сервер. Это и есть те бизнес-процессы, о которых упоминалось выше. Именно их POS-системы позволяют упростить и облегчить.

На рынке POS-систем решений довольно много, и подразделяются они на группы продуктов для малых, средних и крупных организаций.

**Test Architecture for POS Application**:

* **POS-терминал** (POS terminal):
  * Device and hardware testing (RFID, Scanner, Printer, Barcode reader);
  * Interoperability Testing;
  * BI and Analytics Testing;
  * Performance Testing.
* **Сервер магазина** (store server):
  * Security Testing;
  * BI & Analytics Testing;
  * Disaster Recovery Testing;
  * Interface Testing.
* **Корпоративный сервер** (enterprise server):
  * Security Testing;
  * BI & Analytics Testing;
  * Disaster Recovery Testing;
  * Interface Testing.

**Types of Testing for POS system**:

* **Application Level**:
  * Functionality Testing;
  * Compatibility Testing;
  * Payment Gateway Testing;
  * Report Testing.
* **Enterprise Level**:
  * Compliance Testing;
  * Performance Testing;
  * Interoperability Testing;
  * Data Migration;
  * Mobility.

**Примеры тест-кейсов**:

* **Деятельность кассира**:
  * Правильность записи товаров, приобретенных покупателем;
  * Тестовые скидки применяются корректно;
  * Платежные карты магазина (value cards) могут быть использованы;
  * Управление мелкой денежной наличностью работает правильно;
  * Соответствие итогов и закрытий (totals and closings);
  * Денежный ящик кассы работает правильно;
  * Система POS совместима с периферийными устройствами, такими как считыватель RFID, сканер штрих-кода и т. д.
* **Процессинг платежного шлюза** (Payment Gateway Processing):
  * Проверьте действительность номера CVV кредитной карты;
  * Тестовое считывание карт с обеих сторон и чипов;
  * Данные карты правильно зашифрованы и расшифрованы.
* **Продажи**:
  * Проверьте обычный процесс продажи;
  * Продажи могут быть обработаны дебетовой / кредитной картой
  * Покупка по карте лояльности;
  * Проверьте правильность отображения цен на купленный товар;
  * Тест на «0» или нулевую транзакцию;
  * Привязка UPC или штрих-кодов с поставщиками;
  * Проверка платежных данных или данных о доставке в диспетчере платежей;
  * Тест для reference транзакции;
  * Проверьте формат печати сгенерированного чека№
  * Убедитесь, что правильный код генерируется для одобренных, приостановленных или отклоненных транзакций.
* **Возврат и обмен**:
  * Внутренние запасы хорошо интегрированы с другими торговыми точками или цепочкой поставок;
  * Чек на обмен или возврат товара наличными
  * Проверьте, реагирует ли система на обмен или возврат товара с помощью кредитной карты.
  * Проверка системы обработки продажи с чеком или без чека;
  * Система позволяет вводить штрих-код вручную, если сканер не работает;
  * Система отображает как текущую сумму, так и сумму скидки при обмене товара, если это применимо;
* **Производительность**:
  * Проверьте скорость или время, необходимое для получения ответа или отправки запроса;
  * Проверьте, применимы ли правила, основанные на транзакциях (скидки/налоги/уступки и т. д.);
  * Убедитесь, что правильный код генерируется для одобренных, приостановленных или отклоненных транзакций.
* **Негативные сценарии**:
  * Тест с просроченной картой;
  * Тест с неверным PIN-кодом;
  * Проверьте инвентарь/склад/перечень (?inventory), введя неправильный код товара;
  * Проверьте, как реагирует система при вводе неправильного номера счета;
  * Тест на отрицательную транзакцию;
  * Проверьте реакцию системы при вводе неверной даты для рекламных предложений в Интернете.
* **Управление акциями и скидками**:
  * Тест для различных скидок;
  * Тест для различных рекламных предложений по определенным позициям;
  * Тест системы оповещения, которая уведомляет об окончании или начале сезонных предложений;
  * В чеке указаны скидки;
  * Тест для размещения неправильных предложений или товаров со скидками в Интернете;
  * Тест процесса управления заказами;
  * Проверка точности данных о товаре, полученных после сканирования штрих-кода.
* **Отслеживание данных клиента**:
  * Тест на реакцию системы при неправильном вводе данных клиента;
  * Тест для разрешения санкционированного доступа к конфиденциальным данным клиента;
  * Протестируйте базу данных для записи истории покупок клиентов (что они покупают, как часто они покупают и т. д.)..
* **Безопасность и соответствие нормативным требованиям**:
  * Проверка POS-системы на соответствие нормативным требованиям;
  * Тест системы оповещения, которая уведомляет защитников безопасности;
  * Убедитесь, что вы можете аннулировать платеж;
  * Протестируйте профили пользователей и уровни доступа в программном обеспечении POS№
  * Проверка согласованности базы данных№
  * Проверьте конкретную информацию о каждой наличности/платежном средстве/заявке (?tender), идентификатор купона, номер чека и т. д.
* **Отчетность**:
  * Trend analysis report;
  * Тест информации, связанная с транзакцией по кредитной карте, должна отражаться в отчетах;
  * Проверка индивидуальных и сводных отчетов по истории покупок клиентов;
  * Тест для создания онлайн-отчетов.

Источники:

* [POS, безопасность и вот это вот все. Разбираем уязвимости популярной Retail-системы](https://habr.com/ru/company/dsec/blog/347432/)
* [Testing Retail Point Of Sale(POS) Systems: Example Test Cases](https://www.guru99.com/testing-for-retail-pos-point-of-sale-system.html)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://vladislaveremeev.gitbook.io/qa_bible/testirovanie-v-raznykh-sferakh-oblastyakh-testing-different-domains/testirovanie-sistem-roznichnoi-torgovli-pos-point-of-sale.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
