Upload
comaqaby
View
3.651
Download
2
Embed Size (px)
Citation preview
Quality Assurance vs
Quality Control
Антон СеменченкоАнтон Наумович
Антон Семенченкоавтоматизированное
тестирование, управление, продажиОснователь DPI.SolutionsТренер по автоматизации и
управлению
Антон Наумовичнизкоуровневое программирование,
высокие нагрузки, отладка, производительность
Тимлид в LogicNowТех. консультант в DPI.SolutionsРанее: разработчик в Microsoft
На просторах СНГПод Quality Assurance понимают ручное тестирование (manual testing) готового продукта
Это не соответствует мировой терминологии
ОпределенияQuality Assurance Quality Control
Качество процессов разработки продукта
Поиск дефектов в готовом продукте
Assurance – это гарантия
Основное действиеQuality Assurance Quality Control
Предотвращение дефектов (проактивность)
Поиск и исправление дефектов (реактивность)
ЦельQuality Assurance Quality Control
Улучшить процессы так, чтобы дефекты не появлялись
Найти дефекты после разработки продукта, но
перед релизом
Как это работает?Quality Assurance Quality Control
Принятие надежной системы управления качетвом,
проведение ее периодичеких аудитов
Поиск и устранение причин пробем с помощью спец.
инструментов. Обеспечение стандартов
качества.
ОтветственностьQuality Assurance Quality Control
Вся команда, вовлеченная в разработку продукта
Специальная QC-команда
● Верификация требований - к примеру, консистеная интеграция с существующими требованиями, полнота
● Верификация дизайна (архитектуры) - выполнимость задачи на выбранном стеке технологий
Качество требований и дизайна (статика)
Качество кода (статика)● Стандарты кодирования, best practices● Код ревью коллегами с помощью спец.● Статический анализ кода - компиляторами, спец.
анализаторами● Парное программирование● Формальные инспекции
● Ручное тестирование● “Полуавтоматизированное” тестирование● Автоматизированное тестирование● Непрерываная интеграция (Continuous
Integration)
Качество продукта (динамика)
Качество продукта (динамика “в динамике”)● Анализ запущенного приложения различными
инструментами (app verifier, driver verifier, valgrind, address sanitizer etc.)
● Альфа-тестирование в лабораториях с имитацией ограничения ресурсов, и т.п.
● Нагрузочное тестирование в лабораториях● Бета-тестирование
Качество после релиза (“внутреннее”)
● Верификация документации ● “Работа над ошибками” - анализ неудач (если они
были) для предотвращения в будущем
Качество после релиза (внешнее)Сбор и анализ ● поведения пользователя● различных отчетов об ошибках
Все роли взаимосвязаны
… дополняют и перетекают друг в друга
Улавливаем тенденции
Хорошо видны на крупных компаниях либо проектах
Microsoft: ручное тестиорвание
Все отправлено в аутсорсинг
Microsoft: инжениринг● Software Design Engineer ● Software Design Engineer in Test
Собеседование и квалификация одинаковые!
Microsoft: кодирование
Product Code Test Code
Tools Code
SDETSDE
Microsoft: обязанности SDET● Автотесты, юниттестов, фреймворки - инженерия● Код ревью, дизайн ревью● Анализ и поддержка инфраструктуры
“лабораторий” и продакшена● Ручное тестирование (небольшой процент)
Microsoft: переход между SDE и SDET
Переходы возможны и поощряются (через внутренние собеседования)
Microsoft: Combined Engineering (2014)
SDE SDET
Software Engineer
Спасибо! Вопросы?Антон Наумович[email protected]: dpi.naumovich
Антон Семенченко[email protected]: dpi.semenchenko