17-18 Мая, 2018
Гостиница «Park Inn by Radisson Пулковская»,
Санкт-Петербург, площадь Победы, 1

Системы статического анализа кода: трудности выбора

День 2 /  / Зал 3  /  RU / Введение в технологию

Комментарий Программного комитета:

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

Когда число разработчиков в компании начинает исчисляться сотнями, а количество строк написанного ими кода – миллионами, тестирование такого ПО становится весьма нетривиальной задачей. Вместе с ростом числа программистов, растёт и отдел тестирования ПО, множатся тесты, применяются новые методики.

Но даже код, покрытие которого близко к 100%, может и, как правило, содержит в себе ещё массу ошибок, отловить которые не под силу ни разработчику, ни тестировщику. Связано это с тем, что автотесты и функциональное тестирование не могут выявить большое количество специфических проблем, таких как, например, взаимная блокировка потоков или состояние гонки, связанных с ошибками проектирования многопоточных систем.

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


Скачать презентацию
Алексей Плетнёв
Базис-Центр

Работает в компании Базис-Центр с 2006 года инженером-программистом. Команда занимается разработкой САПР для автоматизации мебельных производств. С самого начала своего профессионального пути занимался вопросами лицензирования ПО и его защитой от нелегального использования. В последнее время к ним добавились проблемы качества кода. Умеет писать на языке ассемблера и знает, как выглядят ошибки на самом глубоком уровне.