Дизайн тестов на основе вариантов использования

advertisement
Дизайн тестов на
основе вариантов
использования
Алексей Баранцев
Software-Testing.Ru
Заголовок слайда
Текст слайда, рисунки. Старайтесь не захламлять текст лишними данными,
параметрами. Вот немного тезисов:
• Для демонстрации используются плазмы – соотношение сторон 16:9!;
• Залы будут длинными (в среднем около 20 метров), поэтому текст
должен быть заметным;
• Код на слайде – плохая идея, он плохо читается издалека;
• Не забывайте выделять ключевые моменты;
• Формат презентации – Microsoft Power Point (как 2003, так и 2007) и PDF.
План
•
•
•
•
Что такое варианты использования?
Как из них делать тесты?
Какие могут возникнуть осложнения?
Некоторые практические замечания
Что такое
варианты
использования?
Варианты использования: UML
Действующие
лица
+
Варианты
использования
Варианты использования: UML
Тестирование на основе ВИ
Нарративная форма
UML недостаточно!
Нарративная форма «по Коберну»
UC 4: Place an order
1. The clerk identifies the customer, each item and quantity.
2. System accepts and queues the order.
Extensions:
1a. Low credit: Clerk takes prepayment
2a. Low on stock: Customer accepts reduced quantity...
Нарративная форма «по Коберну»
•
•
•
•
•
Название
Цель
Краткое описание
Действующие лица
Предусловия
•
•
•
•
•
Постусловия
Триггеры
Основной сценарий
Альтернативы
Бизнес-правила
ВИ: цель + сценарии
Actor
has
Goal
names
calls out
Use case
contains
Scenario
conditions
oucome
ВИ: цель + сценарии
Название ВИ – формулировка цели:
“ Order product from catalog”
• Scenario 1: Everything works out well ...
• Scenario 2: Insufficient credit ...
• Scenario 3: Product out of stock …
ВИ: цель + сценарии
Subgoal:
Establish
... credit
... stock
Goal: “Place order”
sc1 sc2
S
S
S
F
sc3
F
S
S
(Success scenarios)
sc4
sc5
sc6
S
sc7
F
F
F
...
F
(Failure sc.)
Как делать тесты
из вариантов
использования?
Тестирование = анализ наоборот
• Вариант использования
– это свёртка сценариев
• А для тестирования
– нужна развёртка
варианта использования
Вариант использования: пример
1.
2.
3.
4.
5.
6.
+
П. набирает номер
П. инициирует соединение
Т. устанавливает соединение
П. говорит
П. инициирует разрыв соединения
Т. разрывает соединение
2a. П. передумал
Альтернативы
2a1. П. сбрасывает номер X
3a. Т. не может установить соединение
3a1. Т. сообщает об этом П. X
3b. На счету П. недостаточно средств
3c1. Т. сообщает об этом П. X
5a. Т. теряет соединение
5a1. Т. сообщает об этом П. X
5b. Абонент разрывает соединение
5b1. Т. сообщает об этом П. X
5с. На счету П. заканчиваются средства… 
5c1. Т. сообщает об этом П. X
Развёртка ВИ в набор сценариев
1
2
3
4
5
6
+
2a X
3a X
3b X
5a X
5b X
5c X
1 1 1 1 1 1 1
2 2a 2 2 2 2 2
3
X 3a 3b 3 3 3
4
X X 4 4 4
5a 5b 5c
5
6
X X X
+
Развёртки – заготовки для тестов
1. П. набирает номер
2. П. инициирует соединение
3a. Т. не может установить соединение
3a1. Т. сообщает об этом П. X
1. П. набирает номер
2. П. инициирует соединение
3. Т. устанавливает соединение
4. П. говорит
5с. На счету П. заканчиваются средства… 
5c1. Т. сообщает об этом П. X
Почему это ещё не совсем тест?
1. П. набирает номер
2. П. инициирует соединение
3a. Т. не может установить соединение
3a1. Т. сообщает об этом П. X
Выделяем параметры
как?
какой?
1. П. набирает номер
2. П. инициирует соединение
почему?
3a. Т. не может установить соединение
как?
3a1. Т. сообщает об этом П. X
Параметризуем тест
• Какой номер?
– мобильной / фиксированной связи
– своего / чужого оператора
– в своей сети / в роуминге
– короткий / прямой / с федеральным кодом
– через «8» / через «+7»
– спецслужбы
Параметризуем тест
• Почему не может установить соединение?
– сеть недоступна
– неправильно набран номер
– абонент недоступен
– абонент заблокирован
– абонент занят
– абонент свободен, но не отвечает (таймаут)
– абонент свободен, но «сбрасывает» звонок
Миксуем – и получаем тест
Тест = сценарий + параметры
но главнее – действующее лицо и его цель!
Какие могут
возникнуть
осложнения?
Неглавное действующее лицо
Primary Actor
System under test
Responsibility
(Interaction 1)
- Goal 1
- Goal 2
Responsibility
... action 1
- Goal 1
.
...action 1
:
Secondary Actor
(Interaction 2)
Responsibility
Система защищает интересы всех
заинтересованных лиц
“Совершить
звонок”
ГДЛ хочет...
ЗЛ хотят...
System
under
Test
Мораль для тестировщиков
• Недостаточно проверять
только то, что написано в
отдельно взятом ВИ
• Нужно иметь в виду сразу
все цели всех ЗЛ
Фатальные и нефатальные отклонения
UC1: Разместить заказ
• Идеальная ситуация:
– Деньги есть, товар есть -> принять заказ.
• Нефатальные отклонения (s2, s3):
– Денег мало -> можно дать кредит? (да) -> принять.
– Товара мало -> можно уменьшить количество? (да) -> принять.
• Фатальные отклонения (s4, s5):
– Денег мало -> можно дать кредит? (нет) -> отказать.
– Товар отсутствует -> отказать
Мораль для тестировщика
• нефатальные отклонения
удлиняют сценарии, увеличивают
вариативность, могут приводить к
появлению циклов
• с ними нужно работать наиболее
тщательно
ВИ используют другие ВИ
как?
1. П. набирает номер
UC 21: Набрать номер на клавиатуре
UC32: Выбрать абонента из записной книжки
UC43: Выбрать абонента из списка звонков
UC54: Выделить номер из SMS-сообщения
Системы-матрёшки
company
computer system
Our Sys.
other
company
other
dept.
other
System
subsystem
Иерархия ВИ
project goal
Strategic Goals
“white”
advertise
order
invoice
“blue”
User Goals
set up
promotion
reference
promotion
Subfunctions
identify
promotion
monitor
promotion
register user
place
order
identify
product
create
invoice
identify
customer
send invoice
“indigo”
Мораль для тестировщика
• Нужно сосредоточить
внимание на одном уровне
детализации и не опускаться
ниже
• В большинстве случаев нужно
сидеть «на уровне моря»
ВИ – это ещё не все требования
• Не все требования удаётся записать в виде
вариантов использования
– нефункциональные требования
• Не все функциональные требования удаётся
записать в виде вариантов использования
– бизнес-правила
– описания интерфейсов
– описания конфигураций
Нефункциональные требования
Use case
set up promotion
Frequency
Performance
10 / mo
interactive
reference promotion 500 / day
enter an order
80 / day
sub-second
create an invoice
80 / dy
3 seconds
send an invoice
1600/mo
interactive
420/hr (10 sec.)
...
Бизнес-правила
1. Order sum = order item costs * 1.06 tax
2. Promotions may not run longer than 6 months.
3. Customers only become Preferred after an
initial 6 month period.
4. A customer has one and only one sales contact.
5. An order item may use many promotions.
Описания интерфейсов
Use case
set up
promotion
reference
promotion
enter
an order
create
an invoice
send
an invoice
Form
In
Out
on-line
products, dates
new promotion
on-line
promotion #
promotion value
on-line
new order
database
customer,
products,...
order number
tape
invoice #
paper or EDI
new invoice
Описания конфигураций
1. Place an order - using standard pricing.
2. Place an order - using Preferred pricing.
3. Place an order - do not check credit limit.
1. Выполнить вызов - тоновый набор
2. Выполнить вызов - импульсный набор
Списки заинтересованных лиц
Use case
set up
promotion
reference
promotion
enter
an order
create
an invoice
send
an invoice
Users
Marketing managers
Managers, order clerks, other subsystems
Managers, order clerks, other subsystems
Managers, invoicing subsystem
Managers, invoicing subsystem
Укладка требований и тестов
Спасибо!
Алексей Баранцев
Software-Testing.Ru
Форум для тестировщиков
Портал для тестировщиков
Тренинги для тестировщиков
Консультации по тестированию ПО
Download