Источники ожидаемого результата
Роман Савин
COM |
Teстирование
Или Пособие по жестокому
Обращению с багами
В интернет-стартапах
Роман Савин
Одна из причин, побудивших автора написать эту книгу, — «осознание собственного бессилия в поисках сиюминутного практического смысла при чтении классических сочинений по теории тестирования...», в особенности когда ты в поисках работы и время дорого. «Наиболее эффективный подход для тренинга тестировщиков — дать им практический инструментарий, поставить в нужную сторону мозги — и в бой...»
Эта книга и есть тот самый практический инструментарий. Здесь вы найдете проработанную структуру, профессиональное изложение темы, множество примеров и советов, а также «...легион того, о чем вам напрямую не напишут и не скажут, но что может быть не менее важно для выживания в софтверной компании, чем профессиональные знания».
Но это не все. Особенность книги в том, как излагается материал. Роман Савин отказался от традиционных канонов написания учебных пособий и превратил книгу в живую непринужденную беседу, насыщенную шуткой и иронией, не чуждую отступлений и даже воспоминаний, которые тем не менее встроены в контекст и работают на предмет как иллюстрационный материал.
Читать книгу интересно и весело. Убедитесь в этом сами.
Роман Савин
сом |
Tестирование
Или Пособие по жестокому
|
|
Обращению с багами
В интернет-стартапах
ИЗДАТЕЛЬСТВО «ДЕЛО» • МОСКВА • 2007
УДК 004.415.53 ББК 32.973.2-018.2я7 С13
Савин Р.
С13 Тестирование Дот Ком, или Пособие по жестокому обращению с багами в интернет-стартапах. — М.: Дело, 2007. — 312 с.
ISBN 978-5-7749-0460-0
Этот курс лекций создан для тех, кто хочет обучиться тестированию, получить работу тестировщика в российской или западной интернет-компании, понять, как вести себя в корпоративном окружении, и добиться профессионального и личностного роста. Он будет интересен и участникам процесса разработки программного обеспечения, рекрутерам, людям, связанным с интернетом или пишущим о нем, и просто всем желающим понять кухню интернет-стартапов.
Книга целиком базируется на личном опыте освоения — с нуля — профессии тестировщика и многолетней работы автора в этом качестве в интернет-компаниях США.
УДК 004.415.53 ББК 32.973.2-018.2я7
ISBN 978-5-7749-0460-0 О Савин Р., 2007
© Корсун С.Н., иллюстрации, 2007 © Оформление. Издательство "Дело", 2007
СОДЕРЖАНИЕ
Введение................................................................................... 10
Часть 1
ЧТО ТАКОЕ БАГ................................................................................................... 17
|
|
ОПРЕДЕЛЕНИЕ БАГА....................................................................................... 18
ТРИ УСЛОВИЯ ЖИЗНИ И ПРОЦВЕТАНИЯ БАГА......................................... 18
ЧТО ТАКОЕ ТЕСТИРОВАНИЕ......................................................................... 19
ИСТОЧНИКИ ОЖИДАЕМОГО РЕЗУЛЬТАТА................................................. 20
ФУНКЦИОНАЛЬНЫЕ БАГИ И БАГИ СПЕКА................................................... 21
ЦЕЛЬ ТЕСТИРОВАНИЯ DECODED................................................................ 25
ЦЕЛЬ ТЕСТИРОВАНИЯ................................................................................... 25
ЧЕРНАЯ МАГИЯ И ЕЕ НЕМЕДЛЕННОЕ РАЗОБЛАЧЕНИЕ........................... 25
Разоблачение концепции о 100%-м тестировании ПО Разоблачение концепции о количестве багов, найденных до релиза
ИДЕЯ О СТАТИСТИКЕ ДЛЯ ПОСТРЕЛИЗНЫХ БАГОВ................................ 29
ТЕСТИРОВАНИЕ ИОЛ (Quality Assurance).................................................... 32
ИСКУССТВО СОЗДАНИЯ ТЕСТ-КЕЙСОВ.................................................. 35
ЧТО ТАКОЕ ТЕСТ-КЕЙС.................................................................................. 35
СТРУКТУРА ТЕСТ-КЕЙСА............................................................................... 37
ИСХОД ИСПОЛНЕНИЯ ТЕСТ-КЕЙСА (test case result)............................... 39
ПОЛЕЗНЫЕ АТРИБУТЫ ТЕСТ-КЕЙСА.......................................................... 39
ТЕСТ-КЕЙСЫ, УПРАВЛЯЕМЫЕ ДАННЫМИ................................................... 43
ПОДДЕРЖИВАЕМОСТЬ ТЕСТ-КЕЙСА........................................................... 44
|
|
СКОЛЬКО ОЖИДАЕМЫХ РЕЗУЛЬТАТОВ МОЖЕТ БЫТЬ
В ОДНОМ ТЕСТ-КЕЙСЕ?................................................................................. 47
3
Содержание |
|
ПРОБЛЕМНЫЕ ТЕСТ-КЕЙСЫ......................................................................... 50
ТЕСТ-КОМПЛЕКТЫ........................................................................................... 55
СОСТОЯНИЯ ТЕСТ-КЕЙСА............................................................................ 62
А НАПОСЛЕДОК Я СКАЖУ............................................................................... 63
ЦИКЛ РАЗРАБОТКИ ПО................................................................................. 67
ИДЕЯ................................................................................................................... 69
Действующие лица
Документ о требованиях маркетинга (MRD)
РАЗРАБОТКА ДИЗАЙНА ПРОДУКТА И СОЗДАНИЕ СПЕКА........................ 71
Разница между идеей и дизайном
Действующие лица
Спеки
Болезни спеков
Статусы спека
"Черновик"
"Ожидание утверждения "
"Утверждено "
Борьба с неверными толкованиями спека
Макеты
Блок-схемы
Примеры
КОДИРОВАНИЕ................................................................................................. 86
Действующие лица
Документ о внутреннем дизайне кода
Личная версия сайта программиста
Причины появление багов кода
Меры по оздоровлению кода и превентированию багов
Юнит-тестирование Концепция стоимости бага
|
|
Три основных занятия программиста Необходимость замораживания кода Виды багов кода Хранение документации в CVS Обсуждение тест-кейсов
ИСПОЛНЕНИЕ ТЕСТИРОВАНИЯ И РЕМОНТ БАГОВ................................ 104
РЕЛИЗ.............................................................................................................. 105
Определение, виды и версии релизов Действующие лица Создаем www.testshop.rs
Содержание
5
Архитектура www.testshop.rs
CVS
Что такое билд
Первый релиз www.testshop.rs
Бранчи CVS
Бета-тестирование
БОЛЬШАЯ КАРТИНА ЦИКЛА РАЗРАБОТКИ ПО.......................................... 122
Часть 2
ЦИКЛ ТЕСТИРОВАНИЯ ПО....................................................................... 131
ИЗУЧЕНИЕ И АНАЛИЗ ПРЕДМЕТА ТЕСТИРОВАНИЯ............................... 133
Что такое функциональность Источники знания о функциональности Эксплоринг
ПЛАНИРОВАНИЕ ТЕСТИРОВАНИЯ............................................................. 135
ИСПОЛНЕНИЕ ТЕСТИРОВАНИЯ................................................................. 136
КЛАССИФИКАЦИЯ ВИДОВ ТЕСТИРОВАНИЯ.................................. 139
ПО ЗНАНИЮ ВНУТРЕННОСТЕЙ СИСТЕМЫ.............................................. 142
Черный ящик (black box testing) Белый ящик (white box testing) Серый ящик (grey box testing)
ПО ОБЪЕКТУ ТЕСТИРОВАНИЯ................................................................... 151
Функциональное тестирование (functional testing) Тестирование интерфейса пользователя (UI testing) Тестирование локализации (localization testing) Тестирование скорости и надежности
(load/stress/performance testing) Тестирование безопасности (security testing) Тестирование опыта пользователя (usability testing) Тестирование совместимости (compatibility testing)
ПО СУБЪЕКТУ ТЕСТИРОВАНИЯ................................................................. 157
Альфа-тестировщик (alpha tester) Бета-тестировщик (beta tester)
ПО ВРЕМЕНИ ПРОВЕДЕНИЯ ТЕСТИРОВАНИЯ........................................ 157
До передачи пользователю — альфа-тестирование (alpha testing)
Тест приемки (smoke test, sanity test или confidence test)
6
Содержание
Тестирование новых фунщиональностей
(new feature testing) Регрессивное тестирование (regression testing) Тест сдачи (acceptance of certification test)
После передачи пользователю — бета-тестирование
(beta testing)
ПО КРИТЕРИЮ "ПОЗИТИВНОСТИ" СЦЕНАРИЕВ..................................... 158
Позитивное тестирование (positive testing) Негативное тестирование (negative testing)
ПО СТЕПЕНИ ИЗОЛИРОВАННОСТИ ТЕСТИРУЕМЫХ
КОМПОНЕНТОВ............................................................................................. 160
Компонентное тестирование (component testing) Интеграционное тестирование (integration testing) Системное (или энд-ту-энд) тестирование (system or end-to-end testing)
ПО СТЕПЕНИ АВТОМАТИЗИРОВАННОСТИ ТЕСТИРОВАНИЯ.............. 166
Ручное тестирование (manual testing) Автоматизированное тестирование (automated testing) Смешанное/полуавтоматизированное тестирование (semi automated testing)
ПО СТЕПЕНИ ПОДГОТОВКИ К ТЕСТИРОВАНИЮ.................................... 169
Тестирование по документации (formal/documented
testing) Эд Хок тестирование (Ad hoc testing)
Часть 3
ПОДГОТОВКА К ТЕСТИРОВАНИЮ
НИГИЛИСТИЧЕСКИЙ НАСТРОЙ И ПРАКТИЧЕСКАЯ
МЕТОДОЛОГИЯ............................................................................................... 173
МЕНТАЛЬНЫЙ НАСТРОЙ ТЕСТИРОВЩИКА.............................................. 174
МЕТОДЫ ГЕНЕРИРОВАНИЯ ТЕСТОВ.. :.................................................... 178
Черновик—Чистовик (dirty list — white list) Матричная раскладка (matrices) Блок-схемы (flowchart)
МЕТОДЫ ОТБОРА ТЕСТОВ.......................................................................... 188
Оценка риска (risk estimate) Эквивалентные классы (equivalent classes) Пограничные значения (boundary values)
Содержание
7
ИСПОЛНЕНИЕ ТЕСТИРОВАНИЯ
ЖИЗНЬ ЗАМЕЧАТЕЛЬНЫХ БАГОВ............................................................ 205
ЧТО ТАКОЕ СИСТЕМА ТРЭКИНГА БАГОВ.................................................. 205
АТРИБУТЫ БАГА............................................................................................ 209
Bug number (номер бага) Summary (краткое описание) Description and steps to reproduce
(описание и шаги для воспроизведения проблемы)
Элементы веб-страницы
Текст (text)
Линк (link)
Картинка (image)
Слинкованная картинка (linked image)
Однострочное текстовое поле (textbox)
Многострочное текстовое поле (text entry area)
Поле пароля (password field)
Ниспадающее меню (pull down menu)
Радио кнопка (radio button)
Чекбокс (checkbox)
Кнопка (button)
Attachment (приложение)
Submitted by (автор бага)
Date submitted (дата и время рождения бага)
Assigned to (держатель бага)
Assigned by (имя передавшего баг)
Verifier (имя того, кто должен проверить ремонт)
Component (компонент)
Found on (где был найден баг)
Version found (версия, в которой был найден баг)
Build found (билд, в котором был найден баг)
Version fixed (версия с починенным кодом)
Build fixed (билд с починенным кодом)
Comments (комментарии)
Severity (серьезность бага)
Priority (приоритет бага)
Notify list (список для оповещения)
Change history (история изменений)
Туре (тип бага)
Status (статус)
Resolution (резолюция)
Not assigned (не приписан)
Assigned (приписан)
Fix in progress (баг ремонтируется)
Fixed (баг отремонтирован)
Build in progress (билд на тест машину в процессе)
Verify (проведи регрессивное тестирование)
8
Содержание
Fix is verified (ремонт был успешен)
Verification failed (ремонт был неуспешен)
Can't reproduce (не могу воспроизвести)
Duplicate (дубликат)
Not a bug (не баг)
3rd party bug (не наш баг)
No longer applicable (поезд ушел)
ПРОЦЕСС ТРЭКИНГА БАГОВ....................................................................... 245
Концептуальное рассмотрение процесса Процесс и атрибуты Конкретный пример
ИСПОЛНЕНИЕ ТЕСТИРОВАНИЯ. СТАДИЯ 1:
ТЕСТИРОВАНИЕ НОВЫХ ФИЧА(new feature testing)...................... 257
ТЕСТ-СМЕТА (test estimation)........................................................................ 259
КРИТЕРИЙ НАЧАЛА/ЗАВЕРШЕНИЯ (entry/exit criteria).............................. 265
ТЕСТ-ПЛАН (test plan).................................................................................... 266
ИСПОЛНЕНИЕ ТЕСТИРОВАНИЯ. СТАДИЯ 2:
РЕГРЕССИВНОЕ ТЕСТИРОВАНИЕ(regression testing).................... 271
ВЫБОР ТЕСТ-КОМПЛЕКТОВ ДЛЯ РЕГРЕССИВНОГО
ТЕСТИРОВАНИЯ............................................................................................ 273
РЕШЕНИЕ ПРОБЛЕМЫ ПРОТИВОРЕЧИЯ.................................................. 277
Приоретизация тест-комплектов и тест-кейсов Оптимизация тест-комплектов Найм новых тестировщиков Автоматизация регрессивного тестирования
Часть 4
КАК УСТРОИТЬСЯ НА ПЕРВУЮ РАБОТУ......................................... 285
МЕНТАЛЬНЫЙ НАСТРОЙ............................................................................. 285
ЭТАПЫ ПОИСКА ПЕРВОЙ РАБОТЫ ТЕСТИРОВЩИКОМ......................... 287
Составление резюме
Работа с агентством по трудоустройству
Компания по рекламе себя
Интервью
Нюансы живого интервью
Список типичных вопросов и правильных ответов
ИСТОРИЯ ОБ ОЛЕ И ДЖОРДЖЕ................................................................. 306
Послесловие............................................................................ 308
Моим любимым Маме и Марине посвящается,
чьи любовь и вера — самое драгоценное,
что я получил от жизни...
ВВЕДЕНИЕ
Основа бэкграунда тестировщика —
это логика, здравый смысл и жизненный опыт.
Народная мудрость
Дорогие друзья,
я написал эти лекции по практике тестирования, чтобы просто и задушевно рассказать вам основные вещи, которые понадобятся для успешного старта и не менее успешной работы в интернет-компании в качестве тестировщика.
Я также уверен, что тихие вечера, проведенные за чтением моего скромного труда, откроют много полезного любому человеку, имеющему отношение к процессу создания программного обеспечения (ПО),так как качество, как тишина в кинозале, — дело общее.
Отдельной группой благодарных читателей, несомненно, выступят профессиональные рекрутеры,нанимающие народ для ударного труда в интернет-компаниях.
Кроме того, я надеюсь, что материал будет просто интересен всем, кто пользуется Интернетоми желает узнать, как работают интернет-компании.
Приведя десятки примеров, я попытался максимально проиллюстрировать материал,так, чтобы даже сугубо технические детали были понятны самому широкому кругу читателей.
Моя цель — не показать, что я знаю материал (как это делается при защите диплома), а помочь ВАМ узнать материал,и иллюстрации (текстовые и графические) — это лучшее вспомогательное средство, для того чтобы
• легче понять и усвоить смысл сказанного и
• оставить в памяти якорь ассоциациимежду иллюстрацией и проиллюстрированной мыслью.
Идем дальше.
Помимо просьб друзей, требований жены и намечающегося кризиса среднего возраста на подвиг меня толкнуло то, что в начале
10
Введение
11
своей работы не раз и не два я пытался осилить классические сочинения по теории тестирования, но каждый раз осознание собственного бессилия в поисках сиюминутного практического смыслане давало мне дочитать очередной фолиант.
Пример
Безработная девушка Маша П. захотела стать бухгалтером. Она приходит на соответствующие курсы, но вместо прикладных, оплачиваемых знаний по назначению счетов и инструкций МНС ей преподают теорию макроэкономики и историю бухгалтерии. Маша думает, что она не сможет осилить бухгалтерию, и бросает курсы. В итоге Родина теряет потенциально блестящего бухгалтера и обретает реально радикального члена компартии.
Я преклоняюсь перед предметом "история". О пользе Теории (с большой буквы "Т") и говорить не приходится, но, как я убедился на своем многолетнем опыте работы и преподавания, наиболее эффективный подход к тренингу тестировщиков заключается в том, чтобы дать им практический инструментарий, направить мозги в нужную сторону— и в бой,а теоретические метания тридцатилетней давности можно почитать на досуге, после того как устроился на работу.
Кроме того, есть
• политические нюансы работы;
• распространенные ошибки менеджмента;
• продюсеры, программисты и релиз-инженеры, работу которых нужно понимать изнутри, — .
в общем легион того, о чем вам напрямую не напишут и не скажут,но что может быть не менее важно для выживания в софтверной компании, чем профессиональные знания.
Будучи человеком честным и в некоторой степени благородным, признаюсь, что позаимствую классическое начало книг о тестировании, заключающееся в трусливом: "Не используйте знания из этой книги, если речь идет о тестировании критического ПО ".
Итак,
я свидетельствую,что все, о чем я расскажу, действительно работает, и работает именно так в крупнейших западных интернет-компаниях;
я также свидетельствую,что все, о чем я расскажу, в силу объективных причин не может на 100 процентов гарантировать ПО от наличия проблем.
12
Введение
Поэтому сразу предупреждаю: эта книга не предназначена для тех, кто собирается тестировать критическое ПО, связанное, например, с мониторингом работы сердечной мышцы, или ПО для поражения точечных целей в странах с большими запасами нефти.
Серьезно, если речь идет о жизни людей, лучше скормите эту книгу своему попугаю-жако(о попугаях позже).
Два важных момента:
1. В отличие от деятельности юридической деятельность тести-
ровочная (для коммерческих проектов) не регулируется нор
мативными актами или другими формальными источниками.
Поэтому нет обязательных для исполнения правил о том, как эффективно протестировать ПО, какие документы нужно создать и в какой форме они должны быть.
Никто не возьмет вас за горло из-за того, что ваш тест-план не соответствует букве некого закона, пролоббированного некой продажной шкурой из не менее продажной фракции в интересах всем хорошо известной финансово-промышленной группы N.
В цехе тестировщиков ничто не является догмой (nothing is set in stone) и построение добротной системы поиска и превентиро-вания ошибок в ПОполностью отдается на откуп профессионализму, добросовестности и творчеству тех, кто работает в конкретной интернет-компании.
Поэтому
многие вещи, о которых пойдет речь (подходы, документы, процессы, даже названия),
• с одной стороны, имеют огромное количество вариаций в существующих интернет-компаниях и,
• с другой — могут практически использоваться в предложенной форме или, еще лучше, быть подогнанными вами под ту компанию, в которой вы работаете или, несомненно, будете работать в ближайшем будущем.
2. "То, что русскому хорошо, — для немца смерть". По аналогии:
• подходы к тестированию,
• степень формализации процессов и
• используемые документы,
Введение
13
которые эффективно работают вкрупных устоявшихся интернет-компаниях, могут быть неприемлемы для интернет-стартапов (startup — молодая, амбициозная, многообещающая компания, живущая, как правило, короткую, но яркую жизнь), и наоборот.
Исходя из того что подавляющее большинство интернет-компаний — это стартапы,говорить будем о том, как эффективно провести тестирование и организовать процессы по улучшению качества именно в стартапах с прицелом на то, чтобы заложить фундамент департамента качества (QA department) для крупной устоявшейся интернет-компании, стать которой мечтает каждый стартап.
Идем дальше.
Вопрос дня:Что самое главное в нашем деле? Ответ дня: РЕЗУЛЬТАТ!
Человек может быть прекрасным семьянином, увлекаться фотографией и превосходно петь арию "Libiamo Amor" из "Травиаты", но единственная и неповторимая прелесть его как тестиров-щика — это РЕЗУЛЬТАТ.
К вопросу о постановке мозгов и попугаях:
перед покупкой своего попугая-жако Василия я прочитал кучу литературы, но лишь одна мысль позволила мне осознать самое главное (в смысле домашних попугаев):
"У вас есть хобби, друзья и работа. У вашего попугая есть только вы ".
Так вот по аналогии:
Вы можете быть наделены множеством самых прекрасных и вечных добродетелей. Но в вашей работе тестировщика есть единственный смысл — РЕЗУЛЬТАТ.
Каков же этот РЕЗУЛЬТАТ(пишу "РЕЗУЛЬТАТ" заглавными буквами в последний раз)?
Спрашиваете — отвечаем:
результатом работы тестировщика является счастье конечного пользователя(сказать "удовлетворение клиента" как-то язык не поворачивается). Причем "счастье" не в глобальном его значении, а та его часть, которая связана с качеством вашего продукта.
14
Введение
Например,
некто Виктор Буянов бродит по Интернету в поисках диска с московским концертом Билли Джоела. Вот он наконец находит то, что искал, заполняет все необходимые формы и нажимает кнопку "Купить". Если
• на следующей странице будет написано: "Дорогой Виктор, мы
получили ваш заказ, ждите посылку" и
• через неделю почтальон принесет сам диск,
то честь и хвала вам как тестировщикам.
Если же
на следующей странице красуется "500 — Internal Server Error" (внутренняя ошибка сервера номер 500)... и тишина,
то пишите объяснительные.
Идем дальше.
Я дам вам знания, с которыми можно пройти интервью, получить интересную работу и начать новую жизнь, но кроме прикладных моментов следует твердо знать, что тестировщикам большую часть заработной платы платят за честность,так как именно нашему брату оказано доверие сказать "Поехали". И даже абсолютно далекий от тестирования господин Буянов косвенно подтвердил своим выбором мои слова (дальше поются строчки из припева песни Билли Джоела "Честность" ("Honesty")):
Honesty is hardly ever heard.
And mostly what I need from you.
(Честность — это 50% + 1 единица того, что я жду от тебя.)
Перевожу тему.
Будет дано множество примеров того, что мы работаем на некий онлайн-стартап www.testshop.rs (rs — это не глобальный домен, как com или ru, а мои инициалы).
Многие термины будут написаны по-английски с немедленным русским переводом и наоборот. Знание родной терминологии поможет работе в инофирме.
Пользуясь случаем, хочу поблагодарить (в алфавитном порядке):
Алекса Хатилова(Yahoo!) за превосходные лекции, многочасовые консультации по телефону и демонстрацию силы аналогий и примеров из жизни и
Никиту Тулинова(Sun Microsystems), который принял меня, как брата, и наставил на путь истинный.
Итак, в путь. Если что, пишите на qatest@gmail.com.
ЧАСТЬ 1
• ЧТО ТАКОЕ БАГ
• ЦЕЛЬ ТЕСТИРОВАНИЯ DECODED
• ИСКУССТВО СОЗДАНИЯ ТЕСТ-КЕЙСОВ
• ЦИКЛ РАЗРАБОТКИ ПО
ЧТО ТАКОЕ БАГ
• ОПРЕДЕЛЕНИЕ БАГА
• ТРИ УСЛОВИЯ ЖИЗНИ И ПРОЦВЕТАНИЯ БАГА
• ЧТО ТАКОЕ ТЕСТИРОВАНИЕ
• ИСТОЧНИКИ ОЖИДАЕМОГО РЕЗУЛЬТАТА
• ФУНКЦИОНАЛЬНЫЕ БАГИ И БАГИ СПЕКА
Л |
огический закон исключенного третьего гласит, что любая вещь — это либо а, либо не-а.Третьего не дано, т.е. если у вас есть часы "Брегет" за номером 5, то любая вещь в этом мире будет либо вашими часами "Брегет" за номером 5, либо чем-то другим.
Представим себе конвейер, в конце которого стоим мы. Лента конвейера движется, и перед нами по очереди появляется по одному предмету. Задача проста — ожидать появления ваших часов "Брегет" за номером 5 и говорить "баг" при появлении любогопредмета, отличного от них.
Нетрудно догадаться, что такие предметы, как
• пакет кефира;
• будильник "Слава";
• буклет с предвыборными обещаниями кандидата в президенты Н.,
будут для нас багами.
Далее. Рассмотрим, что объединяет следующие ситуации.
17
18
Тестирование Дот Ком. Часть 1
1. Девушка рекламирует себя как хорошую, на все руки хозяйку, а утром выясняется, что она даже яичницу пожарить не в состоянии.
2. Вы купили книгу по интернет-тестированию, а в ней рассказывается о приготовлении яичницы.
3. Девушка из пункта 1 прочитала книгу из пункта 2, но яичница пересолена.
Если возвыситься над яичницей, фигурирующей в каждом из трех пунктов, и абстрагироваться от женщин, карт и вина, то мы увидим, что общее — это отклонение фактического от ожидаемого.
Разбор ситуаций.
1. Ожидаемый результат-— девушка умеет готовить. Фактический результат— утро без завтрака.
2. Ожидаемый результат— знания по тестированию. Фактический результат— знания по кулинарии.
3. Ожидаемый результат— яичница будет приготовлена. Фактический результат— еще одно утро без завтрака.
Определение бага
Итак,
баг(bug) — это отклонение фактического результата(actual result) от ожидаемого результата(expected result).
В соответствии с законом исключенного третьего у нас есть баг при наличии любогофактического результата, отличногоот ожидаемого.
Три условия
Жизни и процветания бага
Конкретный баг живет и процветает лишь при одновременномвыполнении всех трех условий:
1. Известенфактический результат;
2. Известеножидаемый результат;
3. Известно,что результат из пункта 1 не равен результату из пункта 2.
Что такое баг
19
Совет дня: каждый раз, когда возникает ситуация, в которой не совпадают фактическое и ожидаемое, — мысленно штампуйте фактическое словом "баг".Постепенно это войдет в привычку и станет рефлексом. Для ментальной тренировки не имеет значения, насколько мелочны, низки и сиюминутны ваши ожидания, главное — приобретение автоматизма.
Примеры багов из жизни:
1. Бутерброд падает маслом вниз.
2. Подхалимы и говоруны имеют намного больше шансов на повышение, чем скромные честные труженики.
3. Несоответствие миловидной внешности и змеиной сущности.
4. Попугай воспроизводит на людях худшее из словарного запаса хозяина.
5. Автомобили российского производства.
6. Кот Бегемот в фильме В. Бортко "Мастер и Маргарита".
Идем дальше.
Что такое тестирование
Любое тестирование — это поиск багов.Испытываем ли мы новую соковыжималку, наблюдаем ли за поведением подруги или занимаемся самокопанием — мы ищем баги. Баги находятся следующим образом:
1. Мы узнаем (или уже знаем) ожидаемый результат;
2. Мы узнаем (или уже знаем) фактический результат;
3. Мы сравниваемпункт 1 и пункт 2.
Как видно, каждый из нас уже является тестировщиком, так как разного рода осознанные и неосознанные проверки, осуществляемые нами и в отношении нас, являются неотъемлемой частью жизни, просто раньше мы непрофессионально качали головой и выдавали тирады о несправедливости мира, но зато теперь в случае несовпадения фактического и ожидаемого мы будем с улыбкой мудреца смотреть на дилетантов, хлюпающих носами на московском ветру, и тихо, но веско (как дон Карлеоне) говорить: "Та-а-к, еще один баг".
Для иллюстрации правильного подхода приведу в пример одного моего друга, который выстроил целую систему доказательств тезиса, что люди и компьютеры созданы по одному образцу. Основой его аргументации явился тот факт, что и те и другие имеют физическую оболочку (тело/железо) и неосязаемое составляющее, управляющее ею
20
Тестирование Дот Ком. Часть 1
(душа/ПО). Соответственно болезни тела он называл багами в железе, а проблемы с головой — багами в ПО и очень сожалел, что ПО людей, управляющих этим миром, состоит в основном из багов...
Теперь вспомним о том, что есть компьютерное ПО и что нам нужно научиться его тестировать.
С фактическим результатом здесь более или менее понятно: нужно заставить систему проявить себя и посмотреть, что произойдет.
Сложнее дело обстоит с ожидаемым результатом.
Источники ожидаемого результата
Основными источниками ожидаемого результата являются:
Спецификация.
Спецификация.
Спецификация.
Спецификация.
5. Жизненный опыт, здравый смысл, общение, устоявшиеся стандарты, статистические данные, авторитетное мнение и др.
Спецификация на первой—четвертой ролях — это не ошибка, а ударение на то, что спецификация для тестировщика — это:
• мать родная,а также
• Друг,
• товарищи
• брат.
Спецификация важна для программиста и тестировщика так же, как постановление пленума ЦК для коммуниста.
Спецификация — это инструмент, с помощью которого вы сможете выпустить качественный продукт и прикрыть свою спину (в оригинале звучит как CYA или cover your ass).
Итак, что же это за зверь?
Спецификация(или spec — читается "спек". Далее употребляется в мужском роде) — это детальное описание того, как должно работать ПО.Вот так, ни много ни мало.
В большинстве случаев баг — это отклонение от спецификации(я говорю о компаниях, в которых спеки в принципе существуют и ими пользуются).
Что такое баг
21
Пример
Пункт 19.а спека #8724 "О регистрации нового пользователя" устанавливает:
«Поле "Имя" должно быть обязательным. Страница с ошибкой должна быть показана, если пользователь посылает регистрационную форму без заполнения указанного поля».
В общем все просто:
• тестировщик идет на страничку с регистрационной формой;
• кликаетлинк "Регистрация";
• заполняет все обязательные поля, кроме поля "Имя";
• нажимает на кнопку "Зарегистрироваться".
Если ошибка не показана и регистрация подтверждается, то это есть момент истины и нужно рапортовать баг (file a bug).
Если ошибка показана, то относительно пункта 19.а на некоторое время можно успокоиться. Мы поймем, почему можно успокоиться лишь на некоторое время при разговоре о регрессивном тестировании. ..
Дата добавления: 2018-05-02; просмотров: 2260; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!