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

Post on 25-Jun-2015

540 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Презентация Татьяны Зинченко на SQA Days-16 14-15 ноября 2014, Санкт-Петербург, Россия www.sqadays.com

TRANSCRIPT

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

Солодов Владимир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. Нет простоя при отправке входных данных следующего теста, связанного с ожиданием окончания предыдущего

Демонстрация и вопросы

Спасибо за внимание!

top related