Мы используем куки, чтобы пользоваться сайтом было удобно.
Хорошо
to the top

Статический анализ в финансовой сфере

Graph with cost to fix

PVS‑Studio представляет собой решение для Static Application Security Testing (SAST). Инструмент помогает улучшать код по трём направлениям: качество, надёжность и защищённость.

PVS‑Studio позволяет выявить многие ошибки и потенциальные уязвимости на ранних стадиях и тем самым уменьшить стоимость их иcправления и, что более важно, снизить риск репутационных потерь. Поддерживается анализ программ на языках: C, C++, C#, Java.

Анализатор PVS‑Studio крайне востребован там, где любая ошибка может привести к большим потерям времени или денег.

Одной из таких сфер разработки программного обеспечения является финансовый сектор. Речь идёт, например, о трейдинге и банковском программном обеспечении.

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

Кейс: как ошибки в коде лишают компанию денег

В анализаторе есть диагностика V3040, которая выявляет ситуацию, когда одно целочисленное значение делится на другое целочисленное значение и результат помещается в переменную типа float или double. Конечно, не всегда подобный код является ошибочным, но он однозначно подозрителен и требует проверки.

Кто‑то посчитает, что подобная ошибка надуманна и предупреждение V3040 часто будет ложным. Он может быть и прав, и не прав. Всё зависит от типа приложения и от того, что, собственно, программа считает.
Пользователь рассказал, что команда, в которой он работает, нашла с помощью этой диагностики очень неприятную ошибку в их программном обеспечении. Где этот человек работает, мы рассказывать не будем, так как история была поведана нам на условиях анонимности (нет, это был не банк).

Модуль, в котором была найдена ошибка, рассчитывал гибкие цены для различных вариантов и условий заказов. Другими словами, подсчитывалось, какую цену менеджеру по продажам озвучить потенциальному клиенту. Ошибка закралась в расчёт некоего коэффициента. Использовалось целочисленное деление там, где не надо:

double K;
....
if (foo)
  K = 200 / 95;
else
....

Сразу скажем, мы придумали этот код и не знаем, как на самом деле он выглядел. Идея в том, что вместо коэффициента 2.1 получился коэффициент 2. В результате менеджеры начинали общение с клиентом, выставляя цену чуть ниже, чем полагалось. Цена считалась неправильно только при определённом сочетании условий, поэтому никто никогда ошибку не замечал, доверяя тем числам, которые выдаёт программа.
Поскольку, как я сказал, этот коэффициент рассчитывался неправильно только в редких случаях, эта ошибка не нанесла заметного вреда выручке компании. Тем не менее, ошибка была столь неприятна для разработчиков, что они решили скрыть её обнаружение от вышестоящего руководства и просто тихо исправили.

Image with big OOPS

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

Как видите, даже простые ошибки могут стать причиной потери времени, денег, репутации. Если же речь идёт о более ответственном программном обеспечении, то ошибки могут обойтись вообще крайне дорого. Те, кто разрабатывает софт для финансовой сферы, используют комплексный подход для обеспечения надежности. Статический анализатор PVS‑Studio может стать отличным дополнением к комплексу мер по контролю качества кода.

СКАЧАТЬ И ПОПРОБОВАТЬ СТАТИЧЕСКИЙ АНАЛИЗАТОР КОДА PVS‑STUDIO

Unicorn with cool gift for all our awesome visitors :)
close form

Заполните форму в два простых шага ниже:

Ваши контактные данные:

Шаг 1
Поздравляем! У вас есть промокод!

Тип желаемой лицензии:

Шаг 2
Team license
Enterprise license
** Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности
close form
Запросите информацию о ценах
Новая лицензия
Продление лицензии
--Выберите валюту--
USD
EUR
RUB
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Бесплатная лицензия PVS‑Studio для специалистов Microsoft MVP
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Для получения лицензии для вашего открытого
проекта заполните, пожалуйста, эту форму
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form
Мне интересно попробовать плагин на:
* Нажимая на кнопку, вы даете согласие на обработку
своих персональных данных. См. Политику конфиденциальности

close form

Ваш запрос в обработке

Мы пришлем ключ на .

Если вы так и не получили ответ, пожалуйста, проверьте, отфильтровано ли письмо в одну из следующих стандартных папок:

  • Промоакции
  • Оповещения
  • Спам