SlideShare a Scribd company logo
1 of 19
Download to read offline
Применение современныхПрименение современных
статических анализаторовстатических анализаторов
Андрей Уразов – 2010Андрей Уразов – 2010
Ход доклада
 Что такое статический анализ
 Виды обнаруживаемых изъянов
 Достоинства и недостатки
 Внедрение в производственный цикл ПО
 Как выбрать решение для статического анализа
Статический анализ кода
 Анализ кода без его реального исполнения
 Виды статического анализа:
 На основе деревьев разбора
 Анализ потока данных и управления
Кто мог это написать?
 Это код из Eclipse 3.0.0M8.
 Что же можно обнаружить в проектах, которые
мы тестируем?!
if (in == null)
try {
in.close();
Из кода JDK
 Этот метод с бесконечной рекурсией написан
самим Джошуа Блохом
 Если гениальные люди делают такие ошибки,
то что можно найти коде, написанном
«обычными» разработчиками?
public String foundType() {
return this.foundType();
}
Зачем нужен статический анализ
 Обнаружение ошибок
 Выявление архитектурных проблем кода,
отступлений от лучших практик
 Соответствие стандартам
 Обучение разработчиков
Зачем нужен статический анализ
 Повышение качества ПО (увеличение доходов)
 Увеличение производительности труда
(сокращение издержек)
Возможности
 Метрики
 Уязвимости безопасности
 Проблемы многопоточности
 Утечки ресурсов
 Критические ошибки:
 Выходы за границы массива
 Ошибки работы с памятью
 Исключения
Примеры: обнаружение NPE
Parasoft Jtest
находит ошибку
в коде Apache-
Ant-1.7.0beta1
(ClassNotFound-
Exception не
обрабатывается
должным
образом и
приводит к NPE)
Примеры: избавляемся от утечек
Parasoft Jtest находит утечку в коде Ant-1.7.0beta1
(утечка происходит, когда dis.read() бросает исключение)
Примеры: оптимизируем код
Parasoft Jtest находит неоптимальный код в FindBugs v1.0.0
Достоинства
 Широкий класс ошибок
 Обнаружение ошибок не требует участия
человека
 Ошибки находятся сразу после появления
 Всегда отображается причина проблемы в коде
Недостатки
 Неполнота анализа
 Ложные срабатывания
Внедрение в процесс разработки
 Использование системы управления исходным
кодом
 Определение политики качества
 Автоматизированное тестирование каждую ночь
 Каждое утро разработчики получают в среде
разработки набор обнаруженных ошибок
 Набор автоматически определяемых ошибок
расширяется по необходимости
В отделе контроля качества
 Отделение истинных ошибок от ложных
срабатываний
 Направление усилий по тестированию на
наиболее уязвимые части кода
Что учитывать при выборе решения
 Стоимость владения, окупаемость
 Виды обнаруживаемых ошибок
 Точность обнаружения
 Удобство использования
Удобство использования
 Интеграция в среду разработки
 Гибкая настройка
 Распределение задач
 Подавление ложных срабатываний
 Отслеживание уровня качества
Итоги: использование СА
 Увеличение выявляемости ошибок при
использовании вместе с тестированием
 Непрерывное обеспечение качества
 Направление усилий по тестированию,
опираясь на СА
 Ускорение цикла производства ПО
 Улучшение качества производимых продуктов
Благодарность
Спасибо за внимание :-)

More Related Content

What's hot

Severity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеSeverity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеDeutsche Post
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QAFest
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииDeutsche Post
 
Андрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокАндрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокSQALab
 
Ui testing how intel does this
Ui testing   how intel does thisUi testing   how intel does this
Ui testing how intel does thisAlexei Lupan
 
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...CodeFest
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийSQALab
 
юнит тестирование Fork
юнит тестирование Forkюнит тестирование Fork
юнит тестирование ForkSergey Oreshkov
 
Как перестать бояться и начать автоматизировать
Как перестать бояться и начать автоматизироватьКак перестать бояться и начать автоматизировать
Как перестать бояться и начать автоматизироватьSQALab
 
Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестированиеSQALab
 
Lyanguzov preso sqadays8
Lyanguzov preso sqadays8Lyanguzov preso sqadays8
Lyanguzov preso sqadays8Alexei Lupan
 
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...Dakiry
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1sgdread
 
Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...
Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...
Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...SQALab
 
Автотесты и образ мышления
Автотесты и образ мышленияАвтотесты и образ мышления
Автотесты и образ мышленияAndrei Zubov
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...SQALab
 
Профилактика дефектов
Профилактика дефектовПрофилактика дефектов
Профилактика дефектовSQALab
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQAFest
 

What's hot (19)

Severity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятноеSeverity и Priority для неначинающих: очевидное и невероятное
Severity и Priority для неначинающих: очевидное и невероятное
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
План тестирования
План тестированияПлан тестирования
План тестирования
 
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестированииМетод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
Метод No-Tests-Cases: избавьтесь от тест-кейсов в тестировании
 
Андрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибокАндрей Уразов - Методы раннего обнаружения ошибок
Андрей Уразов - Методы раннего обнаружения ошибок
 
Ui testing how intel does this
Ui testing   how intel does thisUi testing   how intel does this
Ui testing how intel does this
 
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
CodeFest 2010. Уразов А. — Quality-Oriented Programming (Программирование, ор...
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложений
 
юнит тестирование Fork
юнит тестирование Forkюнит тестирование Fork
юнит тестирование Fork
 
Как перестать бояться и начать автоматизировать
Как перестать бояться и начать автоматизироватьКак перестать бояться и начать автоматизировать
Как перестать бояться и начать автоматизировать
 
Скандалы, расследования, тестирование
Скандалы, расследования, тестированиеСкандалы, расследования, тестирование
Скандалы, расследования, тестирование
 
Lyanguzov preso sqadays8
Lyanguzov preso sqadays8Lyanguzov preso sqadays8
Lyanguzov preso sqadays8
 
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
DaKiRY_BAQ2016_QADay_Круглий стіл: "Чи помре ручне тестування з часом" Учасни...
 
JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1JavaTalks.Unit Testing.Part 1
JavaTalks.Unit Testing.Part 1
 
Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...
Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...
Мастер Тест План / Тестовая Стратегия: Что это? Зачем? Как его создать?-От А ...
 
Автотесты и образ мышления
Автотесты и образ мышленияАвтотесты и образ мышления
Автотесты и образ мышления
 
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
Невыносимая переносимость кроссплатформенных приложений на примере десктопных...
 
Профилактика дефектов
Профилактика дефектовПрофилактика дефектов
Профилактика дефектов
 
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестированияQA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
QA Fest 2016. Денис Яременко. Как облегчить процесс мобильного тестирования
 

Viewers also liked

сергей андреев
сергей андреевсергей андреев
сергей андреевAlexei Lupan
 
Serious+performance+testing
Serious+performance+testingSerious+performance+testing
Serious+performance+testingAlexei Lupan
 
павел мильков знания и умения тестировщиков
павел мильков   знания и умения тестировщиковпавел мильков   знания и умения тестировщиков
павел мильков знания и умения тестировщиковAlexei Lupan
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Alexei Lupan
 
Чему хороший ПМ может научиться у хорошего врача
Чему хороший ПМ может научиться у хорошего врачаЧему хороший ПМ может научиться у хорошего врача
Чему хороший ПМ может научиться у хорошего врачаIvan Selikhovkin
 
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
(Seleniumcamp) Selenium IDE как артефакт пикника на обочинеAlexei Lupan
 
евгения фирсова нерелизное тестирование
евгения фирсова   нерелизное тестированиеевгения фирсова   нерелизное тестирование
евгения фирсова нерелизное тестированиеAlexei Lupan
 
Oleynikov sqa days 8_deck
Oleynikov sqa days 8_deckOleynikov sqa days 8_deck
Oleynikov sqa days 8_deckAlexei Lupan
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаAlexei Lupan
 
ирина карачунская что ждет тестировщика итог-Fin
ирина карачунская   что ждет тестировщика итог-Finирина карачунская   что ждет тестировщика итог-Fin
ирина карачунская что ждет тестировщика итог-FinAlexei Lupan
 
алексей лупан мал да удал
алексей лупан   мал да удалалексей лупан   мал да удал
алексей лупан мал да удалAlexei Lupan
 
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...GTestClub
 
Мелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиМелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиAlexei Lupan
 
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QAFest
 
Тренировка служебных тестировщиков
Тренировка служебных тестировщиковТренировка служебных тестировщиков
Тренировка служебных тестировщиковSQALab
 
размышления об аутсорсинге Sqa days 2010
размышления об аутсорсинге Sqa days 2010размышления об аутсорсинге Sqa days 2010
размышления об аутсорсинге Sqa days 2010Alexei Lupan
 
[Sqa days]risk driven testing
[Sqa days]risk driven testing[Sqa days]risk driven testing
[Sqa days]risk driven testingAlexei Lupan
 
Sq adays 2010_balashenko
Sq adays 2010_balashenkoSq adays 2010_balashenko
Sq adays 2010_balashenkoAlexei Lupan
 
QA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarkt
QA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarktQA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarkt
QA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarktQAFest
 
Наталья Руколь - Sqamaps
Наталья Руколь - SqamapsНаталья Руколь - Sqamaps
Наталья Руколь - SqamapsAlexei Lupan
 

Viewers also liked (20)

сергей андреев
сергей андреевсергей андреев
сергей андреев
 
Serious+performance+testing
Serious+performance+testingSerious+performance+testing
Serious+performance+testing
 
павел мильков знания и умения тестировщиков
павел мильков   знания и умения тестировщиковпавел мильков   знания и умения тестировщиков
павел мильков знания и умения тестировщиков
 
Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)Sqadays 2010 burmistrov_fomin_20101120(2)
Sqadays 2010 burmistrov_fomin_20101120(2)
 
Чему хороший ПМ может научиться у хорошего врача
Чему хороший ПМ может научиться у хорошего врачаЧему хороший ПМ может научиться у хорошего врача
Чему хороший ПМ может научиться у хорошего врача
 
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
(Seleniumcamp) Selenium IDE как артефакт пикника на обочине
 
евгения фирсова нерелизное тестирование
евгения фирсова   нерелизное тестированиеевгения фирсова   нерелизное тестирование
евгения фирсова нерелизное тестирование
 
Oleynikov sqa days 8_deck
Oleynikov sqa days 8_deckOleynikov sqa days 8_deck
Oleynikov sqa days 8_deck
 
андрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчикаандрей дмитриев взгляд со стороны разработчика
андрей дмитриев взгляд со стороны разработчика
 
ирина карачунская что ждет тестировщика итог-Fin
ирина карачунская   что ждет тестировщика итог-Finирина карачунская   что ждет тестировщика итог-Fin
ирина карачунская что ждет тестировщика итог-Fin
 
алексей лупан мал да удал
алексей лупан   мал да удалалексей лупан   мал да удал
алексей лупан мал да удал
 
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
Grammarly Test Club#2. Выступление Алексея Лупана (SysIQ, Inc.): "Без тест-ке...
 
Мелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательностиМелочь пузатая или Объем тест кейса против его содержательности
Мелочь пузатая или Объем тест кейса против его содержательности
 
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
QA Fest 2014. Алексей Лупан. Не тест-кейсы красят тестировщика, а...
 
Тренировка служебных тестировщиков
Тренировка служебных тестировщиковТренировка служебных тестировщиков
Тренировка служебных тестировщиков
 
размышления об аутсорсинге Sqa days 2010
размышления об аутсорсинге Sqa days 2010размышления об аутсорсинге Sqa days 2010
размышления об аутсорсинге Sqa days 2010
 
[Sqa days]risk driven testing
[Sqa days]risk driven testing[Sqa days]risk driven testing
[Sqa days]risk driven testing
 
Sq adays 2010_balashenko
Sq adays 2010_balashenkoSq adays 2010_balashenko
Sq adays 2010_balashenko
 
QA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarkt
QA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarktQA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarkt
QA Fes 2016. Игорь Любин. Об автоматическом тестировании бэкенда в MediaMarkt
 
Наталья Руколь - Sqamaps
Наталья Руколь - SqamapsНаталья Руколь - Sqamaps
Наталья Руколь - Sqamaps
 

Similar to Sqa8 urazov

Как мы тестируем анализатор кода
Как мы тестируем анализатор кодаКак мы тестируем анализатор кода
Как мы тестируем анализатор кодаTatyanazaxarova
 
Регулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработкеРегулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработкеTatyanazaxarova
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?sqadays8
 
Константин Книжник: статический анализ, взгляд со стороны
Константин Книжник: статический анализ, взгляд со стороныКонстантин Книжник: статический анализ, взгляд со стороны
Константин Книжник: статический анализ, взгляд со стороныTatyanazaxarova
 
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...CodeFest
 
О чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных системО чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных системArtem Volftrub
 
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Andrey Karpov
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеSQALab
 
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опытОблегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опытAndrey Karpov
 
Поиск уязвимостей в программах с помощью анализаторов кода
Поиск уязвимостей в программах с помощью анализаторов кодаПоиск уязвимостей в программах с помощью анализаторов кода
Поиск уязвимостей в программах с помощью анализаторов кодаTatyanazaxarova
 
Презентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияПрезентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияRauan Ibraikhan
 
презентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияпрезентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияRauan Ibraikhan
 
Как тестируют в гугле - обзор книги
Как тестируют в гугле - обзор книгиКак тестируют в гугле - обзор книги
Как тестируют в гугле - обзор книгиkosyakov
 
Применение статического анализа кода в преподавании и в разработке свободного ПО
Применение статического анализа кода в преподавании и в разработке свободного ПОПрименение статического анализа кода в преподавании и в разработке свободного ПО
Применение статического анализа кода в преподавании и в разработке свободного ПОAndrey Karpov
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кодаSergii Shmarkatiuk
 
Тестирование параллельных программ
Тестирование параллельных программТестирование параллельных программ
Тестирование параллельных программTatyanazaxarova
 
Урок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокУрок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокTatyanazaxarova
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Technopark
 

Similar to Sqa8 urazov (20)

Как мы тестируем анализатор кода
Как мы тестируем анализатор кодаКак мы тестируем анализатор кода
Как мы тестируем анализатор кода
 
Регулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработкеРегулярное использование статического анализа кода в командной разработке
Регулярное использование статического анализа кода в командной разработке
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
 
Константин Книжник: статический анализ, взгляд со стороны
Константин Книжник: статический анализ, взгляд со стороныКонстантин Книжник: статический анализ, взгляд со стороны
Константин Книжник: статический анализ, взгляд со стороны
 
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
Codefest 2011. Вольфтруб А. — О чем стоит подумать, приступая к разработке вы...
 
О чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных системО чем стоит подумать, приступая к разработке высоконагруженных систем
О чем стоит подумать, приступая к разработке высоконагруженных систем
 
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++Реклама PVS-Studio - статический анализ кода на языке Си и Си++
Реклама PVS-Studio - статический анализ кода на языке Си и Си++
 
Шаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проектеШаги мануальщика к автоматизации на крупном проекте
Шаги мануальщика к автоматизации на крупном проекте
 
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опытОблегчаем процесс разработки с помощью статического анализа кода: Наш опыт
Облегчаем процесс разработки с помощью статического анализа кода: Наш опыт
 
Поиск уязвимостей в программах с помощью анализаторов кода
Поиск уязвимостей в программах с помощью анализаторов кодаПоиск уязвимостей в программах с помощью анализаторов кода
Поиск уязвимостей в программах с помощью анализаторов кода
 
Презентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспеченияПрезентация по дисциплине технология разработки программного обеспечения
Презентация по дисциплине технология разработки программного обеспечения
 
презентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспеченияпрезентация по дисциплине технология разработки программного обеспечения
презентация по дисциплине технология разработки программного обеспечения
 
Java one presentation
Java one presentationJava one presentation
Java one presentation
 
Как тестируют в гугле - обзор книги
Как тестируют в гугле - обзор книгиКак тестируют в гугле - обзор книги
Как тестируют в гугле - обзор книги
 
Применение статического анализа кода в преподавании и в разработке свободного ПО
Применение статического анализа кода в преподавании и в разработке свободного ПОПрименение статического анализа кода в преподавании и в разработке свободного ПО
Применение статического анализа кода в преподавании и в разработке свободного ПО
 
метод организации репозитория исходного кода
метод организации репозитория исходного кодаметод организации репозитория исходного кода
метод организации репозитория исходного кода
 
Тестирование параллельных программ
Тестирование параллельных программТестирование параллельных программ
Тестирование параллельных программ
 
Урок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибокУрок 7. Проблемы выявления 64-битных ошибок
Урок 7. Проблемы выявления 64-битных ошибок
 
Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9Разработка веб-сервисов осень 2013 лекция 9
Разработка веб-сервисов осень 2013 лекция 9
 

More from Alexei Lupan

Когда требования никакие (Dump 2015)
Когда требования никакие (Dump 2015)Когда требования никакие (Dump 2015)
Когда требования никакие (Dump 2015)Alexei Lupan
 
Алексей Лупан - Да перестаньте уже автоматизировать
Алексей Лупан - Да перестаньте уже автоматизироватьАлексей Лупан - Да перестаньте уже автоматизировать
Алексей Лупан - Да перестаньте уже автоматизироватьAlexei Lupan
 
павел мильков знания и умения тестировщиков
павел мильков   знания и умения тестировщиковпавел мильков   знания и умения тестировщиков
павел мильков знания и умения тестировщиковAlexei Lupan
 
New девять правил семпая, или как стать успешным наставником
New девять правил семпая, или как стать успешным наставникомNew девять правил семпая, или как стать успешным наставником
New девять правил семпая, или как стать успешным наставникомAlexei Lupan
 
Sqadays2010 nalyutin
Sqadays2010 nalyutinSqadays2010 nalyutin
Sqadays2010 nalyutinAlexei Lupan
 
Андрей Кузьмичев - яндекс в городе
 Андрей Кузьмичев - яндекс в городе Андрей Кузьмичев - яндекс в городе
Андрей Кузьмичев - яндекс в городеAlexei Lupan
 
Наталья Руколь - Sqa career
Наталья Руколь - Sqa careerНаталья Руколь - Sqa career
Наталья Руколь - Sqa careerAlexei Lupan
 
Orlov qa leadership
Orlov qa leadershipOrlov qa leadership
Orlov qa leadershipAlexei Lupan
 
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionSqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionAlexei Lupan
 

More from Alexei Lupan (9)

Когда требования никакие (Dump 2015)
Когда требования никакие (Dump 2015)Когда требования никакие (Dump 2015)
Когда требования никакие (Dump 2015)
 
Алексей Лупан - Да перестаньте уже автоматизировать
Алексей Лупан - Да перестаньте уже автоматизироватьАлексей Лупан - Да перестаньте уже автоматизировать
Алексей Лупан - Да перестаньте уже автоматизировать
 
павел мильков знания и умения тестировщиков
павел мильков   знания и умения тестировщиковпавел мильков   знания и умения тестировщиков
павел мильков знания и умения тестировщиков
 
New девять правил семпая, или как стать успешным наставником
New девять правил семпая, или как стать успешным наставникомNew девять правил семпая, или как стать успешным наставником
New девять правил семпая, или как стать успешным наставником
 
Sqadays2010 nalyutin
Sqadays2010 nalyutinSqadays2010 nalyutin
Sqadays2010 nalyutin
 
Андрей Кузьмичев - яндекс в городе
 Андрей Кузьмичев - яндекс в городе Андрей Кузьмичев - яндекс в городе
Андрей Кузьмичев - яндекс в городе
 
Наталья Руколь - Sqa career
Наталья Руколь - Sqa careerНаталья Руколь - Sqa career
Наталья Руколь - Sqa career
 
Orlov qa leadership
Orlov qa leadershipOrlov qa leadership
Orlov qa leadership
 
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interactionSqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
Sqa.days.2010.beskov.system.analyst.and.test.engineers.interaction
 

Sqa8 urazov

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