SlideShare ist ein Scribd-Unternehmen logo
1 von 39
Санкт-Петербургский государственный политехнический университет
Институт информационных технологий и управления
Кафедра компьютерных систем и программных технологий

АВТОМАТИЗИРОВАННЫЙ СИНТЕЗ ТЕСТОВ
ДЛЯ JAVA-ПРОГРАММ НА ОСНОВЕ
АНАЛИЗА ПРОГРАММ И УЧЕТА КОНТРАКТОВ
Владимир ИЦЫКСОН, Алефтина АНДРИАНОВА
Кафедра компьютерных систем и программных технологий,
СПбГПУ

Кострома, 10-12 октября 2013
2

Введение

Автоматизированный синтез тестов для Java-программ

12.10.2013
Тенденции в области разработки ПО
3






рост сложности программных систем
сокращение времени разработки
смещение технологических решений в программную
область
проникновение программно-управляемых систем, в
критически важные области человеческой жизни:
медицину, армию, авиацию, космос, финансовую сферу

качество ПО становится ниже
важность ПО становится выше
Автоматизированный синтез тестов для Java-программ

12.10.2013
Методы повышения качества ПО
4


Статические
 дедуктивная

верификация
 проверка на модели (model checking)
 статический анализ


Динамические
 тестирование
 динамический анализ
 профилирование

Автоматизированный синтез тестов для Java-программ

12.10.2013
Методы повышения качества ПО
5


Статические методы
+ анализ свойств всей программы (всех путей выполнения)
+ гарантирование определенных свойств программы
- низкая производительность
- сложность реализации



Динамические методы
+ простота реализации
+ высокая точность (отсутствие ложных обнаружений)
- низкая полнота (отсутствие гарантий)

использование гибридных подходов, сочетающих
достоинства статических и динамических методов
Автоматизированный синтез тестов для Java-программ

12.10.2013
Гибридный подход
6


Статические методы
анализ программы
 анализ моделей и спецификаций
 синтез тестов




Динамические методы
запуск тестов
 анализ результатов


Автоматизированный синтез тестов для Java-программ

12.10.2013
Контрактное программирование (DbC)
7


предложено Б. Мейером в 1985 г.



позволяет описать частичную спецификацию
(контракт) метода/функции, задающую


предусловия – требования к входным параметрам
метода



предусловия – свойства, гарантированно
выполняющиеся после завершения метода



инварианты – свойства класса, сохраняющиеся после
выполнения методов
Автоматизированный синтез тестов для Java-программ

12.10.2013
Постановка задачи
8


Разработка технологии автоматического синтеза
модульных тестов, обеспечивающей покрытие
всех¹ путей выполнения программы с помощью
статического анализа
структуры программы
 спецификаций, заданных в форме контрактов




Разработка прототипа системы автоматического
синтеза модульных тестов для программ на языке
Java

Автоматизированный синтез тестов для Java-программ

12.10.2013
9

Предлагаемый подход

Автоматизированный синтез тестов для Java-программ

12.10.2013
Предлагаемый подход
10


Совмещение
классических подходов:


тестирование «черного
ящика»



тестирование «белого
ящика»

Автоматизированный синтез тестов для Java-программ

12.10.2013
Общая структура подхода
11

Автоматизированный синтез тестов для Java-программ

12.10.2013
Предлагаемый подход. Этапы
12











формирование модели программы (метода)
формирование списка путей выполнения метода
преобразование путей в цепочки утверждений
анализ контрактов и дополнение утверждений
составляющими контрактов: предусловиями метода
и инвариантами класса
разрешение системы утверждений относительно
аргументов метода
формирование экземпляра теста на основе решения
системы утверждений
формирование тестового оракула на основе
постусловий метода и инвариантов класса
Автоматизированный синтез тестов для Java-программ

12.10.2013
Построение модели программы
13

Построение
поведенческой
модели

Построение
структурной
модели

Автоматизированный синтез тестов для Java-программ

12.10.2013
Извлечение путей исполнения
14


Анализ графа потока управления:


Анализ узлов, влияющих на поток
управления:








ветвления (if)
конструкции мультиветвления (switch)
циклы (do, while, do-while)

Коллекционирование условий ветвления
Коллекционирование операторов пути

Результат:


список операторов и условий, которые
должны выполниться, чтобы данный путь
был пройден
Автоматизированный синтез тестов для Java-программ

12.10.2013
Формирование системы утверждений. SSA
15
x = 10;
y = 20;
if (z > 5) {
x = x + y;
}

Решение –
преобразование
пути в вид
однократного
статического
присваивания (SSA)

1:
2:
3:
4:

x=10
y=20
z>5
x=x+y

1:
2:
3:
4:

x1=10
y1=20
z1>5
x2=x1+y1

Автоматизированный синтез тестов для Java-программ

12.10.2013
Формирование системы утверждений
16




преобразование путей в форму однократного
статического присваивания (SSA)
преобразование операторов к трехоперандной
форме
введение временных переменных
 введение дополнительных узлов в путь




преобразование условий в соответствующие
утверждения

Автоматизированный синтез тестов для Java-программ

12.10.2013
Формирование системы утверждений
17




Для каждого пути имеем систему
логических утверждений
Для форсирования прохождения тестом
пути необходимо решить обратную
задачу:




при каких значениях аргументов метода
система утверждений разрешима?

Если такие значения аргументов
найдены, то их использование в тесте
форсирует выполнение искомого пути
Автоматизированный синтез тестов для Java-программ

12.10.2013
Решение системы утверждений
18

Построенная система утверждений выражена в терминах
логики первого порядка и относится к классу Satisfiability Modulo
Theories (SMT)
 В общем случае разрешение SMT-формулы – NP-полная
задача
 Существуют эффективные SMT-решатели (SMT-солверы):





Z3, CVC, MathSAT, OpenSMT, MiniSMT и т.п.

Входные данные для SMT-решателей представляются в
формате SMT-LIB

Автоматизированный синтез тестов для Java-программ

12.10.2013
Решение системы утверждений
19






Преобразование системы утверждений в формат
SMT-LIB (конкретнее – SMT-LIB 2.0)
Запуск SMT-решателя для решения системы
утверждений
Интерпретация результатов работы SMTрешателя




получение набора значений аргументов метода

Генерация скелета теста

Автоматизированный синтез тестов для Java-программ

12.10.2013
Учет контрактов
20




Построенные тесты обеспечивают прохождение
программой соответствующих путей исполнения
Значения аргументов расположены в области
допустимых значений произвольно (особенность
SMT-решателей)




Как следствие – сгенерированные значения могут
нарушать контракты методов (предусловия) или
инварианты классов

Решение:


Расширяем систему утверждений предусловиями
методов и инвариантами классов
Автоматизированный синтез тестов для Java-программ

12.10.2013
Учет контрактов
21




Постусловия методов содержат информацию о проверке
корректности выполнения методом своих функций
Постусловия и инварианты классов могут быть учтены
путем преобразования их в тестовый оракул


тривиальная задача, так как контракты представляются в форме
утверждений логики первого порядка
Предусловия

Сокращение ОДЗ

Инварианты
Постусловия

Генерация тестовых оракулов

Автоматизированный синтез тестов для Java-программ

12.10.2013
Резюме
22







Для каждого класса эквивалентности
сгенерирован тест
Заготовка тестового оракула сформирована на
основе постусловий и инвариантов
Обеспечено покрытие всех путей (*)
Что делать, если требуется сгенерировать
несколько тестов для одного класса
эквивалентности?

Автоматизированный синтез тестов для Java-программ

12.10.2013
Формирование множественных тестов
23








ОДЗ аргументов делятся на интервалы в
соответствии с какой-либо эвристикой
В систему утверждений добавляются условия
нахождения аргументов в рассчитанных
интервалах
SMT-решатель запускается повторно с новыми
системами утверждений
Могут использоваться различные эвристики
 Реализовано

равномерное заполнение тестами

ОДЗ
Автоматизированный синтез тестов для Java-программ

12.10.2013
24

Реализация

Автоматизированный синтез тестов для Java-программ

12.10.2013
Выбранные технологии
25






Целевой язык программирования – Java
Система задания контрактов – CoFoJa
SMT-решатель – Z3 от Microsoft Research
Технология модульного тестирования – JUnit

Автоматизированный синтез тестов для Java-программ

12.10.2013
26

Архитектура инструментальной
системы генерации тестов

Автоматизированный синтез тестов для Java-программ

12.10.2013
Особенности реализации
27










Язык реализации – Java
Построение структурной модели – Java Compiler Tree
API
Анализ контрактов в формате CoFoJa с помощью
процессоров аннотаций
Синтез системы утверждений в формате SMT-LIB 2.0
Запуск внешнего SMT-решателя Z3 через внешний
процесс
Синтез тестов в формате JUnit

Автоматизированный синтез тестов для Java-программ

12.10.2013
28

Экспериментальные исследования

Автоматизированный синтез тестов для Java-программ

12.10.2013
Пример №1. Оракулы и множественные
тесты
29

Автоматизированный синтез тестов для Java-программ

12.10.2013
Пример №2. Нелинейные функции
30

Автоматизированный синтез тестов для Java-программ

12.10.2013
Пример №3. Логические операции и
несколько аргументов метода
31

Автоматизированный синтез тестов для Java-программ

12.10.2013
Пример №4. Циклы
32

Автоматизированный синтез тестов для Java-программ

12.10.2013
Ограничения текущей реализации
33

Ограничения на мощность контрактов
 Ограниченный набор поддерживаемых
типов данных: int, boolean, float, double
 Неполная поддержка всех конструкций
языка Java
 Простая обработка циклов
 Отсутствие поддержки рекурсии
 …


Автоматизированный синтез тестов для Java-программ

12.10.2013
34

Состояние исследований в мире

Автоматизированный синтез тестов для Java-программ

12.10.2013
Состояние исследований в мире
35


Microsoft Research Pex
Целевые языки C и C#
 Извлечение путей исполнения
 Использование Z3-решателя для синтеза тестов




AutoTest Framework
Целевой язык Eiffel
 Случайная генерация тестов и генерация на основе
отказов
 Использование контрактов для


для формирования оракулов
 Для ограничения ОДЗ




… (Symstra, KUnit, Kiasan, UnitMeister,…)
Автоматизированный синтез тестов для Java-программ

12.10.2013
36

Заключение

Автоматизированный синтез тестов для Java-программ

12.10.2013
Заключение
37










Разработана технология синтеза модульных тестов для
программ на языке Java, обеспечивающая покрытие путей
Разработанные методы с помощью применения SMT-солвера
генерируют параметры модульных тестов, форсирующие
реализацию заданных путей исполнения
Учет контрактов методов позволяет с одной стороны с
помощью постусловий частично автоматизировать синтез
тестовых оракулов, а с другой – с помощью предусловий и
инвариантов ограничивать множество генерируемых значений
аргументов тестируемой функции
Реализован программный прототип и проведено его
экспериментальное исследование на наборе тестовых
примеров
Анализ полученных результатов тестирования показал полную
работоспособность предложенных методов с учетом заданных
требований и ограничений
Автоматизированный синтез тестов для Java-программ

12.10.2013
Направления дальнейших исследований
38






Совершенствование анализатора (прототипа) с
целью обеспечения анализа более широкого
класса Java-программ
Разработка новых алгоритмов генерации
множественных тестов, наиболее эффективно
распределяющих значения переменных по
области определения
Расширение на другие языки программирования

Автоматизированный синтез тестов для Java-программ

12.10.2013
СПАСИБО ЗА ВНИМАНИЕ!

Weitere ähnliche Inhalte

Was ist angesagt?

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...Iosif Itkin
 
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...ITMO University
 
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...Iosif Itkin
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)sqadays8
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentIosif Itkin
 
КГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияКГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияIosif Itkin
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...Iosif Itkin
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Technopark
 
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
 
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 PlatformIosif Itkin
 
TMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant TestingTMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant TestingIosif Itkin
 
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения Iosif Itkin
 
Практические аспекты нагрузочного тестирования
Практические аспекты нагрузочного тестированияПрактические аспекты нагрузочного тестирования
Практические аспекты нагрузочного тестированияAlexey Kachalin
 
A runtime verification system for Software Defined Networks
A runtime verification system for Software Defined NetworksA runtime verification system for Software Defined Networks
A runtime verification system for Software Defined NetworksIosif Itkin
 
Тестирование систем процессинга банковских карт. Особенности и сложности
Тестирование систем процессинга банковских карт. Особенности и сложностиТестирование систем процессинга банковских карт. Особенности и сложности
Тестирование систем процессинга банковских карт. Особенности и сложностиSQALab
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПОseleznev_stas
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 SmirnovIosif Itkin
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нтAlexei Lupan
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...yaevents
 

Was ist angesagt? (20)

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...
 
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
СОВМЕСТНОЕ ПРИМЕНЕНИЕ КОНТРАКТОВ И ВЕРИФИКАЦИИ ДЛЯ ПОВЫШЕНИЯ КАЧЕСТВА АВТОМАТ...
 
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
TMPA-2015: Information Support System for Autonomous Spacecraft Control Macro...
 
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)Александр Александров -- Надёжный тест-дизайн (мастер-класс)
Александр Александров -- Надёжный тест-дизайн (мастер-класс)
 
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS EnvironmentTMPA-2015: Multi-Module Application Tracing in z/OS Environment
TMPA-2015: Multi-Module Application Tracing in z/OS Environment
 
КГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного ОбеспеченияКГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 2: Обеспечение Качества Программного Обеспечения
 
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
TMPA-2015: Standards and Standartization in Program Engineering. Why Would Yo...
 
Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4Тестирование осень 2013 лекция 4
Тестирование осень 2013 лекция 4
 
Tpo 06
Tpo 06Tpo 06
Tpo 06
 
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 ...
 
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
 
TMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant TestingTMPA-2013 Buyanova Bulda: Ticker Plant Testing
TMPA-2013 Buyanova Bulda: Ticker Plant Testing
 
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 6: Обеспечение Качества Программного Обеспечения
 
Практические аспекты нагрузочного тестирования
Практические аспекты нагрузочного тестированияПрактические аспекты нагрузочного тестирования
Практические аспекты нагрузочного тестирования
 
A runtime verification system for Software Defined Networks
A runtime verification system for Software Defined NetworksA runtime verification system for Software Defined Networks
A runtime verification system for Software Defined Networks
 
Тестирование систем процессинга банковских карт. Особенности и сложности
Тестирование систем процессинга банковских карт. Особенности и сложностиТестирование систем процессинга банковских карт. Особенности и сложности
Тестирование систем процессинга банковских карт. Особенности и сложности
 
Тестирование ПО
Тестирование ПОТестирование ПО
Тестирование ПО
 
TMPA-2013 Smirnov
TMPA-2013 SmirnovTMPA-2013 Smirnov
TMPA-2013 Smirnov
 
ковалев нестандатное нт
ковалев    нестандатное нтковалев    нестандатное нт
ковалев нестандатное нт
 
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
Модели в профессиональной инженерии и тестировании программ. Александр Петрен...
 

Andere mochten auch

IT Education Kostroma 22 May 2013
IT Education Kostroma 22 May 2013IT Education Kostroma 22 May 2013
IT Education Kostroma 22 May 2013Iosif Itkin
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Iosif Itkin
 
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...Iosif Itkin
 
TMPA-2013: LTL Specification
TMPA-2013: LTL SpecificationTMPA-2013: LTL Specification
TMPA-2013: LTL SpecificationIosif Itkin
 
TMPA-2013 Pakulin: Automation of Conformance Testing of TLS
TMPA-2013 Pakulin: Automation of Conformance Testing of TLSTMPA-2013 Pakulin: Automation of Conformance Testing of TLS
TMPA-2013 Pakulin: Automation of Conformance Testing of TLSIosif Itkin
 
Presentation to ILFQ on HFT
Presentation to ILFQ on HFTPresentation to ILFQ on HFT
Presentation to ILFQ on HFTIosif Itkin
 
IATE Lecture 1: Quality Assurance for Highload Systems
IATE Lecture 1: Quality Assurance for Highload SystemsIATE Lecture 1: Quality Assurance for Highload Systems
IATE Lecture 1: Quality Assurance for Highload SystemsIosif Itkin
 
TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...
TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...
TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...Iosif Itkin
 

Andere mochten auch (8)

IT Education Kostroma 22 May 2013
IT Education Kostroma 22 May 2013IT Education Kostroma 22 May 2013
IT Education Kostroma 22 May 2013
 
Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование Высоконагруженные трейдинговые системы и их тестирование
Высоконагруженные трейдинговые системы и их тестирование
 
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
TMPA-2013 Anureyev: On the Road to Technology of Developing the Means of Dedu...
 
TMPA-2013: LTL Specification
TMPA-2013: LTL SpecificationTMPA-2013: LTL Specification
TMPA-2013: LTL Specification
 
TMPA-2013 Pakulin: Automation of Conformance Testing of TLS
TMPA-2013 Pakulin: Automation of Conformance Testing of TLSTMPA-2013 Pakulin: Automation of Conformance Testing of TLS
TMPA-2013 Pakulin: Automation of Conformance Testing of TLS
 
Presentation to ILFQ on HFT
Presentation to ILFQ on HFTPresentation to ILFQ on HFT
Presentation to ILFQ on HFT
 
IATE Lecture 1: Quality Assurance for Highload Systems
IATE Lecture 1: Quality Assurance for Highload SystemsIATE Lecture 1: Quality Assurance for Highload Systems
IATE Lecture 1: Quality Assurance for Highload Systems
 
TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...
TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...
TMPA-2013 Conference: Verification of Parallel Programs – Current Stage and P...
 

Ähnlich wie TMPA-2013 Itsykson: Java Program Analysis

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММITMO University
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )Mobile Developer Day
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )Mobile Developer Day
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияSQALab
 
Team system - фреймворк для автоматизации тестирования от Microsoft
Team system -  фреймворк для автоматизации тестирования от MicrosoftTeam system -  фреймворк для автоматизации тестирования от Microsoft
Team system - фреймворк для автоматизации тестирования от MicrosoftQA Dnepropetrovsk Community (Ukraine)
 
Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайнSQALab
 
Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»
Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»
Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»Pavel Gorbunov
 
Контроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rationalКонтроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rationalAlexander Novichkov
 
АНТОН СЕРПУТЬКО «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 2019GoQA
 
вгу презентация
вгу презентациявгу презентация
вгу презентацияAlexander Efremov
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Dmitry Andreev
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rusMaxim Shaptala
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыSQALab
 
Predzazhita 2009 v16
Predzazhita 2009 v16Predzazhita 2009 v16
Predzazhita 2009 v16guest1ba51d
 
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...Sergey Maslennikov
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)SPB SQA Group
 
АНТОН СЕРПУТЬКО «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 2019GoQA
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU
 

Ähnlich wie TMPA-2013 Itsykson: Java Program Analysis (20)

ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
ПРИМЕНЕНИЕ ГЕНЕТИЧЕСКИХ АЛГОРИТМОВ К ГЕНЕРАЦИИ ТЕСТОВ ДЛЯ АВТОМАТНЫХ ПРОГРАММ
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
 
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
гибкий подход к тестированию ‘умных’ электронных систем.( а. вдовин, Auriga )
 
Компонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестированияКомпонентная среда разработки инструментария нагрузочного тестирования
Компонентная среда разработки инструментария нагрузочного тестирования
 
Team system - фреймворк для автоматизации тестирования от Microsoft
Team system -  фреймворк для автоматизации тестирования от MicrosoftTeam system -  фреймворк для автоматизации тестирования от Microsoft
Team system - фреймворк для автоматизации тестирования от Microsoft
 
Надежный тест-дизайн
Надежный тест-дизайнНадежный тест-дизайн
Надежный тест-дизайн
 
Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»
Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»
Программная среда «УЧИМСЯ ПРОГРАММИРОВАТЬ»
 
Контроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rationalКонтроль качества с использованием продуктов Ibm rational
Контроль качества с использованием продуктов Ibm rational
 
Simonova sql server-enginetesting
Simonova sql server-enginetestingSimonova sql server-enginetesting
Simonova sql server-enginetesting
 
АНТОН СЕРПУТЬКО «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
 
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
Оптимизация производительности и нагрузочное тестирование в среде Visual Stud...
 
Mva stf module 2 - rus
Mva stf module 2 - rusMva stf module 2 - rus
Mva stf module 2 - rus
 
Один за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системыОдин за всех, или как помочь тестированию многих компонентов одной системы
Один за всех, или как помочь тестированию многих компонентов одной системы
 
Predzazhita 2009 v16
Predzazhita 2009 v16Predzazhita 2009 v16
Predzazhita 2009 v16
 
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
ВЕБ-СЕРВИС ДЛЯ РАСПРЕДЕЛЕННОЙ СИСТЕМЫ АВТОМАТИЗИРОВАННОГО ТЕСТИРОВАНИЯ С ФУНК...
 
"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)"Опыт создания системы управления сборкой и тестированием" (полная)
"Опыт создания системы управления сборкой и тестированием" (полная)
 
АНТОН СЕРПУТЬКО «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
 
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
Tech Talks @NSU: Организация тестирования в IT-компаниях Академгородка. Карье...
 

Mehr von Iosif Itkin

Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Foundations of Software Testing Lecture 4
Foundations of Software Testing Lecture 4Iosif Itkin
 
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...Iosif Itkin
 
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 OraclesIosif Itkin
 
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 ProtocolIosif Itkin
 
Operational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresOperational Resilience in Financial Market Infrastructures
Operational Resilience in Financial Market InfrastructuresIosif Itkin
 
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 SeasonIosif Itkin
 
Testing the Intelligence of your AI
Testing the Intelligence of your AITesting the Intelligence of your AI
Testing the Intelligence of your AIIosif Itkin
 
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 InfrastructuresIosif Itkin
 
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...Iosif Itkin
 
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 ShamraiIosif Itkin
 
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 OpenIosif Itkin
 
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...Iosif Itkin
 
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...Iosif Itkin
 
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)Iosif Itkin
 
Machine Learning and RoboCop Testing
Machine Learning and RoboCop TestingMachine Learning and RoboCop Testing
Machine Learning and RoboCop TestingIosif Itkin
 
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 possibileIosif Itkin
 
2018 - Exactpro Year in Review
2018 - Exactpro Year in Review2018 - Exactpro Year in Review
2018 - Exactpro Year in ReviewIosif Itkin
 
Exactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyExactpro Discussion about Joy and Strategy
Exactpro Discussion about Joy and StrategyIosif Itkin
 
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 ChallengesIosif Itkin
 
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)Iosif Itkin
 

Mehr von 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 Itsykson: Java Program Analysis

  • 1. Санкт-Петербургский государственный политехнический университет Институт информационных технологий и управления Кафедра компьютерных систем и программных технологий АВТОМАТИЗИРОВАННЫЙ СИНТЕЗ ТЕСТОВ ДЛЯ JAVA-ПРОГРАММ НА ОСНОВЕ АНАЛИЗА ПРОГРАММ И УЧЕТА КОНТРАКТОВ Владимир ИЦЫКСОН, Алефтина АНДРИАНОВА Кафедра компьютерных систем и программных технологий, СПбГПУ Кострома, 10-12 октября 2013
  • 3. Тенденции в области разработки ПО 3     рост сложности программных систем сокращение времени разработки смещение технологических решений в программную область проникновение программно-управляемых систем, в критически важные области человеческой жизни: медицину, армию, авиацию, космос, финансовую сферу качество ПО становится ниже важность ПО становится выше Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 4. Методы повышения качества ПО 4  Статические  дедуктивная верификация  проверка на модели (model checking)  статический анализ  Динамические  тестирование  динамический анализ  профилирование Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 5. Методы повышения качества ПО 5  Статические методы + анализ свойств всей программы (всех путей выполнения) + гарантирование определенных свойств программы - низкая производительность - сложность реализации  Динамические методы + простота реализации + высокая точность (отсутствие ложных обнаружений) - низкая полнота (отсутствие гарантий) использование гибридных подходов, сочетающих достоинства статических и динамических методов Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 6. Гибридный подход 6  Статические методы анализ программы  анализ моделей и спецификаций  синтез тестов   Динамические методы запуск тестов  анализ результатов  Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 7. Контрактное программирование (DbC) 7  предложено Б. Мейером в 1985 г.  позволяет описать частичную спецификацию (контракт) метода/функции, задающую  предусловия – требования к входным параметрам метода  предусловия – свойства, гарантированно выполняющиеся после завершения метода  инварианты – свойства класса, сохраняющиеся после выполнения методов Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 8. Постановка задачи 8  Разработка технологии автоматического синтеза модульных тестов, обеспечивающей покрытие всех¹ путей выполнения программы с помощью статического анализа структуры программы  спецификаций, заданных в форме контрактов   Разработка прототипа системы автоматического синтеза модульных тестов для программ на языке Java Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 10. Предлагаемый подход 10  Совмещение классических подходов:  тестирование «черного ящика»  тестирование «белого ящика» Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 11. Общая структура подхода 11 Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 12. Предлагаемый подход. Этапы 12        формирование модели программы (метода) формирование списка путей выполнения метода преобразование путей в цепочки утверждений анализ контрактов и дополнение утверждений составляющими контрактов: предусловиями метода и инвариантами класса разрешение системы утверждений относительно аргументов метода формирование экземпляра теста на основе решения системы утверждений формирование тестового оракула на основе постусловий метода и инвариантов класса Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 14. Извлечение путей исполнения 14  Анализ графа потока управления:  Анализ узлов, влияющих на поток управления:       ветвления (if) конструкции мультиветвления (switch) циклы (do, while, do-while) Коллекционирование условий ветвления Коллекционирование операторов пути Результат:  список операторов и условий, которые должны выполниться, чтобы данный путь был пройден Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 15. Формирование системы утверждений. SSA 15 x = 10; y = 20; if (z > 5) { x = x + y; } Решение – преобразование пути в вид однократного статического присваивания (SSA) 1: 2: 3: 4: x=10 y=20 z>5 x=x+y 1: 2: 3: 4: x1=10 y1=20 z1>5 x2=x1+y1 Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 16. Формирование системы утверждений 16   преобразование путей в форму однократного статического присваивания (SSA) преобразование операторов к трехоперандной форме введение временных переменных  введение дополнительных узлов в путь   преобразование условий в соответствующие утверждения Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 17. Формирование системы утверждений 17   Для каждого пути имеем систему логических утверждений Для форсирования прохождения тестом пути необходимо решить обратную задачу:   при каких значениях аргументов метода система утверждений разрешима? Если такие значения аргументов найдены, то их использование в тесте форсирует выполнение искомого пути Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 18. Решение системы утверждений 18 Построенная система утверждений выражена в терминах логики первого порядка и относится к классу Satisfiability Modulo Theories (SMT)  В общем случае разрешение SMT-формулы – NP-полная задача  Существуют эффективные SMT-решатели (SMT-солверы):    Z3, CVC, MathSAT, OpenSMT, MiniSMT и т.п. Входные данные для SMT-решателей представляются в формате SMT-LIB Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 19. Решение системы утверждений 19    Преобразование системы утверждений в формат SMT-LIB (конкретнее – SMT-LIB 2.0) Запуск SMT-решателя для решения системы утверждений Интерпретация результатов работы SMTрешателя   получение набора значений аргументов метода Генерация скелета теста Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 20. Учет контрактов 20   Построенные тесты обеспечивают прохождение программой соответствующих путей исполнения Значения аргументов расположены в области допустимых значений произвольно (особенность SMT-решателей)   Как следствие – сгенерированные значения могут нарушать контракты методов (предусловия) или инварианты классов Решение:  Расширяем систему утверждений предусловиями методов и инвариантами классов Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 21. Учет контрактов 21   Постусловия методов содержат информацию о проверке корректности выполнения методом своих функций Постусловия и инварианты классов могут быть учтены путем преобразования их в тестовый оракул  тривиальная задача, так как контракты представляются в форме утверждений логики первого порядка Предусловия Сокращение ОДЗ Инварианты Постусловия Генерация тестовых оракулов Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 22. Резюме 22     Для каждого класса эквивалентности сгенерирован тест Заготовка тестового оракула сформирована на основе постусловий и инвариантов Обеспечено покрытие всех путей (*) Что делать, если требуется сгенерировать несколько тестов для одного класса эквивалентности? Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 23. Формирование множественных тестов 23     ОДЗ аргументов делятся на интервалы в соответствии с какой-либо эвристикой В систему утверждений добавляются условия нахождения аргументов в рассчитанных интервалах SMT-решатель запускается повторно с новыми системами утверждений Могут использоваться различные эвристики  Реализовано равномерное заполнение тестами ОДЗ Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 25. Выбранные технологии 25     Целевой язык программирования – Java Система задания контрактов – CoFoJa SMT-решатель – Z3 от Microsoft Research Технология модульного тестирования – JUnit Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 26. 26 Архитектура инструментальной системы генерации тестов Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 27. Особенности реализации 27       Язык реализации – Java Построение структурной модели – Java Compiler Tree API Анализ контрактов в формате CoFoJa с помощью процессоров аннотаций Синтез системы утверждений в формате SMT-LIB 2.0 Запуск внешнего SMT-решателя Z3 через внешний процесс Синтез тестов в формате JUnit Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 29. Пример №1. Оракулы и множественные тесты 29 Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 30. Пример №2. Нелинейные функции 30 Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 31. Пример №3. Логические операции и несколько аргументов метода 31 Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 32. Пример №4. Циклы 32 Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 33. Ограничения текущей реализации 33 Ограничения на мощность контрактов  Ограниченный набор поддерживаемых типов данных: int, boolean, float, double  Неполная поддержка всех конструкций языка Java  Простая обработка циклов  Отсутствие поддержки рекурсии  …  Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 34. 34 Состояние исследований в мире Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 35. Состояние исследований в мире 35  Microsoft Research Pex Целевые языки C и C#  Извлечение путей исполнения  Использование Z3-решателя для синтеза тестов   AutoTest Framework Целевой язык Eiffel  Случайная генерация тестов и генерация на основе отказов  Использование контрактов для  для формирования оракулов  Для ограничения ОДЗ   … (Symstra, KUnit, Kiasan, UnitMeister,…) Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 37. Заключение 37      Разработана технология синтеза модульных тестов для программ на языке Java, обеспечивающая покрытие путей Разработанные методы с помощью применения SMT-солвера генерируют параметры модульных тестов, форсирующие реализацию заданных путей исполнения Учет контрактов методов позволяет с одной стороны с помощью постусловий частично автоматизировать синтез тестовых оракулов, а с другой – с помощью предусловий и инвариантов ограничивать множество генерируемых значений аргументов тестируемой функции Реализован программный прототип и проведено его экспериментальное исследование на наборе тестовых примеров Анализ полученных результатов тестирования показал полную работоспособность предложенных методов с учетом заданных требований и ограничений Автоматизированный синтез тестов для Java-программ 12.10.2013
  • 38. Направления дальнейших исследований 38    Совершенствование анализатора (прототипа) с целью обеспечения анализа более широкого класса Java-программ Разработка новых алгоритмов генерации множественных тестов, наиболее эффективно распределяющих значения переменных по области определения Расширение на другие языки программирования Автоматизированный синтез тестов для Java-программ 12.10.2013