Да, мы используем label, placeholder, name — все что может содержать текст, несущий информацию о типе поля ввода. Парсить валидацию — это интересно! Кстати, в одной статье про краулинг deep web описан примерно такой способ: робот заполняет форму, отправляет ее и смотрит какой контент пришел в ответ. Так он делает много раз. Если очередной вариант заполнения практически не изменяет контент ответа, значит форма была заполнена некорректно.
Хорошая мысль, мы думаем сделать что-то вроде «микроразметки для тестирования». Конечно, непросто внедрить общий формат в большой компании и добавить такую разметку в уже существующие интерфейсы.
Результат работы робота — сообщения об ошибках. Лог мы используем только для отладки.
Роботестер выполняет тест-кейс, а потом собирает со страницы различную информацию (текст со страницы, ссылки, текст алертов(если они появились) и отдает эту информацию в JUnit-тесты. JUnit-отчеты нам не совсем подходят, поэтому мы строим из них свои, «красивые» отчеты. Их смотрит тестировщик и пишет баг-репорты. В «красивых» отчетах можно применять фильтры по типу ошибок и склеивать похожие сообщения об ошибках в группы.
У робота самообучаемости нет. Да, универсальность заключается в том, что роботестер самостоятельно выбирает способ взаимодействия с формой и генерирует тестовые сценарии без участия человека. Планируем добавить supervised-методы обучения, например, для классификации страниц с ошибками. Unsupervised-методы для обнаружения ошибок — интересная тема, но к роботу в данный момент отношения не имеет.
Всего разработка заняла полтора года. Мы проводили эксперименты, сделали много лишних действий. Думаю, зная то, что мы знаем сейчас, можно было бы написать за пару месяцев.
Роботестер выполняет тест-кейс, а потом собирает со страницы различную информацию (текст со страницы, ссылки, текст алертов(если они появились) и отдает эту информацию в JUnit-тесты. JUnit-отчеты нам не совсем подходят, поэтому мы строим из них свои, «красивые» отчеты. Их смотрит тестировщик и пишет баг-репорты. В «красивых» отчетах можно применять фильтры по типу ошибок и склеивать похожие сообщения об ошибках в группы.