Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

testirovanie_dot-com

.pdf
Скачиваний:
85
Добавлен:
29.03.2015
Размер:
5.51 Mб
Скачать

Жизнь замечательных багов

209

 

Стандартный путь, принятый в софтверных компаниях, — это занести баг в СТБ.

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

Как фактически происходит занесение бага в СТБ? Например, так: вы

открываете веб-браузер;

печатаете в нем URL вашей СТБ в локальной сети и нажимаете

Enter;

после того как загрузилась страница СТБ, вводите имя пользователя и пароль;

нажимаете на кнопку "New bug" (Новый баг);

на веб-форме "Новый баг" заполняете поля и выбираете значения;

нажимаете на кнопку "Submit new bug" (Занести новый баг).

Все очень просто.

Кстати, отныне баг в зависимости от контекста будет иметь одно из следующих значений или оба значения:

баг как отклонение фактического результата от ожидаемого результата и/или

баг как созданная в СТБ виртуальная учетная карточка, являю-

щаяся, по чьему-либо субъективному мнению, презентацией некой проблемы.

Вчем разница, спросите вы. Отвечаю: проблема, занесенная в СТБ, может и не являться багом, например господин, опрометчиво занесший баг в СТБ, неправильно понял спек.

Это была ненавязчивая вводная часть, и настоящее веселье только начинается.

Атрибуты бага

BUG NUMBER (НОМЕР БАГА)

Каждому новому багу СТБ автоматически присваивает уникальный, следующий по порядку номер. Например, подходите вы к программисту и спрашиваете: "Слушай, браза, как там 1232 поживает?"

210

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

 

SUMMARY (КРАТКОЕ ОПИСАНИЕ)

Краткое описание — это максимально информативное и сжатое описание проблемы.

Как правило, текстовое поле для краткого описания не превышает 100 символов и в эти 100 символов (включая пробелы) нужно уместить информацию, достаточнуюдля понимания сути проблемы.

Кстати,

то, как тестировщик формулируеткраткое описание, наглядно говорит о его профессионализме.

Примерсамого плохого Summary

"Ничего не работает". За такое Summary раньше били по голове канделябром, и хотя сейчас времена другие, но все равно, пожалуйста, никогда,никогда не пишите в кратком описанииничего подобного.

Почему поле для краткого описания такое короткое? Потому что баги, занесенные в СТБ, выглядят примерно так, списком, на значения которого можно кликнуть мышкой и получить полную информацию по конкретным багам:

Bug

Summary

 

 

1

Неверное значение колонки result таблицы ее transaction для VISA

 

 

2

Неверное значение баланса Switch после покупки

 

 

3

Ошибка при логине: "SQL Error"

 

 

4

Корзина не сохраняет выбранные книги

 

 

Если есть номер спека, то можно давать краткое описание в таком формате:

<номер спека> : <само краткое описание>, например: 7422:неверноезначениебалансаSwitchпослепокупки.

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

можно сортировать по колонке Summary, таким образом баги, принадлежащиек одномуспеку, будут кучковаться вместе, и

можно искать по номеру спека, используя функциональность СТБ "Поиск". Очень, кстати, удобно и вам, и программистам, и продюсерам.

Жизнь замечательных багов

211

 

Итак, в кратком описании сжато и информативно излагаем суть проблемы.

DESCRIPTION AND STEPS TO REPRODUCE

(ОПИСАНИЕ И ШАГИ ДЛЯ ВОСПРОИЗВЕДЕНИЯ ПРОБЛЕМЫ)

Это многострочное текстовое поле. Я пользуюсь следующим форматом для заполнения этого атрибута:

Description:

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

Steps to reproduce:

Конкретные шаги для воспроизведения проблемы.

Bug: Фактический результат.

Expected: Ожидаемый результат.

Пример для бага 1

Description:

При оплате картой VISA в колонке result таблицы cc_transaction в базе данных записывается неверное значение.

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

Эккаунт: testuser1/pa$$w0rd

Наименование товара: book117 Данные карты:

Номер: 9999-5148-2222-1277

Окончание действия: 12/07 CW2: 778

SQL1: select result from cc_transaction where id = <номер заказа>;

Steps to reproduce:

1.Открой www.main.testshop.rs

2.Введи имя пользователя.

3.Введи пароль.

4.Нажми кнопку "Войти".

5.Введи наименование товара в поле поиска.

6.Нажми кнопку "Найти".

7.Кликни линк "Добавить в корзину".

8.Кликни линк "Корзина".

9.Кликни линк "Оплатить".

10.Выбери вид карты.

11.Введи номер карты.

12.Введи срок окончания действия.

13.Введи CW2.

14.Нажми кнопку "Завершить заказ".

15.Запиши номер заказа.

16.Запроси базу данных с SQL1.

Bug: 20. Expected:

10.

212

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

 

Важный момент:

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

Вот небольшой список наиболее часто встречающихся элементов веб-страницы, который позволит вам более четко описывать

ишаги для воспроизведения багов, и шаги тест-кейсов.

Ятекст. Вещь незаменимая

Текст (text)

Не знаю, какое описание дать здесь. Текст есть текст.

Кстати:

1.Текст может быть неверного содержания* (противоречащий спеку): например, неверное сообщение об ошибке.

2.Нужного текста может не быть вовсе*.

3.Может быть неправильным шрифт (font), цвет (color), размер

(size) текста.

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

Я линк. Просто линк

Линк (link)

Также известен как ссылка или гиперссылка. Если нажать на линк (или, по-простому, "кликнуть линк") (click link), то мы попадем

либо на другую веб-страницу,

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

Жизнь замечательных багов

213

 

 

 

 

 

 

Кстати:

 

 

 

1. Линк может

быть сломан

(broken link), т.е. нажимаем на линк

 

и никуда не

идем либо получаем сообщение, что страница не

 

найдена.

вести не туда , куда нужно (misleading link), напри-

 

2. Линк может

 

мер, вы кликаете на линк " Контактная информация", а попадаете

 

на страницу

'Корзина".

 

 

Для проверки сломанных линков есть прекрасный бесплатный тул,

 

называемый Хепи 's Link Sleuth (можете скачать его из Интернета).

 

 

 

 

 

Картинка (image)

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

Кстати:

Сломанная картинка (broken image): ситуация, когда, как правило, путь к графическому файлу в HTML-коде указан неверно или путь указан верно, но сам файл поврежден (corrupted/damaged) и на веб-стра- нице мы видим лишь рамку, в которой должна была быть картинка:

Слинкованная картинка (linked image)

По сути это линк, который представлен не текстом, а картинкой. Соответственно у слинкованной картинки могут быть болезни как линков, так и картинок.

214

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

 

Я имя текстового поля: А я текст внутри текстового поля

Однострочное текстовое поле (textbox)

Однострочное текстовое поле (или просто "текст-бокс") — это один из элементов веб-формы (web form), которая может быть на веб-стра- нице. Для примера: веб-форма всегда является частью веб-страницы с регистрацией, когда вы вводите имя, пароль, е-мейл (и т.д.) и нажимаете кнопку "Зарегистрироваться". Все остальные элементы, перечисленные далее:

многострочное текстовое поле;

поле для пароля;

радиокнопка;

чекбокс;

кнопка,

также являются элементами веб-формы.

Кстати,

текстовое поле используется для введения множества видов текстовой информации: от имени пользователя до ввода текста, увиденного на кепча (от англ. captcha, читается как кэпча).

Веб-индустрия использует кепча (которое является динамически сгенерированной картинкой) для того, чтобы превентировать автоматические программы от использования веб-сайта. Идея в том, что человек может распознать символы, изображенные на кепча, а компьютер нет. Вот пример кепча страница регистрации на Yahoo!. На ней изображено (буквы латинские): рЗт4ак:

Verify Your Registration

Moreinfo

*Enter the code shown:

This helps Yahoo! prevent automatedregistration.

В отношении проблем:

Размер текст-бокса (MAXLENGTH), т.е. максимальное количество символов, которое можно ввести в текстовое поле, может быть больше или меньше, чем указано в спецификации.

Проверка количества символов, которое может принять в себя текстовое поле, проводится в рамках тестирования интерфейса пользо-

вателя (UlTesting).

Жизньзамечательныхбагов

215

Я имя многострочного текстового поля:

А я текст внутри многострочного текстового поля. Такие вот дела.

Многострочное текстовое поле (text entry area)

используется для ввода информации, которая не умещается в однострочном текстовом поле. Например, для создания постинга на интернет-форумах под предмет сообщения (subject) отдается текстбокс, а под само сообщение — многострочное текстовое поле.

Кстати, прекрасным, истинно сероящичным тестом является проверка того,

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

Пример

При регистрации наш новый пользователь заполняет соответствующую веб-форму и нажимает на кнопку "Зарегистрироваться".

Некий файл (например, написанный на языке Python и живущий на сервере с приложением) трансформирует эту форму в язык, понятный базе данных (язык называется SQL Structured Query Language,

произносится как "эс-кью-эл"), и создает новую строку (record) в таблице, называемой, например, USER ADDRESS (адрес пользователя).

Допустим, что при создании таблицы USERADDRESS программист ошибочно указал максимальный размер колонки ADDRESS1 в 7 символов (VARCHAR (7)) вместо 37, положенных по спеку. Это приведет к тому, что при создании новой строки в USERADDRESS данные, включаемые в колонку ADDRESS1, будут ограничены 7 символами, а 8-й и прочие символы будут отсечены (truncated) (кстати, пробел — это тоже символ):

USER_ADDRESS

RECORD

 

ADDRESS 1

ADDRESS2

CITY

STAT

Country

ZIP CODE

ID

 

 

 

 

E

 

 

 

 

 

 

 

 

 

 

1

12

49th

Apt. 2

San Francisco

CA

USA

94118

 

 

 

 

 

 

 

2

121 Ano

 

Moscow

 

Russia

117602

 

 

 

 

 

 

 

3

221b Ba

 

London

 

UK

NW1

 

 

 

 

 

 

 

 

4

82

Boul

 

Paris

 

France

75018

 

 

 

 

 

 

 

 

Что делаем? Правильно, заносим баг, и, после того как баг зафиксирован и проверен нами, адреса, хвосты которых были отсечены, уже выглядят так:

216

 

 

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

USER_ADDRESS

 

 

 

 

 

 

 

 

 

 

 

 

 

 

RECORDJ

ADDRESS 1

ADDRESS2

CITY

STAT

Country

ZIP CODE

 

D

 

 

 

E

 

 

 

1

1249thAvenue

Apt. 2

SanFrancisco

CA

USA

94118

 

 

 

 

 

 

 

 

 

2

121AnokhinAvenue

 

Moscow

 

Russia

117602

 

 

 

 

 

 

 

 

 

3

221bBakerStreet

 

London

 

UK

NW1

 

 

 

 

 

 

 

 

4

82 Boulevard

 

Paris

 

France

75018

 

 

de Clichy

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кстати, хорошей идеей для ввода при тестировании является описательный ввод, например, в текст-бокс Адрес 1 (данные которого идут в ADDRESS1) нужно было бы ввести не милую сердцу 82 Boulevard de Clichy, а строку

"а запятая является 38-м символом, 11111111111"

и затем проверить базу данных.

Если ADDRESS 1 содержит строку

"а запятая является 38-м символом",

ни символом больше, ни символом меньше, то ADDRESS 1 вмещает ровно 37 символов и код ведет себя согласно спеку. В любом ином случае (36 или меньше символов либо 38 или больше символов) у нас есть баг.

Я имяполядляпароля: *******

Поле пароля (passwordfield)

Это однострочное поле для ввода текста с тем нюансом, что каждый символ, введенный в это поле, тут же автоматически преобразуется в * (звездочку, или, по-англ. — asterisk)либо в жирную метку (bullet).

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

Кстати, важной вещью в отношении пароля я&чяется профессиональная этика,

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

Жизнь замечательных багов

217

Ещеоднамысль

во множестве западных компаний каждый ваш ударпо клавишам клавиатуры (keystroke) невидимо для вас запечатлевается в текстовом файле (log), который является собственностью компании и который, если будет нужно (естественно, не во благо вам), будетподнят вашим менеджером и проанализирован.

Впрочем, так же могут быть подняты и проанализированы скриншоты (снимок изображения на экране вашего монитора), которые делаются с определенным интервалом (например, 60 секунд) и такжеявляютсясобственностьювашегоработодателя.

Кстати,

если уж заговорили об осторожности: в США недавно был создан судебный прецедент, согласно которому все содержимое папок е- мейла работника является собственностью работодателя, на это содержимое не распространяются законы о защите частной жизни (privacy), и соответственно работодатель может спокойно просматривать всю вашу корреспонденцию, посланную с рабочего е- мейла или полученную на него.

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

В отношении проблем:

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

Я имя ниспадающего меню:

Я первое значение списка

V

 

 

 

 

 

 

Я первое значение списка

 

 

 

Я второе значение списка

 

 

 

Я третье значение списка

 

 

 

 

 

 

Ниспадающее меню (pull down menu)

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

218

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

 

Я имя радиокнопки:

И я тоже имя радиокнопки:

либо

Яимя радиокнопки:

Ия тоже имя радиокнопки:

Радиокнопка (radio button)

Радиокнопка, также известная под неудобоваримым именем "зависимая кнопка", — это элемент веб-формы, который позволяет выбрать одно, и только одно, значение из списка своих собратьев. Список называется группой радиокнопок, которая объединена одним названием и/или логичной принадлежностью к группе. Значения радиокнопок взаимоисключаемы, и, таким образом, кнопки взаимосвязаны.

Кстати,

согласно www.multitran.ru английское название выбрано по аналогии с кнопками выбора диапазона волн радиоприемника, когда в каждый текущий момент может быть выбрана только одна волна.

Пример

возьмемгруппуподназванием "Пол".Можетбытьлибо так:

Пол:

Муж. Жен.

либоэтак:

Пол:

Муж. Жен.

В отношении терминологии.

Можно выбрать (select) радиокнопку:

в первом случае — «выбрали радиокнопку "Муж."», во втором случае — «выбрали радиокнопку "Жен."».

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]