Ответ 1
Я использовал Robot Framework в трех разных компаниях, охватывающих около шести лет в то время, когда я пишу это, и все так или иначе были успешными.
Мой опыт
Компания 1
Первое место, которое я использовал Robot, - это веб-приложение на основе Java для компании интернет-туризма высшего уровня. Мы использовали Robot с Jython, которые позволяют нам создавать ключевые слова на Java и непосредственно действовать с тестируемой системой. Мы использовали селен для управления веб-браузером, причем большая часть нашего тестирования находилась в Firefox. Хотя усилия по тестированию были в значительной степени успешными с организацией QA, организация развития не смогла охватить ее - они предпочли использовать JUnit, а не Robot.
Компания 2
Моя вторая компания, которую я чувствую, была безусловным успехом. Мы использовали Robot множеством способов. Первичное использование было для запуска IE для принятия и регрессионного тестирования очень успешного коммерческого веб-приложения .NET. Мы также использовали его для тестирования iPad-приложения, объединив селен с appium. Мы использовали Robot для тестирования служб RESTful, которые поставляли данные в приложение. Мы написали специализированные ключевые слова, которые позволяют нам проводить анализ изображений, а также мы использовали тесты Robot для быстрого анализа нашего обучающего оборудования перед каждой тренировкой. У нас были ключевые слова, которые позволяют нам делать снимки базы данных перед тестом и восстанавливать базу данных после теста.
Мы также начали использовать Robot для ручного тестирования. Мы поместили ручные тестовые примеры в Robot, что позволило нам использовать функции отчетности и меток Robot. Когда эти тесты будут выполняться, они попросят пользователя выполнить ручные шаги, которые оказались намного более эффективными, чем когда у нас были тестеры, которые читали инструкции вручную из инструмента управления тестовыми случаями или документа Word.
Компания 3
Третья компания была крупной компанией (доход за 1 доллар США) с довольно большим ИТ-персоналом. У них были тестеры с очень низким техническим мастерством (я помню тот, кто понятия не имел, что такое командная строка). У нас была одна команда, посвященная написанию основного набора ключевых слов, а также обучение и наставничество для других команд. Я думаю, что использование робота сыграло важную роль в использовании некоторых из менее опытных тестеров, хотя даже с ключевыми словами высокого уровня это была борьба с ними.
Компания 4
Совсем недавно я переехал в очень маленькую компанию с несколькими разработчиками и без специальных тестеров. Мы приняли использование объектов страницы с рамкой робота, и теперь у нас есть исключительно стабильный набор легко читаемых приемочных тестов высокого уровня. Использование робота в этой компании было безусловным успехом.
Сильные
Самая большая сила робота - его гибкость. Мы использовали Robot для поддержки ручного тестирования, тестирования сервисов SOAP и REST, тестирования веб-интерфейса UI, тестирования базы данных, тестирования изображений и тестирования мобильных приложений. Поскольку робот настолько прост в распространении с помощью дополнительных библиотек, почти ничего не вы можете проверить, если вы готовы засучить рукава и написать несколько ключевых слов. В зависимости от вашей установки вы можете писать ключевые слова в Python, Java,.NET или на самом деле просто о любом языке через удаленный API Robot.
Поскольку тестовые примеры роботов и ключевые слова написаны простым текстом, вы не заблокированы для использования запатентованного инструмента для создания или просмотра тестов. Пользователи могут выбрать инструмент по своему выбору - Visual Studio, Eclipse, Emacs, Notepad и т.д. Существует также специальная IDE (RIDE) для роботов, хотя я ее не рекомендую. Кроме того, поскольку файлы представляют собой простой текст, они хорошо интегрируются с другими программными инструментами - их легко отличить и слить, искать и т.д.
Слабые стороны
Робот позволяет легко писать тесты низкого качества. Несмотря на то, что есть возможности документировать ключевые слова и тестовые примеры, а также использовать человекочитаемые имена для ключевых слов, тестовых примеров и переменных, нет хорошего способа обеспечить соблюдение лучших практик. Написание большого количества тестов и ключевых слов требует дисциплины. Как говорится, робот дает вам много веревки, чтобы повесить себя.
Еще одна слабость заключается в том, что темпы прогресса на роботе довольно медленные. С положительной стороны, Robot является надежным и относительно свободным от ошибок, поэтому нет необходимости в частых исправлениях. Тем не менее, есть запросы функций, которые томятся в своем журнале проблем в течение многих лет без движения, что может быть обескураживающим.
Резюме
Во всех компаниях нам понравилось использовать гибкость, предоставляемую синтаксисом Robot, для создания тестов, управляемых данными, тестов стиля BDD, а также простых процедурных тестов. И во всех случаях, поскольку тесты представляют собой текстовые файлы, тестовые активы были легко управляемы с помощью наших инструментов SCM (Mercurial, Subversion, Git)
Для меня Robot оказался прост в использовании, чрезвычайно прост в распространении и полезен для широкого круга задач тестирования, от модульного тестирования функций python до тестирования веб-сервисов, интерфейса браузера и планшета тестирования, тестирования изображений, тестирования баз данных и даже повышения эффективности ручного тестирования.