Найти в Дзене
шКодник

Виды тестирования, тест план, техники тест-дизайна. Теория тестирования. Вторая часть.

Снова всех приветствую у меня на канале! В прошлый раз мы познакомились с тестированием, как таковым, разобрались зачем оно нужно, и какие стадии проходит тестировщик в ходе своей работы. Сегодня вторая часть из цикла статей о теории тестирования и углубимся немного глубже в эту тему: узнаем какие виды/типы тестирования вообще есть и подробнее узнаем про те самые стадии тестирования из предыдущей статьи😊Готовы? Тогда доставайте свои конспекты и поехали! Нужно понимать, что видов тестирования очень много и их зачастую объединяют в классификации. Дальше мы разберем по каким критериям они классифицируются: 1) По объектам: a. Функциональное: i. Функциональное тестирование; Здесь все просто. Это тестирование того, что умеет делать наше ПО, то есть его функционала. ii. Тестирование пользовательского интерфейса (Тестирование GUI); Тестирование графического интерфейса. Например, при наведении курсора мыши на кнопку, она должна подсвечиваться. iii. Тестирование безопасности (Security and Acces

Снова всех приветствую у меня на канале!

В прошлый раз мы познакомились с тестированием, как таковым, разобрались зачем оно нужно, и какие стадии проходит тестировщик в ходе своей работы. Сегодня вторая часть из цикла статей о теории тестирования и углубимся немного глубже в эту тему: узнаем какие виды/типы тестирования вообще есть и подробнее узнаем про те самые стадии тестирования из предыдущей статьи😊Готовы? Тогда доставайте свои конспекты и поехали!

Нужно понимать, что видов тестирования очень много и их зачастую объединяют в классификации. Дальше мы разберем по каким критериям они классифицируются:

1) По объектам:

a. Функциональное:

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

Здесь все просто. Это тестирование того, что умеет делать наше ПО, то есть его функционала.

ii. Тестирование пользовательского интерфейса (Тестирование GUI);

Тестирование графического интерфейса. Например, при наведении курсора мыши на кнопку, она должна подсвечиваться.

iii. Тестирование безопасности (Security and Access Control Testing).

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

b. Нефункциональное:

i. Все виды тестирования производительности (нагрузочное тестирование, стрессовое тестирование, объемное тестирование, тестирование стабильности или надежности);

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

ii. Тестирование удобства пользования (Usability Testing);

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

iii. Тестирование локализации;

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

iv. Конфигурационное тестирование;

Тестирование того, подходит ли ПО на каких-нибудь других устройствах, других поколениях.

v. Тестирование совместимости;

Тестирование того, насколько совместимо наш сайт с разными браузерами.

vi. Инсталляционное тестирование;

Проверка того, насколько корректно проходит обновление ПО, его установка и удаление.

2) Связанные с изменениями:

a. Дымовое тестирование (Smoke Testing);

Проверка главной функциональности, неработоспособность которой делает бессмысленной саму идею использования приложения.

b. Регрессионное тестирование (Regression Testing);

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

c. Повторное тестирование (Re-testing);

Это тип тестирования, выполняемый заново после устранения какой-либо ошибки. В случае ретеста (повторного тестирования) мы ранее выявили ошибку в работе ПО, эту ошибку устранили и теперь мы проводим ретест, чтобы узнать, устранили ли ее.

d. Тестирование сборки (Build Verification Test);

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

e. Санитарное тестирование или проверка согласованности/исправности (Sanity Testing);

Это узконаправленное тестирование достаточное для доказательства того, что конкретная функция работает согласно заявленным в спецификации требованиям. То есть в отличие от домового тестирования и тестирования сборки покрывает лишь малую часть функционала.

Пожалуй, на этих видах тестирования мы пока остановимся. Остальные виды и классификации нам пока не пригодятся. Хотя это не означает, что мы не изучим их позже 😊

Как и обещал, дальше мы пойдем по стадиям тестирования, я их вам напомню:

· Test Management (планирование работ).

· Test Design (проектирование тестов).

· Test Execution (выполнение тестов).

· Test Analysis (анализ результатов тестирования).

Test management или планирование работ.

Как и было сказано в предыдущей статье, на этой стадии тестировщик выясняет свой фронт работы, существующие требования, уточняет или набрасывает сам примерные сроки и готовит тест-план. Здесь звучит одно прекрасное слово – тест-план. Но что же это такое?

Тест план – это документ, который описывает весь объем работы по тестированию. Это не унифицированный и не стандартизированный документ. В каких-то компаниях он может существовать, а в каких-то может и не существовать. Однако, чтобы быть мастерами своего дела, нам все равно надо разобраться в этом. Итак, тест план может включать в себя такие сущности:

· Предмет тестирования. Т.е. что мы тестируем.

· График тестирования. Т.е. когда и в какие сроки.

· Обязанности и роли. Т.е. кто тестирует.

· Критерии начала/завершения тестирования. Т.е. на стадии планирования мы можем определиться, когда нам необходимо подключаться к тестированию, а когда его завершить (например, начать мы можем тогда, когда большая часть продукта будет разработана, а завершить – когда мы после очередной проверки не найдем ошибок).

· Подходы/техники/инструменты/виды тестирования. Я думаю, тут все понятно, кроме подходов и техник тестирования, но об этом ниже😊

· Браузеры, версии, разрешение экрана. Все это может быть определено требованиями и тогда эту информацию мы тоже можем поместить в наш тест план.

· Ссылки на спецификацию/документацию. Т.е. это и есть наши требования к ПО.

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

Test Design или проектирование тестов.

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

Выделяют очень много различных техник, кто-то придумывает их себя сам, но есть самые распространенные (ВАЖНО! На собеседовании очень любят задавать вопрос про то, какие техники тест-дизайна знает тестировщик):

1. Исчерпывающее тестирование.

2. Предугадывание ошибок.

3. ADHOC.

4. Классы эквивалентности.

5. Анализ граничных значений.

6. Причина / Следствие.

7. Попарное тестирование.

8. Таблица принятия решений.

9. Use case (пользовательский сценарий).

Статья получилась уже довольно большой, а чтобы объяснить понятным языком все эти техники тест-дизайна нужно будет написать еще столько же) Поэтому оставляю эту информацию вам, чтобы вы сами разобрались, что эти техники из себя представляют (ничего сложного в них нет, но на собеседовании будет очень жирненьким плюсом). P.s. Попробуй зайти в YouTube и поискать информацию там😊

Итак, что мы узнали сегодня:

1. Какие основные виды тестирования существуют.

2. Что такое тест план и какую информацию туда добавляют.

3. Что такое тест-дизайн и какие существуют техники тест-дизайна.