Information

Created: 27.11.2007 | Level: specialist | Access: paid | University: Национальный исследовательский ядерный университет «МИФИ»
Курс знакомит слушателей с современными технологиями верификации программного обеспечения, применяемыми при промышленной разработке сложных и отказоустойчивых программных систем.
Курс рассчитан на читателей, заинтересованных в изучении основных подходов и путей решения проблем, связанных с современными технологиями верификации программного обеспечения. Курс основан на методиках тестирования промышленных программных систем. Он охватывает вопросы построения тестового окружения, планирования системы тестов, анализа и обнаружения дефектов программного кода тестируемой системы, интеграционного и системного тестирования, общих аспектов тестирования пользовательских интерфейсов. В программу курса входит рассмотрение процессов верификации проектной документации, а также процессов формальной инспекции кода и документации. Детально рассматриваются различные виды документов, сопровождающих процесс верификации, и процессы разработки, в которых эти документы участвуют. В завершение курса дается обзор методов разработки устойчивого программного обеспечения, позволяющих уменьшить продолжительность фазы тестирования без снижения его качества. Основным инструментальным средством, используемым при обучении, является Microsoft Visual Studio Team Edition for Software Testers. По завершении курса студент овладевает всеми основными навыками, необходимыми для участия в верификации сложных промышленных систем.
Goal: Целью данного курса лекций является изложение комплексного взгляда на процесс верификации программного обеспечения. Предметом обсуждения являются различные подходы и методы, применяемые в области верификации и, в частности, тестирования программного обеспечения.
Prerequisites: Настоящий курс ориентирован на студентов и специалистов – разработчиков программного обеспечения, изучающих вопросы технологии создания программных систем с повышенными требованиями к критичности. То есть таких систем, отказы которых могут привести к катастрофическим последствиям или значительным материальным потерям.

План занятий

LessonTitle <<Date
-
Введение 
13 minutes
Общая информация о курсе
Курс знакомит слушателей с современными технологиями верификации программного обеспечения, применяемыми при промышленной разработке сложных и отказоустойчивых программных систем.
Contents
    -
    Lecture 1
    1 hour 21 minute
    Место верификации среди процессов разработки программного обеспечения
    Лекция посвящена рассмотрению различных видов жизненного цикла разработки программного обеспечения и современных технологий разработки. Показано место процесса верификации в жизненном цикле, определена его цель и задачи. Рассматриваются различные типы процессов верификации, определяется разница между тестированием, верификацией и валидацией. Цель данной лекции: дать представление о процессе верификации как о четко определенном виде деятельности в рамках жизненного цикла разработки программной системы, определить современные подходы к верификации
    Contents
      -
      Тест 1
      24 minutes
      -
      Практическая работа 1
      35 minutes
      Введение
      Обзор общих подходов к тестированию, изучение архитектуры программного комплекса "Калькулятор".
      Contents
        -
        Lecture 2
        37 minutes
        Тестирование программного кода (методы+окружение)
        Лекция посвящена процессу тестирования программного кода. Определяются его задачи и цели, перечисляются основные методы и подходы к тестированию программного кода. Вводится понятие тестового окружения, рассматриваются его компоненты и различные виды окружения. Цель данной лекции: дать представление о процессе тестирования программного кода, его видах. Определить методы построения тестового окружения, необходимого для выполнения тестирования
        Contents
          -
          Тест 2
          24 minutes
          -
          Lecture 3
          42 minutes
          Тестирование программного кода (тестовые примеры)
          Лекция продолжает тематику тестирования программного кода, начатую в лекции 2. Лекция посвящена разработке тестовых примеров: определяются методы их создания, проводится классификация типов тестовых примеров, рассматривается тестирование робастности, определяются понятия классов эквивалентности, рассматриваются примеры тестирования компараторов. Цель данной лекции: дать знания, необходимые для самостоятельного анализа, разработки и модификации тестовых примеров на основе тест-требований
          Contents
            -
            Тест 3
            24 minutes
            -
            Практическая работа 2
            40 minutes
            Тестовые примеры. Классы эквивалентности. Ручное тестирование в MVSTE
            Семинар посвящен рассмотрению тестовых примеров. Обсуждаются подходы к тестированию системы. Вводятся понятия классов эквивалентности, граничных условий, робастности (тестирования за границей диапазонов). Проводится обзор возможностей MVSTE по ручному тестированию и описанию тестовых примеров (Manual Testing).
            Contents
              -
              Lecture 4
              38 minutes
              Тестирование программного кода (покрытия)
              Лекция завершает тему "тестирование программного кода". В лекции рассмотрены вопросы объединения тестовых примеров в тест-планы; определяются методы оценки результатов выполнения тестов. Значительная часть лекции посвящена покрытию программного кода тестами, различным типам покрытия, методам его анализа. Цель данной лекции: дать знания, необходимые для составления тест-планов и проведения анализа покрытия программного кода тестами
              Contents
                -
                Тест 4
                24 minutes
                -
                Практическая работа 3
                25 minutes
                Тестовое окружение
                Семинар посвящен тестовому окружению. Рассматриваются вопросы проектирования тестового окружения, вводятся понятия тестовых классов и тестовых проектов.
                Contents
                  -
                  Lecture 5
                  26 minutes
                  Повторяемость тестирования
                  Лекция посвящена вопросам обеспечения повторяемости тестирования в промышленном окружении. Определяются задачи и цели обеспечения повторяемости, рассматриваются процессы настройки тестового окружения, оптимизации последовательности выполнения тестовых примеров. Определяются проблемы, возникающие при наличии зависимостей между тестовыми примерами. Цель данной лекции: дать представление о подготовке тестов в промышленных средах
                  Contents
                    -
                    Тест 5
                    24 minutes
                    -
                    Практическая работа 4
                    28 minutes
                    Модульное тестирование
                    Семинар посвящен модульному тестированию, его задачам и целям. Вводится понятие модуля и его границ. Рассматривается тестирование классов, проектирование тестового окружения.
                    Contents
                      -
                      Lecture 6
                      24 minutes
                      Документация, сопровождающая процесс верификации и тестирования (тест-требования)
                      Лекция посвящена документации, создаваемой в процессе тестирования. Рассмотрены технологические процессы, сопряженные с созданием или использованием тестовой документации. Рассмотрены следующие типы документов: стратегия и планы верификации, тест-требования. Цель данной лекции: определить основные технологические цепочки, в которых создается и используется тестовая документация, дать представление о роли стратегии верификации и планов верификации, определить подходы к разработке и анализу тест-требований
                      Contents
                        -
                        Тест 6
                        24 minutes
                        -
                        Lecture 7
                        43 minutes
                        Документация, сопровождающая процесс верификации и тестирования (тест-планы)
                        Лекция продолжает тему документирования процесса тестирования, посвящена документации, создаваемой в процессе тестирования. Рассмотрены тест-планы, возможные формы их подготовки, отчеты о прохождении тестов и различные формы их подготовки. Цель данной лекции: определить основные технологические цепочки, в которых создается и используется тестовая документация, дать представление о роли тест-планов и отчетов о прохождении тестов, определить подходы к разработке и анализу тест-планов
                        Contents
                          -
                          Тест 7
                          24 minutes
                          -
                          Практическая работа 5
                          22 minutes
                          Автоматизация модульного тестирования
                          Семинар посвящен тестовому окружению, тестовым классам, тестовым проектам. Рассматривается подход XP (тесты перед кодом). Рассматриваются возможности MVSTE по тестированию модулей (Unit Testing).
                          Contents
                            -
                            Lecture 8
                            37 minutes
                            Документация, сопровождающая процесс верификации и тестирования (отчеты)
                            Лекция завершает тему документирования процесса тестирования и посвящена документации, создаваемой в процессе тестирования. Рассмотрены отчеты о покрытии программного кода, отчеты о проблемах и трассировочные таблицы. Цель данной лекции: определить основные технологические цепочки, в которых создается и используется тестовая документация, дать представление о роли отчетов о покрытии, отчетов о проблемах и трассировочных таблиц
                            Contents
                              -
                              Тест 8
                              24 minutes
                              -
                              Практическая работа 6
                              2 minutes
                              -
                              Lecture 9
                              23 minutes
                              Формальные инспекции
                              Лекция определяет основные подходы к организацию статического анализа исходных текстов программ и документации при помощи формальных инспекций. Цель данной лекции: определить основные задачи и цели проведения формальных инспекций, определить этапы проведения формальной инспекции
                              Contents
                                -
                                Тест 9
                                24 minutes
                                -
                                Lecture 10
                                25 minutes
                                Формальные инспекции (окончание)
                                Лекция завершает тему "Формальные инспекции" и рассматривает документы, создаваемые в ходе формальной инспекции, а также определяет особенности формальных инспекций программного кода и проектной документации. Цель данной лекции: определить основные документы, создаваемые в ходе формальной инспекции, и указать на основные особенности процессов формальной инспекции программного кода и проектной документации
                                Contents
                                  -
                                  Тест 10
                                  24 minutes
                                  -
                                  Практическая работа 7
                                  15 minutes
                                  Формальные инспекции
                                  Семинар посвящен формальным инспекциям программного кода. Проводится формальная инспекция программного модуля, участники выбираются из числа студентов.
                                  Contents
                                    -
                                    Lecture 11
                                    39 minutes
                                    Модульное тестирование
                                    Лекция является первой из трех рассматривающих уровни процесса верификации. Тема данной лекции - процесс модульного тестирования, его задачи и цели. Определяется понятие модуля и его границ, определяются подходы к проектированию тестового окружения при модульном тестировании. Рассматриваются организационные аспекты модульного тестирования. Цель данной лекции: дать представление о процессе модульного тестирования, его технической и организационной составляющих
                                    Contents
                                      -
                                      Тест 11
                                      24 minutes
                                      -
                                      Практическая работа 8
                                      49 minutes
                                      Покрытие программного кода
                                      Семинар посвящен покрытию программного кода. Рассмотрены методы проверки покрытия, методы улучшения покрытия, покрытие по методу MC/DC. Обсуждаются отчеты о покрытии, различные их формы, анализ неполноты покрытия, влияние зависимостей тестовых примеров на полноту покрытия. Описан процесс сбора покрытия и генерации отчетов о покрытии в MVSTE
                                      Contents
                                        -
                                        Lecture 12
                                        24 minutes
                                        Интеграционное тестирование
                                        Лекция является второй из трех рассматривающих уровни процесса верификации. Тема данной лекции - процесс интеграционного тестирования, его задачи и цели. Рассматриваются организационные аспекты интеграционного тестирования - структурная и временная классификации методов интеграционного тестирования, планирование интеграционного тестирования. Цель данной лекции: дать представление о процессе интеграционного тестирования, его технической и организационной составляющих
                                        Contents
                                          -
                                          Тест 12
                                          24 minutes
                                          -
                                          Практическая работа 9
                                          43 minutes
                                          Повторяемость тестирования, зависимости тестовых примеров
                                          Семинар посвящен зависимости тестовых примеров. Рассматривается инициализация тестового окружения перед выполнением, выполнение последовательностей тестов, зависимость по общим данным, зависимость по состоянию системы/модуля, упорядоченные тесты (ordered tests) в MVSTE.
                                          Contents
                                            -
                                            Lecture 13
                                            43 minutes
                                            Системное тестирование
                                            Лекция является последней из трех рассматривающих уровни процесса верификации. Тема данной лекции - процесс системного тестирования, его задачи и цели. Рассматриваются виды системного тестирования, особенности системного тестирования и испытаний при разработке сертифицируемого программного обеспечения. Цель данной лекции: дать представление о процессе системного тестирования, его технической и организационной составляющих
                                            Contents
                                              -
                                              Тест 13
                                              27 minutes
                                              -
                                              Практическая работа 10
                                              26 minutes
                                              Интеграционное тестирование
                                              Семинар посвящен интеграционному тестированию, в т.ч. рассматриваются вопросы тестирования межмодульных интерфейсов, определения границ тестируемой области, тестирования информационного обмена между модулями.
                                              Contents
                                                -
                                                Lecture 14
                                                41 minute
                                                Тестирование пользовательского интерфейса
                                                Лекция посвящена тестированию пользовательского интерфейса. Определяются задачи и цели данного вида тестирования, определяются методы функционального тестирования пользовательского интерфейса, вводятся основные понятия тестирования удобства использования (usability) интерфейсов. Цель данной лекции: дать представление о процессе тестирования пользовательского интерфейса, его задачах, целях и основных методах
                                                Contents
                                                  -
                                                  Тест 14
                                                  24 minutes
                                                  -
                                                  Lecture 15
                                                  30 minutes
                                                  Методы разработки устойчивого кода
                                                  Лекция посвящена методам разработки устойчивого программного кода. Проводится классификация проблем, возникающих при работе программных систем, рассмотрено три метода разработки устойчивого кода: допущения, обработка исключений, сбор информации о сбоях. Цель данной лекции: дать представление о методах разработки устойчивого кода
                                                  Contents
                                                    -
                                                    Тест 15
                                                    24 minutes
                                                    -
                                                    Lecture 16
                                                    54 minutes
                                                    Поддержка процесса тестирования при промышленной разработке программного обеспечения
                                                    Лекция посвящена промышленным процессам поддержки тестирования: управлению качеством и конфигурационному управлению. Рассматриваются особенности этих процессов при разработке сертифицируемого программного обеспечения. Цель данной лекции: дать представление о процессах управления качеством и конфигурационного управления
                                                    Contents
                                                      -
                                                      Тест 16
                                                      24 minutes
                                                      -
                                                      Практическая работа 11
                                                      46 minutes
                                                      Тестирование в Microsoft Solutions Framework
                                                      Семинар посвящен Microsoft Solutions Framework и роли тестировщика в команде разработчиков, работающих по подходу MSF for Agile Software Development.
                                                      Contents
                                                        -
                                                        5 hours
                                                        -