Quality Assurance vs Quality Control - так в чем же заключается работа...

Preview:

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

Спасибо! Вопросы?Антон Наумовичnaumovich@dpi.solutionsskype: dpi.naumovich

Антон Семенченкоsemenchenko@dpi.solutionsskype: dpi.semenchenko

Recommended