Как надо поиск обнаруживаемых глазами при ручном тестировании неувязок автоматизировать?
Пример обнаруженной глазами при ручном тестировании неувязки (предложите любой другой пример):
Радиобаттон, обеспечивает выбор одного из вариантов. Визуально выглядит, будто выбрано несколько вариантов. Это баг. Он был найден случайно вручную. Вопрос: как автоматизировать поиск такого типа багов?
Комментарии (33)
RSS свернуть / развернутьVader
korziner
Если так, то я вам в стопятисотый раз повторяю — то, что на вашем первом скрине — не баг UI, а самый настоящий функциональный баг, вызванный наличием индокода. И никаких проблем, в обнаружении его средствами автоматизации, быть не должно.
По поводу второго скрина… Автоматически такие баги не ловятся, ибо автоматические тулы не имеют чувства прекрасного и не могут вам сказать — красиво или некрасиво.
Да и к чему подобное стараться поймать автоматически? Любой самый захудалый тестировщик найдет этот баг, а любой самый захудалый верстальщик вставит в верхний див min-width. После чего динозавры сидящие за мониторами 640х480 смогут радостно перемещаться по сайту, бодро скроля его влево и вправо.
Vader
По причине недокуренного хтмл.
Или не вижу в черном ящике закрытого кода с багами.
Или не вижу и не начинал курить HTML7.1 января 2017 года, но мой авто-баголов должен эффективно находить баги на страничках через 6 лет.
Да, оба моих примера плохие. Пример Алексея лучше иллюстрирует проблему поиска неувязок, которые пока обнаруживаются только "посмотрев, что у программиста получилось".
2. По поводу второго скрина. Автоматически такие баги возможно ловятся, ибо автоматическим тулам для этого не надо иметь чувства прекрасного. Примерный алгоритм:
Скриншоты на десятках разрешений + ocr + сравнение с эталонным текстом страницы дает первое неложное срабатывание + отсутствующие в словаре «ильтр» и «б. 700» второе срабатывание.
Если мои примеры плохие, приведите свои примеры проявляющегося на GUI бага, автоматический поиск которых труден (но возможен). Желательно не косметику, а критические.
korziner
Толи вы говорите о «дестких» ошибках, которые легко найти с полувзгляда и возмущаетесь тем, что их не нашел программист писавший код. Ну так это бывает. А бывает, что у программиста все хорошо работало, а кто-то потом что-то где-то подкрутил…
Толи вы хотите чтобы какой-нибудь чудо инструмент автоматизированного тестирования находил ошибки неверного отображения элементов на ХТМЛной странице сам, без вмешательства тестировщика. Что на мой взгляд как-то нереально. Да и ваша вторая картинка с «ильтром» для меня выглядит как кусок нормальной веб-страницы, с выпавшим поп-ап рекламным сообщением про «Ближайшие».
И по поводу сравнения картинок, подумайте, сколько вам придется сделать шаблонных картинок для сравнения для одного и того же экрана программы когда UI окончательно не зафиксирован и каждый день происходят изменения.
LeshaL
barancev
korziner
А смайлик выражает желание попробовать :)
barancev
У меня вместо комментариев, только один вопрос… Сразу говорю, если не хотите, можете не отвечать. Вы случайно не в институте работаете? Аспирант или еще кто?
Vader
Ну вот я работаю в институте —
И что? :)
barancev
О том, что вы работаете в институте я знаю, но я об этом где-то прочитал. Просто так вряд ли догадался бы. А вот насчет korziner'a я не знаю наверняка, но его посты очень похожи на посты человека, который работает в институте. Вот я и проверяю, не потерял ли я еще сноровку в обнаружении институтских работников :)
Vader
korziner
Нутром чую ;)
Если честно, думаю, что если я вам расскажу о своих «эвристиках», то вы будете очень сильно обижаться.
А Баранцев, в знак солидарности с институтскими работниками, того и гляди забанит :)
Vader
korziner
По моим личным наблюдениям, огромная часть институтских работников очень сильно оторвана от жизни и практической деятельности.
Они знают много умных слов и вворачивают их в разговор к месту и не к месту, даже если совершенно не ориентируются в предмете разговора, при этом абсолютно не представляя, как это реализовать на практике, а главное зачем. При этом, чужую точку зрения они обычно не воспринимают совсем, т.е. даже не пытаются проанализировать то, что им сказали.
Отакэ ;)
Vader
korziner
Вобщем, рекомендую убрать кучу страшных тегов и курить хтмл.
Vader
1. А зачем автоматизировать поиск багов? Правильнее все же автоматизировать модель поведения пользователя, имхо.
2. Почему вы упорно считаете, что в этом случае:
Я ж даже код написал…
Чтобы было понятнее, возьмите код ниже, сохраните в .html файл, потыцкайте на кнопочки и посмотрите, что будет передаваться в гете:
Думаю, будет очевидно, где и сколько вариантов выбирается.
З.Ы. Человек, который написал то, что у вас по ссылке либо не смотрел что у него получилось, либо он индус. Если вас на работе преследуют подобные баги — бегите с этой работы.
Vader
Вообще-то одно другому не мешает, можно автоматизировать и то и другое. Статический анализ кода, поиск уязвимостей, внутренний мониторинг с автоматической отправкой сообщений о сбоях в приложении — всё это не требует автоматизации модели поведения, но помогает найти баги.
barancev
Возможно, надо бы уточнить вопрос: зачем автоматизировать поиск таких багов? Тем более, с помощью тула указанного в тегах.
Кстати, подозреваю, что статический анализ мог бы такой баг поймать. Не такая уж сложная задача, имхо. Ну я в этом не спец… пока-что ;)
Vader
1. Формулируем эвристику.
2. Формализуем её и автоматизируем.
3. Запускаем этот авто-баголов.
4. Анализируем вручную результаты его работы.
Рассмотрим на данном конкретном примере.
1. Эвристика: если несколько радиобаттонов расположены рядом друг с другом, они должны составлять группу.
2. Формализуем.
а) «образуют группу» = «имеют одинаковые значения атрибута „name“
б) „несколько“ = „2 или больше“
в) „расположены рядом друг с другом“ — это сложнее, но тут тоже можно применить некоторые эвристики — теги идут непосредственно друг за другом, или в элементах списка (ul, ol), или в ячейчках таблицы (по строкам или по столбцам) или… или… или…
Автоматизируем — пишем плагин к браузеру, или отдельную программу, использующую какой-нибудь фреймворк для автоматизации работы с приложением.
3. Запускаем.
4. Анализируем вручную, потому что возможны ложные срабатывания. И чем более сложную эвристику „рядом“ мы сформулируем, тем больше вероятность ложных срабатываний. А чем менее сложную — тем больше вероятность пропуска бага. Такова жизнь :)
barancev
Мне кажется, что в данном случае, достаточно только условия — «атрибут name каждого тега input не уникален в пределах одной формы», а сложные условия «рядом» для отлова этого бага ни к чему. Или я ошибаюсь?
Vader
А стоят ли радиобатоны в группе рядом или нет и определить-то не всегда можно, если проходить по HTML-ной модели документа каким-нибудь автоматизированным тулом. Да и не важно это на самом деле.
А вот почему автор заметки относит такой дефект к ошибкам в UI совершенно не понимаю. Вполне себе функциональная проблема (а точнее проблема с программистом, который, похоже, впервые в жизни пытался создать группу радиобатонов).
LeshaL
barancev
rlabs
barancev
freiman
Мне на курсах говорили, что если автоматизация требует в 20 раз больше времени, чем вручную, то выбираем вручную. С другой стороны вручную скучно, fun ведь тоже фактор :)
Что мешает разработанными скриптами делиться (вынося конфиденциальную и прочую специфику в его модуль)? Не утверждаю, что ничто не мешает, а спрашиваю, что мешает делиться.
korziner
Тестирование напрямую через апи-шмапи в обход гуя может обернуться 100%-ой работой апи-шмапи, но при этом гуй может оказаться мертвым. Тестировать через гуй все равно придется. А зачем проверять одно и тоже дважды в одном цикле тестирования? Вы не сможете оправдать такие затраты перед своими руководителями и получите по башке, что будет (имхо) справедливо.
2) Автоматизация тестирования самого гуя не имеет смысла (выравнивания там всякие, резолюции и т.д.). А автоматизация тестирования функциональности в большенстве случаев через гуй делается, ибо эмулирует работу пользователя. Опять же, если цена (в ресурсах) автоматизации тестирования будет велика, а roi ничтожно — имеет ли смысл вообще проводить автоматизацию? Тем паче если гуй не устоялся да к тому же будет менятся от версии к версии.
ЗЫ: Перед тем как автоматизировать какие-либо тесты надо провести анализ необходимости данной автоматизации. За «фан» фан платить не будут.
KonstantinGud
2) иногда автоматизация именно гуя может быть полезной — например, сравнение сайта на разных браузерах: сделал скриншоты для проверки — и вперед, скрипт ходит по нужным страницам и сравнивает с эталонными :) но, конечно, это частный случай.
freiman
1) Через гуй вы тестируете ровно то, что нужно пользователю, не меньше.
Опять же, не надо разные типы тестирования валить в одну кучу. Я говорю о функциональном тестировании. Про «логику работы классов» не понял. Вам функциональную логику надо проверять.
2) А если еще добавить различные разрешения экрана; различные операционные системы + различные версии операционных систем — автоматизация отправляется прямо в топку. Гораздо дешевле глазами проверить.
ЗЫ:
Вы так и не обьяснили:
1) почему автоматизированное тестирование через гуй — это есть зло?
2) в каких случаях при тестировании веб-приложения необходимо тестировать апи интерфейсы (и какие)?
KonstantinGud
Насчет веба я ничего сказать не могу, т.к. не занимался им. Возможно, автоматизация тестирования веб-приложений через гуй — хороший вариант.
Для десктопных приложений это не так. Несмотря на то, что и тут есть стандарты в элементах управления, очень часто бывают сложности с определением тех или иных кнопок, списков и пр. Соответственно, на задачи, не связанные с тестированием, уходит много времени, и тестирование получается неэффективным.
Мне кажется, будет лучше, если из цепочки «Скрипт — гуй — код» убрать гуй и автоматизировать тестирование кода, а тестить гуй руками.
freiman
Нужно выбрать тот тул, который может определить эти контролы. За достаточно долгое время (для меня) не имел особых проблем с определением контролов.
Не хочу вас огорчать, но у тестировщика такой цепочки быть не может.
Если вы тестировщик, то вам надо работу приложения тестировать, а не код. А если вы к тому же и не проф. программист, то тестирование кода превратиться в бесполезное занятие с тратой времени впустую.
Вы опять путаете, не гуй тестировать, а функционал через гуй.
Тулы автоматизации функционального тестирования как раз для этого и предназначены, но ни как не для тестирования кода и «логики классов».
Расскажите пожалуйста, что такое автоматизация функционального тестирования не через гуй?
KonstantinGud
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.