SlideShare uma empresa Scribd logo
1 de 12
Функциональное тестирование –
тестируем функционально
Солодов Владимир
Luxoft
Немного лирики
Постановка задачи
<data>
<trader1 name='Solodov' from='Moscow'/>
<trader2 name='Smith' from='London' />
<operation side='Buy' amount='1000' ccy='GBP' />
<product name='BMW Stocks' />
</data>
<data>
<version>1</version>
<dates>
<trading>2014-11-12</trading>
<settlement>2014-11-12</settlement>
</dates>
<trader1 name='Solodov' from='Moscow' login=''/>
<trader2 name='Smith' from='London' />
<operation side='Buy' amount='1000' ccy='GBP' brockerage='100' />
<product name='BMW Stocks' id='DE1245789012'/>
<stock market='DAX' submarket='XET' />
<inventory>Bloomberg NYC</inventory>
<coments>
<coment1>This is the first trade</coment1>
</coments>
</data>
Анализ решения
Много входных
месседжей
проходящих
различные флоу
Для
синхронизации
потребуются
таймеры
Потребуются
заглушки для
внешних систем
Все должно
синхронизироваться
с реальной системой
Уточнение требований
Все сообщения
загружаются без
проверки тестов
Тесты должны
писаться на каждый
пункт спецификации
В системе много
статики, тесты
должны проверять
изменение статики
Никаких заглушек не
будет
Структура спецификации
Принцип тестирования 1
Не делаем End-To-End проверки.
Проверям по принципу "Одна бизнес функция -
один тесткейс".
Принцип тестирования 2
Организуем входные данные
максимально изолировано друг от друга.
Тест является отображением множество входных
данных во множество выходных.
Если последовательность важна, то она является
входным параметром.
Структура системы
Составление фазового
портрета системы
• Запуск входных
сообщений
• Агрегирование
информации
(логирование, сохранение
в базе данных )
Верификация
• Проверка полученного
портрета системы на
соответствие ожидаемому
результату
Профит
1. Гранулярность тестов => тесты сваливаются, если в
тестируемом функционале (а не рядом!)
действительно были изменения
2. Тесты абсолютно точно показывают, где есть проблема
3. Значительно уменьшается зависимость от внешних
систем
4. Система очень точно показывает покрытие
функционала тестами
5. Можно писать тесты, которые предугадывают
поведение системы при изменениях, тесты, которые
недостижимы при нормальном флоу
6. Нет простоя при отправке входных данных
следующего теста, связанного с ожиданием
окончания предыдущего
Демонстрация и вопросы
Спасибо за внимание!

Mais conteúdo relacionado

Destaque

Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)SQALab
 
Визуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиВизуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиSQALab
 
Формирование требований из хотелок заказчика
Формирование требований из хотелок заказчикаФормирование требований из хотелок заказчика
Формирование требований из хотелок заказчикаSQALab
 
Как оценить команду тестирования и как направить их развитие в нужное русло
Как оценить команду тестирования и как направить их развитие в нужное руслоКак оценить команду тестирования и как направить их развитие в нужное русло
Как оценить команду тестирования и как направить их развитие в нужное руслоSQALab
 
JMeter и OutOfMemory. Исследовательский доклад
JMeter и OutOfMemory. Исследовательский докладJMeter и OutOfMemory. Исследовательский доклад
JMeter и OutOfMemory. Исследовательский докладSQALab
 
Улучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные моделиУлучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные моделиSQALab
 
Анатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестированияАнатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестированияAlexei Barantsev
 

Destaque (7)

Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
Тестовые оракулы на основе концепции EI/EQ (эмоционального интеллекта)
 
Визуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестамиВизуализация покрытия автоматизированными UI тестами
Визуализация покрытия автоматизированными UI тестами
 
Формирование требований из хотелок заказчика
Формирование требований из хотелок заказчикаФормирование требований из хотелок заказчика
Формирование требований из хотелок заказчика
 
Как оценить команду тестирования и как направить их развитие в нужное русло
Как оценить команду тестирования и как направить их развитие в нужное руслоКак оценить команду тестирования и как направить их развитие в нужное русло
Как оценить команду тестирования и как направить их развитие в нужное русло
 
JMeter и OutOfMemory. Исследовательский доклад
JMeter и OutOfMemory. Исследовательский докладJMeter и OutOfMemory. Исследовательский доклад
JMeter и OutOfMemory. Исследовательский доклад
 
Улучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные моделиУлучшение процесса тестирования: контентные модели
Улучшение процесса тестирования: контентные модели
 
Анатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестированияАнатомия инструментов автоматизации функционального тестирования
Анатомия инструментов автоматизации функционального тестирования
 

Mais de SQALab

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировкуSQALab
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаSQALab
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиSQALab
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияSQALab
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...SQALab
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testingSQALab
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженSQALab
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииSQALab
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовSQALab
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовSQALab
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsSQALab
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеSQALab
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииSQALab
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеSQALab
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестированиеSQALab
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"SQALab
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовSQALab
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных системSQALab
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросSQALab
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...SQALab
 

Mais de SQALab (20)

Готовим стажировку
Готовим стажировкуГотовим стажировку
Готовим стажировку
 
Куда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщикаКуда приводят мечты? или Искусство развития тестировщика
Куда приводят мечты? или Искусство развития тестировщика
 
Оптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержкиОптимизация Selenium тестов и ускорение их поддержки
Оптимизация Selenium тестов и ускорение их поддержки
 
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программированияАвтоматизация 0.0: 0 - бюджет, 0 - опыт программирования
Автоматизация 0.0: 0 - бюджет, 0 - опыт программирования
 
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
Нагрузочное тестирование нестандартных протоколов с использованием Citrix и J...
 
Continuous performance testing
Continuous performance testingContinuous performance testing
Continuous performance testing
 
Конфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нуженКонфиги вместо костылей. Pytestconfig и зачем он нужен
Конфиги вместо костылей. Pytestconfig и зачем он нужен
 
Команда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихииКоманда чемпионов в ИТ стихии
Команда чемпионов в ИТ стихии
 
API. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советовAPI. Серебряная пуля в магазине советов
API. Серебряная пуля в магазине советов
 
Добиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестовДобиваемся эффективности каждого из 9000+ UI-тестов
Добиваемся эффективности каждого из 9000+ UI-тестов
 
Делаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIsДелаем автоматизацию проектных KPIs
Делаем автоматизацию проектных KPIs
 
Вредные привычки в тест-менеджменте
Вредные привычки в тест-менеджментеВредные привычки в тест-менеджменте
Вредные привычки в тест-менеджменте
 
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизацииМощь переполняет с JDI 2.0 - новая эра UI автоматизации
Мощь переполняет с JDI 2.0 - новая эра UI автоматизации
 
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качествеКак hh.ru дошли до 500 релизов в квартал без потери в качестве
Как hh.ru дошли до 500 релизов в квартал без потери в качестве
 
Стили лидерства и тестирование
Стили лидерства и тестированиеСтили лидерства и тестирование
Стили лидерства и тестирование
 
"Давайте не будем про качество"
"Давайте не будем про качество""Давайте не будем про качество"
"Давайте не будем про качество"
 
Apache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектовApache.JMeter для .NET-проектов
Apache.JMeter для .NET-проектов
 
Тестирование геолокационных систем
Тестирование геолокационных системТестирование геолокационных систем
Тестирование геолокационных систем
 
Лидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопросЛидер или босс? Вот в чем вопрос
Лидер или босс? Вот в чем вопрос
 
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
 

Функциональное тестирование - тестируем функционально

  • 1. Функциональное тестирование – тестируем функционально Солодов Владимир Luxoft
  • 3. Постановка задачи <data> <trader1 name='Solodov' from='Moscow'/> <trader2 name='Smith' from='London' /> <operation side='Buy' amount='1000' ccy='GBP' /> <product name='BMW Stocks' /> </data> <data> <version>1</version> <dates> <trading>2014-11-12</trading> <settlement>2014-11-12</settlement> </dates> <trader1 name='Solodov' from='Moscow' login=''/> <trader2 name='Smith' from='London' /> <operation side='Buy' amount='1000' ccy='GBP' brockerage='100' /> <product name='BMW Stocks' id='DE1245789012'/> <stock market='DAX' submarket='XET' /> <inventory>Bloomberg NYC</inventory> <coments> <coment1>This is the first trade</coment1> </coments> </data>
  • 4. Анализ решения Много входных месседжей проходящих различные флоу Для синхронизации потребуются таймеры Потребуются заглушки для внешних систем Все должно синхронизироваться с реальной системой
  • 5. Уточнение требований Все сообщения загружаются без проверки тестов Тесты должны писаться на каждый пункт спецификации В системе много статики, тесты должны проверять изменение статики Никаких заглушек не будет
  • 7. Принцип тестирования 1 Не делаем End-To-End проверки. Проверям по принципу "Одна бизнес функция - один тесткейс".
  • 8. Принцип тестирования 2 Организуем входные данные максимально изолировано друг от друга. Тест является отображением множество входных данных во множество выходных. Если последовательность важна, то она является входным параметром.
  • 9. Структура системы Составление фазового портрета системы • Запуск входных сообщений • Агрегирование информации (логирование, сохранение в базе данных ) Верификация • Проверка полученного портрета системы на соответствие ожидаемому результату
  • 10. Профит 1. Гранулярность тестов => тесты сваливаются, если в тестируемом функционале (а не рядом!) действительно были изменения 2. Тесты абсолютно точно показывают, где есть проблема 3. Значительно уменьшается зависимость от внешних систем 4. Система очень точно показывает покрытие функционала тестами 5. Можно писать тесты, которые предугадывают поведение системы при изменениях, тесты, которые недостижимы при нормальном флоу 6. Нет простоя при отправке входных данных следующего теста, связанного с ожиданием окончания предыдущего