На форуме неравнодушных к равнодушию кто-то смелый попросил(а) оценить тест-кейсы первого отжима для гуглопереводчика Google с английского языка на русский.
Вот что было предложено:
Шаги:
-
- Зайти на сайт https://translate.go…e&sl=auto&tl=en
- Нажать на кнопку в левой стороне «АНГЛИЙСКИЙ»
- Нажать на кнопку в правой стороне «РУССКИЙ»
- Ввести слово на английском языке.
Ожидаемый результат
-
- Окно с допустимыми языками открывается при нажатии.
- Можно выбрать желаемый язык.
- Перевод выполняется автоматически при вводе слова.
Позитивные тест-кейсы
Условия:
1) Все буквы в слове строчные.
2) Все буквы в слове заглавные.
3) Буквы в слове и строчные, и заглавные.
4) Слово содержит небуквенный знак.
5) Текст без пробелов.
Пример:
1) hello, hi, bye
2) QUEEN, KING, WE
3) ForeVeR
4) j`unior, impa%ct, cl-ass
5) hellohowareyou
Негативные тест-кейсы
Условия:
1) Цифры и другие небуквенные знаки.
2) Многократное дублирование буквы в слове.
Пример:
1) ###, 12, @
2) helllp
Приговор: предлагаемые тест-кейсы — имитация тестирования. Автор всего лишь словами перерассказал «слепому» о том, как он курсором по экрану тыкал.
Это, кагбэ, норм для начинающего, но и только. Плохо то, что для многих это остаётся нормой. Оставшимся немногим очевидно пахнет родной шинелью Гоголя, из которой вышла вся переводная литература о тестировании ПО…
Таки да, это надо обдумать.
И надо думать по-другому.
Про вопросы
Вот три вопроса, на которые тестировщику НАДО получить ответ ДО начала тыканья курсором по экрану:
- Что это?
- Зачем это нужно?
- Как оно делает то, что нужно?
Как вы это сделаете — неважно.
Если не сделаете — не беда, будете плестись в хвосте постоянно удаляющегося поезда прогресса с высокими зарплатами.
Что это?
Никого рядом нет, кто мог бы за минуту объяснить, что это за шняга. Подразумевается, что я всё знаю или узнаю в процессе.
Ок, гуглопереводчик мне уже знаком, я знаю, что он помогает переводить
- слова,
- предложения,
- абзацы текста.
Среди них бывают отдельные слова и словосочетания (Break a leg — «Сломать ногу» — это идиома, которая иронично желает исполнителю «удачи». Доброжелатели обычно говорят «сломай ногу» актерам и музыкантам, прежде чем они выходят на сцену для выступления. Происхождение фразы остается неясным). Как гуглопереводчик переведёт эту идиому? «Сломать ногу». Аллё, так и должно быть?
Зачем это нужно?
Ну, английский можешь ты познать, но знать его всего не обязан. Хорошо, если робот тебе поможет. Гуглопереводчик = робот-переводчик. Нехай буде.
Как оно делает то, что нужно?
Нужна справка.
Я очень опытный гуглер, я юзал этот гуглопереводчик еще задолго до появления Google, но весь мой опыт — наживной.
Есть большая вероятность того, что я умею пользоваться гуглопереводчиком с искажениями. Вероятно также, что там есть какие-то штуки, о которых я просто не знаю. Тестировать только на основе личного опыта — невероятного масштаба тупость. Тестировать только на основе «щупаю то, что вижу» — тупость ещё большего масштаба, нежели предыдущая.
Поэтому мне нужна справка, чтобы ТОЧНО ЗНАТЬ, что там внутри и что оно ВООБЩЕ может делать.
Мне надо знать, а не догадываться.
Программистов рядом нет, но в левом верхнем углу страницы есть меню «гамбургер» > [О Переводчике Google]. Открылась англоязычная страница https://translate.google.com/intl/en/about/
Так и должно быть?
Я хочу переключить справку на русский язык. Как это сделать?
(через две минуты размышлений, пролистываний и тыканья курсором по странице) Да ёпвашугугломать, как переключить справку-то!? Что, так и должно быть?
Ок, я опытный, я могу изменить URL — https://translate.google.com/intl/ru/about/ А кнопками это можно сделать?
(через ещё несколько раз ёпвашугугломатерей) Ага, если прокрутить страницу полностью вниз, вижу выпадающее меню выбора языков. Ок, есть russky! Скроллим верх.
«Теперь Google Переводчик доступен в любом приложении». Какие приложения подразумеваются? В любом? В ЛЮБОМ? У меня на андроиде их не меншье 20. ТОЧНО В ЛЮБОМ? Так и должно быть?
Смотрим поясняющее видео. Там говорят, что иконка гуглопереводчика висит поверх всего, «Это функция «Быстрый перевод», она доступна в последней версии гуглопереводчика». А у меня какая версия? Как это узнать?
Там же показывают, что надо тыкнуть по сообщению, которое надо перевести, потом по иконке скопировать, и взлетит «Быстрый перевод». Ок, есть первый тест-кейс.
Скроллим справочную страницу дальше. «Общение без границ». Ыыы, это чем-то напоминает Шелдона Купера в китайском ресторане с требованием «Покажите мне ваши сопли!» Это просто рекламная пропаганда. Отложим.
Скроллим дальше. Раздел «Всегда под рукой» говорит о том, что гуглопереводчик есть:
- в телефоне
- офлайн
- на компьютере
Ок, это три разных окружения и они тащут за собой множество тест-кейсов для проверки, соппсно, одного и того же набора функций. Есть смысл на этих окружениях сосредотачиваться? (есть, конечно, но это очевидно трудозатратно, поэтому надо согласовать эти усилия с начальством/заказчиком)
«Несколько способов ввода».
- говорить в микрофон
- запихнуть в программу фотографию с текстом
- нарисовать текст стилусом
- набирать текст
Ок, это четыре разных окружения и они тащут за собой множество тест-кейсов для проверки. Плюс будем комбинировать эти способы ввода с упомянутыми ранее разными окружениями. В телефоне четыре способов ввода, в режиме «офлайн» сколько их будет доступно? На компьютере рисовать… не помню такого, но можно подключить перьевой планшет. Сколько в итоге получается проверок? Есть смысл их всех учесть, записать, согласовать требуемые усилия с начальством/заказчиком? Конечно, есть!
Остановимся.
Сколько тестов можно сгенерировать, всего лишь изучая контекст и поверхностные справочные материалы, не касаясь интерфейса гуглопереводчика?
Кто во время обдумывания только обдумывал, а не записывал — тот дура(к).
Записывать надо, хоть вкратце, хоть на лбу тим-лида, но надо записывать всё то, о чём думаешь, иначе ваш паровоз аналитики будет вечно стоять на постаменте вашей никчемности в профессии.
Важно понимать, что гуглопереводчик — собака известная. Если бы мне предложили тестировать что-то неизвестное (расчёт тангенса и котангенса между Бетельгейзе и гейзером Строккур), то попытки под видом тест-кейсов описывать взаимодействие с приложением были бы, мягко говоря, центральным экспонатом музея беспомощности.
Наглядный пример: клавиатура моего программируемого калькулятора МК-61.
Он, конечно же, может выполнить операцию 2+3, но на его клавиатуре НЕТ клавиши [=], поэтому привычные последовательные нажатия клавиш [2] [+] [3] [=] к нему неприменимы.Он делает это как-то иначе.
Можно ли самостоятельно догадаться о том, как он работает?
Нет.
Нужно посмотреть в справку.
Нужно спросить о том, как он работает.
Как вы это сделаете — неважно. Не беритесь за гуж, не спросивши.
Про позитивные/негативные тесты
А всем видно, что ВСЕ предложенные автором «негативные тест-кейсы» являются позитивными?
В основе тестирования находится сравнение ожидаемого результата с наблюдаемым.
Позитивные тест-кейсы всегда характеризуются тем, что у вас есть ожидаемый результат. Вы их выполняете, и вы наблюдаете ожидаемый результат.
Если наблюдаемый результат будет неожидаемым, то вы скажете, что нашли баг, хотя логично было бы сказать, что всё в порядке, просто вы выполнили негативный кейс и всё поломалось.
Ну, ввели мы в гуглопереводчик всяку шнягу по вашему предложению — 123!»№%*(). И что? Сайт рухнул? К вам прибежал админ гуглопереводчика и лично надавал по шее? Нет, всё в норме. Более того, у вас есть ожидаемый результат, следовательно, вы выполняете позитивные тест-кейсы. А называете их негативными.
Как настырный тестировщик вы придумаете/обнаружите сценарий, в ходе которого будет сделано НЕ ТО, что гуглопереводчик должен делать, или то, но НЕ ТАК, как это было предусмотрено.
Например, вставим в гуглопереводчик в режиме «Рус / Eng» транслитерированный текст:
Transliteratsiya shiroko ispolzuetsya vmesto kirillitsyi pri rabote na nerusifitsirovannyih sistemah dlya vvoda nazvaniy faylov, papok, a takzhe dlya perevoda nazvaniy ili imen iz odnogo yazyika na drugoy.
Что произойдёт? Это русский текст, или английский?
Вставим тот же текст, но переведем гуглопереводчик в режим «Eng / Рус». Что произойдёт?
Иногда вы будете знать точно, что должно происходить. Это тестирование.
Иногда вы будете знать точно только то, что НЕ ДОЛЖНО происходить. Это тоже тестирование.
Иногда не будете знать результат никак, никакой, даже приблизительно. Это уже не тестирование, это исследование.
Нет ожидаемого результата, мы узнаём его в ходе взаимодействия с приложением, мы учимся, мы исследуем, мы делаем выводы, мы решаем, каким должен быть ожидаемый результат (это надо спрашивать у живых людей, надеяться на подробность мануалов — глупо).
Поэтому не привязывайтесь к вводу «неправильных значений». Рассматривайте «позитив» и «негатив» в русле сценариев, которые должны выполняться. Все сценарии, в ходе которых мы проверяем, что гуглопереводчик делает именно то, что должен (то, что в его справке написано, а не то, что вы воображаете), можно назвать позитивными. Назовём их скопом happy path. Додумаетесь/обнаружите сценарий, который отклоняется от happy path — вот это и будут негативные тест-кейсы.
То, что тест-кейсы обслуживают сценарии — вы уже знаете.
мк-61… Как вспомню… Мы купили его все трое студентов. Едем в электричке и пытаемся выполнить сложение. А оно не получается!
Прослезился.
Блестяще, Алексей, извините за отсутствие конструктивной критики. Материал обязательно отдам свои начинающим тостерам.
Могли бы вы привести конкретные моменты, которые должны быть в тест-кейсах, а здесь их нет?
Из текста может показаться, что в тест-кейсах должны быть ответы на вопросы:
— Что это?
— Зачем это нужно?
— Как оно делает то, что нужно?
Учитывая то, что обычный test case это PreConditions, Test Case Description, PostConditions, то не очень понятно в каком конкретно месте тест кейсов должны быть ответы на поставленные выше вопросы.
Нет, если в каждый кейс записывать эту информацию, то расход усилий по их написанию будет космологическим. Хотя логика говорит, что именно так и надо делать, здравый смысл отговаривает от такого подхода.
Все эти вопросы надо задавать ДО момента, когда начинается написание тест-кейсов. После этого надо всё осмыслить, и затем тесты начинают придумываться качественно иные, нежели методом «Никого ни о чём не спрашиваю, просто гляжу в экран и пошагово записываю то, что делаю».