Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 12 лет назад пользователемleadership2009.ru
1 Технологии обеспечения качества программ Дмитрий Петунин
2 Содержание Что такое качество? Как измерить качество программ? Роль QA в жизненном цикле программного обеспечения Необходимые элементы процесса создания качественных программ
3 Что такое качество? Качество это нечто невидимое, до тех пор пока оно не испортится.
4 Что такое качество? Качество – степень удовлетворения ожиданиям. Существенная определяющая черта, почему продут А не может быть заменен продуктом Б.
5 Содержание Что такое качество? Как измерить качество программ? Роль QA в жизненном цикле программного обеспечения Необходимые элементы процесса создания качественных программ
6 Как измерить качество программного продукта? Невозможно управлять тем, что невозможно измерить.
7 Как обычно измеряют качество программного продукта? Процент удовлетворенных требований Процент удовлетворенных ключевых требований Процент прохождения тестов общий тестов на ключевые features Производительность/Пропускная способность Количество дефектов Количество регрессий по сравнению с предыдущей версией Процент покрытия тестами Сравнение с конкурентами
8 Содержание Что такое качество? Как измерить качество программ? Роль QA в жизненном цикле программного обеспечения Необходимые элементы процесса создания качественных программ
9 Что такое QA? Quality Assurance – Запланированный набор систематических деятельностей гарантирующий, что любые отклонения от процесса четко определены, проанализированы и направлены на его улучшение для достижения более точного соответствия с поставленными требованиями.
10 Организационная структура Вариант 1: Распределенный QA Отдел разработки Продукт 1Продукт 2 devQAdevQA
11 Организационная структура Вариант 2: Выделенный QA Отдел разработки Продукт 1Продукт 2 dev QA
12 Преимущества выделенного QA Унификация QA процессов и инструментов в организации QA имеет такое же влияние в организации как и менеджеры продуктов Эффективная балансировка QA ресурсов между проектами Разделение ресурсов на тестирование и разработку Карьерные возможности для QA инженеров
13 Процесс непрерывной разработки программного продукта beta Feature freeze Code freeze Product to customer Planning Design Development Testing & Debugging Deployment Planning Design Development
14 Управление качеством Контроль и непрерывное улучшение всех процессов участвующих в создании продукта.
15 Анализ требований и проектирование планирование качества, составление политики качества контроль качества требований измеримость полнота непротиворечивость дизайн review соответствие дизайна основным принципам продукта ориентированного на качество формальный анализ проекта способность проекта удовлетворить требованиям проектирование тестовой инфраструктуры
16 Программирование создание тестов и встроенных проверок контроль качества регулярное тестирование продукта контроль параметров качества контроль исполнения плана качества Code review
17 Тестирование и отладка Регулярное тестирование исполнение тестов анализ результатов регистрация дефектов предоставление отчетов Управление качеством Анализ дефектов и улучшение процессов
18 Ввод программы в действие Beta тестирование Контроль финальных параметров качества Продуктовое тестирование Тестирование всех поддерживаемых платформ Тестирование безопасности Тестирование инсталляции Тестирование локализации Тестирование защиты интеллектуальной собственности
19 Поддерживаемые платформы Первичные Вторичные Третичные Еженедельное тестирование Разработка и ежедневное тестирование Участвуют в финальном тестировании продукта
20 Тестирование инсталляции Этот продукт никто не смог установить
21 Тестирование локализации
22 Тестирование безопасности интеллектуальной собственности Строки раскрывающие конфиденциальную информацию Использование open_source кода Каждый файл должен иметь COO (Certificate of origin)
23 Эксплуатация и сопровождение Анализ дефектов полученных от пользователей Регулярный выпуск обновлений и их тестирование Разработка дополнительных тестов на проблемные области
24 Завершение эксплуатации Архивирование тестовой инфраструктуры Анализ успешности проекта и документирование его результатов
25 Содержание Что такое качество? Как измерить качество программ? Роль QA в жизненном цикле программного обеспечения Необходимые элементы процесса создания качественных программ
26 Управление требованиями Типы требований Бизнес-требования Бизнес-правила Пользовательские требования Системные требования и ограничения … Пользовательские требования могут выражаться в виде фраз, утверждений способов применения (use case) пользовательских историй (user story) сценариев взаимодействия (scenario). Для эффективного управления качеством необходимо установить соответствие между требованиями и тестами их проверяющими
27 Управление допущениями (Assumptions) Допущение – требование, предположение наложенное разработчиками программы Допущения могут быть различного уровня (Пользовательские, архитектурные, функциональные) Допущения не должны конфликтовать с требованиями
28 Типы тестирования * По объекту тестирования: Функциональное тестирование (functional testing) Нагрузочное тестирование Тестирование производительности (perfomance/stress testing) Тестирование стабильности (stability/load testing) Тестирование удобства использования (usability testing) Тестирование интерфейса пользователя (UI testing) Тестирование безопасности (security testing) Тестирование локализации (localization testing) Тестирование совместимости (compatibility testing) * Взято с wikipedia.org
29 Regression testing Regression тест является небольшим тестом, который должен диагностировать ошибку до ее исправления и работать корректно после исправления Разработчик должен предоставить набор regression тестов для каждого исправленного дефекта.
30 Программная верификация #ifdef DEBUG проверка совместности значений параметров в ключевых точках исполнения программы использование assert в случае непредвиденного поведения программы проверка допустимости значений входящих и возвращаемых параметров проверка инвариантов цикла инициализация всей динамически выделяемой памяти ненулевыми значениями (специальная опция в MSVS) явная проверка всех реализационных допущений
31 Инструментальное тестирование Тестирование, которое требует предварительной обработки тестируемой программы Статические верификаторы (lint, Intel Source Checker, Klocwork, Coverity) динамические верификаторы (Valgrind, Purify, Intel Inspector …) Code coverage Internal verifiers TraceProfiler
32 Инструментарий QA Requirements Management Version Control Testbase Test harness Test Results DB Bugtracking Test generators
33 Организация совместной разработки программ Component SB Developer SB Component WS Pre-integration WS Product WS
34 Инструменты поддержки совместной разработки кода Инструменты: CVS, TeamWare(SCCS), SubVersion, VCS … Функции: Несколько человек могут править один и тот же файл одновременно Поддержка версионности на уровне файлов и всего продукта Поддержка change-sets Мультиплатформенность command-line и GUI интерфейсы
35 Регистрация дефектов (багов) Инструменты: Bugzilla, Mantis, RequestTracker, ClearQuest Функции: Учет и регистрация найденных дефектов или заданий для разработки Классификация дефектов Поддержка жизненного цикла дефекта Сохранение истории коммуникации по дефектам
36 Стандарты ISO 9000 CMM/CMMI PMBoK Процессы разработки программ RUP EP (Agile development)
37 Code review
38 Покрытие кода
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.