testirovanie_dot-com
.pdfЖизнь замечательных багов |
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 и больше) взаимоисключаемых собратьев, в случаях же когда элемент один или элементы взаимонезависимы, используется чекбокс.