SlideShare a Scribd company logo
1 of 38
Download to read offline
Модели в профессиональной инженерии
      и тестировании программ

       Д.ф.-м.н., Александр Константинович ПЕТРЕНКО,
  Заведующий отделом Технологий программирования ИСП РАН
                     petrenko@ispras.ru
                 http://ispras.ru/~petrenko




                YaC, 19 сентября 2011 года
MBT – Model Based Testing.
  Где это используется?



             Участники                Число докладов
 Встроенные и real-time (Siemens и          6
 др.)
 Microsoft                                  5
 Телеком (Nokia, Ericsson, Alcatel-         5
 Lucent, Siemens)
 Стандартизация                             3
 Information systems (SAP и др.)            2          2
История возникновения моего
     интереса к этой теме
• 1974-1984 – разработка системного ПО, в частности,
  для космических программ
• 1985-1993 – разработка и тестирование компилятора
  для кораблей типа «Буран»
• 1994 – автоматизация тестирования ОС, компиляторы,
  телеком. протоколы, микропроцессоры,
  математические функции (Nortel, Microsoft, Intel,
  Daimler Chrysler, Motorola, Linux Foundation, Nokia,
  Google, Вымпелком, НИИСИ, МЦСТ, ГосНИИАС,
  «Русские Системы»)

                                                         3
Протестировать компилятор
•   1974-1984 – разработка системного ПО, в частности, для космических программ

• 1985-1993 – разработка и тестирование компилятора
  для кораблей типа «Буран»
•   1994 – автоматизация тестирования ОС, компиляторы, телеком. протоколы,
    микропроцессоры, математические функции (Nortel, Microsoft, Intel, Daimler
    Chrysler, Motorola, Linux Foundation, Nokia, Google, Вымпелком, НИИСИ, МЦСТ,
    ГосНИИАС, «Русские Системы»)



        Пусть надо протестировать компилятор:
        -Что надо проверить и каковы критерии корректности?
        -Когда надо остановиться?
        - Как сэкономить – писать минимум и получать максимум?

                                                                                   4
Задача – спроектировать набор
     тестов для программного модуля
Структура реализации - граф control flow.
Задача генератора тестов - перебор путей теста по структуре control flow
                                                          в реализации


                                    Подход практические не применим
                                    к большим системам, к компиляторам,
                                    в частности.




                                                                       5
Протестировать компилятор (2)
      •   1974-1984 – разработка системного ПО, в частности, для космических программ

      • 1985-1993 – разработка и тестирование компилятора
        для кораблей типа «Буран»
      •   1994 – автоматизация тестирования ОС, компиляторы, телеком. протоколы,
          микропроцессоры, математические функции (Nortel, Microsoft, Intel, Daimler
          Chrysler, Motorola, Linux Foundation, Nokia, Google, Вымпелком, НИИСИ, МЦСТ,
          ГосНИИАС, «Русские Системы»)



                            Предложенный ответ:
-Что надо проверить?        -Описать формальную модель целевого языка
                            (синтаксис и семантику)
- Когда остановиться?       - Проверить все конструкции и альтернативы в этих моделях
- Как сэкономить            - Вручную написать собственно модель и генератор
                            покрытия конструкций и альтернатив
                                                                                        6
Протестировать компилятор (3)

Модель - грамматика:

<assign> ::= <id> “:=” <expr>
<expr> ::= <intexp> | <boolexp>
Протестировать компилятор (4).
Перебор путей теста по грамматике
 1.
 <assign> ::= <id> “:=” <expr>
 <expr> ::= <intexp> | <boolexp>
 2.
 <assign> ::= <id> “:=” <expr>
 <expr> ::= <intexp> | <boolexp>
Протестировать операционную систему
 •   1974-1984 – разработка системного ПО, в частности, для космических программ
 •   1985-1993 – разработка и тестирование компилятора для кораблей типа «Буран»

 • 1994 – автоматизация тестирования ОС, компиляторы,
     телеком. протоколы, микропроцессоры, математические функции (Nortel,
     Microsoft, Intel, Daimler Chrysler, Motorola, Linux Foundation, Nokia, Google,
     Вымпелком, НИИСИ, МЦСТ, ГосНИИАС, «Русские Системы»)



           ?????????????????????:
           -Что можно использовать в качестве моделей для тестирования
           операционных систем, протоколов, ….. ?
           - Что нужно извлекать из моделей для построения теста?


                                                                                      9
Виды моделей программ
                          op2
FSM /    State1                           Грамматика
                    op1
 FA        op2                  State 2
                                          <assign> ::= <id> “:=” <expr>
                    op3
                          op3             <expr> ::= <intexp> | <boolexp>
                           State 3
        State op3
              4
                          op3             Программный контракт

                                          class ArrayList { public virtual void
                                          Insert(int index , object value)
 MSC                                      requires 0 <= index && index <= Count;
                                          requires !IsReadOnly && !IsFixedSize;
                                          ensures Count == old(Count) + 1;
                                          ensures value == this[index ];
                                          ensures Forall{int i in 0 : index ; old(this[i])
                                                                          == this[i]};
 SDL                                      ensures Forall{int i in index : old(Count);
                                          old(this[i]) == this[i + 1]};
                                          {...}
                                                                                     10
Какие задачи помогают решать
           модели?
• Уточнение понимания (требований, проекта/дизайна,
  критериев корректности, угроз, рисков, источников
  проблем)
• В тестировании:
   – систематический перебор входных данных/тестовых
     воздействий
   – Проблемы создания генератора ожидаемых результатов;
     альтернатива – генератор оракулов
   – оценка полноты проверки
      • поведения внешней среды (по модели окружения)
      • поведения системы (модель реализации и/или модель потока
        результатов)
                                                                   11
Процесс тестирования на основе моделей
Подпроцесс                       Требования
                                                                       Подпроцесс
верификации                                                             реализации

                            Фаза 1

   Модели, например,               Дизайн
    программный                 архитектуры и                  Проектная
   контракт                      интерфейсов                  документация


                                     Фаза 2
                        Разработка
Модель окружения,        тестовой             Реализация                   Реализация
 модель тестовых         системы                                         (исходный код)
   воздействий



                                     Фаза 3

                                   Анализ
          Bug reports            результатов               Error free software
                                тестирования
Тестирование на основе моделей
                  Генератор
                 воздействий
                                    12%
                                    36%
                                    87%
                                    57%
      Критерий     Метрика
      полноты      покрытия



                 Тестируемая
                   система


      Модель        Модель
                 Модель состояния         Тестовый
     поведения       + оракул
                  состояния                оракул


 09.10.2011                                          13
Виды
моделей-систем-задач тестирования
           Модель           Целевая система            Задача тестирования
 Граф control-flow         СУБД                 Генерация тестовых данных
 Граф data-flow            База данных          Генерация тестовых воздействий
 Конечный автомат (FSM),   Компилятор           Оценка корректности реализации
 система переходов (LTS)
 Программный контракт      Библиотека функций   Оценка полноты тестового покрытия
 Система аксиом,           Реактивная система   Связка реализации и моделей
 темпоральные
 спецификации (CTL/LTL)

 Сеть Петри                Телеком. протокол    Транспорт и хранение воздействий и
                                                реакций
 MSC (Sequence diagram)    Модель               Распараллеливание тестов, re-play,
                           микропроцессора      контрольные точки
                                                                                     14
              …                    …                            …
Инструменты MBT в практике
• Авионика:
  – SCADE (Esterel Technologies)
  – Rhapsody (i-Logic / IBM)
• Телеком: Rational Tau (Telelogic / IBM)
• Общего назначения:
  –   SpecExplorer (Microsoft Research),
  –   Test Design (Conformiq),
  –   UniTESK (ИСПРАН)
  –   Code Contract (Microsoft Research)
                                            15
Унифицированный язык
      тестирования – TTCN-3
• Происхождение - Телеком
• Основные игроки:
   – Европейские программы стандартизации в областях:
      • Автомобилестроение, авионика, здравоохранение
      • IBM (Telelogic/Rational tools)
• WWW.OMG.ORG Open Management Group
   – UML Testing Profile (UTP)

      MBT?
              В основе концепции лежит модель теста,
              но не модель целевой системы
                                                        16
Пример большого проекта:
      MS Interoperability Initiative
• 2002 год.
• Требование US Department of Justice Европейской
  комиссии к Microsoft:
   – Опубликовать документацию достаточную для использования
     сторонними разработчиками для создания клиентских и
     серверных программ.
• => Microsoft Interoperability Initiative
   – 60,000 страниц API документации.
   – > 50,000 дефектов.
   – Размер команды > 200 специалистов, срок > 4-х лет.
• Основной инструмент - SpecExplorer
                                                          17
MS Interoperability Initiative




                                 18
MS Interoperability Initiative




                                 19
ПРИМЕРЫ ИНСТРУМЕНТОВ


                       20
SCADE (Esterel Technologies)




                               21
TAU(Telelogic/IBM)
• SDL/UML                 модель поведения

• MSC (UML sequence diagram)

                     модель поведения теста

• TTCN-3 (UML Testing Profile - UTP)
          модель архитектуры теста
                                       22
SpecExplorer (Microsoft)
• Программный контракт

class ArrayList { public virtual void Insert(int index , object value)
 requires 0 <= index && index <= Count;
 requires !IsReadOnly && !IsFixedSize;
 ensures Count == old(Count) + 1;
 ensures value == this[index ];
 ensures Forall{int i in 0 : index ; old(this[i]) == this[i]};
 ensures Forall{int i in index : old(Count); old(this[i]) == this[i + 1]};
{...}




                                                                             23
QTRONIC / Test Design (Conformiq)




                              24
UniTESK (ИСПРАН)
• CTESK (UniTESK для C)
• JavaTESK (UniTESK для Java)
• C++TESK, MicroTESK (для микропроцессоров)




                                              25
UniTESK (ИСПРАН)
Пример спецификации в JavaTESK (программный контракт):

specification int withdraw(int sum) {
pre { return sum > 0; }
post {
    if (balance > 0)
            mark "Withdrawal from account with positive balance";
    else if (balance == 0)
            mark "Withdrawal from empty account";
    else
            mark "Withdrawal from account with negative balance";
    if(balance < sum - maximumCredit)
    {
            branch TooLargeSum;
    return balance == pre balance && withdraw == 0 ;
    }
    else
    {
    branch Normal;
    return balance == pre balance – sum && withdraw == sum ;
}}}                                                                 26
Отчет о покрытии




                   27
Как сгенерировать последовательность
         вызовов операций?
Пример спецификации в JavaTESK:
                                                                                        op2
specification int withdraw(int sum) {
pre { return sum > 0; }                                          State1
post {                                                                           op1
      if (balance > 0)
                mark "Withdrawal from account with positive                                            State 2
      balance";
                                                                        op2
      else if (balance == 0)
                mark "Withdrawal from empty account";                           op3
      else
                mark "Withdrawal from account with negative                             op3
      balance";
      if(balance < sum - maximumCredit)
      {
                branch TooLargeSum;                                                          State 3
      return balance == pre balance && withdraw == 0 ;
                                                                          op3
      }                                                       State 4
      else
      {
      branch Normal;                                                                   op3
      return balance == pre balance – sum && withdraw ==
      sum ;
}}}                                                                                                    28
Пример отчета.
Граф обхода конечного автомата




                            29
Пример спецификации с использованием
      библиотеки CodeContract
         (Microsoft Research)
 using System;
 using System.Diagnostics .Contracts;
 …
 class Math
 {
   public static double Sqrt ( double x )
   {
     Contract.Requires( x > 0 );
     Contract.Ensures (
       Contract.Result<double>()*Contract.Result<double>() == x);
     ...
   }
 }
                                                                    30
Обсуждение.
Где полезно применение MBT?




                          31
Спасибо!

А.К.Петренко
petrenko@ispras.ru
http://ispras.ru/~petrenko




                             32
Запасные слайды




                  33
MS Interoperability Initiative




                                 34
Соотношение MBT и MBSE
MBT - Model Based Testing
• Тестирование на основе моделей – это
  часть общего подхода MBSE
MBSE – Model Based Software (Systems)
  Engineering



                                         35
ПРИМЕРЫ MBSE КОМПЛЕКСОВ


                      36
Boeing OSEE
Open System Engineering Environment is
an integrated, extensible tool environment
for large engineering projects




    Разработан Boeing для поддержки разработки системы
   управления полетом Apache Attack Helicopter
    Разрабатывается с 2004 года

    С 2007 года опубликован под Eclipse Public License как проект

   Eclipse Foundation
TOPCASED

More Related Content

What's hot

C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
Technopark
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
Technopark
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
sqadays8
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
Technopark
 
Тест-дизайн "в цикле"
Тест-дизайн "в цикле"Тест-дизайн "в цикле"
Тест-дизайн "в цикле"
Александр Федоров
 
TMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid SystemsTMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid Systems
Iosif Itkin
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
Technopark
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
Technopark
 
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
Evgeny Kaziak
 
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
ITMO University
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
Technopark
 

What's hot (20)

Unit Testing
Unit TestingUnit Testing
Unit Testing
 
C++ осень 2013 лекция 5
C++ осень 2013 лекция 5C++ осень 2013 лекция 5
C++ осень 2013 лекция 5
 
C++ осень 2013 лекция 4
C++ осень 2013 лекция 4C++ осень 2013 лекция 4
C++ осень 2013 лекция 4
 
Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"Тест-дизайн в тестировании ПО. Задача "Треугольник"
Тест-дизайн в тестировании ПО. Задача "Треугольник"
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
 
Testing of a Risk Control System Implementation for High-Load Exchange and Br...
Testing of a Risk Control System Implementation for High-Load Exchange and Br...Testing of a Risk Control System Implementation for High-Load Exchange and Br...
Testing of a Risk Control System Implementation for High-Load Exchange and Br...
 
Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2Тестирование весна 2013 лекция 2
Тестирование весна 2013 лекция 2
 
Тест-дизайн "в цикле"
Тест-дизайн "в цикле"Тест-дизайн "в цикле"
Тест-дизайн "в цикле"
 
TMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid SystemsTMPA Pakulin: Dynamic Verification of Hybrid Systems
TMPA Pakulin: Dynamic Verification of Hybrid Systems
 
Техники тест дизайна для черноящичного тестирования
Техники тест дизайна для черноящичного тестированияТехники тест дизайна для черноящичного тестирования
Техники тест дизайна для черноящичного тестирования
 
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
ВИРТУАЛЬНАЯ ЛАБОРАТОРИЯ ОБУЧЕНИЯ МЕТОДАМ ИСКУССТВЕННОГО ИНТЕЛЛЕКТА ДЛЯ ГЕНЕРА...
 
Интервью с Дмитрием Вьюковым – автором верификатора Relacy Race Detector (RRD)
Интервью с Дмитрием Вьюковым – автором верификатора Relacy Race Detector (RRD)Интервью с Дмитрием Вьюковым – автором верификатора Relacy Race Detector (RRD)
Интервью с Дмитрием Вьюковым – автором верификатора Relacy Race Detector (RRD)
 
C++ весна 2014 лекция 2
C++ весна 2014 лекция 2C++ весна 2014 лекция 2
C++ весна 2014 лекция 2
 
C++ весна 2014 лекция 5
C++ весна 2014 лекция 5C++ весна 2014 лекция 5
C++ весна 2014 лекция 5
 
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
[JAM 1.2] Testing in Android (Dzmitry Ivashnev)
 
лекция3 QA
лекция3 QAлекция3 QA
лекция3 QA
 
лекция4 qa
лекция4 qaлекция4 qa
лекция4 qa
 
QA Лекция2
QA Лекция2QA Лекция2
QA Лекция2
 
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
 
Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014Тестирование лекция 2 весна 2014
Тестирование лекция 2 весна 2014
 

Viewers also liked

Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
yaevents
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
yaevents
 
Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)
Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)
Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)
Ontico
 
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
yaevents
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
yaevents
 
Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)
Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)
Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)
Ontico
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндекс
yaevents
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
yaevents
 
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Ontico
 
How effective is the combination of your main q4 eval
How effective is the combination of your main q4 evalHow effective is the combination of your main q4 eval
How effective is the combination of your main q4 eval
lferd
 
Basic Planning Principles Of Assyrian, Egyptian, Roman and Greek Cities
Basic Planning Principles Of Assyrian, Egyptian, Roman and Greek CitiesBasic Planning Principles Of Assyrian, Egyptian, Roman and Greek Cities
Basic Planning Principles Of Assyrian, Egyptian, Roman and Greek Cities
Rajat Katarne
 
很完整的健康方案
很完整的健康方案很完整的健康方案
很完整的健康方案
honan4108
 
Alphaworks deck v2
Alphaworks deck v2Alphaworks deck v2
Alphaworks deck v2
alphaworks
 

Viewers also liked (20)

Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
Кросс-платформенная разработка под мобильные устройства. Дмитрий Жестилевский...
 
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
Администрирование небольших сервисов или один за всех и 100 на одного. Роман ...
 
Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)
Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)
Мониторинг XXI век (Алиса Смирнова, Дима Никоненко, Женя Бурнаев)
 
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
Как научить роботов тестировать веб-интерфейсы. Артем Ерошенко, Илья Кацев, Я...
 
Разработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, ShturmannРазработка приложений для Android на С++. Юрий Береза, Shturmann
Разработка приложений для Android на С++. Юрий Береза, Shturmann
 
Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)
Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)
Что делать со своим первым миллиардом (Евгений Поляков, Антон Кортунов)
 
Мониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, ЯндексМониторинг со всех сторон. Алексей Симаков, Яндекс
Мониторинг со всех сторон. Алексей Симаков, Яндекс
 
Истории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, ЯндексИстории про разработку сайтов. Сергей Бережной, Яндекс
Истории про разработку сайтов. Сергей Бережной, Яндекс
 
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
Zabbix и миллионы метрик: наилучший опыт масштабного мониторинга / Алексей Вл...
 
How effective is the combination of your main q4 eval
How effective is the combination of your main q4 evalHow effective is the combination of your main q4 eval
How effective is the combination of your main q4 eval
 
Basic Planning Principles Of Assyrian, Egyptian, Roman and Greek Cities
Basic Planning Principles Of Assyrian, Egyptian, Roman and Greek CitiesBasic Planning Principles Of Assyrian, Egyptian, Roman and Greek Cities
Basic Planning Principles Of Assyrian, Egyptian, Roman and Greek Cities
 
Sheena Lowrie, Spaces 2012
Sheena Lowrie, Spaces 2012Sheena Lowrie, Spaces 2012
Sheena Lowrie, Spaces 2012
 
很完整的健康方案
很完整的健康方案很完整的健康方案
很完整的健康方案
 
UM Chile - Wave 6
UM Chile - Wave 6UM Chile - Wave 6
UM Chile - Wave 6
 
Evaluation question 1 music video
Evaluation question 1 music videoEvaluation question 1 music video
Evaluation question 1 music video
 
Problemas de diseño de mezcla ultimo
Problemas de diseño de mezcla ultimoProblemas de diseño de mezcla ultimo
Problemas de diseño de mezcla ultimo
 
H7
H7H7
H7
 
Alphaworks deck v2
Alphaworks deck v2Alphaworks deck v2
Alphaworks deck v2
 
Entrepreneurial ecosystem markers -slides
Entrepreneurial ecosystem markers -slidesEntrepreneurial ecosystem markers -slides
Entrepreneurial ecosystem markers -slides
 
I beggar
I beggarI beggar
I beggar
 

Similar to Модели в профессиональной инженерии и тестировании программ. Александр Петренко, ИСП РАН

TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
Iosif Itkin
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
etyumentcev
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
qasib
 
Программное обеспечение для автоматизации испытаний сложных программно-аппара...
Программное обеспечение для автоматизации испытаний сложных программно-аппара...Программное обеспечение для автоматизации испытаний сложных программно-аппара...
Программное обеспечение для автоматизации испытаний сложных программно-аппара...
SQALab
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
SQALab
 

Similar to Модели в профессиональной инженерии и тестировании программ. Александр Петренко, ИСП РАН (20)

TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges ...
 
Использование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложенийИспользование комбинаторного тестирования для мобильных приложений
Использование комбинаторного тестирования для мобильных приложений
 
ук 03.007.02 2011
ук 03.007.02 2011ук 03.007.02 2011
ук 03.007.02 2011
 
5 колчинская
5 колчинская 5 колчинская
5 колчинская
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтеры
 
Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?Слои тестового фрамеворка. Что? Где? Когда?
Слои тестового фрамеворка. Что? Где? Когда?
 
Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайн
 
Программное обеспечение для автоматизации испытаний сложных программно-аппара...
Программное обеспечение для автоматизации испытаний сложных программно-аппара...Программное обеспечение для автоматизации испытаний сложных программно-аппара...
Программное обеспечение для автоматизации испытаний сложных программно-аппара...
 
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM RationalЛучшие практики исполнения проекта в соответствии с методологией IBM Rational
Лучшие практики исполнения проекта в соответствии с методологией IBM Rational
 
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
АНТОН СЕРПУТЬКО «Start performance testing from scratch» QADay 2019
 
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной командыМаргарита Сафарова - Аудит процессов тестирования при смене проектной команды
Маргарита Сафарова - Аудит процессов тестирования при смене проектной команды
 
Test design print
Test design printTest design print
Test design print
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C code
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Денис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требованийДенис Бесков. Как обеспечивать полноту требований
Денис Бесков. Как обеспечивать полноту требований
 
Роль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщикаРоль TestOps: расширяем традиционные обязанности тестировщика
Роль TestOps: расширяем традиционные обязанности тестировщика
 

More from yaevents

Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
yaevents
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
yaevents
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
yaevents
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
yaevents
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
yaevents
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
yaevents
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
yaevents
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
yaevents
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
yaevents
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
yaevents
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигма
yaevents
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
yaevents
 
Поисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, ЯндексПоисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, Яндекс
yaevents
 
Julia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareJulia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-aware
yaevents
 
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
yaevents
 
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval EvaluationEvangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
yaevents
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluation
yaevents
 
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
yaevents
 
"Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results""Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results"
yaevents
 

More from yaevents (20)

Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, ЯндексТема для WordPress в БЭМ. Владимир Гриненко, Яндекс
Тема для WordPress в БЭМ. Владимир Гриненко, Яндекс
 
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
Построение сложносоставных блоков в шаблонизаторе bemhtml. Сергей Бережной, Я...
 
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндексi-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
i-bem.js: JavaScript в БЭМ-терминах. Елена Глухова, Варвара Степанова, Яндекс
 
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
Дом из готовых кирпичей. Библиотека блоков, тюнинг, инструменты. Елена Глухов...
 
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
Сложнейшие техники, применяемые буткитами и полиморфными вирусами. Вячеслав З...
 
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, ЯндексСканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
Сканирование уязвимостей со вкусом Яндекса. Тарас Иващенко, Яндекс
 
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, FacebookМасштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
Масштабируемость Hadoop в Facebook. Дмитрий Мольков, Facebook
 
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...Контроль зверей: инструменты для управления и мониторинга распределенных сист...
Контроль зверей: инструменты для управления и мониторинга распределенных сист...
 
Юнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, GoogleЮнит-тестирование и Google Mock. Влад Лосев, Google
Юнит-тестирование и Google Mock. Влад Лосев, Google
 
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
C++11 (formerly known as C++0x) is the new C++ language standard. Dave Abraha...
 
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
Зачем обычному программисту знать языки, на которых почти никто не пишет. Але...
 
В поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, НигмаВ поисках математики. Михаил Денисенко, Нигма
В поисках математики. Михаил Денисенко, Нигма
 
Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...Using classifiers to compute similarities between face images. Prof. Lior Wol...
Using classifiers to compute similarities between face images. Prof. Lior Wol...
 
Поисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, ЯндексПоисковая технология "Спектр". Андрей Плахов, Яндекс
Поисковая технология "Спектр". Андрей Плахов, Яндекс
 
Julia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-awareJulia Stoyanovich - Making interval-based clustering rank-aware
Julia Stoyanovich - Making interval-based clustering rank-aware
 
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
Mike Thelwall - Sentiment strength detection for the social web: From YouTube...
 
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval EvaluationEvangelos Kanoulas — Advances in Information Retrieval Evaluation
Evangelos Kanoulas — Advances in Information Retrieval Evaluation
 
Ben Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval EvaluationBen Carterett — Advances in Information Retrieval Evaluation
Ben Carterett — Advances in Information Retrieval Evaluation
 
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"Raffaele Perego "Efficient Query Suggestions in the Long Tail"
Raffaele Perego "Efficient Query Suggestions in the Long Tail"
 
"Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results""Efficient Diversification of Web Search Results"
"Efficient Diversification of Web Search Results"
 

Recently uploaded

2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
Хроники кибер-безопасника
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
Ирония безопасности
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
Хроники кибер-безопасника
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
Хроники кибер-безопасника
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Ирония безопасности
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
Хроники кибер-безопасника
 

Recently uploaded (9)

Ransomware_Q3 2023. The report [RU].pdf
Ransomware_Q3 2023.  The report [RU].pdfRansomware_Q3 2023.  The report [RU].pdf
Ransomware_Q3 2023. The report [RU].pdf
 
2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf2023 Q4. The Ransomware report. [RU].pdf
2023 Q4. The Ransomware report. [RU].pdf
 
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
ИСТОЧНИКИ ИННОВАЦИОННОСТИ КИТАЯ (ПО ВЕРСИИ DGAP) | The Sources of China’s Inn...
 
Cyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdfCyberprint. Dark Pink Apt Group [RU].pdf
Cyberprint. Dark Pink Apt Group [RU].pdf
 
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdfСИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
СИСТЕМА ОЦЕНКИ УЯЗВИМОСТЕЙ CVSS 4.0 / CVSS v4.0 [RU].pdf
 
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
Cyber Defense Doctrine Managing the Risk Full Applied Guide to Organizational...
 
MS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdfMS Navigating Incident Response [RU].pdf
MS Navigating Incident Response [RU].pdf
 
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdfMalware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
Malware. DCRAT (DARK CRYSTAL RAT) [RU].pdf
 
CVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdfCVE. The Fortra's GoAnywhere MFT [RU].pdf
CVE. The Fortra's GoAnywhere MFT [RU].pdf
 

Модели в профессиональной инженерии и тестировании программ. Александр Петренко, ИСП РАН

  • 1. Модели в профессиональной инженерии и тестировании программ Д.ф.-м.н., Александр Константинович ПЕТРЕНКО, Заведующий отделом Технологий программирования ИСП РАН petrenko@ispras.ru http://ispras.ru/~petrenko YaC, 19 сентября 2011 года
  • 2. MBT – Model Based Testing. Где это используется? Участники Число докладов Встроенные и real-time (Siemens и 6 др.) Microsoft 5 Телеком (Nokia, Ericsson, Alcatel- 5 Lucent, Siemens) Стандартизация 3 Information systems (SAP и др.) 2 2
  • 3. История возникновения моего интереса к этой теме • 1974-1984 – разработка системного ПО, в частности, для космических программ • 1985-1993 – разработка и тестирование компилятора для кораблей типа «Буран» • 1994 – автоматизация тестирования ОС, компиляторы, телеком. протоколы, микропроцессоры, математические функции (Nortel, Microsoft, Intel, Daimler Chrysler, Motorola, Linux Foundation, Nokia, Google, Вымпелком, НИИСИ, МЦСТ, ГосНИИАС, «Русские Системы») 3
  • 4. Протестировать компилятор • 1974-1984 – разработка системного ПО, в частности, для космических программ • 1985-1993 – разработка и тестирование компилятора для кораблей типа «Буран» • 1994 – автоматизация тестирования ОС, компиляторы, телеком. протоколы, микропроцессоры, математические функции (Nortel, Microsoft, Intel, Daimler Chrysler, Motorola, Linux Foundation, Nokia, Google, Вымпелком, НИИСИ, МЦСТ, ГосНИИАС, «Русские Системы») Пусть надо протестировать компилятор: -Что надо проверить и каковы критерии корректности? -Когда надо остановиться? - Как сэкономить – писать минимум и получать максимум? 4
  • 5. Задача – спроектировать набор тестов для программного модуля Структура реализации - граф control flow. Задача генератора тестов - перебор путей теста по структуре control flow в реализации Подход практические не применим к большим системам, к компиляторам, в частности. 5
  • 6. Протестировать компилятор (2) • 1974-1984 – разработка системного ПО, в частности, для космических программ • 1985-1993 – разработка и тестирование компилятора для кораблей типа «Буран» • 1994 – автоматизация тестирования ОС, компиляторы, телеком. протоколы, микропроцессоры, математические функции (Nortel, Microsoft, Intel, Daimler Chrysler, Motorola, Linux Foundation, Nokia, Google, Вымпелком, НИИСИ, МЦСТ, ГосНИИАС, «Русские Системы») Предложенный ответ: -Что надо проверить? -Описать формальную модель целевого языка (синтаксис и семантику) - Когда остановиться? - Проверить все конструкции и альтернативы в этих моделях - Как сэкономить - Вручную написать собственно модель и генератор покрытия конструкций и альтернатив 6
  • 7. Протестировать компилятор (3) Модель - грамматика: <assign> ::= <id> “:=” <expr> <expr> ::= <intexp> | <boolexp>
  • 8. Протестировать компилятор (4). Перебор путей теста по грамматике 1. <assign> ::= <id> “:=” <expr> <expr> ::= <intexp> | <boolexp> 2. <assign> ::= <id> “:=” <expr> <expr> ::= <intexp> | <boolexp>
  • 9. Протестировать операционную систему • 1974-1984 – разработка системного ПО, в частности, для космических программ • 1985-1993 – разработка и тестирование компилятора для кораблей типа «Буран» • 1994 – автоматизация тестирования ОС, компиляторы, телеком. протоколы, микропроцессоры, математические функции (Nortel, Microsoft, Intel, Daimler Chrysler, Motorola, Linux Foundation, Nokia, Google, Вымпелком, НИИСИ, МЦСТ, ГосНИИАС, «Русские Системы») ?????????????????????: -Что можно использовать в качестве моделей для тестирования операционных систем, протоколов, ….. ? - Что нужно извлекать из моделей для построения теста? 9
  • 10. Виды моделей программ op2 FSM / State1 Грамматика op1 FA op2 State 2 <assign> ::= <id> “:=” <expr> op3 op3 <expr> ::= <intexp> | <boolexp> State 3 State op3 4 op3 Программный контракт class ArrayList { public virtual void Insert(int index , object value) MSC requires 0 <= index && index <= Count; requires !IsReadOnly && !IsFixedSize; ensures Count == old(Count) + 1; ensures value == this[index ]; ensures Forall{int i in 0 : index ; old(this[i]) == this[i]}; SDL ensures Forall{int i in index : old(Count); old(this[i]) == this[i + 1]}; {...} 10
  • 11. Какие задачи помогают решать модели? • Уточнение понимания (требований, проекта/дизайна, критериев корректности, угроз, рисков, источников проблем) • В тестировании: – систематический перебор входных данных/тестовых воздействий – Проблемы создания генератора ожидаемых результатов; альтернатива – генератор оракулов – оценка полноты проверки • поведения внешней среды (по модели окружения) • поведения системы (модель реализации и/или модель потока результатов) 11
  • 12. Процесс тестирования на основе моделей Подпроцесс Требования Подпроцесс верификации реализации Фаза 1 Модели, например, Дизайн программный архитектуры и Проектная контракт интерфейсов документация Фаза 2 Разработка Модель окружения, тестовой Реализация Реализация модель тестовых системы (исходный код) воздействий Фаза 3 Анализ Bug reports результатов Error free software тестирования
  • 13. Тестирование на основе моделей Генератор воздействий 12% 36% 87% 57% Критерий Метрика полноты покрытия Тестируемая система Модель Модель Модель состояния Тестовый поведения + оракул состояния оракул 09.10.2011 13
  • 14. Виды моделей-систем-задач тестирования Модель Целевая система Задача тестирования Граф control-flow СУБД Генерация тестовых данных Граф data-flow База данных Генерация тестовых воздействий Конечный автомат (FSM), Компилятор Оценка корректности реализации система переходов (LTS) Программный контракт Библиотека функций Оценка полноты тестового покрытия Система аксиом, Реактивная система Связка реализации и моделей темпоральные спецификации (CTL/LTL) Сеть Петри Телеком. протокол Транспорт и хранение воздействий и реакций MSC (Sequence diagram) Модель Распараллеливание тестов, re-play, микропроцессора контрольные точки 14 … … …
  • 15. Инструменты MBT в практике • Авионика: – SCADE (Esterel Technologies) – Rhapsody (i-Logic / IBM) • Телеком: Rational Tau (Telelogic / IBM) • Общего назначения: – SpecExplorer (Microsoft Research), – Test Design (Conformiq), – UniTESK (ИСПРАН) – Code Contract (Microsoft Research) 15
  • 16. Унифицированный язык тестирования – TTCN-3 • Происхождение - Телеком • Основные игроки: – Европейские программы стандартизации в областях: • Автомобилестроение, авионика, здравоохранение • IBM (Telelogic/Rational tools) • WWW.OMG.ORG Open Management Group – UML Testing Profile (UTP) MBT? В основе концепции лежит модель теста, но не модель целевой системы 16
  • 17. Пример большого проекта: MS Interoperability Initiative • 2002 год. • Требование US Department of Justice Европейской комиссии к Microsoft: – Опубликовать документацию достаточную для использования сторонними разработчиками для создания клиентских и серверных программ. • => Microsoft Interoperability Initiative – 60,000 страниц API документации. – > 50,000 дефектов. – Размер команды > 200 специалистов, срок > 4-х лет. • Основной инструмент - SpecExplorer 17
  • 22. TAU(Telelogic/IBM) • SDL/UML модель поведения • MSC (UML sequence diagram) модель поведения теста • TTCN-3 (UML Testing Profile - UTP) модель архитектуры теста 22
  • 23. SpecExplorer (Microsoft) • Программный контракт class ArrayList { public virtual void Insert(int index , object value) requires 0 <= index && index <= Count; requires !IsReadOnly && !IsFixedSize; ensures Count == old(Count) + 1; ensures value == this[index ]; ensures Forall{int i in 0 : index ; old(this[i]) == this[i]}; ensures Forall{int i in index : old(Count); old(this[i]) == this[i + 1]}; {...} 23
  • 24. QTRONIC / Test Design (Conformiq) 24
  • 25. UniTESK (ИСПРАН) • CTESK (UniTESK для C) • JavaTESK (UniTESK для Java) • C++TESK, MicroTESK (для микропроцессоров) 25
  • 26. UniTESK (ИСПРАН) Пример спецификации в JavaTESK (программный контракт): specification int withdraw(int sum) { pre { return sum > 0; } post { if (balance > 0) mark "Withdrawal from account with positive balance"; else if (balance == 0) mark "Withdrawal from empty account"; else mark "Withdrawal from account with negative balance"; if(balance < sum - maximumCredit) { branch TooLargeSum; return balance == pre balance && withdraw == 0 ; } else { branch Normal; return balance == pre balance – sum && withdraw == sum ; }}} 26
  • 28. Как сгенерировать последовательность вызовов операций? Пример спецификации в JavaTESK: op2 specification int withdraw(int sum) { pre { return sum > 0; } State1 post { op1 if (balance > 0) mark "Withdrawal from account with positive State 2 balance"; op2 else if (balance == 0) mark "Withdrawal from empty account"; op3 else mark "Withdrawal from account with negative op3 balance"; if(balance < sum - maximumCredit) { branch TooLargeSum; State 3 return balance == pre balance && withdraw == 0 ; op3 } State 4 else { branch Normal; op3 return balance == pre balance – sum && withdraw == sum ; }}} 28
  • 29. Пример отчета. Граф обхода конечного автомата 29
  • 30. Пример спецификации с использованием библиотеки CodeContract (Microsoft Research) using System; using System.Diagnostics .Contracts; … class Math { public static double Sqrt ( double x ) { Contract.Requires( x > 0 ); Contract.Ensures ( Contract.Result<double>()*Contract.Result<double>() == x); ... } } 30
  • 35. Соотношение MBT и MBSE MBT - Model Based Testing • Тестирование на основе моделей – это часть общего подхода MBSE MBSE – Model Based Software (Systems) Engineering 35
  • 37. Boeing OSEE Open System Engineering Environment is an integrated, extensible tool environment for large engineering projects  Разработан Boeing для поддержки разработки системы управления полетом Apache Attack Helicopter  Разрабатывается с 2004 года  С 2007 года опубликован под Eclipse Public License как проект Eclipse Foundation