TestRail: как сначала подумать, а потом протестировать

    картинка для привлечения внимания Надеюсь, многие из вас знают, что в тестировании тоже есть документация. И вести ее можно по-олдскульному, в xls-файлах да в папочках или же, как настоящие джедаи, использовать специализированный инструмент.
    Вот об одном из таких инструментов под названием TestRail, который мы недавно внедрили у себя в TestLab², я и хочу сегодня рассказать. Инструмент оказался настолько удачным, что молчать сил не было и я решил наконец-то сделать что-то полезное для общества.



    Краткая официальная сводка о продукте:
    • Официальный сайт: http://www.gurock.com/testrail/
    • Предназначение: ведение тестовой документации
    • Лицензия: платный продукт, от €159*
    • Статус: release 1.0
    • Платформа: LAMP

    Скриншот TestRail

    Для всех проектов, которые мы тестируем, всегда обязательно пишется тестовая документация, от небольшого чеклиста до развесистого test suite с кросс-ссылками и сотнями кейсов. От идеи хранить документацию в локальных файлах отказались сразу и напрочь, это неудобно и просто непрофессионально. Пробовали «универсальное» решение, wiki (DokuWiki), но она не прижилась. Тут сложно сказать почему, пожалуй, дело привычки, и можно было бы «насадить добро палками», но тут подвернулся TestRail и понеслась.

    Краткий disclaimer по терминологии:
    • Test case — атомарный элемент тест-плана, состоящий из следующих компонент:
      • Описание environment-а (окружения), в котором выполняется case (может быть вынесен уровнем выше, в тест-план)
      • Шаги выполнения
      • Ожидаемый результат выполнения
    • Test suite — список case-ов, объединенных каким-то общим фактором (весь продукт, конкретная фича и т.д.)
    • Test plan — список test suite-ов, выбранных для теста
    • Test run — проход («прогон») test plan-а


    Установка и системные требования


    Два варианта: типичный LAMP или «IIS+SQLServer+FastCGI/PHP». Также потребуется ionCube и cURL, но это не редкость. Работает достаточно быстро, а после включения gzip через mod_deflate стало вообще пулей летать.

    Основные возможности


    Многопользовательская многопроектная система для ведения тестовой документации и учета результатов выполнения тестов. В продукте предусмотрено место для всех: для тест-менеджеров, которых больше интересует «когда будет» и «сколько багов», для простых тестировщиков, которым удобно отчитываться о пройденных кейсах, для аналитиков, которые смогут вгрызаться в самые дебри и выяснять чего ж оно всё так хреновов чем соль.

    Как выглядит рабочий процесс


    Скриншот TestRail
    1. Создается проект, для него указываются «Defect View Url» и «Defect Add Url». Интеграция с баг-трекером проста и, в то же время, гениальна: ваш-баг-трекер.com/страница-просмотра/%id%, и этот %id% бага TestRail подставляет сам. Подходит для большинства онлайновых баг-трекеров.
    2. Создается Milestone: фактически, версия тестируемого продукта, состоит из названия и дедлайна.
    3. Создается Test Suite: набор test case-ов, например «Тестирование UI».
    4. Внутри Test Suite создаются кейсы и, по желанию, секции кейсов: например в «Тестирование UI» есть две секции «UI клиента» и «UI админки». Секции поддерживают неограниченную вложенность.
    5. Каждый конкретный test case состоит из Preconditions, Steps и Expected Result. Тут, по-моему, все очевидно. К ним можно аттачить картинки и делать между ними кросс-ссылки.
    6. После того, как вы описали тестируемую систему с помощью test cases, пора начинать сами тесты. Для этого вы создаете Test Run, в который включаете нужные Test Suite или конкретные test cases. Ему назначается исполнитель (из активных пользователей системы) и на этом этапе работа тест-дизайнера заканчивается.
    7. Тестировщик, получив уведомление о том, что на него поставлен test run, начинает его выполнение. Каждому тест-кейсу по результатам теста выставляется статус Passed, Failed или Retest. Там же указываются комментарии и ID найденных багов.
      После прохождения всех тестов test run закрывается, результаты уходят постановщику задачи, а в системе остаются все данные о том, как прошло тестирование.
    8. По желанию заказчика/пользователя все результаты можно экспортировать в удобоваримые форматы, подготовить к печати или даже сдампить в xml для какого-то особо извращенного использования. Система строит небольшое количество графиков, позволяющих бегло оценить динамику результатов прогонов тестов и понять куда все катится.


    Сравнение с конкурентами


    Из альтернатив я раньше сталкивался с двумя системами: Rational Quality Manager и TestLink. Да простят меня поборники open-source, TestLink больше никогда не хочу видеть. Он конечно бесплатный, да, это весомый аргумент, но на этом его достоинства заканчиваются. Интерфейс старый и неудобный, непродуманная система ссылок на конкретные кейсы или сьюты, сама структура сьютов… в общем, по моему (и общекомандному) мнению — «непригоден к службе в военное время».
    Весь Rational Suite хорош, но он слишком массивен для небольших проектов и очень сильно насаждает свою методологию. Не говоря о том, что он стоит как оптовая партия ковров-самолётов.
    Из тех, о которых только читал, упомяну модуль к Bugzilla под названием Testopia, но вживую я его к сожалению не видел и не слышал о том, чтобы его кто-то использовал в production. Если в вашем проекте используется BugZilla — я думаю, что стоит взглянуть именно на Testopia, обещан достаточно высокий уровень интеграции.
    Также, есть еще некоторое количество подобных решений, встроенных в интегрированные системы разработки (тот же Mercury) или desktop standalone продукты (TestLog, QaTraq). Нам они не подходят из-за отсутствия нормального web-доступа. Если кто-то сможет подсказать в комментах еще приличных web-based систем подобного направления — буду рад.
    UPD1 Дополнительно найдены (спасибо astenix и Khizhnyak):


    Личные впечатления


    Для нас система оказалась практически идеальной и в плане минимально необходимого набора фич, и в плане удобства ежедневного использования. Мы занимаемся аутсорс-тестированием и ведем достаточно много небольших проектов, что отлично ложится в лицензионную политику вендора: лимит ограничивает только количество активных пользователей системы, поэтому мы деактивируем клиентские эккаунты по окончании проектов.
    Из недостатков стоит отметить два: в текущей версии TestRail не поддерживает Unicode что означает, что вести документацию на русском/украинском языке в текущей версии без хаков невозможно. Но соответсвующий feature request уже заявлен, должны скоро добавить. Для нашей команды это непринципиально потому, что пока все проекты, достойные попадания в TestRail, ведутся на английском языке.
    Вторая проблема — это отсутсвтие какого-то wysiwyg-редактора во всех text edit-полях. Это радует инженеров, но регулярно смущает заказчиков.



    Резюме


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

    Если будет интересно — я готов развивать тему различных тулов для тестирования и, к примеру, внимательно изучить ту же Testopia, чтобы рассказать вам о ней. Пишите в комменты.

    *Умеющие гуглить могут найти в интернетах купоны на скидки.

    Комментарии 22

      +2
      Возьму на заметку, сейчас не актуально, но может пригодится. Спасибо.
        –4
        Умеющие гуглить не будут искать купоны. Уж поверьте.
          0
          www.gurock.com/downloads/testrail/testrail-latest-ion51.zip — последняя триал (чтобы не регистрироваться)
            +2
            Отчего же. Система развивается. Если уж брать, так официально. Поскольку инструмент явно для долгосрочного использования. И апдейты от разработчиков будут весьма кстати.
            0
            Дизайн, как у basecamp. Один в один практически. И это плюс!)
              0
                +4
                Как и у Redmine, в том числе. Это на самом деле плюс.
                  0
                  Дело вкуса. Меня вот basecamp'овский интерфейс раздражает не на шутку.
                +2
                1)
                С RTH работать не доводилось?

                2)
                А без запроса со стороны развивать тему различных тулов для тестирования автор не может? К примеру, внимательно изучить ту же Testopia, чтобы точно знать, что там и как реализовано.
                  0
                  RTH раньше никогда не видел, смотрю, спасибо за наводку.

                  А на testopia автор в данный момент уже пристально смотрит. И пока ему не нравится, о чем он вскоре напишет.
                    +2
                    RTH пока что развивается в стиле «опенсоурсно положим Test Director на обе лопатки» и достаточно нерегулярно.

                    Чем-то родственен с Mantis (интегрируется, к тому же).

                    ЗЫ В отношении TestLink автор очень прав.
                      0
                      интегрируется, к тому же
                      А как именно?
                        +2
                        В техническом плане — в исходниках есть отдельный файл с инcтрукциями на языке PHP, которые надо обдумывать и правильно прописывать куда надо. У некоторых это удается не сразу.

                        В плане пользования — линкуются кейсы с багами, и все это в итоге отображается в статистике прогонов.
                          0
                          Добавил RTH в пост, спасибо.
                  +1
                  Спасибо за рекомендацию! Статья очень интересная. Раньше в одном проекте использовали *.xls-доки, в настоящее время *.docx, но как вы заметили, всё это чересчур громоздко при увеличении размеров проекта, тяжело обрабатывать результаты.

                  Думаю, в скором времени мы попробуем TestRail в действии. Тем более, что, насколько я понимаю, есть интеграция с Web-багтрекерами (у нас JIRA).
                    +1
                    Интеграция на уровне автоматической подстановки ID багов, просто и надежно. И с JIRA-ой совместимо, да.
                    +1
                    Тема тестирования весьма интересна — пишите еще!

                    У нас используется Mercury Test Director. Функциональность вполне устраивает (есть все, что умеет Test Rail). нет проблем с юникодом. Был замечен один баг с редактированием кейсов. но общего впечатления не портит. Правда как интегрируется он с багтрекинговой системой не знаю. Мы в результат прохождения сценария ставим номер дефекта (такой вот мануальный метод). Еще в TD могу отметить такую фичу как редактирование сценария прямо находу: в процессе прогона сценариев может оказаться, что сценарий устарел и необходимо его подправить.
                    Но если честно, по скринам мне TestRailбольше понравился — приятней интерфейс :)
                      0
                      Я могу путаться, но вроде Mercury Test Director уже и не Mercury а HP-что-то-там-где-то-там?
                        0
                        все верно. Сейчас владельцем является HP. Называется вроде HP Test Director. Подробнее не знаю, к сожалению. На данный момент мы используем версию 8.0
                        –1
                        Прикольные вы… :)

                        Вообще-то багтрекер в тест-директоре есть встроенный, и когда тест проходите, точнее когда ставите ему Failed — там прямо кнопочка такая есть «завести дефект», жмёте и создаётся дефект, в который помещается сценарий, описанный в тесте, и все ваши комментарии, которые вы по ходу выполнения писали.
                          0
                          верно. Это мне известно, но я считаю его несколько не удобным. Да и вообще тестдиректор как-то медленно работает. В качестве багтрекинговой системы используем ClearQuest — она быстрая, легко искать дефекты. По-моему само то для большого проекта.
                        0
                        У нас тестировщик поигрался на триале локально на своей win-машине, все нравится, решили внедрять… нормальный сервер соорудить под это дело.

                        Пытаюсь поднять testrail на freebsd10 и все бы ничего, но запинается на одном расширении «An Error Occurred… mbstring PHP extension»… при том что в системе вроде как все ок с ним:

                        #more /usr/local/etc/php/extensions.ini | grep mbstring
                        extension=mbstring.so

                        #pkg info | grep mbstring
                        php56-mbstring-5.6.9

                        # php -v
                        PHP 5.6.9 (cli) (built: Jun 18 2015 17:22:00)

                        Написал в их поддержку, меня послали в ubuntu чего не хотелось бы, ибо всё у нас на фре…

                        Кто ставил на free10 testrail поделитесь решением плз!

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

                        Самое читаемое