Зачем тестировщику знать французский: что такое MEV и как с ним работать

Kirill Malyshev
MobileUp
Published in
7 min readOct 22, 2021

Путь тестировщика в аутсорсе тернист и полон всевозможных проектов. Некоторые из них хотят его убить, а остальные — тоже хотят убить, но только они интересные. Вот и моя дорога привела N времени назад к тестированию одной зарубежной POS-системы, про которую я и хочу рассказать. Меня зовут Илья Зеленский, я Team Lead QA в MobileUp и я начну.

Что такое POS

Я не знаю кто ты, путник, читающий эти строки, но на всякий случай поясню, что POS = Point of Sale и если не вдаваться в подробности, то это инструмент, с помощью которого клиент некоего заведения (ресторана, бара и пр.) обменивает свои деньги на услуги этого заведения. У нас в Питере (по крайней мере, в тех барах, где я имел честь побывать) всюду стоит одна из самых популярных систем — R_Keeper. Но я немного отошёл от темы.

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

Что такое MEV

MEV — это аббревиатура французского термина Module d’Enregistrement des Ventes, то есть модуль для регистрации продаж. Это устройство, подключенное к торговой точке, которое записывает каждую совершенную продажу и передает необходимую информацию в Revenue Quebec, местный налоговый орган, а распечатанный чек, содержащий уникальный штрих-код удостоверяет точность и сохранность деловых записей. В Квебеке его обязательно использовать для любого типа ресторана, кейтеринга или бара.

Меня твои новые фичи доканали уже! Одна фича офигительнее другой!

Вокруг MEV в белом танце кружатся три стороны:

  1. Хозяева заведения очень хотят, чтобы клиенты исправно платили деньги, и очень не хотят ошибок во всех расчётах.
  2. Налоговая очень хочет, чтобы деньги из кармана посетителя исправно попадали в отчеты, а налоги с транзакций исправно приходили туда, куда нужно, и очень не хотят, чтобы хозяева присваивали себе больше денег, чем положено.
  3. Посетители очень хотят получать подробные и точные чеки, и очень не хотят переплачивать за услуги из-за сбоев в работе.

Поэтому взаимодействие MEV и POS-системы нужно тестировать, и тщательно.

Как выглядит MEV

Визуально MEV представляет из себя компьютер AEC-6822 с прикрученным к нему принтером Epson.

Принтер слева, MEV справа

Наша POS-система умеет подключаться к MEV, но для этого нужно:

  1. Чтобы MEV и POS система находились в одной локальной сети;
  2. Настроить MEV.

И если с первым пунктом проблем возникнуть не должно, то со вторым дела обстоят интереснее — MEV не локализован ни на один язык, кроме французского, которого я не знаю.

Как настроить MEV

Что нужно для настройки:

  1. Доступ в интернет;
  2. Роутер со свободными LAN-портами;
  3. Розетка 220В (2 штуки);
  4. USB-накопитель, отформатированный в FAT32;
  5. Компьютер.

Когда началась пандемия и весь наш офис отправили работать удалённо, было необходимо перевезти мои железяки и перенастроить их дома. На момент переезда у меня была недостаточно подробная инструкция и я столкнулся с проблемой: MEV упорно не хотел принимать новый IP-адрес.

Узким местом оказался не самый очевидный способ перезагрузки. В инструкции было написано «запиши IP на накопитель, вставь в MEV и перезагрузил его». Я так и делал, но не через отдельный пункт меню в MEV, а просто выключал и включал его.

Для настройки двигаемся по этим шагам:

  1. На USB накопителе в формате FAT32 создаем .txt файл с названием ConfigurationTcpIp_SERP12345678 (где цифры — серийный номер MEV, расположен на его днище и начинается с буквы P);
  2. В созданный файл записываем две строки : маска подсети и IP адрес самого MEV, после чего сохраняем файл и извлекаем из компьютера;
  3. Вставляем USB накопитель с файлом конфигурации в USB порт на передней панели MEV;
  4. Вставляем пульт управления MEV в оставшийся USB порт на передней панели;
  5. Запускаем MEV удержанием кнопки включения;
  6. Используем кнопки на пульте управления и идём по адресу: Appuyez sur une touche pour ouvrir une session. > ADMIN > Entrez le mot de passe. > Configuration > Connectivité MEV > TCP/IP-Série > Oui;
  7. После этой манипуляции MEV перезагрузится и примет настройки из файла конфигурации;
  8. Идём по адресу Appuyez sur une touche pour ouvrir une session. > ADMIN > Entrez le mot de passe. > Configuration > Voir config. IP > Imprimante и убеждаемся в том, что IP адрес успешно установлен;
  9. Подключаем MEV через ethernet порт 1 к роутеру;
  10. Подключаем MEV к принтеру с помощью штатного кабеля;
  11. Идём по адресу Appuyez sur une touche pour ouvrir une session. > ADMIN > Entrez le mot de passe. > Configuration > Imprimante > Epson и выбираем к какому принтеру хотим подключиться;
  12. Идём по адресу Appuyez sur une touche pour ouvrir une session. > ADMIN > Entrez le mot de passe. > Configuration > Port d’imprimante > 115200;
  13. Выключаем MEV;
  14. Включаем MEV.

После этого MEV готов к работе. В нашем случае в POS-системе мы вводим IP-адрес MEV, после чего подключение происходит автоматически и вы чувствуете себя великолепно!

Железная штуковина подмигивает зелёной лампочкой, а принтер выплюнул тестовый чек — это значит, что самое время сходить выпить чашечку кофе.

А теперь — тестирование

Ладно, надо теперь это всё как-то тестировать, так что давай уже приступим. В нашей POS системе все транзакции делятся на два типа: ADDI и RFER.

ADDI — это когда для заказа, проходящего через нашу систему, был распечатан Sales чек до фактической оплаты заказа (т.е. мы получаем чек о выполнении заказа, но на нём не содержится указание способа оплаты этого заказа). Такие заказы получаются, когда пользователь делает онлайн заказ, но выбирает способ оплаты при получении заказа, а не заранее. RFER — это когда заказ уже получил способ оплаты.

Терминал для оплаты и планшет для заказов

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

Как это тестировать? Да все просто. На Пульте управления MEV идём по пути rapports — detail des ventes, и печатаем этот отчет.

Тестирование MEV всегда влечёт за собой повышенный расход бумаги для принтеров. Если ты тоже имеешь дело с принтерами, пожалуйста, расходуй бумагу только на необходимые распечатки!

Делаем онлайн-заказ без оплаты, печатаем отчет, оплачиваем заказ, печатаем отчет снова. На первом отчете надо найти 1 ADDI транзакцию и 0 RFER, а на втором — 0 ADDI и 1 RFER.

Также стоит обращать особое внимание на заказы с несколькими типами оплаты (нашу POS-систему можно один общий заказ оплатить по частям и разными способами). Необходимо проверять отчеты в POS-системе, и смотреть, чтобы все типы оплат были правильно привязаны ко всем заказам.

Проверяем отчеты и чек

Ну и, собственно, проверка самих отчетов. У каждой транзакции в системе есть куча параметров:

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

Все эти параметры проходят через MEV, сохраняются в отчете, и мне как тестировщику необходимо убедиться в том, что все эти данные достоверны.

Так выглядит наш чек

Про что забыли? Конечно про Sales чеки, ведь они тоже печатаются через MEV. Кроме стандартных проверок а-ля «текст на чеке печатается по центру, цена блюда должна быть расположена прямо напротив названия этого блюда, переносы строк должны выполняться в соответствии с ТЗ, цены на блюда должны совпадать с заданными в админке и отображающимися в POS-системе» приходится учитывать небольшую особенность.

Как я уже говорил, MEV полностью на французском и Sales чеки он печатает тоже на французском, даже если POS-система работает на английском (а она может работать на обоих языках). Поэтому на первых порах я находил в чеке нужные для проверок строки только по цифрам, ну и с помощью гугл-переводчика. Но со временем, конечно, запоминаешь, что как пишется и где должно располагаться — и всё становится легко. Всё же французский не китайский и не арабский (а в моей практике был опыт проверки локализации одной мобильной игры на эти языки). Жить можно!

Вместо заключения

Ты сейчас читаешь эту статью и думаешь: «Зачем, а главное для кого она написана?». Отвечу так — не так давно Хидео Кодзима выпустил в свет свой проект под названием Death Stranding. Ты играешь за курьера, который доставляет заказы из пункта А в пункт Б в постапокалиптическом мире.

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

Да, маршрут, без сомнений, далеко не популярный. Но если моя лестница будет полезна хотя бы одному человеку, я уже буду доволен, потому что все не зря. На старте моего знакомства с проектом она бы мне очень пригодилась!

--

--