Изучение и анализ предмета тестирования



Вопрос:что можно протестировать в интернет-проекте? Легитимные варианты ответа:

интерфейс пользователя (например, что определенная кноп­ка называется "Купить", а не "Кипуть");

скорость работы веб-сайта (например, то, что при одно­временной работе с сайтом 200 пользователей скорость за­грузки веб-страницы составляет не более 5 секунд);

документацию (например, что спек не содержит противо­речий и неточностей).

Все это правильно, но есть нечто более важное.

Вопрос:для чего пользователи приходят на наш веб-сайт? Ответ:для удовлетворения своих потребностей — покупка книг, чтение анекдотов, проверка баланса кредитной карты и т.д. и т.п.

Вопрос:как можно удовлетворить потребности пользователя? Ответ:нужно

придумать(продюсер),

написать(программист),

протестировать(тестировщик) и

передатьпользователям (релиз-инженер)

средства, которые эти потребности удовлетворят. Этими средст­вами являются ФУНКЦИОНАЛЬНОСТИ интернет-проекта.

Вот формальное определение:

функциональность(functionality, feature) — это средство для решения некой задачи.

Примеры из реальной жизни

Функциональность компьютерных колонок "Volume" решает задачу

"Как изменить громкость звука".

Функциональность "Казино" решает задачу "Как незаметно для себя

потратить все отпускные деньги".

Функциональность "Принтер" решает задачу "Как распечатать документ".


134


Тестирование Дот Ком. Часть 2


Примеры из виртуальной жизни

Функциональность "Корзина" решает задачу "Как хранить информацию

о товаре, выбранном пользователем".

Функциональность "Добавление товара в корзину" решает задачу "Как

добавить товар в корзину".

Функциональность "Удаление товара из корзины" решает задачу "Как

удалить товар из корзины".

Проверка работы функциональностей называется функциональ­ным тестированием(functional testing).

Стратегический момент: так как функциональное тестирова­ние это ось, вокруг которой вертится деятельность большин­ства тестировщиков, то, следовательно, вокруг нее же будет "вертеться " и большинство наших последующих бесед.

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

Основными источниками знания о функциональностях служат:

документация...

...в электронном или распечатанном виде — спеки, макеты, блок-схемы и прочие руководящие документы, на основа­нии которых программист пишет код, а тестировщик пла­нирует тестирование. Примером "прочего руководящего документа" может служить "Инструкция Мастеркард о формате файлов с транзакциями";

хомо сапиенс,т.е.

информация постигается через межличностное общение.Так, в случае возникновения сомнений никогда не мешает подойти к продюсеру, хлопнуть его по плечу и попросить: "Старина, будь добр, объясни мне по-простому пункт 146 вот этого спека". Здоровая дружеская атмосфера в коллек­тиве — это отличное средство для предотвращения оши­бок в толковании(идеальной питательной среды для багов);

сам веб-сайт,

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


Цикл тестирования ПО


135


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

В интернет-компаниях эксплоринг, как правило, применяется в двух случаях:

• когда написан код и отсутствует документация.Подоб­ная ситуация часто поджидает первого тестировщика, при­ходящего в работающую интернет-компанию;

для самообучения.Например, в крупных интернет-компа­ниях вновь нанятые тестировщики в течение нескольких недель проходят тренинг, часть которого посвящена экс-плорингу.

Кстати, при эксплоринге источником ожидаемого результата слу­жат наши драгоценные жизненный опыт, опыт работы и другие ранее перечисленные помощники, не относящиеся к спекам.

Кстати, хорошая идея для тестировщика, помогающая лучше понять функциональности своего проекта, — это стать обычным пользовате­лем своего и аналогичных веб-сайтов. Выражение "Eat your own dog food" ("Ешь еду своей собаки") для тестировщика означает "Если ты тестируешь веб-сайт, продающий книги, то ты должен сам покупать книги по Интернету".

Идем дальше.

Конечной целью этапа Изучение и анализ предмета тестирова­нияявляется получение ответов на два вопроса:

а. Какие функциональности предстоит протестировать?

б. Как эти функциональности работают?

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

Планирование тестирования

Эта стадия требует от тестировщика наибольшего творчества и профессионализма, так как именно на ней решается множество головоломок, отвечающих на один простой вопрос: "Как будем тестировать?", причем качество продукта (а значит, и счастье поль­зователей) напрямую зависит от, не побоюсь сказать, мудрости найденных решений.


136


Тестирование Дот Ком. Часть 2


Мудрость найденных решений проявляется в двух вещах:

а) кратких, простых и изящных путях для проверки функциональностей;

б) компромиссе между

объемом тестирования, который возможен в теории;

объемом тестирования, который возможен на практике.

Ответы на "один простой вопрос" предстают перед миром в виде тест-документации(test documentation), ядро которой составля­ют наши любимые тест-кейсы. Во многих случаях создание тест-документации сопровождается написанием тестировщиком вспо­могательных тулов (tool — компьютерная программа), которые облегчают исполнение тестирования.

Идем дальше.

Исполнение тестирования

Суть исполнения тестирования — это практический поиск багов в написанном коде с использованием тест-кейсов, соз­данных ранее.

Исполнение функционального тестирования выглядит следую­щим образом:

сначала идет проверка новых функциональностейпо но­вым тест-кейсам. Кстати, давайте вспомним, что во многих случаях новые тест-кейсы редактируются, проходя обкатку первым исполнением;

затем проверка старых функциональностейпо старым тест-кейсам.

То же самое, но в профессиональной терминологии:

тестирование новых функциональностей(new feature test­ing) и соответственно

регрессивное тестирование(regression testing).

Мы исполняем тест-кейсы, рассчитывая найти баги. Давайте еще раз вспомним, что

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

после того, как программист починил баг,тестировшик проверяет:


Цикл тестирования ПО


137


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

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

Тестирование, исполняемое в пунктах а) и б), также назы­вается регрессивным тестированием(bug regression testing). Соответственно выражение "regress that bug" (проведи регрес­сивное тестирование этого бага) означает, что нужно последова­тельно исполнить пункты а) и б).

Идем дальше.

Давайте сделаем небольшое обобщение.

Так как этапы 1. Изучение и анализ предмета тестированияи

2. Планирование тестированияпереплетены между собой, мы объединим их в контейнер знания, который называется подго­товка к тестированию(test preparation или, по-простому, test preps).

Итак, большая часть нашего дальнейшего общения будет посвя­щена двум вещам:

Подготовка к тестированию(testpreparation);

Исполнение тестирования(test execution).

Краткое подведение итогов

Функциональность — это средство для решения некой задачи.

Проверка работы функциональностей называется функцио­нальным тестированием.

Эксплоринг — это изучение того, как работает веб-сайт с точки зрения пользователя.

Ядро тест-документации составляют наши любимые тест-кейсы.

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

Мы выделили два основных этапа цикла:

 

подготовкак тестированию;

исполнениетестирования.


138


Тестирование Дот Ком. Часть 2


7. Исполнение тестирования идет в два этапа:

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

регрессивное тестирование.

Вопросы для самопроверки

1. Почему полезно представлять себе цикл тестирования ПО неза­висимым от цикла разработки ПО?

2. Назовите источники информации о функциональностях.

3. Что такое эксплоринг и как он помогает в состоянии документа-ционного вакуума?

4. Назовите два основных элемента стадии подготовка к тестиро­ванию.

5. Что такое регрессивное тестирование? Назовите две ситуации, при которых проводится регрессивное тестирование.

6. Почему сначала тестируются новые функциональности?


КЛАССИФИКАЦИЯ ВИДОВ ТЕСТИРОВАНИЯ

• ПО ЗНАНИЮ ВНУТРЕННОСТЕЙ СИСТЕМЫ

•ПО объекту тестирования

• ПО субъекту тестирования

• ПО ВРЕМЕНИ ПРОВЕДЕНИЯ ТЕСТИРОВАНИЯ

•ПО КРИТЕРИЮ "ПОЗИТИВНОСТИ" СЦЕНАРИЕВ

• ПО степени изолированности тестируемых

КОМПОНЕНТОВ

• ПО СТЕПЕНИ АВТОМАТИЗИРОВАННОСТИ ТЕСТИРОВАНИЯ
• ПО СТЕПЕНИ ПОДГОТОВКИ К ТЕСТИРОВАНИЮ


Л

юбая классификация составляется по определенному при­знаку, например:

по полулюди делятся (классифицируются) на мужчин и женщин;

по наличиюкошки люди делятся на тех, у кого кошка есть, и тех, у кого ее нет;

по ростулюди делятся на группы в зависимости от коли­чества сантиметров от земли до макушки (например, один будет в группе "181 см", а другой — в группе "185 см").

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

бытьмужчиной,

иметькошку и

вырастидо 175 см.

 

139



 


Классификация видов тестирования


141


Немедленная польза от классификаций в отношении видов тести­рования заключается в том, что упорядоченная и обобщенная информация легче воспринимается, усваивается и запоминается.

Замечу, что видов тестирования существует огромное количе­ство и мы не будем пытаться объять необъятное, а поговорим об основных видах, которых, впрочем, и так хватит с лихвой для любого интернет-проекта.

Сначала перечислим, потом объясним. Объяснения призваны дать общее понимание каждого из элементов, в то время как по­следующие разговоры это понимание расширят и углубят.

Формат изложения:


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

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






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