Отчет о работе: Katalon Studio |
27.12.2021 15:07 |
Автор: Майкл Болтон (Michael Bolton) Осторожно! Длинная статья! Введение Это отчет о попытке провести обзор и тестирование работоспособности инструмента "тест-автоматизации". Работа велась в сентябре 2021, а последующие мероприятия – 3-4 ноября. Приложение - Katalon Studio. Мой самоназначенный чартер заключался в исследовании и инспектировании Katalon Studio с фокусом на рекламациях и идентификации функциональности продукта посредством лояльного применения. Я включил в статью мета-заметки о тестировании, выделенные курсивом. Основная миссия обзорного тестирования – это изучение дизайна, задач, тестируемости и возможностей продукта. Обзорное тестирование, как правило, спонтанно, открыто, несерьезно и сравнительно поверхностно. Оно дает базу для эффективного, результативного, намеренного, глубокого дальнейшего тестирования. Тестирование работоспособности можно также назвать "смоук-тестированием", "быстрым тестированием" или "тестированием верификации сборки". Это краткое, поверхностное тестирование с целью определить, подходит ли продукт для глубокого тестирования, или же в нем есть очевидные или серьезные проблемы. Идея лояльного тестирования не в поиске багов, а в использовании функциональности продукта относительно несложным образом. Резюме Мое первое впечатление: инструмент нестабилен, хрупок, склонен к систематическим ошибкам и упущениям. Крайне недолгое взаимодействие с продуктом выявило шокирующе очевидные проблемы, включая зависания и потерю данных. Я использовал Katalon Record для трех разных веб-приложений. Во всех трех случаях функции записи Katalon не удалось надежно записать мое поведение. Я наткнулся на ряд проблем, не включенных вы этот отчет, и нащупал множество системных рисков, которые нужно исследовать. Как и в случае с mabl, я столкнулся с большим количеством проблем с первой встречи, и это помешало мне концентрироваться и отслеживать все из них. я записал краткое видео, оно приведено ниже. И дизайн, и документация продукта нацеливают пользователя – предположительно тестировщика – на подтверждающее, поверхностное тестирование. Мотивирующая идея – это запись и проигрывание действий, проверка присутствия экранных элементов и завершение простых процессов. Такое поверхностное тестирование может быть вполне ОК, если оно дешево и не разрушительно, и если инструмент стабилен, легок в использовании и надежен – но это вроде бы не так. Реальное тестирование заняло не более часа, и большая часть времени была потрачена на поиск смысла, воспроизведение и запись багов. Эта статья заняла значительно больше времени. Важное замечание для тестировщиков: исследование и запись багов, а также подготовка тест-отчетов – это важная деятельность, но она создает альтернативные издержки на взаимодействие с продуктом с целью получения более глубокого тест-покрытия. Если бы я был мотивирован, то мог бы потратить еще несколько часов, разработать структуру покрытия и выполнить глубокое тестирование. Однако мне за это не платят, и за короткое время я нашел там миллион багов. Я считаю, что Katalon Studio не был компетентно, тщательно и широко протестирован. Или был, но менеджмент продукта или проигнорировал проблемы, о которых я тут пишу, или решил их не решать. Это особенно странно, потому что от компании, делающей инструменты для тестирования, в последнюю очередь ожидаешь, что она не предоставит хорошо протестированный, стабильный, тщательно отлаженный продукт. Используют ли разработчики Katalon Studio этот продукт, чтобы тестировать его же? Ни положительный, ни отрицательный ответ не скажут нам ничего хорошего. Возможно, что через какое-то время проблемы сглаживаются, но у меня нет причин надеяться на это. На основании моего опыта работы со свежей установкой я полагаю, что любой тестировщик, работающий с этим инструментом, потратит уйму времени и сил на обход его проблем и ограничений. Это отнимет время от выполнения предположительной миссии тестировщика – поиска глубоких проблем в тестируемом продукте. Опасайтесь мифа "автоматизация бережет время для исследовательского тестирования". Установка и платформа Я провел большую часть тестирования 19 сентября 2021 года, используя Chrome 94 в системе Windows 10. Версия Katalon Studio – 8.1.0, билд 208, скачана с веб-сайта Katalon (см. ниже). В ходе тестирования я нацелил рекордер Katalon Studio на Mattermost, популярную похожую на Slack чат-систему с открытым исходным кодом и веб-клиентом; это очень простое веб-приложение, которым мы пользуемся для упражнений в ходе тренинга Rapid Software Testing. Я также использовал CryptPad Kanban – канбан-доску с открытым исходным кодом. Тест-заметки На своей домашней странице Katalon заявляет, что предлагает "решение тест-автоматизации "все в одном". Там утверждается, что вы можете "Немедленно начать, масштабировать бесконечно, для любой команды и на любом уровне". Я начал с кнопки сайта “Get Started”. Мне предложили создать учетную запись и авторизоваться. После авторизации дается два варианта - Katalon Studio и Katalon TestOps. Есть кнопка "Создать первый тест". Я выбрал ее. Началась загрузка 538 мегабайт. Скачивается единый .ZIP-файл. Инсталлятора нет, как и руководства, куда распаковывать продукт (см. баг 1). Я люблю, чтобы все было аккуратно, поэтому создал папку Katalon внутри папки Program Files, и распаковал архив туда. После запуска программы она немедленно падает (см. баг 2). Сообщение об ошибке малоинформативно – оно просто говорит "Произошла ошибка". Однако оно указывает на местоположение файла лога. К сожалению, диалоговое окно не предлагает способа открыть файл напрямую, а текст из него нельзя скопировать и вставить (см. баг 3). Search Everything спешит на помощь! Я быстро перешел к файлу лога, открыл его и увидел следующее: java.lang.IllegalStateException: The platform metadata area could not be written: C:\Program Files\Katalon\Katalon_Studio_Windows_64-8.1.0\config\.metadata. By default the platform writes its content under the current working directory when the platform is launched. Use the -data parameter to specify a different content area for the platform. (Выделение мое) Параметр командной строки "-data" не задокументирован. Создание папки назначения для файлов данных продукта и запуск продукта с параметром –data действительно создает несколько файлов в папке назначения, то есть параметр кажется рабочим (баг 4). Позднее я обнаружил, что продукт не возвращает набор поддерживаемых параметров при запросе (баг 5). Я переместил файлы продукта в папку домашней директории, и он, на первый взгляд, запустился нормально. Раздел Help/About сообщает, что я работаю с Katalon Studio v. 8.1.0, билд 208. Я последовал обучающим инструкциям для "Создания вашего первого теста". Как и в случае с тестированием mabl, я нацелил Katalon Recorder на Mattermost (бесплатный чат-сервер, которым мы пользуемся на уроках Rapid Software Testing). Я выполнил ряд базовых действий – ввел текст (с рядом ошибок и стираний), выбрал несколько эмотиконов из панели эмотиконов Mattermost, и ввел еще несколько с экранной клавиатуры Windows. Также я загрузил картинку. Я взглянул, что записывает Katalon. Кажется, что процесс записи не заставляет Katalon впечатывать данные в поля символ за символом, как это делает человек. Все выглядит так, как будто продукт создает новый шаг "Set Text" каждый раз, когда добавляется или удаляется символ. Это умозаключение, но пристальное изучение изображения ниже говорит о том, что это возможно. Два момента: во-первых, несмотря на то, что заявляют продавцы, инструменты "тест-автоматизации" не выполняют операции в точности так, как люди. Они симулируют пользовательское поведение, и симуляция может заставить тестируемый продукт вести себя кардинально отличным от реальных условий образом. Во-вторых, у меня сложилось впечатление, что подход Katalon к записи и демонстрации ввода превратит редактирование длинных последовательностей действий в кошмар. Нужно дальнейшее исследование. Завершив запись, я получил инструкцию "Сначала сохраните элементы которые в скрипте" (Баг 6). Конечно, в плане работы с продуктом это косметическая неважная проблема. Однако это беспокоит, потому что не соответствует имиджу, который компания, возможно, старается создать. Что вы почувствуете, если продукт компании, производящей инструменты тестирования, имеет упущенные очевидные, поверхностные баги прямо из коробки? Лично я чувствую подозрения; я волнуюсь, что компания так же упускает и глубокие проблемы. Это также напоминает мне о ключевой проблеме с автоматизированными проверками: они ускоряют нажатия клавиш, но также усиливают нашу способность пропускать то, что у нас прямо перед глазами… потому что у машины вообще нет глаз. Есть распространенный троп о медленных, склонных к ошибкам тестировщиках. Машины быстро жмут на виртуальные клавиши виртуальных клавиатур. Однако они бесконечно медленны при распознавании проблем, которые их не учили распознавать. Они также крайне медленны в описании проблем, если их для этого не запрограммировали. Машина не исключает человеческих ошибок; она снижает нашу тенденцию пропускать определенные ошибки, при этом повышая тенденцию пропускать другие виды ошибок. Сохраняя скрипт, продукт выдает окно ошибки без содержимого. Затем он зависает вплоть до невозможности нажать на любую клавишу, включая кнопку "ОК" на диалоговом окне ошибки (баг 7). Единственная доступная кнопка на экране – это кнопка закрытия. После клика на кнопке закрытия и перезапуска продукта я обнаружил, что все мои данные утеряны (баг 8). Пауза: мои чувства и интуиция уже предполагают, что как минимум рекордер в продукте нестабилен. Я не сильно и не долго его насиловал, но уже увидел несколько багов и одно падение. Я утратил скрипт, который предположительно записывался. В хорошем тестировании мы критически подходим к своим ощущениям, но мы должны принимать их всерьез. Для этого мы им следуем. Возможно, продукт просто не может справиться с процессом обработки ввода в Mastermost. У меня нет причин полагать, что Mastermost – это исключение. Чтобы проверить эту идею, я попробовал очень простую в смысле интерфейса программу – упражнение Pattern из курса Rapid Software Testing. Это небольшой паззл, расположенный на очень простой веб-странице. Задача тестировщика – выявить и описать паттерны текстовых строк, соответствующих запрограммированному паттерну. Пользователь вводит текст в текстовое поле, а затем нажимает Enter или кликает по кнопке Submit. Бэкэнд определяет, соответствует ли введенное паттерну, и возвращает результат; затем фронтэнд логирует его. Я ввел в поле три строки, нажимая Enter после каждой. Как показывает видео, приложение получает ввод и отображает его. Затем я ввел в поле еще одну строку и кликнул по Submit. Katalon Recorder не в состоянии записать все три строки, переданные через Enter, теряя все данные! (Баг 9). Вот видео этого теста: https://www.developsense.com/video/KatalonPatternMissingInput.mp4 Весь смысл инструмента записи и воспроизведения – в записи пользовательского поведения и его воспроизведении. Передача веб-формы при помощи кнопки Enter – очень распространенное и естественное поведение пользователя, а его не записывают. Обходной путь для тестировщика – использование мыши для передачи вводимых данных. Однако в этом случае Katalon Recorder заставляет тестировщиков взаимодействовать с продуктом способом, не отражающим реальное использование. Я сохранил "тест-кейс", а затем закрыл Katalon Studio, чтобы заняться другими делами. Вернувшись и попытавшись переоткрыть файл, я увидел диалоговое окно "Невозможно открыть тест-кейс" (Баг 10). Увеличим: Никакой информации, кроме сообщения "Невозможно открыть тест-кейс". Что ж, это хотя бы лучше, чем баг 7, когда в окне ошибки не было вообще ничего. Меня заинтересовала проблема с клавишей Enter. В меню продукта Help отсутствует справка по продукту (Баг 11). Клик на "Start Page" открывает страницу в окне основного клиента, и на ней есть ссылка "Центр помощи". Клик по этой ссылке не переносит меня к документации продукта. Я перехожу на страницу Katalon Help Center, и сталкиваюсь со страницей, где поле поиска выглядит как… белый текст на практически белом фоне (баг 12). На картинке я подсветил поисковый текст ("keystrokes"). Если бы я этого не сделал, вы бы вряд ли его вообще увидели. Попробуйте прочитать текст рядом со стилизованной буквой"К". Я говорю об этой проблеме в ходе курсов по тестированию, как о том, что может быть упущено проверками функциональной правильности. Люди часто отбрасывают это как невероятное, но вот же оно! (2021/11/04: теперь такого поведения не наблюдается). Чтобы найти настоящую справку по продукту, нужно немного потрудиться (https://docs.katalon.com/katalon-studio/docs/overview.html). (Снова баг 11). Там тоже нужно поискать, чтобы найти справку о функции WebUI SendKeys. Перейдя к ней, я нашел пример, но там нет правильного синтаксиса отправки клавиши Enter, а также списка поддерживаемых клавиш и их определений. В целом документация довольно бедновата (на это я отдельный баг не ставил). Это часть Тайной Жизни Автоматизации. Продукты вроде Katalon обычно документируются по минимуму – очевидно, авторы исходят из того, что пользователь продукта обладает теми же знаниями, что и его разработчики. Это скрытое знание можно развить, приложив силы и время, или тестировщик просто начнет искать обходные пути (предпочитать клики по кнопкам клавиатуре, или наоборот), чтобы проверки вообще запускались. Эти продукты описываются как "простые в использовании", и зачастую они именно таковы, если вы используете их так, как предполагают их создатели. Если вы отклоняетесь от предположений создателей, или ваш тестируемый продукт непохож на продукты-примеры от продавцов инструментов, сложность крайне быстро возрастет. Демо предполагает, а реальный мир располагает. Я нацелил инструмент на запись сессии простых действий в CryptPad Kanban (http://cryptpad.fr/kanban). Я попытался ввести несколько канбан-карточек и закрыл рекордер. Воспроизведение споткнулось на добавлении новой карточки – возможно, потому, что идентификаторы для элементов новой карточки генерируются динамически. На этом этапе в игру вступили функции "самолечения" Katalon. Эти функции потерпели неудачу, и процесс не завершился. Когда я посмотрел на лог процесса, "самолечение", как оказалось, заключалось в повторных попытках Xpath-поиска добавленной карточки снова и снова. Проще говоря, "самолечение" себя не лечит (Баг 13). Лог тест-кейса выдается в не редактируемом, защищенном от копирования окне, и его сложно обрабатывать и анализировать. Это не соответствует простоте диалогового окна Help / About / System Configuration, позволяющего копировать и сохранять в файл. На этом этапе, потратив на тестирование около часа, я остановился. Дальнейшие шаги, 3 ноября Я переместился в расположение файла katalon.exe и поэкспериментировал с параметрами командной строки. Как оказалось, параметры katalon.exe вообще не задокументированы, и продукт не отвечает на /?, -h, и –help (см. баг 5). При запуске программа создает файл .metadata\.log (имени файла нет, только расширение) в папке data. В этом файле есть несколько подозрительно выглядящих сообщений: трижды встречается “Could not find element”; предупреждения об отсутствующих NLS-сообщениях; предупреждение о правильной инициализации системы log4j, и несколько сообщений, связанных с конфликтами привязки клавиш для нескольких комбинаций клавиш (“Keybinding conflicts occurred. They may interfere with normal accelerator operation.”). Это нужно как-нибудь изучить подробнее. Баг-репорты Баг 1: Отсутствует программа установки, нет инструкций, куда поместить продукт после загрузки. Более того, руководство по установке https://docs.katalon.com/katalon-studio/docs/getting-started.html#start-katalon-studio не указывает локацию для продукта. Не соответствует удобству использования, не соответствует похожим продуктам, не соответствует устанавливаемости, не соответствует приемлемому качеству. Баг 2: Продукт падает, если запускать его из папки \Program Files\Katalon. Это связано с багом 1. Баг 3: После падения в баге 2 диалоговое окно ошибки не предлагает способа напрямую открыть файл и не дает возможности скопировать его местоположение. Не соответствует удобству использования. Баг 4: Незадокументированный параметр –data для katalon.exe. Баг 5: Справка по командной строке для katalon.exe не дает списка доступных параметров командной строки. Баг 6: Языковая ошибка в онбординге "Создание вашего первого скрипта": "Сначала сохраните элементы которые в скрипте". Не соответствует имиджу. Баг 7: Зависание после сохранения первого скрипта в онбординге, включающее окно ошибки без данных, только с кнопкой ОК. Не соответствует функциональным возможностям, не соответствует надежности. Баг 8: Потеря всех записанных данных сессии после закрытия продукта из-за бага 7. Не соответствует надежности. Баг 9: Рекордер Katalon Studio не может записать текстовый ввод, если он завершается клавишей Enter. Тестируемое приложение отлично принимает клавишу Enter. Не соответствует задачам, не соответствует удобству использования. Баг 10: Сохранив "тест-кейс" по багу 9, закрыв продукт и вернувшись, я увидел, что Katalon Studio "не может открыть тест-кейс". Не соответствует надежности. Баг 11: В секции меню Help нет справки о продукте. Не соответствует удобству использования. Баг 12: Поисковый интерфейс katalon.com/s=keystrokes отображает белый текст на почти белом фоне. Не соответствует удобству использования. (Возможно, исправлено: 2021/11/04 это поведение больше не наблюдается). Баг 13: "Самолечение" неэффективно, состоит из повторяющихся попыток выбора элемента на основании Xpath, который не соответствует записанному элементу. Баг 14: Результат тест-кейса появляется в не редактируемом, защищенном от копирования окне, что затрудняет его обработку и анализ. Не соответствует удобству использования, не соответствует задачам. Это также не соответствует диалоговому окну Help / About / System Configuration, позволяющему копирование в буфер обмена и сохранение в файл. |