> For the complete documentation index, see [llms.txt](https://vladislaveremeev.gitbook.io/qa_bible/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://vladislaveremeev.gitbook.io/qa_bible/testirovanie-v-raznykh-sferakh-oblastyakh-testing-different-domains/testirovanie-sistem-roznichnoi-torgovli-pos-point-of-sale.md).

# Тестирование систем розничной торговли (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)
