Роман Савин - тест dot com. Пособие по жестокому обращениюсбагам и в интернетстартапах com роман Савин
Скачать 5.26 Mb.
|
определенная комбинация которых ведет нас к определенному ожидаемому результату. Таким образом, иногда появляется потребность • в табл. 3, когда сценарии из табл. 2 становятся элементами более сложных сценариев, • в табл. 4, когда сценарии из табл. 3 становятся элементами еще более сложных сценариев, • и т.д. Кстати, иногда в табл. 1 мы сразу отражаем возможные значения для несколь- ких связанных между собой веб-страниц. Я знаю, что матричный метод в начале работы по нему кажется сложным и запутанным. Единственный способ освоить его — это использовать на практике, что мы с вами сейчас и сделаем. Однажды в классе по "юниксу" на занятии по теме "Регулярные выражения" (наука поиска паттернов в тексте) один товарищ удивительно метко выразил физическое состояние всех студен- тов: "Это как операция на головном мозге". Я не удивлюсь, если в начале использования матричного метода у вас будет схожее состояние. Итак, предлагаю вам сейчас самостоятельно создать табл. 1 и табл. 2 для второй части регистрации. Также прошу вас написать тест-кейсы по полной форме на каждый из сценариев первой и второй частей регистрации. Далее. 184 Тестирование Дот Ком. Часть 3 Одна из прелестей матричного подхода заключается в наглядно- сти — мы видим перед собой таблицу со структурированными вариантами сценариев, и нам удобно комбинировать их в более сложные сценарии или непосредственно переносить их в тест- кейсы. Кстати, во многих случаях нет смысла идти дальше табл. 1, например когда сценарии для тест-кейсов непосредственно вытекают из эле- ментов табл. 1 или когда сценарии для тест-кейсов можно просто до- мыслить, скомбинировав в уме элементы табл. 1. 3. БЛОК-СХЕМЫ В беседе о продюсерах и вещах, которые им нужно улучшить в своей работе, мы уже говорили о блок-схемах. Блок-схема — это графическая презентация некого процесса. Блок-схемы допускают разные уровни абстракции, например процесс регистрации можно представить и в таком виде: Процесс регистрации Эта блок-схема и ее сестра из беседы о цикле разработки ПО • похожи тем, что демонстрируют нам логику работы реги- страции и • различаются тем, что имеют различную детализацию этой логики. Нигилистический настрой и практическая методология 185 В своей работе тестировщики используют ту степень детали- зации, которая нужна для конкретной ситуации: если мы тес- тируем саму регистрацию, то нам необходима большая степень детализации (процесса регистрации) по сравнению с ситуацией, когда нам нужно увидеть место регистрации как часть процесса покупки. Идея о разных степенях абстрагированности раскладки в зави- симости от того, ЧТО и КАК мы тестируем, напрямую отно- сится и к черновику-чистовику, и к матричному методу. Вот элементарные, непробиваемые и вечные формы (блоки) для составления блок-схем, которых вам будет достаточно в боль- шинстве ситуаций: Точка начала/конца блок-схемы может содержать название этой точки (например, название веб-страницы) или просто и со вкусом величаться "Начало"/"Конец". Это любой этап процесса, кроме этапов начало/конец, решение или перенос. Решение — некая точка, после которой возможны, как правило, два варианта раз- вития процесса. Перенос ставится в том случае, если данное ответвление процесса представлено (будет представлено) другой блок-схемой. Вот несколько рекомендаций по составлению блок-схем. 1. Перед составлением блок-схемы назовите основной про- цесс, описываемый ею, например "Процесс регистрации". 2. Сначала набросайте путь основного течения процесса, на- пример, в случае с регистрацией это три блока, показанные на последней блок-схеме (страница 1, страница 2 и под- тверждение). 3. Называйте каждый блок кратко и информативно. 4. Приводите ссылки на полезную информацию, например, см. Спек #9017 — это ссылка на соответствующий спек. 186 Тестирование Дот Ком. Часть 3 5. Для наглядности презентации старайтесь скомпоновать блок-схему таким образом, чтобы процесс шел сверху вниз и слева направо. 6. Для превентирования ошибки в толковании избегайте пе- ресечения стрелок. 7. Протестируйте (проверьте) законченную блок-схему на пред- мет соответствия спеку или другому источнику. Для тренировки нарисуйте блок-схему следующей ситуации. Идея: вскипятить чайник. Вот вам в помощь блоки решений, которые предстоит разложить в блок-схеме: 1. Вода в чайнике есть/нет. 2. Плита включена да/нет. 3. Чайник кипит да/нет. Для совершенствования в составлении блок-схем очень рекомен- дую найти ресурсы в Интернете или купить книгу. Блок-схемы — это визуальные источники идей для тестиро- вания. Кроме того, как и в случае со всеми методами генерации тестов, процесс создания блок-схем вызывает рождение множества превосход- ных идей для тестирования, открывает тестировщику новые грани ПО и вызывает ряд вопросов, которые не возникли бы при простом прочтении спека. Политический момент как известно, теория (простое прочтение спека перед его утверждением) и практика (работа со спеком при создании тест-кейсов) — это две разные вещи. На "практике", если спек более или менее сложный, неизбежно воз- никнет необходимость в уточнениях. Нигилистический настрой и практическая методология 187 Знайте, что отвечать на вопросы по спеку — это святая обязан- ность продюсера. Вы имеете право, нет, ОБЯЗАНЫ задать ему ВСЕ вопросы по спеку, ко- торые у вас возникнут, ибо шкуру будут спускать с вас, а нес него, если вы из-за неотвеченных вопросов пропустите баги. Кстати, обязательно сохраняйте всю переписку в отдельном фолдере (папке) е-мейл клиента (дайте фолдеру наименование (Ю) спека): вдруг продюсер дал вам уточнение, оно было неверным, вы написали тест-кейс с ошибкой/не написали тест-кейс вовсе и пропустили серь- езный баг? Нет е-мейла — нет доказательств, есть е-мейл — есть доказательства. Если уточнение по спеку было сделано устно, пошлите е-мейл продю- серу, где опишите то, как вы поняли уточнение, и спросите "Я правиль- но понял?". Если продюсер не отвечает, пошлите ему тот же е-мейл из фолдера е- мейл клиента "Отправленная почта", чтобы он видел, что уже один раз проигнорировал ваш запрос. Если ответа снова нет и продюсер не болен, не уехал на ПМЖ в Австра- лию, а даже очень здоров, строит дачку в Малаховке, и вы видите его в столовой каждый день, то просто перешлите последний из е-мейлов продюсера своему менеджеру и сообщите ему, что не можете рабо- тать по спеку. Менеджер не будет сам говорить с ним, а переправит ваш е-мейл ме- неджеру продюсеров, чтобы тот спросил у продюсера: "В чем, собст- венно, дело?" Даю гарантию, через час продюсер сам прилетит к вам, как ни в чем не бывало хлопнет по плечу, как лучшего друга, и проведет с вами столько времени, сколько нужно, травя байки и находя удачные аналогии для того, чтобы вы лучше поняли материал. "Бизнес есть бизнес", вы ищете баги и, чтобы быть эффективным, должны по- лучить всю информацию по спеку. Теперь суперважная вещь в отношении методов генерирования и отбора тестов. Превосходные результаты дает комбинирование методов. Например, можно набросать черновик и в качестве чистовика создать табл. 1, сгруппировав в ней идеи из черновика. С другой стороны, имея табл. 1, табл. 2 и т.д., можно использовать метод черновик-чистовик, чтобы выделить сценарии из элементов табл. 1, табл. 2 и т.д. С третьей стороны, можно создать блок-схему, чтобы нагляднее ви- деть процессы, описанные в таблицах, и найти новые интересные идеи. Вобщем бесчисленное множество комбинаций и огромное поле для творчества! Как мы уже говорили, в тестировании НЕТ ДОГМ 188 Тестирование Дот Ком. Часть 3 и даже сами основы отрасли знания "Тестирование" постоянно находятся под обстрелом, так что дерзайте и находите именно те приемы и методы, которые будут работать для вас в тех ситуа- циях, в которых вы будете работать. Методы отбора тестов 1. Оценка риска (risk estimate). 2. Эквивалентные классы (equivalent classes). 3. Пограничные значения (boundary values). Общая вещь: методы отбора тестов применяются во время или после генерирования тестов. 1. ОЦЕНКА РИСКА (risk estimate) Представьте, что вы только что прикупили отель где-нибудь в горах Сьерра-Невада в Северной Калифорнии. У вас нет опыта работы менеджером отеля, но вы чувствуете себя абсолютно уве- ренным в своей новой роли, так как у вас есть высшее образова- ние в области физики твердого тела и такую фигню, как управле- ние отелем, вы, конечно, осилите на раз. К вашему отелю ведут три дороги: • первая соединяет отель и ответвление скоростной магист- рали, • вторая соединяет отель и дорогу, ведущую к горнолыж- ным курортам, • третья соединяет отель и небольшую проселочную дорогу. по которой ездят в основном местные жители. Все три дороги имеют одинаковую протяженность. 10 человек уже приехали и 30 человек должны приехать сегодня. Всю ночь шел снег, и все три дороги замело так, что ни один джип не проедет ни по одной из них. У вас есть только одна снегоуборочная машина, и на уборку лю- бой из дорог уйдет полдня. Так что нужно выбирать, с какой из них начать. Можно подойти к решению этой задачи чисто субъективно. Нигилистический настрой и практическая методология 189 Абсолютно очевидно, что по дороге номер 3 могут приехать только ваши местные кореша • для игры в покер (но сегодня не день покера — пятница) или • на барбекю (но сегодня не суббота). Значит, дорога 3 остается в снегу. Абсолютно очевидно, что дорога номер 2 также не является приоритетной в расчистке, так как абсолютно очевидно, что 10 меньше 30. Таким образом, наш план: • посадить отельского "жнеца, швеца и на дуде игреца" за руль снегоуборочной машины расчищать роад намбер уан: дорогу к скоростной магистрали; • вывесить в лобби отеля большой плакат "Дорог на гор за- крыт. Не ходи, а то хана" для уже вселившихся; • накормить уже вселившихся бесплатным завтраком (в каче- стве извинения). Запомним, с какой уверенностью мы говорили себе: "Абсолютно очевидно". Давайте перед тем как реализовывать наш гениальный план, ос- нованный на очевидных вещах, остановимся на минутку у стойки регистрации и поговорим с менеджером отеля, который прорабо- тал в нем 20 лет. Первый вариант разговора Вопрос: "Что делать, Джеймс?" Ответ: "Босс, все очень просто. Все, кто уже вселился в отель, приехали играть в снежки, кататься на беговых лыжах или просто дышать свежим воздухом. Я это знаю потому, что переговорил с каждым из них и знаю большинство из них, так как они приезжают каждый год. Поэтому нет никакого смысла в расчистке дороги номер 2, все остаются в отеле или развлекаются в его окрестностях. Я также знаю, что 16 человек из 30 — это компания, которая вы- едет к нам рано утром из Рино (я вчера говорил по телефону с одним из них) по этой дороге (показывает на карте), которая пе- ресекается с дорогой номер 3. Соответственно они прибудут к нам по дороге номер 3. 190 Тестирование Дот Ком. Часть 3 Далее, посмотрите на монитор. Где живут 12 из 14 оставшихся клиентов? Они все живут в Сан-Франциско и окрестностях. Только что передали по радио, что на единственной скоростной дороге, ведущей из Сан-Франциско, из-за снегопада уже образо- вались страшные пробки. Кроме того, скорее всего большинство членов сан-францисской команды поедут после работы, т.е. в 4 часа, а значит, будут здесь не раньше 8. Следовательно, нам нужно сначала расчистить дорогу 3 и по- сле этого заняться дорогой 1. Кстати, остаются еще двое, едущие из Техаса. Вот их мобильный телефон. Я собираюсь им позвонить, рассказать о ситуации со снегом, наших планах по расчистке и скоординироваться с ними, как им лучше до нас добраться". Второй вариант разговора Вопрос: "Что делать, Джеймс?" Ответ: "Босс, надо сначала расчищать дорогу 2, ведущую к горнолыжным курортам. Все наши постояльцы — это горнолыж- ники. Кроме того, оставшиеся 30 человек скорее всего сначала заедут на курорт, покатаются там до вечера и вечером поедут к нам — не будут же они терять сегодняшний день, я сам заказывал им пропуска со скидкой на подъемники, а пропуска начинают действовать сегодня". Третий вариант разговора Вопрос: "Что делать, Джеймс?" Ответ: "Босс, нет проблем. Нам нужно расчистить и дорогу 1, и дорогу 2. Я не знаю, что важнее. Но знаю номер телефона моего приятеля — владельца снегоочистительной компании, он даст нам хорошую цену, и двумя машинами мы сможем к полудню расчистить обе дороги. Ну, потратим немного денег, зато сохра- ним репутацию отеля, ставящего заботу о клиенте выше всего". Мораль: субъективные суждения, основанные на тупосамонадеянном "Абсолютно очевидно", могут элементарно завести нас в си- туацию, когда ресурсы потрачены впустую, так как не учи- тывают реальности. В то же время выводы, сделанные исходя из достоверной информации, ведут к эффективным решениям даже при нехватке ресурсов. Нигилистический настрой и практическая методология 191 То, что сделал для нас мистер Джеймс, было оценкой риска. Он смог сделать оценку риска, так как • владел информацией и • знал, как этой информацией распорядиться. Обратно к тестированию ПО. Наша задача — это • получить информацию, • если возможно, узнать мнение человека, владеющего во- просом, и • оценить риск по каждой из функциональностей, которые предстоит протестировать. Людьми, которые владеют вопросом, могут быть продюсер, глав- ный бухгалтер, финансовый директор, бизнес-аналитик. Информа- цию можно получить также из статистики или других источников. Поверьте, что такой подход даст удивительные результаты. Допустим, у нас есть небольшой проектик, где нужно протести- ровать новый (переписанный и оптимизированный) код для уже давно существующих функциональностей: а) сделки купли-продажи между пользователями внутри Аме рики; б) сделки купли-продажи между пользователями в Японии; в) сделки купли-продажи между пользователями в Японии и США. Разложим эти функциональности: Таблица 1 И н д ек с_ эл _ 0 0 1 И н д ек с_ эл _ 0 0 2 И н д ек с_ эл _ 0 0 3 И н д ек с_ эл _ 0 0 4 Продавец Американец X Японец X Покупатель Американец X Японец X 192 Тестирование Дот Ком. Часть 3 Таблица 2 И н д ек с_ эл _ 0 0 1 И н д ек с_ эл _ 0 0 2 И н д ек с_ эл _ 0 0 3 И н д ек с_ эл _ 0 0 4 Продавец американец —> Покупатель американец X Продавец американец —» Покупатель японец X Продавец японец —> Покупатель американец X Продавец японец —> Покупатель японец X Помните, я говорил, что применение методов генерирования тес- тов дает вам более глубокое понимание спека? Вот и теперь, де- лая матричную раскладку, мы увидели, что на самом деле у нас не три, а четыре направления для тестирования. Разложим их на блок-схеме. Блок-схема по спеку #1123 Постановка мозгов Есть превосходный профессиональный термин flow (течение, процесс) (будем использовать его в транслите как "флоу"). Флоу — это один или больше сценариев использования или работы ПО. Например, у нас есть флоу Американец -> Американец. В данном конкретном случае на это флоу можно написать множество сценариев (например, с разными суммами оплаты, транзакции между разными штатами и т.д.). Итак, у нас есть четыре флоу. Давайте снова поиграем в "Абсолютно очевидно" и решим во- прос о приоритетности каждого флоу. Допустим, что покупаются и продаются запчасти для автомобилей: Нигилистический настрой и практическая методология 193 а. Скорее всего, самым приоритетным будет флоу Япо нец —> Американец, так как в США очень много японских автомобилей, запасные части производятся в Японии и наш сайт — это очень важный канал для поставок. б. Ниже идет флоу Американец —> Американец, хотя внут ренний рынок американских запчастей очень велик, но есть много других каналов поставок кроме нашего веб-сайта. в. Далее идет Американец —> Японец, это флоу менее при оритетное, чем о и б, но более приоритетное, чем г. г. Самый нижний приоритет у флоу Японец —» Японец, так как в Японии развита инфраструктура купли-продажи зап частей и нашим сайтом там почти не пользуются. Вроде бы все смотрится логично, но до тех пор, пока мы не нач- нем копать. Вопрос: Откуда у меня информация, на основании которой я сде- лал свои выводы? Откуда я знаю, что, например, в случае а (Япо- нец —» Американец) "наш сайт — это очень важный канал для поставок"? Ответ: Я знаю это, так как где-то (может быть, краешком уха) услышал или прочитал (может быть, в определенном контексте) эту информацию. |