Плюсы и минусы техники анализа классов эквивалентности



 Как и любая другая техника, анализ классов эквивалентности имеет достоинства и недостатки.

● К плюсам можно отнести заметное сокращение времени и улучшение структурированности тестирования.

● К минусам можно отнести то, что при неправильном использовании техники мы рискуем пропустить баги.

Еще раз повторим важный принцип разбиения на классы эквивалентности:

● Слишком большое количество эквивалентных классов увеличивает вероятность, что большинство тестов будет лишним (избыточным)

● Слишком малое число эквивалентных классов, хоть и уменьшает время тестирования, но увеличивает вероятность, что ошибки продукта будут пропущены.

 Тестировщик должен постоянно держать это в голове. Он может сделать из этого вывод о том, что​  лучше перестраховаться и разбить набор тестов на большее число эквивалентных классов (или взять больше одного теста из каждого класса), чем сократить их число и пропустить ошибки.

 При использовании этой техники мы должны видеть не только ее положительное влияние (сокращение количества тестов), но и возможные проблемы, которые она может вызвать (пропуск серьезных ошибок).

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

Техника анализа граничных значений

Определение 

Давайте рассмотрим вторую технику - анализ граничных значений. Это техника проверки ошибок на границах классов эквивалентности.

Если техника анализа классов эквивалентности ориентирована на тестовое покрытие, то эта техника основана на рисках. Эта техника начинается с идеи о том, что программа может сломаться в области граничных значений.

 А почему считается, что с граничными значениями связаны серьезные риски?

● Давно замечено, что при разработке большое число проблем возникает на границах входных переменных.

● Даже если эквивалентные классы найдены правильно, то граничные значения могут быть ошибочно отнесены к другому классу.

Эта техника на первый взгляд простая. Но это впечатление не должно вводить нас в заблуждение:

эффективное применение этой техники зависит от способности правильно выделить классы эквивалентности и затем выбрать тесты для проверки границ этих классов. 

Цель техники анализа граничных значений

 Цель этой техники сформулировать несложно - найти ошибки, связанные с граничными значениями.

Как можно использовать технику

 Примерный алгоритм использования техники анализа граничных значений:

1. Выделить классы эквивалентности. Опять же, это очень важный шаг, и от правильности разбиения на классы эквивалентности зависит эффективность тестов граничных значений.

2. Далее нужно определить граничные значения этих классов.

3. Определить к какому классу будет относиться каждая граница.

4. Для каждой границы нам нужно провести тесты по проверке значения до границы, на границе, и сразу после границы.

Можно сказать, что количество тестов для проверки граничных значений будет равно количеству границ, умноженному на 3. Причем в литературе по тестированию рекомендуется проверять значения вплотную к границе. Скажем, если мы имеем диапазон целых значений, и граница у нас находится в числе 10, то мы будем проводить тесты с числом 9 (вплотную до границы), 10 (саму границу) и 11 (сразу после границы).

Пример использования

Давайте теперь вернемся к нашему примеру с бронированием и проведем тестирование граничных значений. 

 

Пойдем по шагам: 

1. Выделим классы эквивалентности:

● время до вылета > 5 суток

● 24 часа =< время до вылета =< 5 суток

● 0 часов < время до вылета < 24 часа

● время до вылета =< 0 часов (вылет уже состоялся) 

2. Определим границы:

● 5 суток

● 24 часа

● 0 часов 

 

3. Определим, к какому классу относятся границы:

1. 5 суток – к 2-му классу

2. 24 часа – к 3-му классу 3. 0 часов – к 4-му классу 

 

4. Протестируем значения на границах, до и после них:

1. Отменим бронь за 5 суток + 1 секунду до вылета (или просто постараемся выполнить бронь как можно ближе к границе, но слева от нее) и проверим, что комиссия равна 0%.

2. Отменим бронь ровно за 5 суток до вылета и проверим, что комиссия равна 50%.

3. Отменим бронь за 5 суток – 1 секунду до вылета и проверим, что комиссия равна 50%.

4. Отменим бронь за 24 часа + 1 секунду до вылета и проверим, что комиссия равна 50%.

5. Отменим бронь ровно за 24 часа до вылета и проверим, что комиссия равна 75%. 

6. Отменим бронь за 24 часа - 1 секунду до вылета и проверим, что комиссия равна 75%.

7. Отменим бронь за 1 секунду до вылета и проверим, что комиссия равна 75%.

8. Отменим бронь ровно во время вылета и проверим, что комиссия равна 100%.

9. Отменим бронь спустя 1 секунду после вылета и проверим, что комиссия равна 100%.

 

 Мы получили 9 тестов, по 3 теста на каждую границу.

 Если суммировать тесты, необходимые для проверки классов эквивалентности и граничных значений,​ получим 4 + 9 =13 тестов.

 В некоторых источниках рекомендуется использовать классы эквивалентности и граничные условия вместе по следующим соображениям:

● Техника анализа классов эквивалентности говорит о том, что мы должны выбрать минимум по одному значению из каждого класса.

● Так как граница обычно относится к какому-то классу, то можно использовать ее как представителя этого класса.

● Тогда мы сэкономим определенное количество времени и сил

Если следовать этой рекомендации, то в нашем случае останется 9 тестов.

Но эту рекомендацию нужно использовать на свой страх и риск. Если считаете, что необходимо все-таки проверить обычные (не граничные) тесты – сделайте это. Лучше перестраховаться, чем пропустить ошибки.

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


Плюсы и минусы техники

Можно выделить следующее преимущество техники анализа граничных значений: 

Эта техника добавляет в технику анализа классов эквивалентности ориентированность на конкретный тип ошибок. То есть, техника анализа классов эквивалентности просто говорит нам о том, что нужно разбить все тесты на классы и провести тестирование всех классов. А техника граничных значений ориентирована на обнаружение конкретной проблемы – возникновение ошибок на границах классов эквивалентности.

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

 

Работа с требованиями к ПО

Что делает с требованиями тестировщик:

1. Тестирует

2. Составляет на их основе тесты

3. Актуализирует тесты по изменениям в требованиях.

Как тестируют требования, мы рассмотрели в уроке 2 (см. раздел Тестирование требований и документации).

Тесты составляются на основе требований к ПО, например, тесты должны проверять, что требования, предъявляемые к ПО реализованы (позитивные тесты), и все что за пределами требований не повергает программу в некорректное или не рабочее состояние (негативные тесты).

А как же тестировщик фиксирует требования? Требования отражаются в тест-кейсах и чек-листах, с которыми работает тестировщик. При получении изменений в требованиях, которые случаются повсеместно, тестировщик первым делом должен актуализировать свои тесты. Наш мир не идеален, и зачастую изменения в одном требовании влекут изменения в нескольких других. Поэтому при изменении в требовании тестировщик должен подумать как изменение в одном требовании в целом повлияет на ПО.

Однако актуализации тестов недостаточно. Тестировщик эмулирует конечных пользователей системы. Он может первым сказать, что и как отразится на пользователе при изменении требований. Если при внесении в ПО изменения произойдет противоречие в другом месте ПО нужно обязательно сообщить команде и тому кто отвечает за сами требования, например руководителю проекта или бизнес-аналитику.

 

 

Участие в планировании релиза ПО

Что такое релиз ПО? Это выпуск новой версии ПО конечному пользователю.

За качество новой версии отвечает вся команда разработки, но итоговое слово и, возможно, шишки достаются именно тестировщику.

При планировании релиза у тестировщика появляются следующие задачи:

● Тестирование новой функциональности

● Проверка исправления ошибок

● Регрессионное тестирование


Дата добавления: 2018-08-06; просмотров: 1172; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!