Pull to refresh
37
-1
Сергей @KREGI

Development Team Leader at QIWI

Send message

Как мы платежный шлюз тестируем

Reading time 10 min
Views 7.3K

Всем привет! Сегодня мы поговорим об интеграционном тестировании платежного шлюза, но перед этим расскажу немного про нашу команду и наш проект. Мы (ContactPay) — самостоятельный финтех-стартап внутри QIWI, строим высокопроизводительный отказоустойчивый платежный шлюз и соответствуем стандартам безопасности PCI DSS. 

Как платежный шлюз мы интегрированы со множеством внешних API, это могут быть и платежные системы, и сторонние сервисы мониторинга, антифрода, KYC (know your customer) и так далее. 

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

Мы стараемся писать корректный код с наименьшим количеством  багов. Код должен быть читаемым, самодокументируемым и поддерживаемым. Кроме того, он должен быть безопасным, так как мы  финтех и у нас PCI DSS, это накладывает определенные требования к безопасности. А ещё код должен быть тестируемым. 

Сегодня мы поговорим о двух метриках — корректность и тестируемость. Одна метрика напрямую влияет на другую, через тестируемость мы добиваемся корректности в том числе, мы проверяем, насколько код ожидаемо работает. 

Перед тем как говорить об интеграционном тестировании, нужно понять, какой процесс мы будем тестировать. Рассмотрим сценарий интеграционного тестирования из жизни. Это сценарий выставления счета, на самом деле процесс проходит в несколько этапов, но мы рассмотрим в посте первые две стадии этого сценария. 

Читать далее
Total votes 13: ↑13 and ↓0 +13
Comments 0

Как использовать Fullscreen API

Reading time 3 min
Views 87K

В комплекте с HTML5 появилось большое количество нового API. Одним из них является Fullscreen API, которое предоставляет нативный способ для браузера, позволяющий отобразить веб-страницу в полноэкранном режиме для пользователя.
А еще хорошо то, что Fullscreen API является очень простым в использовании.
Читать дальше →
Total votes 48: ↑44 and ↓4 +40
Comments 34

jQuery-плагины для удивительной web типографики

Reading time 2 min
Views 35K
Добрый час, Хабр.
Наткнулся на интересную статью (на английском языке) с подборкой плагинов jQuery для работы с типографикой.
Кому интересно познакомиться с ними, добро пожаловать под кат, перевожу статью для Вас.

Затравка

Типографика является очень важной частью дизайна сайта. Однако ею часто пренебрегают. В этой статье собраны удивительные JQuery-плагины для полного контроля типографики на вашем сайте.
Читать дальше →
Total votes 91: ↑85 and ↓6 +79
Comments 13

Чемпионаты по программированию и не только

Reading time 9 min
Views 17K

Рассказывая о конференциях, форумах, съездах и лан-пати, нельзя обделить вниманием хакерские и программерские чемпионаты. А ведь их немало, за призовые места там платят неплохие деньги, да и в целом участие в подобных мероприятиях — это очень полезный опыт.
Читать дальше →
Total votes 45: ↑39 and ↓6 +33
Comments 16

Баг в хостинге или как делать деньги из воздуха

Reading time 2 min
Views 5.3K

Приветствую!


В то время как зарубежные компании платят за баги, Российские говорят спасибо или вообще нечего не говорят, молча исправив найденную другим человеком ошибку.
Хочу поделиться тем что происходило на протяжении августовского дня.
А теперь ближе к делу…
Читать дальше →
Total votes 106: ↑92 and ↓14 +78
Comments 45

USSD в Android

Reading time 4 min
Views 35K
USSD (Unstructured Supplementary Service Data)— стандартный сервис в сетях GSM, позволяющий организовать интерактивное взаимодействие между абонентом сети и сервисным приложением в режиме передачи коротких сообщений.
Как известно, Android не имеет API для чтения USSD сообщений, далее я расскажу как решить эту проблему.
Читать дальше →
Total votes 57: ↑55 and ↓2 +53
Comments 42

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer, Software Architect
Lead
Python
High-loaded systems
PostgreSQL
Development management
Kubernetes
Google Cloud Platform