Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

l6_NC

.pdf
Скачиваний:
11
Добавлен:
19.04.2015
Размер:
989.53 Кб
Скачать

Преимущества статического анализа кода

Ранний отлов ошибок.

Полное покрытие кода.

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

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

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

Можно легко и быстро обнаруживать опечатки и последствия использования Copy-Paste.

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

"strcmp(A, A)".

© 2013 NetCracker Technology Corporation Confidential

11

Недостатки статического анализа кода

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

ошибок.

Чтобы выявлять подобные ошибки, фактически необходимо виртуально выполнить часть программы. Это крайне сложно реализовать. Также подобные алгоритмы требуют очень много памяти и процессорного времени. Как правило, статические анализаторы ограничиваются диагностикой простых случаев. Более эффективным способом выявления утечек памяти и параллельных ошибок является использование инструментов динамического анализа.

Программа статического анализа предупреждает о подозрительных местах.

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

© 2013 NetCracker Technology Corporation Confidential

12

Мифы

Миф первый. Статический анализатор это продукт разового применения;

Миф второй. Профессиональные разработчики не допускают глупых ошибок;

Миф третий. Динамический анализ лучше чем статический;

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

Миф пятый. Можно составить маленькую программу, чтобы оценить инструмент.

© 2013 NetCracker Technology Corporation Confidential

13

Статический анализ+Eclipse (FindBug)

© 2013 NetCracker Technology Corporation Confidential

14

Дополнительная литература

«Статический анализ кода» от PVS-Studio http://www.viva64.com/ru/t/0046/

Список статических анализаторов для разных языков http://en.wikipedia.org/wiki/List_of_tools_for_static_code_analysis#Java

© 2013 NetCracker Technology Corporation Confidential

15

Автоматическая сборка кода

© 2013 NetCracker Technology Corporation Confidential

16

Сборка кода, это не только компиляция

Компиляция может происходить под несколько платформ.

После компиляции код нужно упаковать.

Каждый архив нужно назвать в соответствии с версией.

Если все тесты прошли удачно …

© 2013 NetCracker Technology Corporation Confidential

17

Зачем нужна автоматическая сборка

Независимость проектных задач от окружения

100% повторяемость любого результата (работает у меня – работает у всех)

Исключение человеческого фактора из важных операций

Превращение деплоя из сложной операции в рутинную задачу

© 2013 NetCracker Technology Corporation Confidential

18

КДПВ

АРТЕФАКТ это любой объект возникающий при сборке

© 2013 NetCracker Technology Corporation Confidential

19

Установка сервера Apache

© 2013 NetCracker Technology Corporation Confidential

20

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]