Sqa8 urazov

1,682 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,682
On SlideShare
0
From Embeds
0
Number of Embeds
1,034
Actions
Shares
0
Downloads
14
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Sqa8 urazov

  1. 1. Применение современныхПрименение современных статических анализаторовстатических анализаторов Андрей Уразов – 2010Андрей Уразов – 2010
  2. 2. Ход доклада  Что такое статический анализ  Виды обнаруживаемых изъянов  Достоинства и недостатки  Внедрение в производственный цикл ПО  Как выбрать решение для статического анализа
  3. 3. Статический анализ кода  Анализ кода без его реального исполнения  Виды статического анализа:  На основе деревьев разбора  Анализ потока данных и управления
  4. 4. Кто мог это написать?  Это код из Eclipse 3.0.0M8.  Что же можно обнаружить в проектах, которые мы тестируем?! if (in == null) try { in.close();
  5. 5. Из кода JDK  Этот метод с бесконечной рекурсией написан самим Джошуа Блохом  Если гениальные люди делают такие ошибки, то что можно найти коде, написанном «обычными» разработчиками? public String foundType() { return this.foundType(); }
  6. 6. Зачем нужен статический анализ  Обнаружение ошибок  Выявление архитектурных проблем кода, отступлений от лучших практик  Соответствие стандартам  Обучение разработчиков
  7. 7. Зачем нужен статический анализ  Повышение качества ПО (увеличение доходов)  Увеличение производительности труда (сокращение издержек)
  8. 8. Возможности  Метрики  Уязвимости безопасности  Проблемы многопоточности  Утечки ресурсов  Критические ошибки:  Выходы за границы массива  Ошибки работы с памятью  Исключения
  9. 9. Примеры: обнаружение NPE Parasoft Jtest находит ошибку в коде Apache- Ant-1.7.0beta1 (ClassNotFound- Exception не обрабатывается должным образом и приводит к NPE)
  10. 10. Примеры: избавляемся от утечек Parasoft Jtest находит утечку в коде Ant-1.7.0beta1 (утечка происходит, когда dis.read() бросает исключение)
  11. 11. Примеры: оптимизируем код Parasoft Jtest находит неоптимальный код в FindBugs v1.0.0
  12. 12. Достоинства  Широкий класс ошибок  Обнаружение ошибок не требует участия человека  Ошибки находятся сразу после появления  Всегда отображается причина проблемы в коде
  13. 13. Недостатки  Неполнота анализа  Ложные срабатывания
  14. 14. Внедрение в процесс разработки  Использование системы управления исходным кодом  Определение политики качества  Автоматизированное тестирование каждую ночь  Каждое утро разработчики получают в среде разработки набор обнаруженных ошибок  Набор автоматически определяемых ошибок расширяется по необходимости
  15. 15. В отделе контроля качества  Отделение истинных ошибок от ложных срабатываний  Направление усилий по тестированию на наиболее уязвимые части кода
  16. 16. Что учитывать при выборе решения  Стоимость владения, окупаемость  Виды обнаруживаемых ошибок  Точность обнаружения  Удобство использования
  17. 17. Удобство использования  Интеграция в среду разработки  Гибкая настройка  Распределение задач  Подавление ложных срабатываний  Отслеживание уровня качества
  18. 18. Итоги: использование СА  Увеличение выявляемости ошибок при использовании вместе с тестированием  Непрерывное обеспечение качества  Направление усилий по тестированию, опираясь на СА  Ускорение цикла производства ПО  Улучшение качества производимых продуктов
  19. 19. Благодарность Спасибо за внимание :-)

×