среда, 3 ноября 2010 г.

Оптимизация повторного использования тестов

Добрый день!

Все мы знаем , что повторно использовать тесты - хорошая практика, позволяющая экономить ресурсы. Для этого (в частности для этого) мы автоматизируем часть тестов, а остальное документируем и сохраняем для возможности ручной регрессионной проверки в будущем.
Есть идея в своей повседневной практике внедрить некую систему управления тестами, в которой тест - отдельно хранимая сущность, доступная для повторного использования в произвольном количестве тестовых сценариев. То есть, нужна возможность компоновать тестовые сценарии из уже заготовленных тестов , как из кирпичиков.
Сейчас в своей профессиональной деятельности использую *.odt и *.doc форматы для хранения тестовых сценариев. Зачастую сталкиваюсь с ситуацией, когда один и тот же тест приходится копировать в разные сценарии. А при необходимости актуализации теста (например, в связи с изменениями в тестируемой системе) приходится актуализировать целый ряд документов. Этот "мартышкин труд" уже порядком надоел. Тем более, на одной из конференций, посвященной QA , я познакомился с решением для поддержки тестирования из MS Team Foundation Server 2010 и был , признаться , печатлен той степенью автоматизации поддержки тестирования, которой удалось достичь разработчикам VS2010.
По ряду причин продукция Microsoft нам не подходит. В связи с этим нахожусь в поиске упрощенных openSource и , возможно, платных (неполных) аналогов TFS. Полнейшая автоматизация traceability требований, кода и тестов на данный момент не цель. Главное - возможность повторного использования описаний тестов ;)
Если кто-то сталкивался с похожими проблемами, буду признателен за совет, отзыв , мнение.

9 комментариев:

  1. Вот, например, список бесплатных Test Case Management Tools: http://opensourcetesting.org/testmgt.php

    Список не полный, конечно же. Есть еще куча всяких инструментов разной степени плюшевости типа Testuff.

    В большинстве своем они сильно уступают коммерческим аналогам по фичам, производительности и т.п., но необходимый минимум выполняют. К тому же их можно допилить под собственные нужды без особых проблем.

    Увы про все сказать не могу, так как кроме Bugzilla Testopia, Fitnesse и TestLink ничем из списка не пользовался. Как правило для каждого случая свой набор требований к подобным тулам (интеграция с определенными багтрекерами, настройка статусов/жизненного цикла и т.п.). Лучше сразу решить какие фичи нужны больше всего и от этого отталкиваться, а то потом глаза разбегутся.

    ОтветитьУдалить
  2. Сразу могу сказать насчет TestLink, что он так не умеет, к сожалению. Если кто-то обладает другой информацией - буду рад узнать, потому что нас тоже не устраивает такое положение дел.

    Из тех инструментов, про которые я слышал, тест кейсы как отдельные кирпичики, из которых можно собирать тест-сьюты, умеет хранить HP (Mercury) Quality Center, но он совсем платный.

    ОтветитьУдалить
  3. В нескольких своих проектах я использую DEVPROM и для организации тестов и для отметки результатов о прохождении.

    Тестовая документация организована в виде дерева, однако можно создавать тест-планы, в которые включать любые узлы этого дерева, тем самым, наверно, можно добиться повторного использования тест-кейсов, не нарушая при этом общей структуры документации.

    Сам инструмент полностью бесплатный, можно даже ничего себе не устанавливать, а использовать Облако проектов - это такой проектный хостинг.

    ОтветитьУдалить
  4. Testlink так умеет. Рома, поясни вопрос, что вы не смогли сделать?
    В рамках общей проектной структуры создаются кейсы. Кейсы хранятся иерархично в сьютах (=каталогах).
    В тестовые сценарии добавляются тест-кейсы. Один и тот же тест-кейс может использоваться в разных сценариях, в разной последовательности.

    В настройках сценариев указываем "использовать последнии версии кейсов". Меняем один кейс - во всех сценариях всё меняется.

    Ещё в тест-линке для удобства поддержки есть т.н. переменные, если что-то используется в разных тестах, то можно задать этот параметр как системную переменную.

    Рома, что именно не получилось??

    Что касается остальных пожеланий к TMS - интеграция с требованиями и автотестами реализуется достаточно легко, т.к. testlink с открытым кодом. На моей практике его допиливание до удобного использования заняло пару человеко-месяцев разработки, но это потому что требований у меня было много :)

    ОтветитьУдалить
  5. Коллеги, благодарю за информацию. Начал "курить" testlink. Первое впечатление - много полезного и нужного лично мне функционала. Например, можно строить произвольную иерархию тестсьютов и тесткейсов. Кейсы и сьюты можно копировать и перемещать. Правда это не совсем "повторное использование" - при копировании кейса создается новая копия, как "расшаривать" кейс для разных сьюитов пока неясно (надеюсь раскопаю). Демка работает крайне медленно и еще из неудобств - фрейм с деревом кейсов надо вручную обновлять и заново искать там нужный нод посде обновления... Пока такие впечатления.
    Повторюсь, testlink обладает многими возможностями, полезными для управления тестами + открытый исходный код (хоть и нелюбимый мной php, но все же доступный для "допиливания")

    ОтветитьУдалить
  6. Заглянул краем глаза в DEVPROM - не подходит однозначно потому, что разработчики офрусцировали php-код. Судя по всему zend-ом. Полагаю, отрверсить исходный php-код не составит труда , но подобный подход изначально отталкивает. Нужен чисто open-source - проект, каковым DEVPROM , получается, не является.

    ОтветитьУдалить
  7. Если Вы готовы компенсировать расходы разработчиков на создание DEVPROM, то в платном варианте продукт поставляется с исходными кодами, так что модифицировать можно без проблем.

    ОтветитьУдалить
  8. Я не готов "компенсировать" по идейным соображениям. Так как "платность" не гарантия качества продукта и его сервиса. Пример одиознешее весчь TrackStudio..

    ОтветитьУдалить
  9. в testlink можно ли использовать один и тот же тест-кейс в разной последовательности действий назначенного на одного человека, предположим тест-кейс 1 -> тест-кейс 2 -> тест-кейс 1

    ОтветитьУдалить