SlideShare a Scribd company logo
Технический долг:
взгляд и действия со стороны
QA / QC&AT
Дмитрий
Химион
Руководитель направления
автоматизации тестирования
Дмитрий Химион
руководитель направления
автоматизации тестирования
Performance Lab
Докладчик на конференциях:
SQA Days 13
ITSM Forum
SQA Days 14
SQA Days 15
SQA Days 16
Представлюсь
1. Что такое технический долг?
2. Примеры влияния на проекты
3. Как относится к тестированию?
4. Как измерить и контролировать?
5. Внедрение
План доклада
Говард Каннингем – автор термина «технический долг»
Технический долг - это разница между идеальным
техническим решением и тем решением, которое
принимается сейчас (англ.яз - tech.debt).
Что такое технический долг?
• Осознанный (умышленный) – программист отказывается от гибкости кода или от
покрытия кода тестами, выигрывая время.
• Не осознанный – неопытность программиста в использовании конструкций языка
программирования или применении Framework-ов или платформ.
• Технологический – затягивание с обновлением версии платформы и framework
• Архитектурный – необходимость переработки архитектуры под новые требования
Разновидности технического долга
• Осознанный (умышленный) – программист отказывается от гибкости кода или от
покрытия кода тестами, выигрывая время.
• Не осознанный – неопытность программиста в использовании конструкций языка
программирования или применении Framework-ов или платформ.
• Технологический – затягивание с обновлением версии платформы и framework
• Архитектурный – необходимость переработки архитектуры под новые требования
Разновидности технического долга
Проект:
• Публичный гос.проект
• Целевая аудитория – жители РФ
Проблема:
• При нагрузке избыточная утилизация
аппаратных ресурсов
• Оптимизация критичных по производительности
компонент не помогает.
Примеры технического долга
Примеры технического долга
Причина проблемы - ошибка уровня normal-major
в использовании конструкции кода
DDT на функцию кода:
• mode = ‘debug’
build = ‘debug’
extBuild = ‘-debug’
themeBuild = ‘-debug’
• mode = ‘review’
build = ‘review’
extBuild = ‘-debug’
themeBuild = ‘-debug’
• mode = ‘anyOtherKey’
build = ‘review’
extBuild = ‘-debug’
themeBuild = ‘-debug’
Примеры технического долга
Примеры технического долга
break;
Не осознанный технический долг
Примеры технического долга
Примеры технического долга
Не осознанный технический долг
• Размер технического долга – показатель качества проекта.
• Качество программного обеспечения
Тестирование и Tech.debt
• Размер технического долга – показатель качества проекта.
• Качество программного обеспечения
Тестирование и Tech.debt
Стандарт - ISO 9126
• Размер технического долга – показатель качества проекта.
• Качество программного обеспечения
Тестирование и Tech.debt
ISO 9126 (ISO 25010) аспекты:
• Функциональность
• Надежность
• Практичность
• Эффективность
• Сопровождаемость
• Переносимость
Стандарт - ISO 9126
• Размер технического долга – показатель качества проекта.
• Качество программного обеспечения
Тестирование и Tech.debt
ISO 9126 (ISO 25010) аспекты:
• Функциональность
• Надежность
• Практичность
• Эффективность
• Сопровождаемость
• Переносимость
Стандарт - ISO 9126
• Размер технического долга – показатель качества проекта.
• Качество программного обеспечения
Тестирование и Tech.debt
ISO 9126 (ISO 25010) аспекты:
• Функциональность
• Надежность
• Практичность
• Эффективность
• Сопровождаемость
• Переносимость
Стандарт - ISO 9126
Аспект «Сопровождаемость»:
• Analyzability
• Changeability
• Testability
• Stability
• Размер технического долга – показатель качества проекта.
• Качество программного обеспечения
Тестирование и Tech.debt
ISO 9126 (ISO 25010) аспекты:
• Функциональность
• Надежность
• Практичность
• Эффективность
• Сопровождаемость
• Переносимость
Стандарт - ISO 9126
Аспект «Сопровождаемость»:
• Analyzability
• Changeability
• Testability
• Stability
Инструменты измерения tech.debt
Analyzability
SCA* Code review
Changeability
SCA Code review
Testability
Test coverage Mutation testing
* – статический анализ кода (static code analysis)
Инструменты измерения tech.debt
Analyzability
SCA Code review
Changeability
SCA Code review
Testability
Test coverage Mutation testing
Инструменты:
• SCA
• Code review
• Test coverage
• Mutation testing
• …
Инфраструктура разработки
Инструменты измерения tech.debt
Analyzability
SCA Code review
Changeability
SCA Code review
Testability
Test coverage Mutation testing
Инфраструктура разработки
Разработка
Тестирование
Инструменты:
• SCA
• Code review
• Test coverage
• Mutation testing
• …
Инструменты измерения tech.debt
Analyzability
SCA Code review
Changeability
SCA Code review
Testability
Test coverage Mutation testing
Инструменты:
• SCA
• Code review
• Test coverage
• Mutation testing
• …
Инфраструктура разработки
Разработка
Тестирование
Инструменты измерения tech.debt
SCA инструменты:
• Cppcheck
• PVS-studio
• Coverity
• Pylint
• Sonarqube
• FindBugs
• Resharper
Встраивание в инфраструктуру
quality gates – методология обеспечения качества
Измерение:
1. Анализа кода проекта
Измерение технического долга
Исходные
коды
• Получить
SCA
• Развернуть
• Настроить
Результат
Измерение:
1. Анализа кода проекта
Исходные
коды
• Получить
SCA
• Развернуть
• Настроить
Результат
Доступа к сорцам
может не быть
• Настроить GUI
• Установить плагины
• Интеграция с VCS
• Виртуалка или железка
• Установить ПО
Измерение технического долга
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
* – проводится совместно с программистами
** – строк кода (Line Of Code)
Дублирование кода
Bugs per 1000 LOC*
Документирование кода
Комплексность кода
Составные метрики
Измерение технического долга
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
* – проводится совместно с программистами
** – строк кода (Line Of Code)
Дублирование кода
Bugs per 1000 LOC*
Документирование кода
Комплексность кода
Составные метрики
Измерение технического долга
70% и более
Не больше 5%
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
* – проводится совместно с программистами
Измерение технического долга
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
* – проводится совместно с программистами
Измерение технического долга
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
* – проводится совместно с программистами
Измерение технического долга
151000 срабатываний на
сторонние библиотеки
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
* – проводится совместно с программистами
Измерение технического долга
150000 срабатываний на
сторонние библиотеки
92% ложных срабатываний
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
* – проводится совместно с программистами
• Positive false
• Не актуальные инспекции
• Ложный приоритет инспекций
• Проблемы с кодировками
• …
Измерение технического долга
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
4. Задать приемлемый уровень метрик*
* – проводится совместно с программистами
Измерение технического долга
Измерение:
1. Анализа кода проекта
2. Принятие релевантных метрик*
3. Устранение «шума» в измерениях*
4. Задать приемлемый уровень метрик*
* – проводится совместно с программистами
Измерение технического долга
Единая стилистика кода
1. Инспектирование кода на периодической основе
2. Включение обсуждения «долгов» в планирование проекта
3. Прецедентная работы над приоритетами инспекций
Контроль tech.debt
1. Слежение за трендами и метриками
2. Регулярный критический просмотр результатов
3. Работа по прецедентам*
Контроль tech.debt
* – проводится совместно с программистами
Не стоит внедрять, если ваш проект:
• Выводится из эксплуатации;
• Не планируется поддерживать после разработки;
• Прототип;
• Личный проект.
Внедрение в рабочий процесс
Внедрение в рабочий процесс
Обсудить выгоды от котроля tech.debt с руководством проекта:
1. Исправление дефектов на ранней стадии разработки;
2. Прогнозирование рефакторинга;
3. Исключение нелепых ошибок.
• Нет инструмента всеобъемлюще измеряющего tech.debt
• Измерение и контроль tech.debt – процесс итеративный
• Мониторинг tech.debt задача отдела контроля качества
• Измерение проблем проекта - «Осведомлён – значит вооружён»
Итоги
Предсказуемость влияния изменений на программу
Зрелость процессов
Прозрачность разработки и внесения изменений
Picasso-key
Дмитрий Химион Руководитель
направления АТ
Вопросы?
d.khimion@pflb.ru

More Related Content

What's hot

Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
WrikeTechClub
 
Test design techniques basics
Test design techniques basicsTest design techniques basics
Test design techniques basics
Artem Bykovets
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QAFest
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграции
SQALab
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
Badoo Development
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QAFest
 
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QAFest
 
Инструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективныеИнструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективные
SQALab
 
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QAFest
 
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QAFest
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
SQALab
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестированияQA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QAFest
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...SQALab
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторов
SQALab
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
Тарасов Константин
 
Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"
SQALab
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
SQALab
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
SQALab
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
SQALab
 

What's hot (20)

Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
Илья Кудинов «Развитие процессов тестирования в Badoo за три года, или как мы...
 
Test design techniques basics
Test design techniques basicsTest design techniques basics
Test design techniques basics
 
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в DevopsQA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
QA Fes 2016. Анастасия Асеева. Роль тестирования в Devops
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
Организация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграцииОрганизация автоматического тестирования в схеме непрерывной интеграции
Организация автоматического тестирования в схеме непрерывной интеграции
 
Как автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ruКак автотесты ускоряют релизы в OK.ru
Как автотесты ускоряют релизы в OK.ru
 
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
QA Fest 2016. Алексей Виноградов. Цель тестирования. А на самом деле?
 
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
QA Fest 2016. Инна Блажко. ISTQB – What is it? Who needs it? How to prepare a...
 
Инструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективныеИнструменты автоматизации тестирования - дефективные
Инструменты автоматизации тестирования - дефективные
 
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
QA Fes 2016. Василий Сливка. 10 лучших практик для тестирования мобильных при...
 
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
QA Fest 2015. Владимир Скляр. Организация тестирования встроенных систем в ко...
 
Новый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проектеНовый процесс тестирования на "старом" проекте
Новый процесс тестирования на "старом" проекте
 
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестированияQA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
QA Fest 2017. Иван Пашко. Антипаттерны и запахи в автоматизации тестирования
 
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
Crystal Agile, или как мы приспособили процесс разработки для обеспечения мак...
 
Тестирование инсталляторов
Тестирование инсталляторовТестирование инсталляторов
Тестирование инсталляторов
 
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере BadooРИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
РИФ 2016, Внедрение контроля качества в большом web-проекте на примере Badoo
 
Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"Деградация автоматизаторов - "горе от ума"
Деградация автоматизаторов - "горе от ума"
 
Автоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегийАвтоматизация тестирования ролей и привилегий
Автоматизация тестирования ролей и привилегий
 
Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?Дефицит ресурсов тестирования... или нет?
Дефицит ресурсов тестирования... или нет?
 
10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам10 принципов автоматизации, которые я не предам
10 принципов автоматизации, которые я не предам
 

Viewers also liked

Грабли тестировщика
Грабли тестировщикаГрабли тестировщика
Грабли тестировщика
SQALab
 
QA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знать
QA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знатьQA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знать
QA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знать
QAFest
 
Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...
Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...
Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...
Badoo Development
 
Как подготовить себе преемника?
Как подготовить себе преемника?Как подготовить себе преемника?
Как подготовить себе преемника?
SQALab
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
Dmytro Mindra
 
XPDays Ukraine: Legacy
XPDays Ukraine: LegacyXPDays Ukraine: Legacy
XPDays Ukraine: Legacy
Victor_Cr
 
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QAFest
 
ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0
Maxim Shulga
 
Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"Victor_Cr
 
QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...
QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...
QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...
QAFest
 
Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)
Victor_Cr
 
Павел Мочалкин
Павел МочалкинПавел Мочалкин
Павел Мочалкин
CodeFest
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Platonov Sergey
 
Тестирование тестировщиков. Нейрофидбэк в QA
Тестирование тестировщиков. Нейрофидбэк в QAТестирование тестировщиков. Нейрофидбэк в QA
Тестирование тестировщиков. Нейрофидбэк в QA
SQALab
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
CEE-SEC(R)
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестирования
CEE-SEC(R)
 
Как пишутся и поддерживаются Enterprise системы
Как пишутся и поддерживаются Enterprise системыКак пишутся и поддерживаются Enterprise системы
Как пишутся и поддерживаются Enterprise системы
Sergey Nemchinsky
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
Naresh Jain
 
10 способов как не надо тестировать высоконагруженный веб-сервис
10 способов как не надо тестировать высоконагруженный веб-сервис10 способов как не надо тестировать высоконагруженный веб-сервис
10 способов как не надо тестировать высоконагруженный веб-сервис
SQALab
 
Никита Налютин, Антон Александров - Управление рисками тестирования
Никита Налютин, Антон Александров - Управление рисками тестированияНикита Налютин, Антон Александров - Управление рисками тестирования
Никита Налютин, Антон Александров - Управление рисками тестирования
SQALab
 

Viewers also liked (20)

Грабли тестировщика
Грабли тестировщикаГрабли тестировщика
Грабли тестировщика
 
QA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знать
QA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знатьQA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знать
QA Fest 2015. Катерина Овеченко. Топ 5 уязвимостей, о которых стоит знать
 
Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...
Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...
Доклад Ильи Кудинова на CodeFest 2014. "Учимся на ошибках в организации и про...
 
Как подготовить себе преемника?
Как подготовить себе преемника?Как подготовить себе преемника?
Как подготовить себе преемника?
 
XP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy codeXP Days Ukraine 2014 - Refactoring legacy code
XP Days Ukraine 2014 - Refactoring legacy code
 
XPDays Ukraine: Legacy
XPDays Ukraine: LegacyXPDays Ukraine: Legacy
XPDays Ukraine: Legacy
 
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
QA Fest 2015. Татьяна Скрипник. Кросс-браузерность, что ты делаешь?.. Ах-ха-х...
 
ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0ITGM#4 Технический долг 2.0
ITGM#4 Технический долг 2.0
 
Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"Club of anonimous developers "Refactoring: Legacy code"
Club of anonimous developers "Refactoring: Legacy code"
 
QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...
QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...
QA Fest 2015. Татьяна Завьялова. UX тестирование: планирование, подготовка, п...
 
Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)Legacy: как победить в гонке (Joker)
Legacy: как победить в гонке (Joker)
 
Павел Мочалкин
Павел МочалкинПавел Мочалкин
Павел Мочалкин
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
 
Тестирование тестировщиков. Нейрофидбэк в QA
Тестирование тестировщиков. Нейрофидбэк в QAТестирование тестировщиков. Нейрофидбэк в QA
Тестирование тестировщиков. Нейрофидбэк в QA
 
Длинный путь к DevOps?
Длинный путь к DevOps?Длинный путь к DevOps?
Длинный путь к DevOps?
 
Проблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестированияПроблемы процесса разработки с точки зрения тестирования
Проблемы процесса разработки с точки зрения тестирования
 
Как пишутся и поддерживаются Enterprise системы
Как пишутся и поддерживаются Enterprise системыКак пишутся и поддерживаются Enterprise системы
Как пишутся и поддерживаются Enterprise системы
 
Working Effectively With Legacy Code
Working Effectively With Legacy CodeWorking Effectively With Legacy Code
Working Effectively With Legacy Code
 
10 способов как не надо тестировать высоконагруженный веб-сервис
10 способов как не надо тестировать высоконагруженный веб-сервис10 способов как не надо тестировать высоконагруженный веб-сервис
10 способов как не надо тестировать высоконагруженный веб-сервис
 
Никита Налютин, Антон Александров - Управление рисками тестирования
Никита Налютин, Антон Александров - Управление рисками тестированияНикита Налютин, Антон Александров - Управление рисками тестирования
Никита Налютин, Антон Александров - Управление рисками тестирования
 

Similar to Технический долг: взгляд и действия со стороны QA / QC&AT

Разработка в долг
Разработка в долгРазработка в долг
Разработка в долг
Vitebsk Miniq
 
доклад на SQADays 2011 в Казани
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казаниmargo-qa
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
Анастасия Асеева
 
Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!
SQALab
 
Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Андрій Лазарєв “Автоматизація тестування Enterprise систем”Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Dakiry
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
ScrumTrek
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
RIF-Technology
 
Невидимый фронт или тестирование digital-проектов
Невидимый фронт или тестирование digital-проектовНевидимый фронт или тестирование digital-проектов
Невидимый фронт или тестирование digital-проектов
SmartHead
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
SQALab
 
Web application testing architecture
Web application testing architectureWeb application testing architecture
Web application testing architecture
Andrey Lazarev
 
Разработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSSРазработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSSAlex Babenko
 
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаРазработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаRISSPA_SPb
 
Разработка качественного ПО
Разработка качественного ПОРазработка качественного ПО
Разработка качественного ПО
Anton Rusanov
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
tabtabus
 
Опыт ДС БАРС по внедрению процессов КТ-178B
Опыт ДС БАРС по внедрению процессов КТ-178BОпыт ДС БАРС по внедрению процессов КТ-178B
Опыт ДС БАРС по внедрению процессов КТ-178B
ДС БАРС
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Выход на межднародный рынок проектных работ. трудности и возможности
Выход на межднародный рынок проектных работ. трудности и возможностиВыход на межднародный рынок проектных работ. трудности и возможности
Выход на межднародный рынок проектных работ. трудности и возможности
Tanya Gadzevych
 
Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»
Vladimir Sklyar
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииGleb Rybalko
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
Омские ИТ-субботники
 

Similar to Технический долг: взгляд и действия со стороны QA / QC&AT (20)

Разработка в долг
Разработка в долгРазработка в долг
Разработка в долг
 
доклад на SQADays 2011 в Казани
доклад на SQADays  2011 в Казанидоклад на SQADays  2011 в Казани
доклад на SQADays 2011 в Казани
 
QAFest. Роль тестирования в Devops
QAFest. Роль тестирования в DevopsQAFest. Роль тестирования в Devops
QAFest. Роль тестирования в Devops
 
Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!Улучшить KPI в два раза? Сделано!
Улучшить KPI в два раза? Сделано!
 
Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Андрій Лазарєв “Автоматизація тестування Enterprise систем”Андрій Лазарєв “Автоматизація тестування Enterprise систем”
Андрій Лазарєв “Автоматизація тестування Enterprise систем”
 
Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.Юлия Викторова; Александр Тарасов. DevOps без булшита.
Юлия Викторова; Александр Тарасов. DevOps без булшита.
 
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
Сергей Смирнов (Altair Engineering Inc.) | Организация работы распределенной ...
 
Невидимый фронт или тестирование digital-проектов
Невидимый фронт или тестирование digital-проектовНевидимый фронт или тестирование digital-проектов
Невидимый фронт или тестирование digital-проектов
 
Ядро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуруЯдро автоматизации под микро-сервисную архитектуру
Ядро автоматизации под микро-сервисную архитектуру
 
Web application testing architecture
Web application testing architectureWeb application testing architecture
Web application testing architecture
 
Разработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSSРазработка ПО в рамках PCI DSS
Разработка ПО в рамках PCI DSS
 
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий занудаРазработка ПО в рамках PCI DSS, как ее видит жуткий зануда
Разработка ПО в рамках PCI DSS, как ее видит жуткий зануда
 
Разработка качественного ПО
Разработка качественного ПОРазработка качественного ПО
Разработка качественного ПО
 
Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...Организация эффективной работы команды при разработке и поддержке сложной инф...
Организация эффективной работы команды при разработке и поддержке сложной инф...
 
Опыт ДС БАРС по внедрению процессов КТ-178B
Опыт ДС БАРС по внедрению процессов КТ-178BОпыт ДС БАРС по внедрению процессов КТ-178B
Опыт ДС БАРС по внедрению процессов КТ-178B
 
Wgforge CI/CD
Wgforge CI/CDWgforge CI/CD
Wgforge CI/CD
 
Выход на межднародный рынок проектных работ. трудности и возможности
Выход на межднародный рынок проектных работ. трудности и возможностиВыход на межднародный рынок проектных работ. трудности и возможности
Выход на межднародный рынок проектных работ. трудности и возможности
 
Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»Организация тестирования встроенных систем в компании «с нуля»
Организация тестирования встроенных систем в компании «с нуля»
 
IT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действииIT-шная история игрушек или feature-driven тестирование в действии
IT-шная история игрушек или feature-driven тестирование в действии
 
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
2016-11-12 03 Максим Дроздов. Навести порядок быстро, или как спасти оценки н...
 

More from CodeFest

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
CodeFest
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
CodeFest
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
CodeFest
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
CodeFest
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
CodeFest
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
CodeFest
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
CodeFest
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
CodeFest
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
CodeFest
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
CodeFest
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
CodeFest
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
CodeFest
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
CodeFest
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
CodeFest
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
CodeFest
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
CodeFest
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
CodeFest
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
CodeFest
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
CodeFest
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
CodeFest
 

More from CodeFest (20)

Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Никита Прокопов
Никита ПрокоповНикита Прокопов
Никита Прокопов
 
Денис Баталов
Денис БаталовДенис Баталов
Денис Баталов
 
Елена Гальцина
Елена ГальцинаЕлена Гальцина
Елена Гальцина
 
Александр Калашников
Александр КалашниковАлександр Калашников
Александр Калашников
 
Ирина Иванова
Ирина ИвановаИрина Иванова
Ирина Иванова
 
Marko Berković
Marko BerkovićMarko Berković
Marko Berković
 
Денис Кортунов
Денис КортуновДенис Кортунов
Денис Кортунов
 
Александр Зимин
Александр ЗиминАлександр Зимин
Александр Зимин
 
Сергей Крапивенский
Сергей КрапивенскийСергей Крапивенский
Сергей Крапивенский
 
Сергей Игнатов
Сергей ИгнатовСергей Игнатов
Сергей Игнатов
 
Николай Крапивный
Николай КрапивныйНиколай Крапивный
Николай Крапивный
 
Alexander Graebe
Alexander GraebeAlexander Graebe
Alexander Graebe
 
Вадим Смирнов
Вадим СмирновВадим Смирнов
Вадим Смирнов
 
Константин Осипов
Константин ОсиповКонстантин Осипов
Константин Осипов
 
Raffaele Rialdi
Raffaele RialdiRaffaele Rialdi
Raffaele Rialdi
 
Максим Пугачев
Максим ПугачевМаксим Пугачев
Максим Пугачев
 
Rene Groeschke
Rene GroeschkeRene Groeschke
Rene Groeschke
 
Иван Бондаренко
Иван БондаренкоИван Бондаренко
Иван Бондаренко
 
Mete Atamel
Mete AtamelMete Atamel
Mete Atamel
 

Технический долг: взгляд и действия со стороны QA / QC&AT

  • 1. Технический долг: взгляд и действия со стороны QA / QC&AT Дмитрий Химион Руководитель направления автоматизации тестирования
  • 2. Дмитрий Химион руководитель направления автоматизации тестирования Performance Lab Докладчик на конференциях: SQA Days 13 ITSM Forum SQA Days 14 SQA Days 15 SQA Days 16 Представлюсь
  • 3. 1. Что такое технический долг? 2. Примеры влияния на проекты 3. Как относится к тестированию? 4. Как измерить и контролировать? 5. Внедрение План доклада
  • 4. Говард Каннингем – автор термина «технический долг» Технический долг - это разница между идеальным техническим решением и тем решением, которое принимается сейчас (англ.яз - tech.debt). Что такое технический долг?
  • 5. • Осознанный (умышленный) – программист отказывается от гибкости кода или от покрытия кода тестами, выигрывая время. • Не осознанный – неопытность программиста в использовании конструкций языка программирования или применении Framework-ов или платформ. • Технологический – затягивание с обновлением версии платформы и framework • Архитектурный – необходимость переработки архитектуры под новые требования Разновидности технического долга
  • 6. • Осознанный (умышленный) – программист отказывается от гибкости кода или от покрытия кода тестами, выигрывая время. • Не осознанный – неопытность программиста в использовании конструкций языка программирования или применении Framework-ов или платформ. • Технологический – затягивание с обновлением версии платформы и framework • Архитектурный – необходимость переработки архитектуры под новые требования Разновидности технического долга
  • 7. Проект: • Публичный гос.проект • Целевая аудитория – жители РФ Проблема: • При нагрузке избыточная утилизация аппаратных ресурсов • Оптимизация критичных по производительности компонент не помогает. Примеры технического долга
  • 8. Примеры технического долга Причина проблемы - ошибка уровня normal-major в использовании конструкции кода
  • 9. DDT на функцию кода: • mode = ‘debug’ build = ‘debug’ extBuild = ‘-debug’ themeBuild = ‘-debug’ • mode = ‘review’ build = ‘review’ extBuild = ‘-debug’ themeBuild = ‘-debug’ • mode = ‘anyOtherKey’ build = ‘review’ extBuild = ‘-debug’ themeBuild = ‘-debug’ Примеры технического долга
  • 10. Примеры технического долга break; Не осознанный технический долг
  • 12. Примеры технического долга Не осознанный технический долг
  • 13. • Размер технического долга – показатель качества проекта. • Качество программного обеспечения Тестирование и Tech.debt
  • 14. • Размер технического долга – показатель качества проекта. • Качество программного обеспечения Тестирование и Tech.debt Стандарт - ISO 9126
  • 15. • Размер технического долга – показатель качества проекта. • Качество программного обеспечения Тестирование и Tech.debt ISO 9126 (ISO 25010) аспекты: • Функциональность • Надежность • Практичность • Эффективность • Сопровождаемость • Переносимость Стандарт - ISO 9126
  • 16. • Размер технического долга – показатель качества проекта. • Качество программного обеспечения Тестирование и Tech.debt ISO 9126 (ISO 25010) аспекты: • Функциональность • Надежность • Практичность • Эффективность • Сопровождаемость • Переносимость Стандарт - ISO 9126
  • 17. • Размер технического долга – показатель качества проекта. • Качество программного обеспечения Тестирование и Tech.debt ISO 9126 (ISO 25010) аспекты: • Функциональность • Надежность • Практичность • Эффективность • Сопровождаемость • Переносимость Стандарт - ISO 9126 Аспект «Сопровождаемость»: • Analyzability • Changeability • Testability • Stability
  • 18. • Размер технического долга – показатель качества проекта. • Качество программного обеспечения Тестирование и Tech.debt ISO 9126 (ISO 25010) аспекты: • Функциональность • Надежность • Практичность • Эффективность • Сопровождаемость • Переносимость Стандарт - ISO 9126 Аспект «Сопровождаемость»: • Analyzability • Changeability • Testability • Stability
  • 19. Инструменты измерения tech.debt Analyzability SCA* Code review Changeability SCA Code review Testability Test coverage Mutation testing * – статический анализ кода (static code analysis)
  • 20. Инструменты измерения tech.debt Analyzability SCA Code review Changeability SCA Code review Testability Test coverage Mutation testing Инструменты: • SCA • Code review • Test coverage • Mutation testing • … Инфраструктура разработки
  • 21. Инструменты измерения tech.debt Analyzability SCA Code review Changeability SCA Code review Testability Test coverage Mutation testing Инфраструктура разработки Разработка Тестирование Инструменты: • SCA • Code review • Test coverage • Mutation testing • …
  • 22. Инструменты измерения tech.debt Analyzability SCA Code review Changeability SCA Code review Testability Test coverage Mutation testing Инструменты: • SCA • Code review • Test coverage • Mutation testing • … Инфраструктура разработки Разработка Тестирование
  • 23. Инструменты измерения tech.debt SCA инструменты: • Cppcheck • PVS-studio • Coverity • Pylint • Sonarqube • FindBugs • Resharper
  • 24. Встраивание в инфраструктуру quality gates – методология обеспечения качества
  • 25. Измерение: 1. Анализа кода проекта Измерение технического долга Исходные коды • Получить SCA • Развернуть • Настроить Результат
  • 26. Измерение: 1. Анализа кода проекта Исходные коды • Получить SCA • Развернуть • Настроить Результат Доступа к сорцам может не быть • Настроить GUI • Установить плагины • Интеграция с VCS • Виртуалка или железка • Установить ПО Измерение технического долга
  • 27. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* * – проводится совместно с программистами ** – строк кода (Line Of Code) Дублирование кода Bugs per 1000 LOC* Документирование кода Комплексность кода Составные метрики Измерение технического долга
  • 28. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* * – проводится совместно с программистами ** – строк кода (Line Of Code) Дублирование кода Bugs per 1000 LOC* Документирование кода Комплексность кода Составные метрики Измерение технического долга 70% и более Не больше 5%
  • 29. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* * – проводится совместно с программистами Измерение технического долга
  • 30. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* * – проводится совместно с программистами Измерение технического долга
  • 31. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* * – проводится совместно с программистами Измерение технического долга 151000 срабатываний на сторонние библиотеки
  • 32. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* * – проводится совместно с программистами Измерение технического долга 150000 срабатываний на сторонние библиотеки 92% ложных срабатываний
  • 33. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* * – проводится совместно с программистами • Positive false • Не актуальные инспекции • Ложный приоритет инспекций • Проблемы с кодировками • … Измерение технического долга
  • 34. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* 4. Задать приемлемый уровень метрик* * – проводится совместно с программистами Измерение технического долга
  • 35. Измерение: 1. Анализа кода проекта 2. Принятие релевантных метрик* 3. Устранение «шума» в измерениях* 4. Задать приемлемый уровень метрик* * – проводится совместно с программистами Измерение технического долга Единая стилистика кода
  • 36. 1. Инспектирование кода на периодической основе 2. Включение обсуждения «долгов» в планирование проекта 3. Прецедентная работы над приоритетами инспекций Контроль tech.debt
  • 37. 1. Слежение за трендами и метриками 2. Регулярный критический просмотр результатов 3. Работа по прецедентам* Контроль tech.debt * – проводится совместно с программистами
  • 38. Не стоит внедрять, если ваш проект: • Выводится из эксплуатации; • Не планируется поддерживать после разработки; • Прототип; • Личный проект. Внедрение в рабочий процесс
  • 39. Внедрение в рабочий процесс Обсудить выгоды от котроля tech.debt с руководством проекта: 1. Исправление дефектов на ранней стадии разработки; 2. Прогнозирование рефакторинга; 3. Исключение нелепых ошибок.
  • 40. • Нет инструмента всеобъемлюще измеряющего tech.debt • Измерение и контроль tech.debt – процесс итеративный • Мониторинг tech.debt задача отдела контроля качества • Измерение проблем проекта - «Осведомлён – значит вооружён» Итоги Предсказуемость влияния изменений на программу Зрелость процессов Прозрачность разработки и внесения изменений