20130520

Начинаем работать с Testlink.

Пособие в первую очередь для себя. Писал, когда поднимал его. Может быть и вам пригодится.

Вот здесь всё написано правильно и умным языком. Я же предлагаю простое обьяснение здесь и сейчас.

Итак, у нас есть тестлинк, он поднят на денвере (может позднее опишу как это сделать за полчаса и как избежать подводных камней.). Локаль русская.
И мы готовимся в первый раз зайти в него. В принципе, переквизиты стандартные.
Поехали.

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





Часть первая. Немного теории

TL работает с несколькими классами объектов, подчиненных иерархической структуре. Первая цепочка - это иерархия пользовательских ролей.
guest
tester
test designer
senior tester
leader
admin

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

Следующая цепочка объектов - это те, непосредственно с которыми работает пользователь.
Продукт.
Проект.
Тест-план. (тут два спиноффа - версия(сборка) и платформа
Группа требований
Требование
Набор тестов (тест сьют)
Дочерний набор тестов (вложенность неограничена)
Тест.

Понеслась теория.

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

Требования - они и в Африке требования :)
Как они работают?
В идеальном мире в котором я живу, одно требование покрывает собой одну особенность функционала. Соответственно, некоторое количество тест-кейзов покрывает это требование.
Мы можем рассчитать сколько тест-кейзов покрывает требование и указать это в самом требовании. Соответственно столько или больше или меньше тест-кейзов мы можем привязать к требованию.
Как это влияет на метрики можно видеть в соответствующем разделе.

Тест-план являет собой схему, по которой будет проводиться тестирование. Мы можем добавлять в тест-план наборы тестов и требований. Один проект может содержать больше одного тест-плана.
Примеры тестпланов: тестплан для смоука, для регрессии, для полного ретеста и так далее. двумя неотъемлемыми атрибутами тест-плана являются платформа и версия/сборка. Ну, здесь всё просто. Это ПАКи, на которых будет проводиться тестирование. Соответственно платформа - железо или ось и мобилка и версия – версия версия разрабатываемого продукта.
Для того, чтобы тест-кейзы и наборы тесто были доступны для прохождения - их необходимо добавить в тест-план. Это обязательное условие.

Проект - это самый первый объект, внутри которого находятся все вышеперечисленные. Именно он является материнским классом и его роль аналогична роли такого же класса в редмайне.

Часть вторая. Практика.

Итак, когда с теорией покончено - давайте пробежимся по TL и составим куцый схематический и убогий тест-план для тетриса. Если в ТЛ ещё не создано проектов, то нам предлагается тут же сделать это.
Опции создания расписывать не буду. Будет интересно - подойдёте, спросите. А потом дополните. Единственное, что стоит знать - это надо активировать требования, приоритет, активность и доступность (паблик). Интеграция с трекером есть, но надо немного попилить и со стороны трекера тоже.

Создали.
Теперь вам доступен ДашБорд ТЛ. Ваш лучший друг на время использования этого инструмента.
Создаем тест-план (единственная менюшка справа). Так же делаем его актив и бублик (public). Пусть это будет тест план, посвященной вращабельности, падательности и исчезательности фигурок. Создали. Видали сразу сколько интересного стало доступно справа?

Агонь, да?

Вот теперь можно и развернуться в полную силу. Давайте зададимся вопросом, где будет проводиться тестирование?
Пусть это будет мобилка и ПК. Надо бы создать такие платформы.
Идём в "Управление платформами" слева на дашборде TL (далее - ДБ). Создаем мобилку и ПК.
Чудненько! Версию будем добавлять в самый последний момент, имхо.

А пока что идём в "Редактировать требования" и создаем требования, которые будем покрывать тестами. "Редактировать требования" - слева на ДБ.
Итак, создаем требования. В открывшемся окне мы видима два основных фрейма. В правом бесполезная информация на иностранном языке, которую читать не обязательно.
Нас интересует левый фейм.
В нем мы видим кучку фильтров, которые пригодятся нам в следующем столетии. И внизу папочку с названием нашего проекта. Клац на неё. Ага. Добавляем новое требование.
Пусть айдишник будет 0001. Назовем "вращабельность"



Эта спецификация требования будет проверять нам функциональность вращения фигур тетриса.

Тип, я на самом деле ХЗ какой ставить, но ставил Юзер реквайрмент спесификатион.
Сохраняем. Таким же макаром создаем спеки "скоропадательность" и исчезаемость. Ну и айди документов можно поменять на 0002 и 0003, соответственно.

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

Создаем требование.



Кстати, внизу есть такое любопытнейшее поле, которе предлагает нам угадать сколько кейзов понадобится для покрытия требования.
Можно писать любое число, но тогда готовьтесь к любопытным эффектам.
Можно сказать: 
" -Я покрою это требование с 3х кейзов! 
- Покрывайте!"
И тогда если мы привяжем три кейза к нашему требованию, то будет покрыто 100% требования. Если 2 кейза, то тестами будет покрыто всего 66% требования. Ну вы поняли, да? Так что чего и сколько ставить - это уже вам решать. На вашей совести. Я обычно оставляю 1, а потом смотрю сколько кейзов получится и редактирую.

Получаем картину примерно такую:



Два других требования я предлагаю вам создать самим по аналогии.



 Итак, требования готовы! Можно начинать покрывать их кейзами.
Идём в ДБ.





Кликаем на "Редактировать тесты" (слева)
Знакомая картинка, да? Опять бесполезный правый фрейм, никому не нужные фильтры справа сверху и ниже них - папочка с названием проекта. Что ж, можем создавать наборы тестов и дочерние наборы какие хотим ) Но лучше не какие хотим, а какие надо.

А надо нам три набора, например.




Мы можем делать какую хотим вложенность и инфрасруктуру. Но всё это тлен, а нам нужны только три наборчика. Я думаю сами докгадаетесь какие.

Итак, создаем свой первый тест. Кликаем на "вращаемость" и в левом фрейме выбираем "создать тест"

Именно "создать тест" и ничто иное!

Называем наш тест "Проверка поворота". Остальные полня не обязательны для заполнения. Зато интерес нам представляет выпадающая менюшка "важность теста". Ну вы поняли зачем она, да?
Жмем "Создать".
Sweet.
Теперь у нас есть тест и мы можем создать в нем шаги.




Жмем "Создать шаг" и создаем шаги! Ну, тут уже пишем что как кому нравится.
Например





Дальше заполняем по смыслу сами.
Ну да ладно, что-то мы на одном месте подзадержались. Переходим к следующему этапу веселья.
Выходим на ДБ.
Выбираем слева "Покрыть требования тестами" Теперь через чекбокс привязываем тесты к требованию.
Вуаля!
Теперь тыкаем на каждый тест, и нажимаем кнопку "добавить в тест-план".
Дабл Вуаля!
Теперь у нас есть красивые тесты, покрывающие требования и готовые к употреблению.



Часть третья. Делегирование прогонов

Теперь находим виновного.
Если мы админы или лиды или ещё кто с надлежащими полномочиями, то мы можем назначить определенные тесты на людей. Да хоть на самих себя.
Выходим в ДБ.
Нажимаем "Назначить ответственного за прогон" справа. И видим....
Что не создано ни одной сборки продукта. Всё правильно.
Создаем сборки, как нам это предлагают в окошке!


Там же, кстати, можно указать и дату выхода сборки и всё прочее.



Выходим в ДБ.
Нажимаем "Назначить ответственного за прогон" справа.


Другое дело! Получаем что-то типа такого:



Жмем "изменить выбранные тесты" и готово! Теперь по кнопочке "тесты, назначенные мне" мы можем прогонять тесты. Там, я думаю, все разберутся что и как уже делать.

На этом на сегодня всё.


Как-нибудь позднее я напишу как поднимать тестлинк на денвере и как избежать подводных камней при этом. Задавайте вопросы в комментариях - я отвечу. Возможно что-то осталось неосвещенным.








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

  1. Ответы
    1. Меня заставили. У них мой паспорт и военный билет.

      Удалить
  2. Отличное описание. Все получилось. Хоть появилось представление, как создаются все эти тест-планы. Немного был затык на последнем уровне с назначением ответственных, но немного побегав по менюшкам, назначить все же удалось. Спасибо за ликбез :)

    ОтветитьУдалить
  3. 1 используете ли экспорт/импорт сценариев/требований на русском языке? в каком разрешении? вам удобно? (мне не удалось импортировать. ощущение что только поддерживает english)
    2 допиливали ли представления отчетов о тестировании? (иногда РМам нужны другие отчеты)
    3 использовали и полезно ли поле Execution Time и Actual Execution Time (сама только добавила в кейсы, но практического опыта не было мб что интересного расскажите,о том где отслеживать потраченное время и учитывать его в сл. раунде тестирования)
    4 я ещё так и не разобралась в различиях между ролями... мб знаете где четкое описание? а то чувствую собственную матрицу придется составлять...
    5 расскажите об опыте использования Milestone. Тоже адекватного и ясного описания не могу найти))
    6 используете ли привязку кейсов к JIRA? вам удобна текущая реализация? (я мечтаю о копи пасте с описания кейса сразу в описание бага в джире и последующем редактировании)

    ОтветитьУдалить
    Ответы
    1. 1. Да, используем. XML. Удобно. С поддержкой локализации можно справиться, если в конфигах тестлинка при его разворачивании прописать одинаковый формат символов Или кои-8 или вин-1251. Но при этом моэжет похериться старая база, поэтому надо это делать сразу как только развернули тестлинк, но не создали проект.
      2. Пока ещё нет. Но в сети очень много разных экстеншнов для этого с описаниями как их впилить. Справится даже новичок.
      3. Ну, это к разговору о метриках. Кому-то надо, кому-то нет. А вобщем суть вы уловили верно. Они для оптимизации времени.
      4. Абсолютно такие же роли как и везде. Но у нас они уже перепилены.
      Хотя, стандартные названия ролей и права их обычно соответстуют необходимым запросам. Дополнительные права выдаются по запросам.
      5. Просто итерация тестирования. По канонам должно быть несколько майлстоунов, потом альфа, потом бета, потом идут релиз кандидаты. Как хотите так и называйте. Это просто контрьольные точки сдачи итераций.
      6. Не люблю джиру, если честно. )

      Удалить
  4. Поставила тестлинк версии 1.9.8. Как только пытаюсь поменять локализацию на русскую - весь интерфейс иероглифами :( что делать?

    ОтветитьУдалить
    Ответы
    1. Known issue. Эх, надо бы запилить мануал по развертыванию. Да всё руки не доходят.
      Короче, в общих словах: (сначала советую посмотреть последний абзац, а потом сначала читать)

      1. Переключаемся на английский.
      2. Лезем в конфижный файл - config.inc.php
      (Открывается обычным текстовым редактором.)
      3. Находим строчку $tlCfg->charset
      По идее там по дефолту стоит WIN-1251
      4. Меняем значение на:
      $tlCfg->charset = 'UTF-8';
      5. Перезапускаем тестлинк.
      6. Переключаемся на русскую локализацию.
      7. Успех!

      Однако, хочу предупредить. Что когда вы смените кодировку, старые данные станут недоступны. То есть всё, что создавалось до этой операции (требования, сценарии, кейзы и даже сам проект) можно будет смело удалять, ибо работать оно не будет. Увы и ах, но это так. Придется создавать всё заново.

      Удалить
    2. В конфиге по дефолту и стоит UTF-8...

      Удалить
    3. Спасибо, как-то получилось!

      Удалить
    4. Анонимный8/06/2014 07:51:00 ПП

      Победить иероглифы получилось только после того, как прописал в config.inc.php $tlCfg->default_language = 'ru_RU';
      $tlCfg->charset = 'Windows-1251';
      а utf-8 и en_GB закомментил.

      Удалить
    5. Ну, дефолт лэнгвич можно через гуй выставить.
      А вот работу на 1251 я, мягко говоря, не одобряю.
      Лучше на UTF-8.

      Удалить
  5. Очень странно получилось: на шаге "Редактировать требования" создала дерево - всё ок, оно есть, при повторном входе тоже. А вот потом, на шаге "Редактировать тесты" - вижу только папку проекта - дерева, созданного на предыдущем шаге как не бывало...

    ОтветитьУдалить
    Ответы
    1. Так ты создала дерево требований, а не тестов. Разумеется у тебя нет тестов, которые ты могла бы редактировать.

      Удалить
    2. Т.е. то, что в окне создания тестов у меня в дереве только (0) и ничего более - это нормально? А как же связать требования с тестами? Я думала тут будет дерево с требованиями, клацая на которые мы будем к ним создавать тесты...

      Удалить
    3. блин, кавычки съело... я имела в виду: "имя проекта" (0)

      Удалить
    4. В общем, разобралась! требования потом линкуются. Спасибо!

      Удалить
    5. Да не за что) Дело в том, что требования и тесты изначально независимые сущности :) Связываем их только мы )

      Удалить
  6. Здравствуйте! А Вы можете помочь в настройке, точнее, в организации самой структуры Testlink для тестирования ПО в нашей команде? Как с Вами связаться?

    ОтветитьУдалить
  7. Анонимный2/27/2014 12:30:00 ДП

    Здравствуйте, Мы подключили TestLink c большим списком кейсов в проекте к JIRA. В результате работает только линк "Access to Bug Tracking System (Jira)" - перенаправляет в JIRA и позволяет создавать новый баг.
    Кнопка "Create Issue" выдает ошибку:
    Error: Create JIRA Ticket FAILURE => com.atlassian.jira.rpc.exception.RemoteValidationException:{customfield_10060=Severity is required.}
    А кнопка "Link Existent Issue" не принимает Bug id. Короткий - не находит, а полный с https линк считает неправильным форматом Bug id.

    Кто-нибудь знает как это лечится?
    Маргарита

    ОтветитьУдалить
    Ответы
    1. Интеграция джиры с тестлинком это большая головная боль, но порой бывают решения начальства, которые нельзя оспорить, да.
      Прежде всего, косяк в том, что это сама джира из-за каких-то своих полисей, замороченных на авторизации не дает вам возможности интегрироваться.

      Настоятельно рекомендую сделать это через SOAP интерфейс.
      http://www.slideshare.net/ErolSelitektay/test-link-jira-soap-integration

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

      Удалить
    2. Анонимный3/02/2014 10:04:00 ПП

      SOAP мы настроили с самого начала. Но, к сожалению, Вы правы, Jira не понимает и не принимает пользователя тестлинка, а сам тестлинк, не понимает и не принимает LDAP пользователя от JIRa.
      А по поводу костыля, Вы имеете ввиду создать в тестлинке кастомное поле типа Secirity, я правильно поняла?

      Спасибо,
      Маргарита

      Удалить
    3. Да, обычное кастомное текстовое поле, в которое можно было бы вписывать адрес тикета в джире. Это не сильно добавит юзабельности, но по крайней мере будет довольно прозрачно и возможно даже кликабельно )

      Удалить
  8. Спасибо за faq, написаннный без лишних сложностей и доступным языком.
    *Шлю лучики и плюсики в карму)

    ОтветитьУдалить
    Ответы
    1. Не за что ) Лучше покликайте по баннерам. Вторая пенсия :)

      Удалить
  9. Этот комментарий был удален автором.

    ОтветитьУдалить
  10. Здравствуйте, скажите пож. почему высвечивается красный значок [Ghost] в окне редактирования тесе кейса и при нажатии она него под ним высвечивается: [ghost]"TestCase":"1-2","Version":"2"[/ghost]
    Заранее спасибо.

    ОтветитьУдалить
    Ответы
    1. Трудно сказать. не сталкивался. Возможно это при создании более поздней версии тест-кейза происходит. Опишите подробней, пожалуйста.

      Я хоть тестлинком уже давно не занимаюсь, но вроде не все знания ещё растерял.

      Удалить
    2. И, да. Только высвечивается? Больше ничем не мешает?

      Удалить
    3. Это появляется в окне редактирования тест кейса, после создания тест кейса, и вроде не на что не влияет. Могу выслать скрин, только куда?

      Удалить
    4. Лол) Прикольно ) Блин, надо бы посмотреть код элемента что его вызывает.
      И чтобы хотя бы знать как эта хрень правильно называется.

      Вцелом, есть мнение, что это связано с настройками видимости или прав. Копайте пока в этом направлении. Я тестлинк давно снёс и уже скорее по памяти ответы даю )

      Удалить
    5. Так, а новая версия кейзов присвоена какому-нибудь тест-плану?
      Просто после прогона одной версии тестов в рамках одного тест-плана, если мы меняем тест-кейзы - создается их более поздняя версия и её надо линковать с новым тест-планом.

      Насколько я помню, там с точки зрения логики довольно криво употребляется слово "тест-план". Это скорее итерация.

      Удалить
    6. Этот чёртик появляется сразу же после создания тест кейса, и не исчезает даже после присваивания к тест плану. С настройками видимости или правами копался - не помогло. На него когда наводишь курсор мышки пишет Show Ghost String

      Удалить
    7. А версия какая тестлинка?

      Удалить
  11. Анонимный6/21/2014 08:27:00 ДП

    Охренеть.... установил... установилось... язык и всё такое работает... кнопочки нажимаются... слова читаются... Решил узнать а зачем TestLink нужен???

    Нашёл этот блог... прочитал... Наверно если я вместе с автором сделаю все описанные выше действия, то я создам идентичные тесты...

    Но, хоть убейте, я не понимаю ЧТО ЭТИМИ ТЕСТАМИ ТЕСТИРУЮТ??? ДЛЯ ЧЕГО ЭТА ПРОГРАММА??? И почему все так довольны и благодарят автора? Я тоже автору благодарен... т.к. он внёс надежду в мой разум, о том что, все кнопочки в этой программе имеют смысл... Но объясните в чём смысл этой программы?! Пожалуйста...

    ОтветитьУдалить
    Ответы
    1. Этот вёб-интерфейс представляет собой хранилище тестов для программного обеспечения.
      Если функционал необходимого продукта надо регулярно тестировать, то в Testlink создаются тестовые сценарии, по которым можно это делать, наблюдая динамику исправления багов и снимая метрики.

      Этими тестами тестируют то, что необходимо. Есть у вас, например, сайт.
      Описываете его функционал в виде тест-кейзов в тестлинке и всё.

      Удалить
  12. Подскажите, и как всё таки создать проект?

    ОтветитьУдалить
    Ответы
    1. При развертке тестлинка предлагается создать проект.
      Да и потом в дашборде это тоже доступно.

      Удалить
  13. Анонимный12/19/2014 02:07:00 ДП

    Вот на такой вопрос ответьте, пожалуйста: назначил инсталляционные тесты в тест-план инсталляционного тестирования. Расписал по ответственным, отметки о прогоне есть. Теперь хочу в конфигурационный тест-план накидать разные созданные ранее тесты (не плодить же дубли - долго и неудобно), в том числе и те, по которым прогон инсталляционных тестов уже сделан. Но при добавлении (TestLink 1/9/12) выдается предупреждение: "Внимание! Тест данной версии имеет результат прогона в одном из тест-планов". Чем это чревато, и как правильно поступить, чтобы использовать одну базу тестов для разных тест-планов, сборок и т.п, хотя бы в рамках одного проекта?
    p.s. выше писали про то, что можно прицепать тесты из других проектов, но как это сделать, я так и не нашел. Может, в более старых версиях это работало...

    ОтветитьУдалить
    Ответы
    1. А придется делать дубли. Надо просто копировать кейзы в новый тест-план.
      Там вся фишка в том и состоит, что у тебя покрыты, например, все требования.
      И вместе с ними функционал. И если надо проверить что-то ещё или какой-то сценарий - ты просто выдергиваешь кейзы из общей "базы", которая у тебя есть и на их основе делаешь новый сценарий. При этом кейзы будут именно скопированы. Если я не ошибаюсь, то даже с увеличением версии кейза, да.

      Но точно не помню. Я тестлинком не занимаюсь оооочень давно, а вы на дату поста посмотрите )

      Надеюсь, что пояснил и помог!

      Удалить
  14. Анонимный12/22/2014 12:51:00 ДП

    Тогда не вижу автоматизации: если без дублей никак, то почему сам Тестлинк их не делает при назначении в новый тест-план? То есть, мне их нужно самому накопировать выборочно и размножить по вновь созданным папкам. С учетом того, что в таблице Word это на порядок быстрее делается, я в недоумении.
    более того, если прогонов не было, то один тест можно закинуть хоть в 100 тест-планов - никаких предупреждений. А когда начнешь их выполнять - они появятся? И все переделывать/дублировать? А как же с конфигурациями - это же, фактически, отдельные тест-планы... Кстати, не нашел, как удалить тест из плана, не прибегая к phpMyAdmin. Вроде, пишут - зайди админом, там кнопочка появится. И админом заходил, и лидом - нет никакой кнопочки. Точнее, флаг после первого сохранения лочится, и его уже не сбросить (и это касается всех тестов, а не только по которым был прогон, смотрел даже в планах без единого прогона вообще).
    p.s. дату поста, естественно, видел. И дату последнего ответа тоже. Поэтому написал сюда, и указал текущую версию - чтобы при ответе было более понятно (может быть, значительные изменения были).

    ОтветитьУдалить
    Ответы
    1. Анонимный12/22/2014 12:55:00 ДП

      UPD. Извиняюсь - забыл поблагодарить за ответ. ))

      Удалить
    2. Возможно я не так понял вопрос. Удалять из тест-плана можно без пыха 100%.
      Почитайте маны, в них же всё написано.

      Удалить
  15. Анонимный1/08/2015 06:46:00 ДП

    Часть третья. Делегирование прогонов. Все делала по шагам, но после добавления сборки и нажатия на выбор ответсвенного за прогонку - дерево оказалась пустым(( Подскажите пож почему

    ОтветитьУдалить
    Ответы
    1. а в тест-план внесли ваши сценарии?

      Удалить
  16. Анонимный1/08/2015 06:59:00 ДП

    а есть еще статьи по тестлинку?

    ОтветитьУдалить
  17. Здравствуйте, Андрей, а чем заменили TestLink и почему отказались?

    ОтветитьУдалить
    Ответы
    1. Привет! Я не отказывался - просто сменил работу )
      Заменил... Ну, трудно сказать, что заменил. В другой компании использовали Ситечко, в другой ТФС.
      У него есть свои минусы. На поддержание тестов требуется много ресурсов и он довольно громоздский и очень формальный. Ну и требует сильного допиливания.

      Удалить
  18. Отличная статья. Спасибо большое. Сижу разбираю,но столкнулся с такой проблемой. Когда пытаюсь назначить прогон. Захожу в "назначить ответственного за прогон" и там выбираю группу тестов, ставлю галочки напротив всех тестов, выбираю сверху в поле ответственного и ставлю галочку оповестить на мыло. Затем нажимаю "выполнить". Имя назначенного появляется в поле " Assign to" и все. Никакого письма и если выйти на главную, то при повторном заходе в "назначить ответственного за прогон" пусто как в первый раз. Подскажите если не сложно где копать? Спасибо)) Версия "TestLink 1.9.14 (Padawan)"

    ОтветитьУдалить
    Ответы
    1. Привет! Три года не брался за ТЛ, но припоминаю такую проблему.
      В конфиг-файле (там в каментах выше написано как он называется) надо найти строчку, отвечающую за Mail-server или что-то в этом духе. И указать там доступ к почтовику вашей компании, ибо в тестлинк почтовик не встроен, как вы понимаете. Там же можно указать с какого адреса будут уходить письма, подпись и прочее.
      Ну, собственно, как и просили - направление, в котором копать я указал. Конкретней ничего сказать не смогу, ибо не помню.

      Удалить
    2. Не забывайте нажимать еще кнопку "Изменить выбранные тесты", т.к. только после нажатия на эту кнопку тесты будут назначены

      Удалить

Ваш комментарий очень важен для нас.