Обеспечение качества
программного обеспечения

  Внедрение регулярного процесса обеспечения
  качества ПО в компании XXX


  Москва
  декабрь, 2012
Качество ПО

 Качество программного
 обеспечения - это совокупность
 характеристик ПО, относящихся к
 его способности удовлетворять
 установленные и предполагаемые
 потребности.
 [ISO 8402:1994 Quality
 management and quality assurance]

 Качество программного
 обеспечения - это степень, в
 которой ПО обладает требуемой
 комбинацией свойств .
 [1061-1998 IEEE Standard for
 Software Quality Metrics
 Methodology]
Обеспечение качества
Обеспечение качества (Quality Assurance - QA) - это совокупность
мероприятий, охватывающих все технологические этапы разработки, выпуска
и эксплуатации программного обеспечения (ПО), предпринимаемых на разных
стадиях жизненного цикла ПО, для обеспечения качества выпускаемого
продукта.



        Контроль качества (Quality Control - QC) - это совокупность действий
        проводимых над объектом тестирования в процессе разработки для
        получения информации об актуальном состоянии объекта тестирования в
        разрезах: "готовность Продукта к выпуску", "Соответствие зафиксированным
        требованиям", "Соответствие заявленному уровню качества продукта".




               Тестирование программного обеспечения - это одна из техник контроля
               качества, включающая в себя активности по планированию работ,
               проектированию тестов , выполнению тестирования и анализу полученных
               результатов.
Виды тестирования
Функциональное тестирование
Нефункциональное тестирование
Тестирование изменений
Уровни тестирования
Место QA в разработке ПО
   Задача       Анализ          Требования

                    Нет
                                Согласование
                                         Да
 Эксплуатация                    Разработка


   Выпуск                       Тестирование


                          Нет
                                  Ошибки
                                              Да
Тестирование в SCRUM


                                  Демонстрация



                                  Ретроспектива

                                  Планирование


                                  следующего

                                     спринта




 неделя 1   неделя 2   неделя 3
Процесс разработки
                    Разработка
                     Разработка
                    Требований
                     Требований                                                 Регрессионное
                                                                                 Регрессионное

                    Задача в в Jira
                     Задача Jira
                                                                               Авто
                                                                                Авто       Ручное
                                                                                            Ручное
  Разработка ПО
   Разработка ПО                  Разработка Тестов
                                   Разработка Тестов

                                                                                   Ошибки
                                                                                    Ошибки
   Версия ПО 11
    Версия ПО
                                      Тест-кейсы
                                       Тест-кейсы

                                                                                 Отчёт в в Jira
                                                                                  Отчёт Jira
     Дымное
      Дымное                                             Тестирование
                                                          Тестирование
                                                        задачи по плану
                                                         задачи по плану
                                       Данные
                                        Данные
     Ошибки
      Ошибки
                                                        Авто
                                                         Авто      Ручное
                                                                    Ручное       Нагрузочное
                                                                                  Нагрузочное
                                       Скрипты
                                        Скрипты
   Отчёт в в Jira
    Отчёт Jira
                                                            Ошибки
                                                             Ошибки                Ошибки
                                                                                    Ошибки
   Версия ПО 22
    Версия ПО                         Тест-план
                                       Тест-план

                                                          Отчёт в в Jira
                                                           Отчёт Jira            Отчёт в в Jira
                                                                                  Отчёт Jira




                                                       Принятие решения оо
                                                        Принятие решения     Отчёт оо тестировании
                                                                              Отчёт тестировании
                                                            выпуске
                                                             выпуске
Группы средств автоматизации
Производители средств




• Quality Center   • QAComplete     • ClearQuest

• Quick Test Pro   • TestComplete   • Requirements
                                      Composer
• Load Runner      • LoadComplete
                                    • Functional Tester

                                    • Performance
                                      Tester
Выбор решений
                                     HP           SmartBear         IBM
Цена                              Высокая          Низкая         Высокая
Масштабируемость
                                  Отлично         Отлично         Отлично
(по нагрузке)
Масштабируемость
                                  Отлично         Отлично          Хорошо
(по модифицируемости)
Качество техподдержки         Удовлетворительно   Отлично          Хорошо
Юзабилити
                                  Средние          Низкие         Высокие
(Требования к обучению)
Рыночная доля                       55%              5%             20%
Интегрируемость с другими
                                   Низкая          Низкая          Низкая
продуктами
Встраиваемость в процесс CI
(сборки, юнит тестирования,
                              Удовлетворительно   Отлично     Удовлетворительно
автоматического
тестирования)
Экспертная оценка Никотех          Хорошо         Отлично     Удовлетворительно
Внедрение средств автоматизации

Nicotech xxx qa_approach_2012_rus

  • 1.
    Обеспечение качества программного обеспечения Внедрение регулярного процесса обеспечения качества ПО в компании XXX Москва декабрь, 2012
  • 2.
    Качество ПО Качествопрограммного обеспечения - это совокупность характеристик ПО, относящихся к его способности удовлетворять установленные и предполагаемые потребности. [ISO 8402:1994 Quality management and quality assurance] Качество программного обеспечения - это степень, в которой ПО обладает требуемой комбинацией свойств . [1061-1998 IEEE Standard for Software Quality Metrics Methodology]
  • 3.
    Обеспечение качества Обеспечение качества(Quality Assurance - QA) - это совокупность мероприятий, охватывающих все технологические этапы разработки, выпуска и эксплуатации программного обеспечения (ПО), предпринимаемых на разных стадиях жизненного цикла ПО, для обеспечения качества выпускаемого продукта. Контроль качества (Quality Control - QC) - это совокупность действий проводимых над объектом тестирования в процессе разработки для получения информации об актуальном состоянии объекта тестирования в разрезах: "готовность Продукта к выпуску", "Соответствие зафиксированным требованиям", "Соответствие заявленному уровню качества продукта". Тестирование программного обеспечения - это одна из техник контроля качества, включающая в себя активности по планированию работ, проектированию тестов , выполнению тестирования и анализу полученных результатов.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
    Место QA вразработке ПО Задача Анализ Требования Нет Согласование Да Эксплуатация Разработка Выпуск Тестирование Нет Ошибки Да
  • 10.
    Тестирование в SCRUM Демонстрация Ретроспектива Планирование следующего спринта неделя 1 неделя 2 неделя 3
  • 11.
    Процесс разработки Разработка Разработка Требований Требований Регрессионное Регрессионное Задача в в Jira Задача Jira Авто Авто Ручное Ручное Разработка ПО Разработка ПО Разработка Тестов Разработка Тестов Ошибки Ошибки Версия ПО 11 Версия ПО Тест-кейсы Тест-кейсы Отчёт в в Jira Отчёт Jira Дымное Дымное Тестирование Тестирование задачи по плану задачи по плану Данные Данные Ошибки Ошибки Авто Авто Ручное Ручное Нагрузочное Нагрузочное Скрипты Скрипты Отчёт в в Jira Отчёт Jira Ошибки Ошибки Ошибки Ошибки Версия ПО 22 Версия ПО Тест-план Тест-план Отчёт в в Jira Отчёт Jira Отчёт в в Jira Отчёт Jira Принятие решения оо Принятие решения Отчёт оо тестировании Отчёт тестировании выпуске выпуске
  • 12.
  • 13.
    Производители средств • QualityCenter • QAComplete • ClearQuest • Quick Test Pro • TestComplete • Requirements Composer • Load Runner • LoadComplete • Functional Tester • Performance Tester
  • 14.
    Выбор решений HP SmartBear IBM Цена Высокая Низкая Высокая Масштабируемость Отлично Отлично Отлично (по нагрузке) Масштабируемость Отлично Отлично Хорошо (по модифицируемости) Качество техподдержки Удовлетворительно Отлично Хорошо Юзабилити Средние Низкие Высокие (Требования к обучению) Рыночная доля 55% 5% 20% Интегрируемость с другими Низкая Низкая Низкая продуктами Встраиваемость в процесс CI (сборки, юнит тестирования, Удовлетворительно Отлично Удовлетворительно автоматического тестирования) Экспертная оценка Никотех Хорошо Отлично Удовлетворительно
  • 15.

Editor's Notes

  • #2 Добрый день, коллеги! В рамках этой презентации мы хотим продемонстрировать методику и результаты внедрения процесса обеспечения качества в вашей компании.
  • #3 Два определения качества ( ISO и IEEE ). Диаграмма качества в различных разрезах.
  • #4 Эволюция тестирования ПО. От простого к сложному Верификация – Тестирование – Контроль качества – Обеспечение качества.
  • #5 Верхний уровень иерархии видов тестирования. Разделение на виды в зависимости от преследуемой цели.
  • #6 Функциональные тесты базируются на функциях и особенностях, а также взаимодействии с другими системами, и могут быть представлены на всех уровнях тестирования: компонентном или модульном ( Component / Unit testing ), интеграционном ( Integration testing ), системном ( System testing ) и приемочном ( Acceptance testing ). Функциональные виды тестирования рассматривают внешнее поведение системы. Далее перечислены одни из самых распространенных видов функциональных тестов: Функциональное тестирование рассматривает заранее указанное поведение и основывается на анализе спецификаций функциональности компонента или системы в целом. Тестирование безопасности: - Конфиденциальность - Целостность - Доступность Тестирование взаимодействия - это функциональное тестирование, проверяющее способность приложения взаимодействовать с одним и более компонентами или системами и включающее в себя тестирование совместимости (compatibility testing) и интеграционное тестирование ( i ntegration testing) .
  • #7 Нефункциональное тестирование описывает тесты, необходимые для определения характеристик программного обеспечения, которые могут быть измерены различными величинами. В целом, это тестирование того, "Как" система работает.
  • #8 После проведения необходимых изменений, таких как исправление бага/дефекта, программное обеспечение должно быть пере тестировано для подтверждения того факта, что проблема была действительно решена. Ниже перечислены виды тестирования, которые необходимо проводить после установки программного обеспечения, для подтверждения работоспособности приложения или правильности осуществленного исправления дефекта.
  • #9 Тестирование на разных уровнях производится на протяжении всего жизненного цикла разработки и сопровождения программного обеспечения. Уровень тестирования определяет то, над чем производятся тесты: над отдельным модулем, группой модулей или системой, в целом. Проведение тестирования на всех уровнях системы - это залог успешной реализации и сдачи проекта.
  • #10 Диаграмма типичного процесса разработки. На достаточно высоком уровне абстракции. QA здесь участвует в анализе, приёмке требований, разработке методик тестирования, а также тестовых данных, и непосредственно в тестировании.
  • #11 Внедрение методики SCRUM в процесс разработки. На диаграмме представлен план трёхнедельного спринта. Основная идея в максимальной декомпозиции задач. К концу первой недели есть задачи для тестирования и тестовые данные по ним. Третья неделя – завершение разработки и отладка багов. Конец спринта – ретроспектива, демо и планирование.
  • #12 Диаграмма процесса в XXX , полученная на основе объединения двух предыдущих (встраивание SCRUM в процесс разработки). Голубой внешний контур – рамки спринта. Зелёный внутренний контур – рамки задачи. Разработка задачи и тестовых объектов происходит одновременно. В конце спринта производится регресс и опционально – нагрузочное тестирование. По всем багам – отчёты и доработка (жирная линия). По окончании – финальный репорт и принятие решения о выпуске.
  • #13 Обзор групп средств автоматизации процесса тестирования.
  • #14 Обзор пакетов автоматизации главных игроков рынка QA.
  • #15 Сравнительная таблица и обоснование выбора.
  • #16 Средства, внедрённые в XXX. Далее обзор артефактов тестирования.