6.6 KiB
Разобрать расхождение суммы портфеля
Используйте этот порядок, когда итог, позиция или доля на экране отличаются от ожидаемого значения. Он помогает определить слой расхождения без изменения данных. Нужны адрес экрана и уже доступный ответ API либо синтетический пример из существующей проверки. Реальные токены, персональные выгрузки и содержимое базы для разбора не нужны; не переносите их в документацию или отчёт.
- Определите предмет сравнения. Запишите, открыт отдельный счёт или «Все счета» и какой показатель расходится. Текущая стоимость, свободные деньги, результат открытой позиции и полученный доход — разные величины. Убедитесь, что сравниваемые значения относятся к одному составу счетов и инструменту. Название или тикер сами по себе не доказывают совпадение выпуска; используйте доступные UID, FIGI и ISIN.
- Сопоставьте время. Проверьте
lastSuccessfulAt,isStaleи показанный исход последней часовой попытки. Серверный снимок не обещает время каждой котировки, а общий портфель может соединять разные моменты. Действия «Повторить» на экране нет: временный сбой чтения восстанавливается автоматически, поэтому расхождение проверяйте по показанному состоянию источника, а не по результату ручного обновления. Перезагрузка backend сохраняет последний полный снимок в SQLite, но не создаёт историю стоимости. - Проверьте состав суммы. Итог складывается из вычислимых стоимостей
позиций и доступных денег в RUB. Не добавляйте деньги второй раз и не
включайте заблокированные средства.
Ненулевая позиция с
currentValue: nullделает оценку неполной, но не даёт нулевой вклад в смысле полной стоимости.CURRENCYучаствует в суммах, хотя текущий интерфейс скрывает её карточку — известное расхождение со спецификацией. - Проверьте показатель по его определению. Используйте справочник. Условный пример: 2 бумаги по 100 RUB и 50 RUB свободных денег дают 250 RUB стоимости. Доля позиции среди позиций равна 100%, а доля соответствующей категории в структуре с деньгами — 80%. Купоны и дивиденды не включаются в результат открытой позиции. Для проверки десятичных сумм сохраняйте исходные строки; арифметика с плавающей точкой может сама создать расхождение.
- Найдите ответственную границу. Если ответ API корректен, а экран теряет цифры, валюту или показатель, исследуйте frontend. Если исходные безопасные данные и нормализованный ответ расходятся, исследуйте backend. Если не совпадают ожидаемое и описанное поведение, сначала сопоставьте спецификацию портфеля и ограничения потока загрузки. Исправление документации само по себе не разрешает конфликт требований и реализации.
Для адресной проверки исходников владельцами служат сервис снимков, валютные итоги, структура и подготовка экрана. Это точки продолжения расследования; смысл вычислений изложен выше.
Разбор завершён, когда различие объяснено составом, временем или определением показателя либо получен воспроизводимый пример дефекта с ожидаемым и фактическим результатом. В последнем случае сохраните минимальный синтетический пример и адрес ответственного слоя. Ошибки источника и неизвестные значения не исправляются подстановкой нулей или обходом проверки доступа.