Анастасия Бордонос - Проектирование тестов

41

Upload: yandex

Post on 23-Dec-2014

845 views

Category:

Documents


3 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Анастасия Бордонос - Проектирование тестов
Page 2: Анастасия Бордонос - Проектирование тестов

Бордонос Анастасия

ШТБС. Проектирование тестов.

Инженер по контролю качества

Page 3: Анастасия Бордонос - Проектирование тестов

Инструкция — наше все

Page 4: Анастасия Бордонос - Проектирование тестов

С чего начать, или инструкция тестировщика

1.  Скрининг

“Фича не должна стать неприятным сюрпризом”

Page 5: Анастасия Бордонос - Проектирование тестов

С чего начать, или инструкция тестировщика

2. Анализ 2.1 Зачем? 2.2 Как? 2.3 Где?

Page 6: Анастасия Бордонос - Проектирование тестов

С чего начать, или инструкция тестировщика

3. Описание + тест план «Истина где-то рядом»

Page 7: Анастасия Бордонос - Проектирование тестов

С чего начать, или инструкция тестировщика 5. Рассказ фичи “…в третий раз объясняю. Сам уже понял. А

они не понимают...”

Page 8: Анастасия Бордонос - Проектирование тестов

С чего начать, или инструкция тестировщика

6. Ревью

“Лучше перестраховаться, чем … облажаться”

Page 9: Анастасия Бордонос - Проектирование тестов

Основные определения

1. Тест-план (Test Plan) – полный набор тестов.

2. Тест-сет (Test set) - совокупность тестов(тестовых случаев), собранных вместе с целью протестировать определенные процессы системы.

3. Тест (Test Case) - совокупность шагов, конкретных условий и параметров, необходимых для проверки реализации тестируемой функции или её части.

Page 10: Анастасия Бордонос - Проектирование тестов

Подходы к Test Design

1. Equivalence Class Testing 2. Boundary Value Testing 3. Domain Analysis Testing 4. Pairwise Testing 5. Decision Table Testing 6. State-Transition Testing 7. Use Case Testing

Page 11: Анастасия Бордонос - Проектирование тестов

Equivalence Class Testing Классы эквивалентности

Эквивалентные тесты – тесты приводящие к одинаковому результату. Пример: прием на работу 0 – 16: не принимать 16 – 18: принимать на полставки 18 – 55: принимать на полную ставку 55 – …: не принимать Важно: 1.  Поиск классов эквивалентности – субъективный процесс 2.  Достаточно 1-2 проверки на класс

Page 12: Анастасия Бордонос - Проектирование тестов

Поиск классов эквивалентности

•  Не забывать заведомо неверные значения (для чисел обычно сразу +2 класса < и > диапазона)

•  Важно четко определять и проанализировать диапазон входных данных (любой поддиапазон – отдельный класс эквивалентности).

•  Выявление группы переменных, совместно участвующих в вычислениях (например треугольник, класс допустимых значений когда сумма 2х сторон > 3ей, + 2 класса < >)

•  По возможности выходные данные, тоже разбиваются на классы

Page 13: Анастасия Бордонос - Проектирование тестов

Boundary Value Testing Пример: прием на работу

0 – 16: не принимать 16 – 18: принимать на полставки 18 – 55: принимать на полную ставку 55 – …: не принимать

Правильный вариант: 0 – 15: не принимать 16 – 17: принимать на полставки 18 – 54: принимать на полную ставку 55 – …: не принимать

Page 14: Анастасия Бордонос - Проектирование тестов

Boundary Value Testing

Что еще сказать про граничные значения? Канер просил помнить про: -числовые границы -границы множеств -границы циклов -границы структур данных -границы пространства (многомерные объекты) -границы времени -границы конфигураций

Page 15: Анастасия Бордонос - Проектирование тестов

Таблица Майерса

Задача: Есть программа, которая складывает 2 числа, каждое из которых может принимать следующие значения: -99..99 Нам требуется написать оптимально число тестов для тестирования данной программы. Всего вариантов: 199*199=39,601

Переменная  Допустимые  значения  

Недопустимые  значения  

Граничные  и  особые  значения  

Первая  цифра   -­‐99..99  >99  <-­‐99  

99,  100  -­‐99,  -­‐100,  0  

Вторая  цифра   -­‐99..99  >99  <-­‐99  

99,  100  -­‐99,  -­‐100,  0  

Сумма   -­‐198..198  >198  <-­‐198  

(-­‐99,-­‐99)  (-­‐99,  99)  (99,-­‐99)  (99,  99)  

Page 16: Анастасия Бордонос - Проектирование тестов

Таблица Майерса

Построение таблицы на практике:

1. Вряд ли у вас будет набор полей с полной спецификацией допустимых и недопустимых значений.

2. Начните с простого перечисления полей ввода 3. В конце концов, таблица должна содержать все значения

4. На практике очень редко встречаются полные таблицы, хотя они являются достаточно важным элементом тестирования.

Page 17: Анастасия Бордонос - Проектирование тестов

Domain Analysis Testing

1. Разбиение областей значений на подобласти

2. Выбор конкретных значений из подобластей

3. Сочетание выбранных значений разных параметров

А1    

А2                                        А3  

a1  

a2  

a3  

b1  

a1   a1  

b2  b3  

a3  b1   b2   b3   b3  a1  

b2  a1  

a3   b2  a3   b1  

В1  В2  

В3  

Page 18: Анастасия Бордонос - Проектирование тестов

Pairwise Testing

1. Не тестировать вообще? 2. Протестировать все? 3. Выбрать 1-2 теста и надеяться на лучшее? 4. Выбрать наиболее простые для создания тесты? 5. Сделать список комбинаций параметров и выбрать несколько первых или рандомное подмножество?

6. По волшебству, выбрать специально подобранные, довольно небольшое подмножество, который находит очень много дефектов

Page 19: Анастасия Бордонос - Проектирование тестов

Pairwise Testing

1.  Если система имеет 4 разных параметра и каждый из них принимает 3 разных значения, то число комбинаций будет 3^4 = 81. Возможно охватить все попарные комбинации всего в 9 тестов.

2.  Если система имеет 13 разных параметров и каждый из них принимает 3 разных значения, то число комбинаций будет 3^13 = 1594323. Возможно охватить все попарные комбинации всего в 15 тестов.

3.  Если система имеет 20 разных параметров и каждый из них принимает 10 разных значений, то число комбинаций будет 10^20. Возможно охватить все попарные комбинации всего в 180 тестов.

Page 20: Анастасия Бордонос - Проектирование тестов

Decision Table Testing

Правило  1   Правило  2   …   Правило  p  

Сущность      

Ввод  данных  студента   Нет   Нет  

 Да    

   

Ввод  ID  студента   Нет    

Да     Нет    

 

Выбор  «Изменить»   Нет    

Нет    

Да    

   

Выбор  «Удалить»   Нет    

Да    

Нет    

   

   

Действия      

Данные  изменились   Нет    

Нет    

Да    

   

Данные  удалились   Нет    

Да    

Нет    

   

…      

Действие-­‐n      

Page 21: Анастасия Бордонос - Проектирование тестов

State-Transition Testing

Резервация авиабилетов 1.  "Made" (сделана) 2.  "Paid" (оплаченный) 3.  "Ticketed" (обилечен) 4.  "Used" (использованный) 5.  "Cancelled By Customer” 6.  "Cancelled NonPay”

Page 22: Анастасия Бордонос - Проектирование тестов

State-Transition Testing

Page 23: Анастасия Бордонос - Проектирование тестов

Use case testing Тестирование на основе пользовательских сценариев

+ Хорошо подходит для тестирования интерфейсов -  Могут быть пропущены не очевидные сценарии использования.

Use case test системы регистрации: 1.  Оставьте поля ввода пустыми, нажмите кнопку «ОК». Вывелись сообщение

об обязательности полей. 2.  Введите в поле «Логин» недопустимые символы. Нажмите кнопку «ОК».

Вывелось сообщение «Недопустимые символы в логине». 3.  Введите в поле «Пароль 3 символа». Нажмите кнопку «ОК». Вывелось

сообщение «Пароль может содержать минимум 8 символов» 4.  Введите корректные данные в поля. Нажмите кнопку «ОК». Регистрация

прошла успешно

Page 24: Анастасия Бордонос - Проектирование тестов

Parameters based testing Тестирование на основе параметров

На основе знаний о задаче и системе выявляется набор значимых параметров. Пример «Кружка». Параметры: 1.  Содержимое: вода, спирт, чай, крупа, сахар 2.  t содержимого: 0C, 100C, -20C, 70 3.  Время теста(сек): 1,10,60,3600, 86400 4.  Доп. Действия: нагрев, охлаждение

Page 25: Анастасия Бордонос - Проектирование тестов

Перебор параметров

1.  Ручной

Page 26: Анастасия Бордонос - Проектирование тестов

Перебор параметров

2.  Перебор параметров относительно фиксированных значений.

Пример «Кондиционер»: •  Температура •  Мощность •  Таймер Стандартный режим работы: Т = 20, P = 2000 Вт, t = 20 мин

Page 27: Анастасия Бордонос - Проектирование тестов

Перебор параметров

3.  Иерархическая проверка параметров.

Пример: Расчет площади треугольника по формуле полупериметра. A – считывание входных данных B – расчет периметра С – расчет площади A(), B(A), C(B) - функции

Page 28: Анастасия Бордонос - Проектирование тестов

Это интересно!

Page 29: Анастасия Бордонос - Проектирование тестов

Magic number

Value   Hex   DescripXon  0   0x00   Zero.  False.  NULL.  

4   0x04   4.  Размер  32  bit  integer  

37   0x25   Численное  значение  для  ASCII  символа  '%',  который  является  управляющим  последовательность  ю  в  URL-­‐адресах  и  в  C  runime  library.  

38   0x26   Численное  значение  для  ASCII  символа  '&'  ,  который  часто  используется  в  атаках  на  сайт.  

48   0x30   Численное  значение  для  ASCII  символа  '0'  (zero).  

97   0x61   Численное  значение  для  ASCII  символа    'a'.  

204   0xCC   x86  assembly  instrucion,  если  выполняется,  то  останавливает  процесс("int  3").  

Page 30: Анастасия Бордонос - Проектирование тестов

Error Guessing Тестирование на основе предугадывания ошибки

Консольное приложение, которое на вход принимает 3 целых числа, интерпретируемые как длины сторон треугольника, а на выходе выводит на экран является ли введенный треугольник равнобедренным или равносторонним.

Page 31: Анастасия Бордонос - Проектирование тестов

Error Guessing Тестирование на основе предугадывания ошибки

НЕ Консольное НЕ приложение, которое на НЕ вход принимает НЕ 3 НЕ целых НЕ числа, интерпретируемые как НЕ длины сторон треугольника, а на выходе НЕ выводит на экран является ли введенный НЕ треугольник НЕ равнобедренным или НЕ равносторонним.

Page 32: Анастасия Бордонос - Проектирование тестов

Тест кейс

Свойства 1.  Простота (Понятность) 2.  Воспроизводимость 3.  Обоснованность

Пример: Title(название): кружка + кипяток Description(цель): проверяем возможность хранить в кружке воду в течение времени остывания. Начальное состояние: пустая, сухая кружка комнатной температуры. Действие: Наливаем 0.5л кипятка в чашку Что проверяем: что вода остается в кружке, по мере остывания воды Ожидаемый результат : вода остается в кружке

Page 33: Анастасия Бордонос - Проектирование тестов

Тест кейс. Статусы теста

Page 34: Анастасия Бордонос - Проектирование тестов

Как заводить баги

1. Не откладывайте на завтра 2. Разберитесь в баге и локализуйте проблему

3. Подумайте, где подобный баг может встретиться ещё, покройте это тестами

4. В title кратко опишите суть проблемы 5. В тикете сделайте подробное описание бага, приложите скрин

6. Опишите, как его воспроизвести

Page 35: Анастасия Бордонос - Проектирование тестов

У багов тоже есть чувства

Page 36: Анастасия Бордонос - Проектирование тестов

Жизненный цикл бага Обнаружен  

(Open)  

Закрыт  (Closed)  

Возвращен  (Open)  

Ретест  (Open)  

Отвергнут  (Will  not  fix)  

Исправлен  (Fixed)  

Принят  (Open)  

Page 37: Анастасия Бордонос - Проектирование тестов

Оценка тестирования

1. Покрытие требований (Requirements Coverage)

Requirements Traceability Matrix

FuncXonal  Requirements   Test  Cases  

Приложение  должно  принимать  на  вход  3  целых  числа  

OQ,  Test  Case  1:  На  вход    параметров  не  подаем  OQ,  Test  Case  2:  На  вход    2  параметра  …    

Приложение  должно  уметь  определять,  является  ли  треугольник  равнобедренным  

OQ,  Test  Case  5:  Проверка  треугольника  на  равнобедренность    

Приложение  должно  уметь  определять,  является  ли  треугольник  равносторонним  

OQ,  Test  Case  6:  Проверка  треугольника  на  равносторонность  

Приложение  должно  выдавать  ошибку  в  ином  случае  

OQ,  Test  Case  7:  Произвольный  треугольник  OQ,  Test  Case  8:  Входные  данные  –  не  треугольник  …    

Page 38: Анастасия Бордонос - Проектирование тестов

Оценка тестирования

2. Покрытие кода (Code Coverage)

•  покрытие операторов ; •  покрытие условий ; •  покрытие путей ; •  покрытие функций ; •  покрытие вход/выход ; •  покрытие значений параметров .

Page 39: Анастасия Бордонос - Проектирование тестов

Code Coverage

Page 40: Анастасия Бордонос - Проектирование тестов

Вопросы, замечания, помидоры?

Page 41: Анастасия Бордонос - Проектирование тестов

Бордонос Анастасия Инженер по контролю качества

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