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