Разделы портала

Онлайн-тренинги

.
Отчет о работе: mabl Trainer и runner, и связанные с ними функции
22.12.2022 00:00

Автор: Майкл Болтон (Michael Bolton)
Оригинал статьи
Перевод: Ольга Алифанова

Осторожно! Длинная статья

Введение

Это отчет о попытке обзорного, лояльного и санитарного тестирования, выполненной в сентябре 2021, с последующими дополнениями, сделанными 13-15 октября 2021. Тестируемый продукт - mabl. Мой самоназначенный чартер – проведение обзорного тестирования mabl через выполнение базовой задачи в продукте. Задача – автоматизация простого набора шагов через Trainer в mabl и механизм запуска тестов.

Я буду включать мета-заметки о тестировании, отмечая их курсивом.

Основная миссия обзорного тестирования – это изучение дизайна, целей, тестируемости и возможностей продукта. Обзорное тестирование, как правило, спонтанно, открыто, игриво и сравнительно поверхностно. Оно закладывает основу для последующего эффективного, результативного, намеренного, глубокого тестирования.

Санитарное тестирование можно также назвать "смоук-тестированием", "быстрым тестированием" или "тестированием верификации билда". Это краткое, поверхностное тестирование, проводимое с целью выяснить, подходит ли продукт для более глубокого тестирования, или же в нем есть очевидные или важные проблемы.

Идея лояльного тестирования не в поиске багов, а в сравнительно несложной работе с функциями продукта.

Сводка

Trainer и механизм запуска тестов в mabl демонстрируют значительную ненадежность при записи и запуске очень простых, базовых задач в Mattermost, популярном аналоге Slack с открытым исходным кодом и веб-клиентом. Я собирался рассмотреть другие элементы mabl, но попытка выполнить эти простые задачи (занявшие примерно три минуты сорок секунд без mabl), повлекла за собой лавину багов, исследование и документация которых заняли примерно десять часов.

Я также наткнулся на множество других багов, которые не вошли в этот отчет; количество проблем, с которыми я столкнулся в этой части продукта, пересилили мою способность к концентрации и организованности.

Заметка о терминах: в школе Rapid Software Testing баг – это что угодно в продукте, угрожающее его ценности для значимого лица. Чуть менее формально, баг – это то, что бесит кого-то важного.

Исходя из этой точки зрения, баг – это необязательно ошибка в коде или "сломанная" функция. Баг – это некая проблема для кого-то. Отметим также, что "баг" субъективен; команда mabl может легко заявить, что нечто – не баг, неявно допуская, что мое восприятие бага для них не важно. Однако я заявляю, что то, что я вижу, меня раздражает.

Баги, о которых я тут говорю – по моему мнению, серьезная проблема для инструмента тестирования, даже для того, который предназначен для поверхностных, повторяемых, и в целом бесполезных рутинных проверок. Многие баги сами по себе уничтожили бы полезность mabl для меня и снизили бы качество моего тестирования. Однако эти баги также крайне поверхностны; они были очевидны при попытках записать, проиграть и проанализировать простую процедуру, без цели дать mabl Trainer и runner сложные задачи для испытания их способностей.

Я считаю, что сам mabl не был компетентно и тщательно протестирован для работы с продуктами, которые создадут препятствия функциям Trainer и runner; если же он тестировался, то продуктовый менеджмент или проигнорировал проблемы, о которых я тут пишу, или решил не уделять им время.

Я еще не завершил исходный чартер по проведению систематического обзора этих функций. Это связано с тем, что моя попытка это сделать была полностью загублена усилиями, необходимыми для фиксации найденных багов, а также дополнительных багов, которые я нашел, описывая и исследуя исходные баги.

С одной стороны, это может выглядеть как недостаток моего тестирования. С другой (и, считаю я, более разумной), полученный мной опыт предполагает как минимум два дальнейших действия, если бы я работал для заказчика, в зависимости от моего клиента и его целей.

Одним из возможных следующих шагов мог бы стать возврат к продукту и создание стратегий для более глубокого тестирования. другим – решить, что обзор невозможно эффективно завершить в настоящий момент, и пока проблемы не будут исправлены, это неоправданная трата времени. Конечно, поскольку мой заказчик сейчас – я сам, то это решаю я: я готовлю детализированный отчет о найденных при попытке лояльного тестирования багах, и на этом закончу.

Mabl заявляет, что способен "повысить надежность и снизить нужду в поддержке, используя тест-автоматизацию на основе искусственного интеллекта". Это заявление нуждается в изучении.

Что используется в качестве тренировочных наборов для моделей, и откуда берутся данные? Используются ли мои данные для тренировки моделей машинного обучения на тестируемых мною приложениях? Если это только мои данные, достаточно ли велик их набор? Используются ли мои данные для разработки моделей машинного обучения для чужих приложений? Если "ИИ" используется для поиска багов или "самолечения", как "ИИ" понимает разницу между "проблемой" и "отсутствием проблемы"? Был ли компонент "ИИ" критично и тщательно протестирован? Эти вопросы требуют отдельного исследования.

Настройка и платформа

На сайте mabl указано, что он предоставляет "умную тест-автоматизацию для Agile-команд". Компания также сообщает, что вы сможете "легко создавать надежные end-to-end тесты, повышающие качество приложения, не замедляя вашу работу".

Заявление о повышении качества приложения – сходу проблемно. Ни тестирование, ни тесты не повышают качество приложения. Тестирование может выявить аспекты качества приложения, но пока кто-то не сделает что-нибудь с ними в ответ на отчет о тестировании, качество приложения останется в точности таким же, каким и было. А что касается простоты создания тестов… ну, об этом и написан этот отчет.

Я зарегистрировал учетную запись для бесплатного пробного периода и скачал версию 1.2.2 (между 19 сентября и 13 октября установщик сообщил, что продукт обновился до версии 1.3.5. Некоторые из этих заметок относятся к первому раунду моего тестирования. Другие – к обновлениям, так как я пользовался продуктом и сайтом повторно, чтобы воспроизвести найденные проблемы и подготовить этот отчет. Если результаты в двух этих версиях различаются, я укажу на эти различия).

Я запускал эти тесты на Windows 10, пользуясь только Chrome в качестве браузера. На момент создания отчета я использую Chrome v.94.

В качестве тестируемого продукта я выбрал Mattermost. Это онлайн-чат с открытым исходным кодом, похожий на Slack. Мы пользуемся им на курсах Rapid Software Testing, у него есть и десктоп, и веб-клиенты. Как и в Slack, в Mattermost можно быть участником разных "команд", поэтому я создал команду с рядом каналов специально для работы с mabl.

Заметки о тестировании

Я запустил mabl trainer и начал Web-тест, в терминологии mabl (тест – это куда больше, чем серия записанных действий). Mabl запустил окно браузера, по умолчанию в 1000 пикселей. Я перешел к web-клиенту Mattermost и ввел несколько строк обычного текста, которые Mattermost успешно принял, а mabl Trainer вроде бы записал.

Затем я ввел несколько эмотиконов, используя интерфейс всплывающего меню Mattermost; mabl Trainer вроде бы записал и это. Я использовал экранную клавиатуру Windows, чтобы ввести еще эмотиконы.

Затем я выбрал графический файл, загрузил его, и дополнил его сопровождающим текстом, который появляется над изображением.


Я старею и работаю достаточно далеко от мониторов, поэтому люблю большие окна браузера, чтобы видеть, что там происходит. Перед тем, как завершить запись, я поэкспериментировал с изменением размера окна браузера. При первых попытках работы с версией 1.2.2 это вызывало колоссальную панику у Trainer, который неоднократно выводил всплывающее окно "Maximizing Trainer", войдя в бесконечный цикл, пока я не завершил работу mabl.

(В версии 1.3.5 стало возможным попытаться максимизировать окно браузера, но окно Trainer настойчиво появлялось справа от браузера, даже если я пытался перетащить его на другой экран) (См. баги 1 и 2 ниже)

Я нажал "Закрыть" на окне Trainer, и mabl предложил запустить тест. Я выбрал локальный запуск и нажал кнопку "Start 1 run" внизу панели "Ad hoc run".


Появилось окно "Local Run Output". Mabl запустил браузер так, что перекрыл это окно; раздражает. Mabl вроде бы успешно авторизовался в Mattermost. Инструмент симулировал клик по нужной команде и перешел в эту команду в верх канала по умолчанию. Это странно, потому что в норме Mattermost переносит в конец канала по умолчанию. А затем… ничего не произошло.

Что бы mabl ни делал, это было за гранью визуального ввода (исследование позднее показало, что mabl, тихо и по умолчанию, устанавливает куда большую высоту демонстрационного окна по сравнению с окном браузера и высотой моего экрана). (См. баг 3 ниже).

Когда я посмотрел на запущенный в другом окне Mattermost, было очевидно, что mabl не смог ввести первую строчку введенного мной текста, хотя этот шаг явно обозначен:


Однако окно Local run output предположило, что текст введен успешно.


Также mabl не смог ввести большинство следующих текстовых строк. После исследования оказалось, что runner печатает тело записанного текста в элемент текстового поля, однако после этого или mabl Trainer не записывает ввод Enter для отправки сообщения, или же runner не симулирует нажатие этой клавиши.

Последствия: когда приходит время ввода следующей строки текста, mabl просто заменяет содержимое текстового поля новой строкой, и предыдущая строка утеряна.

Завершение ввода в этот текстовый элемент при помощи Ctrl+Enter дает обходной путь вокруг такого поведения, но в норме в Mattermost не вводят текст таким образом. Должно быть достаточно просто клавиши Enter.

Дальнейшее исследование показало, что поведение остается таким же вне зависимости от того, запускается ли процедура локально или в облаке (см. баг 4).

Множество инструментов записи и воспроизведения утверждают, что способны симулировать поведение пользователя. Очень важно помнить, что люди вводят данные определенным образом – при помощи таких механизмов, как клавиатуры, мыши, тачпады, графические планшеты, - а практически все инструменты записи и воспроизведения используют другие способы в форме программных интерфейсов. Различия между механизмами ввода часто игнорируются, однако они могут быть значительными.

Более того, различные инструменты используют различные подходы к симуляции пользовательского ввода. Зачастую при этом выкидываются такие элементы пользовательского поведения, как backspace, вставка, копирование или удаление блоков текста, и к обработке предоставляется только уже отредактированная строка. Такие симуляции будут систематически пропускать проблемы, с которыми столкнется реальный пользователь.

Пытаясь воспроизвести ввод эмоджи, mabl, очевидно, запутался во всплывающем окне Mattermost. Судя по логу, приложение пыталось найти определенный элемент трижды и заключило, что найти его невозможно, после чего вся процедура была завершена окончательно с ошибкой. Элементы управления, которые mabl искал согласно записанным в тесте шагам, легко доступны через инструменты разработчика. Все это не кажется соответствующим заявлению mabl о "самолечении" (см. баги 5 и 6).


Некоторые отметки времени в логах на скриншотах могут казаться вырванными из хода событий по отношению к моему рассказу. Некоторые скриншоты в статье – логи попыток воспроизведения бага, а не первой встречи с ним. Я столкнулся с таким количеством багов в ходе тестирования, что сил на их грамотную фиксацию уже не хватало, пришлось позднее вернуться для анализа.

Феномен погребенности под багами – это то, что мы называем каскадом багов в Rapid Software Testing. В моих заметках о первой сессии я писал, что "мне нужно было записывать видео всего этого". Видео с комментариями может оказаться очень полезным для дальнейшего изучения.

Я пристальнее исследовал окно "Local run output" и обнаружил ряд проблем. При этом и других прогонах  утверждалось, что текст успешно введен, хотя текст так ни разу и не появился в тестируемом приложении. В логе появляются только первые 37 символов введенного runner-ом текста.

Локальный лог содержит отметки времени, но не даты, и отметки времени записываются в формате AM/PM. И то, и другое неудобно для анализа лога с помощью инструментов. Я не нашел механизма сохранения файла из окна "Local run output" (см. баги 7, 8, 9, 10 и 11).


Я искал способ посмотреть предыдущие прогоны с десктопа в различных областях клиента mabl. Я его не нашел (см. баг 12).

Используя Search Everything (очень полезный инструмент, позволяющий более-менее мгновенно находить файлы системы), я также искал логи файлов, соответствующих определенным прогонам. Я их не нашел.

Search Everything быстро помог найти логи самого приложения mabl (mablApp.log), и там была некоторая информация о шагах. Странным образом данные runner в mablApp.log отформатированы гораздо лучше, чем в окне "Local run output". Локальные прогоны также не сохраняли скриншоты.

Поначалу это все очень запутывало, но последующее изучение выявило, что "Тестовые артефакты – снапшоты DOM или скриншоты – не сохраняются для локальных прогонов. Логи выполнения mabl и финальный результат отображаются в отдельном окне". Это уже достаточно плохо, но чтобы логов прогона не было вообще?!

Дабы попытаться решить проблемы, с которыми я столкнулся при вводе текста, я посмотрел на меню Tests и выбрал My New Test. Это перенесло меня в безымянное окно, перечисляющее шаги теста (назову это "Отображением шагов теста").

Сканируя список шагов, я увидел, что второй шаг звучит как "Посетить URL, привязанный к переменной 'app.url'". Фактически это верно, но бесполезно; как выяснить значение переменной? Нет никакого указания, каким может быть этот URL или как его легко и быстро найти. К тому же экран предполагает, что "переменные, управляемые через данные, отсутствуют", что кажется ложью.

(Позднее я выяснил, что если выбрать Edit Steps, а затем Quick Edit, а затем выбрать URL для работы, а затем – шаг "Visit URL assigned to variable 'app.url'", то можно увидеть превью значения. Как насчет отображения переменной в списке шагов? Подсказки? (см. баг 13))

Я изучил шаг, на котором не получалось ввести текст. Текст, который я исходно вводил в окне Mattermost, отображался не полностью, хотя для этого в окне отображения шагов теста достаточно места (см. баг 14). Это поведение не соответствует моей способности его объяснить, и также оно не соответствует неявной задаче просмотра шагов теста – возможности легко исправить эти шаги. Однако оно соответствует информации в окне Log output, которая пишется в системный лог mabl (см. баг 15).

Как я заметил выше, последующие эксперименты с Mattermost и mabl Trainer показали, что завершение ввода с Ctrl-Enter (а не Enter, который используется в Mattermost по умолчанию) в ходе записи позволяют mabl воспроизвести ввод текста. Возможно, если как-то исправить шаг ввода текста, или добавить шаг нажатия на клавишу, эту проблему можно обойти, если я готов принять тот риск, что поведения через Trainer не соответствуют реальному поведению пользователя.

В отображении шагов теста есть выпадающее меню "Edit Steps", с возможностями "Quick Edit" и "Launch Trainer". Я кликнул на Quick Edit, и немедленно появилось всплывающее окно – сбивающее с толку и, возможно, ненужное: "Launching Trainer".


Я выбрал шаг ввода текста, надеясь отредактировать некоторые действия в нем. Заметьте, что из всех элементов на картинке ниже редактировать можно только вводимый текст; ничто иное в шаге редактированию не подлежит (см. баг 16).


Возможно отправлять нажатия клавиш к определенному элементу. Эта возможность, предположительно, доступна в mabl уже давно, как сказано здесь. Могу ли я добавить escape-последовательность к тексту, при помощи которой можно ввести определенный символ или их комбинацию? Если такая фича доступна, она не задокументирована явно. Документация намекает, что у некоторых клавиш могут быть escape-строки - ”[TAB]”, или “[ENTER]”. Однако добавление этих строк к концу текста не провоцирует нажатия виртуальных клавиш (см. баг 17).

Окно Quick Edit дает возможность вставить шаг. Что, если попробовать? Я промотал до шага, который вводит текст, попытался выбрать шаг мышкой и нажать кнопку плюса внизу для добавления шага. Появилось диалоговое меню с набором возможных шагов. Ни ввода текста, ни нажатия клавиш, ни клика мышкой в списке нет (см. баг 18).


(если вы думаете, не прячутся ли функции ввода под видимым окном – "Variables" действительно последний элемент в списке).

Глядя на шаг 5 в отображении шагов теста, я вижу, что этот шаг посылает нажатие Tab в поле "Email или имя пользователя". Возможно, я могу продублировать этот шаг и перетащить его после моего ввода текста. Затем, возможно, я могу изменить шаг, направив его на элемент post_textbox, и отправить клавишу Enter вместо Tab.

Да, я могу заменить [TAB] на [ENTER]. Но я не могу изменить элемент назначения (см. баг 19).


Документировать это сложно и раздражает. Любая попытка отправить эту чертову клавишу Enter пресекается каким-нибудь безумным необъяснимым образом. Люди определенного возраста поймут – это вроде Cone of Silence в Get Smart (более юные читатели могут погуглить). Я поражен некомпетентностью продукта, и поэтому я сомневаюсь в себе и повторяю свои действия снова и снова, дабы убедиться, что я не упускаю какой-то очевидный способ достижения цели. Сила моих чувств в этот момент указывает на значительность проблем, с которыми я сталкиваюсь.

Я посмотрел на другие шаги, отображенные в просмотре шагов и Trainer. Заметьте, что шаги часто описываются, как "клик по кнопке", не распространяясь, о какой кнопке речь, кроме случаев, когда у кнопки есть явная текстовая метка. Это бесит, так как удобочитаемая информация (вроде атрибута aria-label) доступна, но приходится нажимать на "Edit", чтобы ее увидеть (см. баг 20).


Просматривая оставшуюся часть отображения шагов теста, я заметил возможность загрузить файл значений с разделителями-запятыми (.CSV); возможно, его можно просмотреть и отредактировать, а затем каким-то образом загрузить назад. Я скачал .CSV и открыл его. Он соответствует информации в окне отображения шагов, но неточно отражает поведение, которого пытается добиться mabl.

И снова текст, который mabl в реальности пытается вводить в текстовое поле (которое можно увидеть, если проскроллить к низу окна браузера в середине теста), опущен, ограничиваясь 37 символами плюс многоточие (см. баг 21).

Это было бы более серьезной проблемой, пытайся я отредактировать скрипт и загрузить его. Однако не стоит волноваться – несмотря на то, что у вас есть возможность скачать .CSV-файл с шагами теста, вы не можете загрузить его обратно. В интерфейсе приложения ничего подобного нет, а поиск по файлу справки с запросом "upload" не выявил способов загрузки файлов с шагами теста (см. баг 22).

На этом этапе я бросил попытки натуралистичного и надежного ввода текста при помощи Trainer. Я задался вопросом, есть ли хоть что-нибудь, что можно спасти из моей исходной задачи по вводу текста, эмоджи, и загрузке файла. Я отредактировал шаги теста, на которых mabl спотыкался, чтобы перейти к загрузке файла. Тест продолжился, но файл не был загружен. Возможно, потому, что Trainer не отслеживает, откуда в локальной системе получен файл (см. баг 23).

В этот момент моя энергия для продолжения отчета начала иссякать. Исследование и отчетность о багах занимают время, а когда проблем так много, это досадно и мучительно. Меня также беспокоит, не становится ли скучно это читать. В этой статье, возможно, все еще есть ряд опечаток. Я не стал писать о других багах, встреченных мной в количестве, но часть из них есть в списке ниже. Многие другие остались незадокументированными и неизученными (см. баги 24, 25, 26 и 27).

В mabl есть куда большее. Эти аспекты могут быть чудесными или ужасными. Понятия не имею, потому что я не исследовал их детально, но серьезно подозреваю дальнейшие проблемы. Вот пример:

В ходе первого раунда тестирования в сентябре я создал план – по сути, набор записанных процедур и задач, предлагаемых mabl. План включал прохождение по всему Mattermost для поиска битых ссылок. Отчет mabl гласил, что все тесты пройдены, и битых ссылок нет. "Все выглядит хорошо!"


Я чуть проскроллил вниз и посмотрел на отдельные элементы. Увидел "Найдено 3 битых ссылки" слева, и посмотрел детализацию справа.


Тестируя с 13 по 15 октября, я поставил mabl задачу пройти по моему блогу в поиске битых ссылок. Благодаря различным формам сетевого гниения (ссылки, которые были перемещены или устарели по другой причине, комментаторы, чьи сайты не поддерживаются), там куча битых ссылок. Mabl сообщил, что все пройдено успешно.


Это здорово выглядит, пока не смотришь детализацию. Mabl обнаружил 586 битых ссылок (много дублей)… но отчет гласит, что тест на посещение всех линкованных страниц из приложения пройден (см. баг 28).


Эпилог

В ходе первого раунда моего тестирования в сентябре я связался с поддержкой mabl через чат и сообщил их представителю, что сталкиваюсь с проблемами в продукте, готовя доклад. Представитель из чата обещал, что со мной по этому поводу свяжутся. На следующий день я получил это письмо:


Увеличу:

"Майкл, добрый день.

Спасибо, что связались с нами в чате. Наилучший способ найти ответ на ваши вопросы про mabl Trainer – это чтение нашей справки:

Там находится полная документация, от создания теста вплоть до его выполнения и отчетности. Там все можно легко найти,

Всех благ,… "

Это, видимо, сходит у них за ответ: читайте гребаную справку.

Краткая информация о багах

Баг 1. Изменение размера браузера в ходе теста приводит к бесконечному циклу, подвешивающему продукт (наблюдалось неоднократно в 1.2.2, пока не наблюдалось в 1.3.5.).

Баг 2. Браузер нельзя развернуть на весь экран, в котором идет тест, и в то же самое время окно Trainer нельзя переместить на другой экран (так было в 1.2.2, если изменение размеров не приводило к вышеупомянутому бесконечному циклу; все еще встречается в 1.3.5). Это не соответствует удобству использования, а также сравнимым продуктам; если продукт предназначен для воспроизведения опыта пользователя, то это также не соответствует его задаче.

Баг 3. Поведение запущенного в браузере приложения по умолчанию отличается от естественной встречи с продуктом и, в данном случае, приводит к невидимости действий по вводу, пока не проскроллишь окно браузера принудительно с помощью курсора, и не разберешься, где задается высота браузера. Не соответствует удобству использования тест-инструмента при первом использовании; не соответствует харизме.

Баг 4. Функция воспроизведения mabl не воспроизводит простой ввод текста в Mattermost, однако логи утверждают, что текст был введен верно. Это происходит вне зависимости от того, в облаке или локально запущена процедура. Это не соответствует сравнимым продуктам; не соответствует задаче; не соответствует базовым возможностям продукта такого рода; и не соответствует заявлениям о продукте (https://help.mabl.com/changelog/initial-keypress-support-in-the-mabl-trainer).

Баг 5. Mabl не способен найти эмоджи во всплывающем окне эмоджи Mattermost – с чем бы без проблем справился тестировщик-человек – несмотря на то, что Trainer предположительно записал это действие (несоответствие задаче).

Баг 6. Самолечение не срабатывает при попытке найти кнопки в выборе эмоджи Mattermost (не соответствует заявлениям).

Баг 7. Окно "Local run output" ложно предполагает, что попытки ввода текста были успешными, хотя ввод текста не был завершен (несоответствие базовой функциональности; несоответствие задаче).

Баг 8. Окно "Local run output" не фиксирует реальный текст, введенный через runner. Отображаются только первые 37 символов и многоточие (несоответствие удобству использования тест-инструмента).

Баг 9. Отметки даты отсутствуют в логах, выводимых в окне "Local run output". Есть только отметки времени, и то с точностью только до секунды. Это неудобно для анализа результатов, логируемых в течение нескольких дней (несоответствие удобству использования для тестирования; несоответствие продукту – собственному логу приложения mabl).

Баг 10. Отметки времени в окне "Local run output" выводятся в формате AM/PM, что снижает удобство сортировки и машинного поиска (несоответствие тестируемости; плохая интернационализация; несоответствие собственному логу приложения mabl).

Баг 11. Данные из окна "Local run output" невозможно сохранить напрямую (несоответствие задаче; несоответствие удобству использования; риск потери данных). Обходные пути: копирование данных из лога и вставка в собственный документ пользователя; копание в файле mablApp.log.

Баг 12. Лог локального запуска не появляется в GUI mabl – ни в Results, ни во вкладке History – для отдельных тестов. Если способ его найти есть в интерфейсе, он очень хорошо спрятан (несоответствие удобству использования для инструмента записи и воспроизведения). Обходные пути: часть данных доступна в общем логе приложения для продукта, но это требует сил на очистку от прочих записей в логе.

Баг 13. Окно редактирования шагов теста бессмысленно затрудняет просмотр содержимого переменных, которые будут использоваться в тест-процедуре. К примеру, пользователь должен выбрать Edit Steps, затем Quick Edit, затем нужный URL, а затем шаг “Visit URL assigned to variable ‘app.url’.

Баг 14. Основное окно редактора теста прячет содержимое строк ввода текста, если они длиннее примерно 40 символов. Так как справа достаточно пустого места, неясно, почему не отображаются более длинные строки. Несоответствие объяснимости, несоответствие задаче (способности легко решать проблемы в шагах теста).

Баг 15. Лог приложения mabl (mablApp.log) ограничивает общую длину введенной строки 40 символами (37 символов плюс многоточие). (Локальный лог генерируется из mablApp.log?)

Баг 16. В шаге ввода текста в режиме Quick Edit менять можно только вводимый текст и ничто иное – ни цель, ни действие в шаге не редактируются.

Баг 17. Escape-последовательности для отправки определенных клавиш (Tab, Enter) не поддерживаются редактором Quick Edit mabl. Несоответствие сравнимым продуктам; несоответствие задаче.

Баг 18. Опция "Insert Steps" в диалоге Quick Edit не предлагает опций для ввода текста, отправки нажатий клавиш или клика по элементам. Несоответствие задаче; несоответствие сравнимым продуктам.

Баг 19. Диалоговое окно "Send keypress" позволяет менять отправляемую клавишу или добавлять клавиши-модификаторы, но не позволяет менять элемент, к которому отправляется нажатие.

Баг 20. Окно Trainer неспособно определить, какая кнопка будет нажата в шаге, если у кнопки нет текстовой метки. Некоторая полезная информация (например, aria label или ID класса) для идентификации кнопки доступна, если ввести шаг и попытаться его отредактировать (несоответствие продукту; несоответствие задаче).

Баг 21. Файл .CSV, идентифицирующий шаги теста, не отражает реально выполняемые шаги (несоответствие продукту; несоответствие задаче видеть реальные шаги процедуры). Обходной путь: открытие каждого шага в Quick Edit или Trainer отображает полный текст, но для процедур с текстом длиннее 40 символов это довольно времязатратно.

Баг 22. Загрузить в приложение файл CSV с шагами теста нельзя никак. Редактирование шагов теста зависит от крайне ограниченного Trainer и Quick Edit  - а Quick Edit зависит от Trainer. Не очень ясна цель скачанных в CSV шагов теста.

Баг 23. Загрузка файла, записанная через механизмы Trainer/Runner, вообще не осуществляется.

Баг 24. Опция справки/Get Logs for Support не нацелена по умолчанию на папку, где хранятся логи mabl. вместо этого она открывает обычное диалоговое окно Файл / Открыть (в моем случае это папка загрузок – возможно, потому что там я в последний раз открывал браузер, или…)

Баг 25. Меню View / Zoom In утверждает, что привязано к Ctrl-+. Это не так. Zoom Out (Ctrl–) и Actual Size (Ctrl-0) работают.

Баг 26. 17 октября я заметил, что доступно обновление. Нет никакой индикации, что доступны релиз-ноты, как и информации, что изменилось. Когда я поискал релиз-ноты mabl в сети, то в существующих не указаны номера версий!

Баг 27. Окно Trainer не имеет управляющих кнопок, обычно расположенных в верхнем правом углу диалога Windows, что усложняет изменение размеров окна и делает невозможным его минимизацию (несоответствие сравнимым продуктам; несоответствие стандартам UI).

Баг 28. Таблица Results ложно предполагает, что проверка на битые ссылки "пройдена", в то время как найдены сотни таких ссылок (несоответствие сравнимым продуктам; несоответствие стандартам UI).

Обсудить в форуме