Автотестирование АБС. Конвейер разработки, конвейер...

35
Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения Алексей Викторович Надененко ООО «Сбербанк-технологии», г. Минск [email protected]

Upload: sqalab

Post on 26-Jun-2015

722 views

Category:

Documents


3 download

DESCRIPTION

Доклад Алексея Надененко на конференции SQA Days-12, 30 ноября-1 декабря, Минск

TRANSCRIPT

Page 1: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

. АвтотестированиеАБС

, Конвейерразработки , конвейерданных конвейервыполнения

Алексей Викторович Надененко

ООО «Сбербанк-технологии», г. Минск[email protected]

Page 2: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

. - АБС Тесты Особенности• Один документ/операция – тест-кейс длиной 10..15 шагов

• Цепочка тест-кейсов – 10..15 тест-кейсов на бизнес-процесс

• Тест-кейсы сильно связаны по данным: данные, создаваемые одним тест-кейсом, используются последующими

Пример бизнес-процесса: 1. тест-кейс № j создает документ

2. АБС присваивает документу уникальный номер

3. Над документом выполняется операция (зарегистрировать, оплатить , …)

4. Операция порождает1. Записи в журнале операций (нужно проверять)2. Записи в журнале проводок (нужно проверять)3. Новые документы (нужно проверять)

5. тест-кейсы №№ j+k, j+l используют созданный документ

Page 3: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

. - АБС Тестовыеданныеособенности• 50..100 - констант и переменных в цепочке • длиной 10..15 тестов, каждый из которых состоит из 10..15

шагов

• 3…5 наборов констант и переменных • используются с одной цепочкой. Отличие между наборами –

10..20% значений

• 2..4 час • Занимает у тест-аналитика подготовка набора начальных

значений для цепочки.

Page 4: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

КОНВЕЙЕРРАЗРАБОТКИ

Page 5: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

20 - век конвейер

Разработкатребований

Разработка тест-кейсов

Разработкаавтотестов

Прогон автотестов

Анализ результатов

Требования Тест-кейсы Автотесты Логи

аналитик тестировщик программист Тест-инженер Тест-менеджер

Выводы

КБ Основное производство склад

Page 6: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

21 - век ГАП

Разработкатребований

Разработка тест-кейсов

Прогон тест-кейсов

Анализ результатов

Требования Тест-кейсы

аналитик тестировщик Тест-менеджер

Выводы

КБ Основное производство склад

Разработка инструментов

программист

ИнструментыИнстру-ментальный цех

Page 7: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Инструментальное - производство цифры

• в себестоимости машиностроительной продукции затраты на технологическую оснастку достигают 15%.

• В общих затратах на технологическую подготовку производства затраты на оснастку доходят до 60%.

• Проектирование и изготовление технологической оснастки имеет значительную трудоемкость.

• Источник - http://www.kazedu.kz/referat/176709

• Затраты на технологическую оснастку в массовом производстве достигают 25-30% стоимости оборудования, в крупносерийном – 10-15%, в мелкосерийном и единичном – около 5%. Доля затрат на оснастку (в %): 1,5-4, 4-6, 6-8 и 8-15 и выше.

• В инструментальных цехах сосредоточено 10—20% станочного парка и занято до 10% работающих.

• Источник - http://www.buhucheta.net/referatpage-854-1.html

• на долю проектирования и изготовления технологической оснастки при освоении новых изделий приходится более 80% трудоемкости всех работ по подготовке производства.

• Источник - http://www.grandars.ru/college/biznes/instrumentalnoe-hozyaystvo.html

Page 8: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Каксделать• Технология• keyword-driven подход• Предметно-ориентированные Keywords = Bankwords

• Специализация сотрудников• Bankwords разрабатываются

• «инструментальщиками» = программистами автотестов по заказу

• «производственников» - тестировщиков

• Перераспределение функций и смена ролей• роль «тест-инженер» выполняет тест-менеджер• Тест-кейс запускает на выполнение тест-менеджер• Результат прогона , отображаемый в теле тест-кейса,

анализируется тест-менеджером

Page 9: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Keywords - bankwords

Page 10: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

-Запуск тест кейса

Run

Page 11: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

-Результат в тест кейсе

Page 12: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Результат• Итог:• Трудоемкость оформления тесткейса увеличивается на 10..20%, • Трудоемкость разработки атотеста уменьшается на 80-90%• Типовой автотест готов за 4..8 2..4 часа• Тест-кейсы легким движением при помощи xslt превращаются в точную

техдокументацию по системе

• Источники выгоды:• Программистам автотестов не нужно изучать приложение • Тест-менеджер эффективнее работает с привычной формой тест-кейса

• В 80-90% случаев нет этапа разработки автотеста

• Издержки (как же без них)• Повышаются требования программистам – нужно писать универсальные механизмы• Строже требования к ручным тестерам – нужно писать детальные и формализованные тест-

кейсы

Page 13: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

КОНВЕЙЕРДАННЫХ

Page 14: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Схемаобменаданными

Данные, созданные автотестом i, используются автотестами j,kДиаграмма – строится динамически, используется GraphvizДиаграмма строится до и после прогона. Значения переменных прогона видны по линкам на диаграмме просто анализировать обмен данными между отдельными тестами цепочки

Page 15: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Организацияконвейераданных• Кто проектирует: Тест-аналитик • Кто реализует: программист автор тест-кейса• Как реализует:• 1. Формулирует правила обмена данными между тестами

цепочки• 2. Задает начальные значения переменных цепочки

Page 16: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Правилаобмена

Значение с атрибутом«импорт» - извлекается из набора переменных цепочки«экспорт» - помещается в набор переменных цепочки

Первый тест цепочки как правило задает основные параметры, последующие их используют.

Параметр идентифицируется именем, например «ДатаОперДня»

Page 17: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

КОНВЕЙЕРВЫПОЛНЕНИЯ

Page 18: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 0

тест1 тест2 тест3 тест4

Page 19: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 1

тест1 тест2 тест3 тест4

datapool

.xls.xmlDB

Page 20: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 2

тест1 тест2 тест3 тест4

data1

.xls.xmlDB

data2 data3 data4

Page 21: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 3

тест1 тест2 тест3 тест4

data1

.xls.xmlDB

data2 data3 data4

Page 22: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 4

тест0

data1

.xml

data2 data3 data4

Page 23: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 5

тест0

data1

.xml

data2 data3 data4

data0

Page 24: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочка 6

тест0

data1

.xml

data2 data3 data4

data0 Data_out

Page 25: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочки 1

Тест1.1 Тест1.2 Тест1.3 Тест1.4

Тест2.1 Тест2.2 Тест2.3 Тест2.4

Page 26: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочки 2

Тест1.1 Тест1.2 Тест1.3 Тест1.4

Тест2.1 Тест2.2 Тест2.3 Тест2.4

Data_out 1

Data_out 2

Page 27: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочки 3

Цепочка 1Data_out

1 Цепочка 2Data_out

2

10 час стенд1

Page 28: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочки 4

Цепочка 1Data_out

1

5 час стенд1

Цепочка 2Data_out

2

5 час стенд2

Page 29: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Цепочки 5

Цепочка 1

стенд1

Цепочка 2

стенд2

Цепочка 3

стенд3

Цепочка 4

стенд4

Цепочка 6

Цепочка 5

Page 30: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Результат• До 5 потоков параллельно• 300..400 тестов во всех цепочках• Около 12 час общего времени• Около 3..4 час астрономического времени

Page 31: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

ПОДГОТОВКАДАННЫХ

Page 32: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

– Нехватаетданных чтоделать• Тестовый комплект генерации данных разных типов• Данные для блока АБС «Расчетно-кассовое обслуживание»• Типов данных -20..30

(клиенты, кассиры, кассы, клиенты, счета, тарифы, ….)• Данных каждого типа 1..100

(счет Петрова, Иванова, …; касса 1,2,…; …)• Время генерации 2..5 час

• Комплект может запустить ручной тестировщик

Page 33: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Ручныетестировщики – мешаютдруг другу что

делать• Если бы для каждого тестировщика был свой банк – он и

бы не мешали друг другу• Создать (настроить ) банк ручной тестировщик может за

40..80 час. Вообще, говоря, этим занимаются внедренцы за существенные деньги.

• Теоретически можно было бы иметь свою копию БД для каждого ручного тестировщика. На практике • 1 . не хватает железа• 2. не хватает админов• 3. нет скриптов клонирования БД• 4. расходы на сопровождение N копий БД неприемлемы

Page 34: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Ручныетестировщики – немешаютдруг другу

как• Делаем тестовый комплект для замены • Тестовый комплект способен создать обособленное отделение банка. Отделение

банка = функциональный аналог банка.• Тестовый комплект способен создать платежную систему – компонент АБС,

обеспечивающий платежи между отделениями• Ручной тестировщик может создать для себя отделение банка (читай

обособленный банк)• Комплект использует данные для блока АБС «Расчетно-кассовое обслуживание»

• Типов данных -20..30 (клиенты, кассиры, кассы, клиенты, счета, тарифы, ….)

• Данных каждого типа 1..100(счет Петрова, Иванова, …; касса 1,2,…; …)

• Время генерации 2..5 час• Комплект может запустить ручной тестировщик• Время создания банка - 12..14 часов (в 4..5 потоков)

Page 35: Автотестирование АБС. Конвейер разработки, конвейер данных, конвейер выполнения

Спасибо завниманиеАлексей Надененко.ООО «Сбербанк – технологии», г.Минск