SlideShare une entreprise Scribd logo
1  sur  25
Технические и «нетехнические»
проблемы автоматизации тестирования
Пакулин Николай Витальевич,
Петренко Александр Константинович,
Институт системного программирования РАН (ИСП РАН)
www.ispras.ru
http://ispras.ru/ru/se
TMPA, Кострома, 2013
«Автоматизация тестирования» и
«Тестирование на основе моделей» (MBT)
• Что общего?
• В чем разница?
• Что думают классики?
2
Bob Binder.
Автор Testing Object-Oriented
Software
Любое автоматизированное
тестирование это
тестирование на основе моделей
Примеры моделей в
Model Based Testing (MBT)
3
RSL
MSC
FSM /
FA
Грамматика
<assign> ::= <id> “:=” <expr>
<expr> ::= <intexp> | <boolexp>
Программный контракт
(UniTESK, SpecExplorer)
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]};
{ . . . }
axiom  s : S, e : Nat :-
first(add(s, e)) ≡
if e > 10 then 2 * first(s)
elsif e > 5 then first(s)
else 0 end
State 2
State1
State 4
State 3
op2
op3
op3
op3
op2
op1
op3
Венский метод
Vienna Development Method – VDM (1)
Шаг 0-ой: объявление сорт-типов и определение сигнатур операций
Шаг 1-ый: структуры данных и спецификации для каждой операции
(имплицитные и эксплицитные),
доказательство корректности спецификаций
. . .
Шаг i-й: модификация сигнатур и структур данных и расширение
спецификаций предыдущего шага, доказательство корректности и
согласованности с предыдущим шагом.
В конце возможна трансляция в код на языке программирования.
Операционная семантика языка программирования, синтез
программ
4
Модели
Идея
Код
Венский метод
Vienna Development Method – VDM (2)
Имея имплицитную спецификацию <pre-Op, post-Op> и
эксплицитную спецификацию Op нужно доказывать, что
 Input
pre-Op(input) => post-Op(input, Op(input))
Это надо доказывать на каждом уровне детализации.
5
Венский метод
Vienna Development Method – VDM (3)
Доказательство соответствия моделей разного уровня детализации
Обозначения:
• Op_mod - операция в модельном (спецификационном) пространстве
• Op_impl - операция в реализационном пространстве
• in, out- входные и выходные данные в реализационном пространстве
• IN, OUT - входные и выходные данные в модельном пространстве
• retr - восстанавливающая функция (функция абстракции)
Op_mod
Op_impl
retr retr
in out
OUTIN
6
Модельное пространство
Реализационное пространство
Функция абстракции
• Пред-условия абстрактного уровня (далее будем говорить
модели и использовать суффикс _mod) не слабее пред-
условий уточненного уровня (далее будем говорить
реализации и использовать суффикс _impl):
pre-Op_mod(retr(in)) => pre-Op_impl(in)
• При условии, что предусловия не нарушены, результат
выполнения функции Op_mod эквивалентен результату
функции Op_impl, преобразованного функцией retr:
pre-Op_mod(retr(in)) =>
eq(retr(Op_impl(in)), Op_mod(retr(in))),
где eq – функция, задающая определение эквивалентности
значений из области значений функции Op_mod.
7
Постановка задачи верификации.
Модель и реализация заданы явно
В этом случае для доказательства соответствия нужно убедиться,
что для каждой уточненной функции:
• Пред-условия модели функции не слабее пред-условий
реализации
pre-Op_mod(retr(in)) => pre-Op_impl(in)
• пост-условие модели выполняется по отношению к
входным данным, полученным трансформацией входных
данных реализации и результатам, полученным
трансформацией выходных данных реализации (при
условии, что пред-условие для модели выполняется)
 in: pre-Op_mod(retr(in)) =>
post-Op_mod(retr(in), retr(Op_impl(in)))
8
Постановка задачи верификации.
Модель неявная, реализация явная
Требуется показать соответствие на тестовых примерах :
pre-Op_mod(retr(in)) =>
post-Op_mod(retr(in), retr(Op_impl(in)))
или
pre-Op_mod(retr(in)) =>
eq(retr(Op_impl(in)), Op_mod(retr(in)))
При этом надо ответить на вопрос – сколько и каких входных данных
будет достаточно для выполнения качественного тестирования.
9
Постановка задачи верификации при
помощи тестирования на основе
моделей
Общая схема генерации тестов в
UniTESK и SpecExplorer
10
Критерий полноты
Модель поведения
Структуры
данных
Инварианты
Пред- и
постусловия
Операции и
события
Варианты исполнения
Виды
состояний
Модель
состояния
Обходчик
автоматов
Оракулы
Виды
параметров
Генератор
Итераторы
данных
Описание автомата
ДействияСостояния
Метрика
покрытия
Тестируемая
система
Генерация тестовой
последовательности на
лету
Предусловия
Постусловия
Примеры приложений UniTESK
 OS Kernel Verification (Nortel Networks) - 1994–1999
 CleanDocs – Requirements management
based on formalization (Nortel Networks) - 1999
 UniTESK origination - 1999
 IPv6 implementation testing (Microsoft Research) - 2001-2003
 Compiler testing (Intel) - 2001–2004
 Billing system infrastructure (VimpelCom) - 2005-2011
 Linux Standard Base – OLVER (Ministry of Science RF) - 2005-2006
 ARINC-653 testing (NIISI et al) - 2007-2013
 CRM system testing (Luxoft/Deutsche Bank) - 2003
 Tiny OS testing (Luxoft) - 2004
 Simulink optimizer (Daimler Chrysler) - 2005
 LSB Infrastructure (Linux Foundation, Nokia) - 2007-2011
 Hardware design testing (NIISI, MCST) - 2005-2013
 IPsec formalization and testing (RFBR) - 2007-2009
 Math library testing (NIISI) - 2007-2011
 Linux driver verification (RFBR, Ministry of Science RF) - 2007-2013
 Avionics tool chain (GosNIIAS) - 2009-2013
 Critical avionics testing (Rusys, Lasex) - 2010-2012
 DOM formalization and testing (Microsoft) - 2009-2011
 Race detection in Linux kernel – KEDR (Google) - 2011-2012
Примеры моделей программного обеспечения
встроенных систем управления
12
SCADE (Esterel Technologies) Диаграмма последовательностей
(IBM/Rhapsody)
Средства моделирования логики и
поведения микропроцессоров
13
Модель системы на языке AADL
(SAE Architecture Analysis & Design Language)
14
ИСП РАН AADL инструмент MASIW
15
Правила безопасного программирования
(safety rules)
16
ID 0029: Memory cannot be allocated from an
unexisted memory pool
GOALS:
To avoid potential crashes related to incorrect usage
of pool functions: dma_pool_alloc() cannot be
called before a successful creation of pool using
dma_pool_create().
Неформальное описание правила
Формальная модель
запрещенного поведения
Общая идея: формализация описания
«анти-паттернов» корректного программирования
Современные проблемы
• Возможности инструментов пока не позволяют
проводить точный анализ систем реальной
сложности и реальных размеров
– Поиск возможностей помодульного анализа
• Реальные программно-аппаратные системы
представляют собой «стек» платформ
– Задача «межплатформенного» анализа
• Разработка спецификаций/моделей требований,
правил корректности и безопасности
17
Ближайшие перспективы
• Освоение больших вычислительных
мощностей для решения задач
верификации
• Комбинация различных подходов к
анализу программ, включая техники
на основе provers и solvers
18
Каковы плюсы тестирования на
основе моделей?
• Разработка моделей подталкивает к скрупулезному анализу
проекта (многие ошибки выявляются еще на фазе
проектирования)
• MBT достаточно легко позволяет распараллеливать
выполнение тестов (легко загрузить кластер)
• Достаточно просто строить рандомизированные тесты
• Поддерживать и сопровождать большую систему MBT
проще традиционных пакетов регрессионных тестов
• Трудоемкость разработки MBT тестов в большом проекте
меньше по сравнению с традиционными технологиями
19
«НЕТЕХНИЧЕСКИЕ»
ПРОБЛЕМЫ
Минусы тестирования на основе моделей
20
«Медленный старт»
• Тесты только после модели
– Недели и месяцы работы без видимой отдачи
– «Дублирование кода»
– Отсутствие документации. «Читайте код, там всѐ
написано»
– Модификации в коде. Незафиксированные интерфейсы!
• «Где ошибки?»
– Разработка модели должна начинаться на этапе
проектирования
– Ко-верификация
– Непонятная модель
21
Проблема планирования
• Выбор уровня качества
– MBT – недешевая активность
– Анализ и выбор возможностей
– Постановка бизнес-целей
• «Они нас отвлекают!» vs «Молчат как
партизаны!»
– Построение политики взаимодействия спецификаторов и
программистов
– Построение процесса разработки
– Выделение ресурсов
22
Сложность обучения
• «… и много других страшных слов»
– иерархический расширенный конечный автомат, пред- и
постусловия, темпоральная логика, алгебра термов,
переписывание, обход автомата, …
– В Индии человек с необходимым набором компетенций
занимает позицию Research Director в крупной компании
• Результат или процесс?
– Специалист по MBT и программист мыслят по-разному!
– Модель != реализация
• Подготовка персонала
– Отсутствие подготовки в ВУЗе
– Трехдневный тренинг (???)
23
Сложность удержания
обученных кадров
• Как сохранять мотивацию высокоуровнего
тестирования?
– Тестировщик – «человек второго сорта»
– Относительно легко говорить о мотивации разработчиков
инструментов
• Важно, чтобы каждый видел перспективу роста:
– Варианты карьерного роста в компании
– Высокий уровень компетенций – переход в ведущие
разработчики, архитекторы, дизайнеры, …
• Ограниченность рынка
– Большая потребность в специалистах
24
Спасибо!

Contenu connexe

Tendances

20100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture0620100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture06
Computer Science Club
 
Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1
m2rus
 
Всё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаВсё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программиста
Andrey Karpov
 
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Ontico
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Platonov Sergey
 

Tendances (20)

Lightweight Static Analysis for Data Race Detection in Operating System Kernels
Lightweight Static Analysis for Data Race Detection in Operating System KernelsLightweight Static Analysis for Data Race Detection in Operating System Kernels
Lightweight Static Analysis for Data Race Detection in Operating System Kernels
 
Static Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE PlatformStatic Analysis of Transactions Management in Applications for Java EE Platform
Static Analysis of Transactions Management in Applications for Java EE Platform
 
Быстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управленияБыстрое прототипирование алгоритмов управления
Быстрое прототипирование алгоритмов управления
 
A Method of Building Extended Finite State Machines According to HDL-Descript...
A Method of Building Extended Finite State Machines According to HDL-Descript...A Method of Building Extended Finite State Machines According to HDL-Descript...
A Method of Building Extended Finite State Machines According to HDL-Descript...
 
Физическое моделирование объекта управления
Физическое моделирование объекта управленияФизическое моделирование объекта управления
Физическое моделирование объекта управления
 
Полунатурная модель управляемой ракеты с пассивной ГСН
Полунатурная модель управляемой ракеты с пассивной ГСНПолунатурная модель управляемой ракеты с пассивной ГСН
Полунатурная модель управляемой ракеты с пассивной ГСН
 
Разработка систем управления
Разработка систем управленияРазработка систем управления
Разработка систем управления
 
20100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture0620100314 virtualization igotti_lecture06
20100314 virtualization igotti_lecture06
 
Разработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКППРазработка систем управления для отечественных АКПП
Разработка систем управления для отечественных АКПП
 
Развертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИСРазвертывание алгоритмов на ПЛИС
Развертывание алгоритмов на ПЛИС
 
TMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressionsTMPA-2015: Lexical analysis of dynamically formed string expressions
TMPA-2015: Lexical analysis of dynamically formed string expressions
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
 
Approaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization SystemApproaches to the Fragmentation of a Paravirtualization System
Approaches to the Fragmentation of a Paravirtualization System
 
Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1Основы и применение статического анализа кода при разработке лекция 1
Основы и применение статического анализа кода при разработке лекция 1
 
Работа с платами ИНСИС из MATLAB
Работа с платами ИНСИС из MATLABРабота с платами ИНСИС из MATLAB
Работа с платами ИНСИС из MATLAB
 
Проектирование систем связи
Проектирование систем связиПроектирование систем связи
Проектирование систем связи
 
Всё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программистаВсё о статическом анализе кода для Java программиста
Всё о статическом анализе кода для Java программиста
 
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
Anti-fraud solutions in RTB / Вадим Антонюк (IPONWEB)
 
Проектирование радиолокационных систем
Проектирование радиолокационных систем Проектирование радиолокационных систем
Проектирование радиолокационных систем
 
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
Евгений Рыжков, Андрей Карпов Как потратить 10 лет на разработку анализатора ...
 

En vedette

En vedette (6)

TMPA-2013 Sharov: Client Certification
TMPA-2013 Sharov: Client CertificationTMPA-2013 Sharov: Client Certification
TMPA-2013 Sharov: Client Certification
 
TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Fun...
TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Fun...TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Fun...
TMPA-2013 Zhuravlev: Data Migration between DBMS Using Cryptographic Hash Fun...
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 Smirnov
 
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...
TMPA-2013 Vert Krikun: Finding Defects in C and C++ Pointers Using Static Ana...
 
TMPA-2013 Keynote: Zakharov Obfuscation
TMPA-2013 Keynote: Zakharov ObfuscationTMPA-2013 Keynote: Zakharov Obfuscation
TMPA-2013 Keynote: Zakharov Obfuscation
 
TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...TMPA-2015: Automated process of creating test scenarios for financial protoco...
TMPA-2015: Automated process of creating test scenarios for financial protoco...
 

Similaire à TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges of Test Automation

Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
yaevents
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
Aleksey Shipilev
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
CEE-SEC(R)
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
sqadays8
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancev
Alexei Lupan
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
Nikolay Samokhvalov
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
SPB SQA Group
 
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
Alexey Lustin
 

Similaire à TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges of Test Automation (20)

Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 
Современный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтерыСовременный статический анализ кода: что умеет он, чего не умели линтеры
Современный статический анализ кода: что умеет он, чего не умели линтеры
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
Повышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документацииПовышение качества тестов и автоматическая валидация REST API документации
Повышение качества тестов и автоматическая валидация REST API документации
 
Как жить в согласии с SOLID?
Как жить в согласии с SOLID?Как жить в согласии с SOLID?
Как жить в согласии с SOLID?
 
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
Алексей Баранцев -- Какое дело тестировщикам до исходного кода?
 
IT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчикаIT-инфраструктура. FAQ для разработчика
IT-инфраструктура. FAQ для разработчика
 
Java Ahead-Of-Time compilation
Java Ahead-Of-Time compilationJava Ahead-Of-Time compilation
Java Ahead-Of-Time compilation
 
А.Левенчук -- управление жизненным циклом актива
А.Левенчук -- управление жизненным циклом активаА.Левенчук -- управление жизненным циклом актива
А.Левенчук -- управление жизненным циклом актива
 
Sqadays 8-barancev
Sqadays 8-barancevSqadays 8-barancev
Sqadays 8-barancev
 
2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels2014.12.23 Александр Андреев, Parallels
2014.12.23 Александр Андреев, Parallels
 
Team workflow
Team workflowTeam workflow
Team workflow
 
Вебинар «Диагностика типовых узких мест скорости работы 1С»
Вебинар «Диагностика типовых узких мест скорости работы 1С»Вебинар «Диагностика типовых узких мест скорости работы 1С»
Вебинар «Диагностика типовых узких мест скорости работы 1С»
 
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
ITGM8. Илья Коробицын (Grid Dinamics) Автоматизатор, копай глубже, копай шире!
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Formal verification of C code
Formal verification of C codeFormal verification of C code
Formal verification of C code
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Автоматическая генерация C кода и тестирование на целевых вычислителях
Автоматическая генерация C кода и тестирование на целевых вычислителяхАвтоматическая генерация C кода и тестирование на целевых вычислителях
Автоматическая генерация C кода и тестирование на целевых вычислителях
 
Formal Verification of a Linux Security Module
Formal Verification of a Linux Security ModuleFormal Verification of a Linux Security Module
Formal Verification of a Linux Security Module
 
Автоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1CАвтоматическая сборка и развертывание на платформе 1C
Автоматическая сборка и развертывание на платформе 1C
 

Plus de Iosif Itkin

Plus de Iosif Itkin (20)

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4
 
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
QA Financial Forum London 2021 - Automation in Software Testing. Humans and C...
 
Exactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test OraclesExactpro FinTech Webinar - Global Exchanges Test Oracles
Exactpro FinTech Webinar - Global Exchanges Test Oracles
 
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX ProtocolExactpro FinTech Webinar - Global Exchanges FIX Protocol
Exactpro FinTech Webinar - Global Exchanges FIX Protocol
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market Infrastructures
 
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
20 Simple Questions from Exactpro for Your Enjoyment This Holiday Season
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AI
 
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market InfrastructuresEXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
EXTENT 2019: Exactpro Quality Assurance for Financial Market Infrastructures
 
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
ClearTH Test Automation Framework: Case Study in IRS & CDS Swaps Lifecycle Mo...
 
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan ShamraiEXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
EXTENT Talks 2019 Tbilisi: Failover and Recovery Test Automation - Ivan Shamrai
 
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference OpenEXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
EXTENT Talks QA Community Tbilisi 20 April 2019 - Conference Open
 
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
User-Assisted Log Analysis for Quality Control of Distributed Fintech Applica...
 
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
QAFF Chicago 2019 - Complex Post-Trade Systems, Requirements Traceability and...
 
QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)QA Community Saratov: Past, Present, Future (2019-02-08)
QA Community Saratov: Past, Present, Future (2019-02-08)
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop Testing
 
Behaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibileBehaviour Driven Development: Oltre i limiti del possibile
Behaviour Driven Development: Oltre i limiti del possibile
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in Review
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and Strategy
 
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing ChallengesFIX EMEA Conference 2018 - Post Trade Software Testing Challenges
FIX EMEA Conference 2018 - Post Trade Software Testing Challenges
 
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
BDD. The Outer Limits. Iosif Itkin at Youcon (in Russian)
 

TMPA-2013 Petrenko Pakulin: Technical Solutions and Non-Technical Challenges of Test Automation

  • 1. Технические и «нетехнические» проблемы автоматизации тестирования Пакулин Николай Витальевич, Петренко Александр Константинович, Институт системного программирования РАН (ИСП РАН) www.ispras.ru http://ispras.ru/ru/se TMPA, Кострома, 2013
  • 2. «Автоматизация тестирования» и «Тестирование на основе моделей» (MBT) • Что общего? • В чем разница? • Что думают классики? 2 Bob Binder. Автор Testing Object-Oriented Software Любое автоматизированное тестирование это тестирование на основе моделей
  • 3. Примеры моделей в Model Based Testing (MBT) 3 RSL MSC FSM / FA Грамматика <assign> ::= <id> “:=” <expr> <expr> ::= <intexp> | <boolexp> Программный контракт (UniTESK, SpecExplorer) 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]}; { . . . } axiom  s : S, e : Nat :- first(add(s, e)) ≡ if e > 10 then 2 * first(s) elsif e > 5 then first(s) else 0 end State 2 State1 State 4 State 3 op2 op3 op3 op3 op2 op1 op3
  • 4. Венский метод Vienna Development Method – VDM (1) Шаг 0-ой: объявление сорт-типов и определение сигнатур операций Шаг 1-ый: структуры данных и спецификации для каждой операции (имплицитные и эксплицитные), доказательство корректности спецификаций . . . Шаг i-й: модификация сигнатур и структур данных и расширение спецификаций предыдущего шага, доказательство корректности и согласованности с предыдущим шагом. В конце возможна трансляция в код на языке программирования. Операционная семантика языка программирования, синтез программ 4 Модели Идея Код
  • 5. Венский метод Vienna Development Method – VDM (2) Имея имплицитную спецификацию <pre-Op, post-Op> и эксплицитную спецификацию Op нужно доказывать, что  Input pre-Op(input) => post-Op(input, Op(input)) Это надо доказывать на каждом уровне детализации. 5
  • 6. Венский метод Vienna Development Method – VDM (3) Доказательство соответствия моделей разного уровня детализации Обозначения: • Op_mod - операция в модельном (спецификационном) пространстве • Op_impl - операция в реализационном пространстве • in, out- входные и выходные данные в реализационном пространстве • IN, OUT - входные и выходные данные в модельном пространстве • retr - восстанавливающая функция (функция абстракции) Op_mod Op_impl retr retr in out OUTIN 6 Модельное пространство Реализационное пространство Функция абстракции
  • 7. • Пред-условия абстрактного уровня (далее будем говорить модели и использовать суффикс _mod) не слабее пред- условий уточненного уровня (далее будем говорить реализации и использовать суффикс _impl): pre-Op_mod(retr(in)) => pre-Op_impl(in) • При условии, что предусловия не нарушены, результат выполнения функции Op_mod эквивалентен результату функции Op_impl, преобразованного функцией retr: pre-Op_mod(retr(in)) => eq(retr(Op_impl(in)), Op_mod(retr(in))), где eq – функция, задающая определение эквивалентности значений из области значений функции Op_mod. 7 Постановка задачи верификации. Модель и реализация заданы явно
  • 8. В этом случае для доказательства соответствия нужно убедиться, что для каждой уточненной функции: • Пред-условия модели функции не слабее пред-условий реализации pre-Op_mod(retr(in)) => pre-Op_impl(in) • пост-условие модели выполняется по отношению к входным данным, полученным трансформацией входных данных реализации и результатам, полученным трансформацией выходных данных реализации (при условии, что пред-условие для модели выполняется)  in: pre-Op_mod(retr(in)) => post-Op_mod(retr(in), retr(Op_impl(in))) 8 Постановка задачи верификации. Модель неявная, реализация явная
  • 9. Требуется показать соответствие на тестовых примерах : pre-Op_mod(retr(in)) => post-Op_mod(retr(in), retr(Op_impl(in))) или pre-Op_mod(retr(in)) => eq(retr(Op_impl(in)), Op_mod(retr(in))) При этом надо ответить на вопрос – сколько и каких входных данных будет достаточно для выполнения качественного тестирования. 9 Постановка задачи верификации при помощи тестирования на основе моделей
  • 10. Общая схема генерации тестов в UniTESK и SpecExplorer 10 Критерий полноты Модель поведения Структуры данных Инварианты Пред- и постусловия Операции и события Варианты исполнения Виды состояний Модель состояния Обходчик автоматов Оракулы Виды параметров Генератор Итераторы данных Описание автомата ДействияСостояния Метрика покрытия Тестируемая система Генерация тестовой последовательности на лету Предусловия Постусловия
  • 11. Примеры приложений UniTESK  OS Kernel Verification (Nortel Networks) - 1994–1999  CleanDocs – Requirements management based on formalization (Nortel Networks) - 1999  UniTESK origination - 1999  IPv6 implementation testing (Microsoft Research) - 2001-2003  Compiler testing (Intel) - 2001–2004  Billing system infrastructure (VimpelCom) - 2005-2011  Linux Standard Base – OLVER (Ministry of Science RF) - 2005-2006  ARINC-653 testing (NIISI et al) - 2007-2013  CRM system testing (Luxoft/Deutsche Bank) - 2003  Tiny OS testing (Luxoft) - 2004  Simulink optimizer (Daimler Chrysler) - 2005  LSB Infrastructure (Linux Foundation, Nokia) - 2007-2011  Hardware design testing (NIISI, MCST) - 2005-2013  IPsec formalization and testing (RFBR) - 2007-2009  Math library testing (NIISI) - 2007-2011  Linux driver verification (RFBR, Ministry of Science RF) - 2007-2013  Avionics tool chain (GosNIIAS) - 2009-2013  Critical avionics testing (Rusys, Lasex) - 2010-2012  DOM formalization and testing (Microsoft) - 2009-2011  Race detection in Linux kernel – KEDR (Google) - 2011-2012
  • 12. Примеры моделей программного обеспечения встроенных систем управления 12 SCADE (Esterel Technologies) Диаграмма последовательностей (IBM/Rhapsody)
  • 13. Средства моделирования логики и поведения микропроцессоров 13
  • 14. Модель системы на языке AADL (SAE Architecture Analysis & Design Language) 14
  • 15. ИСП РАН AADL инструмент MASIW 15
  • 16. Правила безопасного программирования (safety rules) 16 ID 0029: Memory cannot be allocated from an unexisted memory pool GOALS: To avoid potential crashes related to incorrect usage of pool functions: dma_pool_alloc() cannot be called before a successful creation of pool using dma_pool_create(). Неформальное описание правила Формальная модель запрещенного поведения Общая идея: формализация описания «анти-паттернов» корректного программирования
  • 17. Современные проблемы • Возможности инструментов пока не позволяют проводить точный анализ систем реальной сложности и реальных размеров – Поиск возможностей помодульного анализа • Реальные программно-аппаратные системы представляют собой «стек» платформ – Задача «межплатформенного» анализа • Разработка спецификаций/моделей требований, правил корректности и безопасности 17
  • 18. Ближайшие перспективы • Освоение больших вычислительных мощностей для решения задач верификации • Комбинация различных подходов к анализу программ, включая техники на основе provers и solvers 18
  • 19. Каковы плюсы тестирования на основе моделей? • Разработка моделей подталкивает к скрупулезному анализу проекта (многие ошибки выявляются еще на фазе проектирования) • MBT достаточно легко позволяет распараллеливать выполнение тестов (легко загрузить кластер) • Достаточно просто строить рандомизированные тесты • Поддерживать и сопровождать большую систему MBT проще традиционных пакетов регрессионных тестов • Трудоемкость разработки MBT тестов в большом проекте меньше по сравнению с традиционными технологиями 19
  • 21. «Медленный старт» • Тесты только после модели – Недели и месяцы работы без видимой отдачи – «Дублирование кода» – Отсутствие документации. «Читайте код, там всѐ написано» – Модификации в коде. Незафиксированные интерфейсы! • «Где ошибки?» – Разработка модели должна начинаться на этапе проектирования – Ко-верификация – Непонятная модель 21
  • 22. Проблема планирования • Выбор уровня качества – MBT – недешевая активность – Анализ и выбор возможностей – Постановка бизнес-целей • «Они нас отвлекают!» vs «Молчат как партизаны!» – Построение политики взаимодействия спецификаторов и программистов – Построение процесса разработки – Выделение ресурсов 22
  • 23. Сложность обучения • «… и много других страшных слов» – иерархический расширенный конечный автомат, пред- и постусловия, темпоральная логика, алгебра термов, переписывание, обход автомата, … – В Индии человек с необходимым набором компетенций занимает позицию Research Director в крупной компании • Результат или процесс? – Специалист по MBT и программист мыслят по-разному! – Модель != реализация • Подготовка персонала – Отсутствие подготовки в ВУЗе – Трехдневный тренинг (???) 23
  • 24. Сложность удержания обученных кадров • Как сохранять мотивацию высокоуровнего тестирования? – Тестировщик – «человек второго сорта» – Относительно легко говорить о мотивации разработчиков инструментов • Важно, чтобы каждый видел перспективу роста: – Варианты карьерного роста в компании – Высокий уровень компетенций – переход в ведущие разработчики, архитекторы, дизайнеры, … • Ограниченность рынка – Большая потребность в специалистах 24