TestLink — боль и слёзы тестировщика или панацея? Опыт внедрения

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

Наш проект имеет очень сложную структуру: один только раздел может иметь документацию более чем на 100 страниц. Плюсом, конечно, идет паровоз из недокументированных фич и индивидуальных “хотелок” заказчика, которые начинающие члены команды могут принять за баги.

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

Внедрение


Сам TestLink написан на PHP, и особых проблем с установкой не возникло. Мы создали базу данных, дали права на папочки, и установка прошла как по маслу.

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

Как мы используем ресурсы команды и TestLink


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

TestLink в настоящее время используется не в полную силу. Он включает возможность использования не только тестов, но и условий. Использование условий видится очень перспективной возможностью данной системы. Условия относятся к тестам как многие ко многим, что позволяет реализовать несколько следующих моделей использования:
  • Связать тесты, затрагивающие один и тот же набор функций, одним условием. Это позволит эффективно и быстро создавать инкрементные прогоны, например, для горячих исправлений.
  • Вынести в условия некоторые ограничения, которые должны быть достигнуты для удачного прохождения теста.

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

Влияние TestLink на качество тестирования


Качество тестирования после внедрения TestLink, однозначно, возросло. Мы очень благодарны этой системе управления тестами за подробные отчеты после прогона тестов и за то, что она познакомила нас с тем, как необходимо подходить к тестированию. Сейчас мы имеем неплохую отлаженную систему тестирования своего проекта, благодаря которой новый сотрудник спустя буквально полдня будет полностью включен в работу с проектом и, самостоятельно сделав прогон всех тестов, сможет понять до 80% функций проекта.

Плюсы и минусы TestLink


Несмотря на все достоинства, столкнулись мы и с рядом недостатков системы. Естественно, всё очень субъективно, и для других компаний наши претензии будут казаться необоснованными. Мы не исключаем, что возможно, некоторые из недостатков можно устранить, изучив документацию или покопавшись немного в коде, но цель стояла немного иная. Нам было необходимо быстро оценить полезность подобной системы внутри нашей компании.
Достоинства:
  • Развитая система ролей. Очень гибко можно настроить доступы для разных сотрудников и так же оперативно отнять эти самые права.
  • Простая и понятная система структурирования проекта. Проект — Группа тестов — Тест — Шаги (Рис. 2).
  • Легкое распределение тестов между тестировщиками. Можно выбирать группы тестов или отдельные тесты, а также просто скопировать распределение тестов из прошлого релиза (Рис. 3).
  • Красивые отчеты по прогонам в разных форматах, в том числе с возможностью отправки по почте всем ответственным и заинтересованным результатами сотрудникам (Рис. 4).

Недостатки:
  • Нет ссылок на отдельные страницы внутри системы. Вместо того, чтобы послать коллеге ссылку, приходится называть проект, группу тестов и номер теста.
  • Проблема с версионностью тестов. В нашем случае с настройками по умолчанию невозможно просмотреть разные версии тестов из окна прогона тестов или в разделе редактирования, выбрав Compare versions.
  • Интеграция с Redmine. Она есть, но не удалось ее полностью настроить на работу с нашим Redmine с ходу в обе стороны (необходимы или дополнительные плагины, или разрешения).
  • Юзабилити. Без подготовки не очевидно, какие кнопочки нажимать, чтобы всё работало (Рис. 1).

Мини-обзор возможностей TestLink


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

Первое, что видит тестировщик, открыв TestLink ‒ это стартовый экран (Рис. 1).


Рис. 1 ‒ Стартовый экран работы с проектом в TestLink

Отсюда начинается любая активность в проекте. Здесь выполняется:
  • редактирование/создание тестов;
  • назначение пользователей, ответственных за прогон;
  • создание сборок;
  • редактирование настроек самого проекта.

Страница редактирования тестов включает в себя такие возможности, как:
  • создание/редактирование нового теста;
  • создание/редактирование группы тестов;
  • работа с версиями тестов;
  • создание/редактирование шагов в тестах.


Рис. 2 ‒ Редактирование тестов в TestLink

Далее рассмотрим распределение тестов по тест-планам.

Для этого следует разбить тесты на различные группы, которые затем могут использоваться для прогонов, подходящих под заданные условия. На рисунке 3 видно, что в данном случае тесты распределены по видам тестирования, которые мы проводим для выбранного проекта. Для других проектов у нас есть различные варианты разбиения на тест-планы, например, на проектах, где нет разделения тестов по группам и нужно каждый раз прогонять все тесты без исключения, мы завели тест-планы для Production и Staging окружений.


Рис. 3 ‒ Редактирование тест-плана

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


Рис. 4 ‒ Распределение задач по тестировщикам в TestLink

После распределения тестов прогон выглядит, как на рисунке 5. На нем доступно следующее:
  • Описание всех шагов, которые необходимо выполнить;
  • Поле для ввода замечаний;
  • Отметка о пройденности теста.

Кроме перечисленных элементов, можно увидеть и дополнительную информацию:
  • Предыдущие прогоны;
  • Платформа, на которой необходимо осуществить проверку;
  • Описание сборки продукта;
  • Описание тест-плана (не отображено на рисунке 5).


Рис. 5 ‒ Прогон тестов в TestLink

Сразу после распределения тестов мы уже можем наблюдать за появлением данных по отчетам тестировщиков в разделе “Отчеты” TestLink. В разделе представлено множество опций:
  • Слежение за результатами прогона;
  • Экспорт в популярные форматы;
  • Отправка отчетов по почте заинтересованным лицам;
  • Группировка тестов по различным признакам, представленным в левой части рисунка 6.


Рис. 6 ‒ Система формирования отчетов о прогонах в TestLink

Заключение


Надеюсь, наш опыт внедрения TestLink откроет для вас новые горизонты. Возможно, кто-то наконец откажется от ведения документации в таблицах. Нам бы хотелось услышать в комментариях ваше мнение о TestLink или о подобных разработках, как вы их используете, какова степень интеграции ваших инструментов, что удобно и неудобно.
Share post
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 18

    +1
    Недостатки:
    — Нет ссылок на отдельные страницы внутри системы. Вместо того, чтобы послать коллеге ссылку, приходится называть проект, группу тестов и номер теста.

    image

    на скриншоте стрелкой указана иконка с подозрительным символом гиперлинка. попробуйте по ней кликнуть ;)

      +2
      Попробовал, круто, жаль не везде есть такая кнопка :)
      0
      Какая же она страшная-то!

      Извиняюсь за, возможно, глупый вопрос, но чем TestLink лучше/хуже Travis/Jenkins?
        0
        Это принципиально разные вещи. TestLink это система для хранения именно текста тест-кейсов, а не система CI.
        0
        TestLink используем с давних пор в ручном и автоматизированном тестировании. Впечатление: дешего и сердито. Да, интерфейс не блещет красивостями, да, порой не интуитивен, порой даже и до магии дело доходит. Вроде и выполняет свои функции да еще и бесплатен, но что-то вечно не хватает. Но все же это лучше чем таблички.
        Постепенно стремимся отказаться от участия testlink в проганах и формирования результатов автотестов в пользу собственного решения. Параллельно в поисках альтернатив.
          0
          Простите за любопытство, а ваши разработки на чем-то основаны или пишите с нуля?
            0
            у нас большие и сложные продукты, основанные на собственных технологиях
          +1
          Эх, надо бы написать уже статью на хабре про ТестЛинк…
          Отвечу про «недостатки»:

          Нет ссылок на отдельные страницы внутри системы. Вместо того, чтобы послать коллеге ссылку, приходится называть проект, группу тестов и номер теста. — уже ответили. Они есть. Более того — если вам незаметно, то всегда можно подсунуть свои иконки.

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

          Интеграция с Redmine. Она есть, но не удалось ее полностью настроить на работу с нашим Redmine с ходу в обе стороны (необходимы или дополнительные плагины, или разрешения). — можно ничего не устанавливая в редмайн сделать так чтобы в ТестЛинк указывать открытые ошибки и чтобы показывался статус задач и их название. Плюс ссылочка. Для этого надо знать только адрес Редмайн и его ключ API (доступен админу).

          Юзабилити. Без подготовки не очевидно, какие кнопочки нажимать, чтобы всё работало (Рис. 1). — с юзабилити беда. Но… Слева у вас «постоянные» составляющие вашей команды тестирования. Т.е. набор тестов, платформ, систем трекинга багов, пользователей системы. Справа — «оперативные» данные типа тест-плана, билдов и текущей работы по исполнению тестов и просмотру метрик…
            0
            Спасибо за развернутый ликбез.

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

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

            Про Редмайн также указано, что речь именно про обе стороны, через АПИ мы сразу настроили — это не вызвало проблем.

            Про юзабилити. Да, всё так и есть, но когда это видишь в первый раз — страшно :)
              0
              Эх, надо бы написать уже статью на хабре про ТестЛинк…

              Андрей, было бы очень интересно посмотреть на ваш опыт использования Тестлинк!
                0
                Я вот только что завершил внедрение ТестЛинк в еще одной компании.
                Делал всё кроме первичной установки (ну не админ я по жизни :-) )
                А тонкую настройку делал сам. Плюс формирование бизнес процессов ну и сам переход на ТестЛинк с тестов в XLS.

                Вот информация по правильному переносу в ТестЛинк тестов из XLS.

                Новые версии Excel плохо поддерживают (никак!) тот формат XML, который понимает ТестЛинк.
                Поэтому для портирования используется внешнее ПО, распространяемое бесплатно.
                Программа называется EX-converter.
                Это свободное ПО. Вот его страничка: sourceforge.net/projects/ex-converter/
                Программа работает под MS Windows.

                Сорри, но этой утилите (EX-converter) и ее использованию даже после внедрения ТестЛинк можно писать тодельную небольшую статью.
                  0
                  Вот те шаги, в которых я задокументировал процесс разворачивания ТестЛинк (кроме самой установки). Думаю, что с их помощью больше команд начнут использовать хоть какое-то ПО для управления тестами и тест процессами.

                  Весь текст — мой. Это часть корпоративной Wiki.

                  ВНИМАНИЕ:
                  Необходимая проверка перед редактированием любых файлов конфигурации ТестЛинк:
                  1) Открыть файл в режиме редактирования.
                  2) Изменить режим кодировки файла на UTF-8. Этот шаг необходимо выполнять после КАЖДОГО открытия файла на редактирование!
                  3) Теперь можно проводить редактирование и сохранять результат.

                  Установка TestLink
                  ТестЛинк взяли последней версии, 9.1.11
                  Программа бесплатная. Сайт программы: testlink.org/
                  Для установки надо попросить администратора скачать и установить это ПО

                  Что нужно указать при запросе администратору:
                  1) Номер версии для установки
                  2) Для работы нужны на сервере БД MySQL и веб-сервер. Часто входят в дистрибутивы ТестЛинк.
                  3) Необходимо настроить резервное копирование БД.
                  4) Необходимо запросить сделать так чтобы ТестЛинк включили в автозагрузку сервера (чтобы при перезагрузке сервера ТестЛинк сразу начинал работать).
                  5) Попросить сразу в файле config.inc.php ( он расположен в каталоге /opt/testlink-1.9.11-0/apps/testlink/htdocs программы ТестЛинк )сделать следующие изменения (если нужно нормально поддерживать русский язык):
                  $tlCfg->default_language = 'ru_RU';
                  $tlCfg->charset = 'UTF-8';
                  При любом редактировании файлов настройки ТестЛинк убедитесь в том что кодируете в UTF-8.

                  Кроме того, необходимо у администратора запросить настройку почтовой системы ТестЛинк. Т.е. настроить ТестЛинк на работу с почтой вашей компании. Он просто настроит SMTP в файле конфига.

                  Настройка ТестЛинк сразу после установки
                  Эти шаги делались уже для тонкой настройки, т.е. не сис.админом, а мною.

                  Дл настроек необходимо заходить на сервер ТестЛинк через протокол SSH.
                  Если у вас стоит Windows, поэтому очень удобно использовать вот эту программу: winscp.net/eng/docs/lang:ru — это популярный Putty с графическим удобным интерфейсом).

                  Настроить следующие поля в файле config.inc.php ( он расположен в каталоге /opt/testlink-1.9.11-0/apps/testlink/htdocs программы ТестЛинк ):
                  $tlCfg->exec_cfg->history_on = TRUE;
                  $tlCfg->exec_cfg->show_history_all_builds = TRUE;
                  $tlCfg->exec_cfg->show_history_all_platforms = TRUE;
                  $tlCfg->exec_cfg->steps_exec = true; — начиная с ТестЛинк 1.9.11 это значение стоит по-умолчанию)
                  $tlCfg->exec_cfg->steps_exec_notes_default = 'latest'; — это изменение позволяет в заметка каждого шага при новом прогоне теста показывать заметки для этого шага из предыдущего (последнего) прогона теста.

                  Настроить под вашу компанию данные компании для печати в файле config.inc.php ( он расположен в каталоге /opt/testlink-1.9.11-0/apps/testlink/htdocs программы ТестЛинк ), часть /* [GENERATED DOCUMENTATION] */:
                  $tlCfg->document_generator->company_name = 'название компании';
                  $tlCfg->document_generator->company_copyright = '2014 © название компании'; — надо менять КАЖДЫЙ год
                  $tlCfg->document_generator->tc_version_enabled = TRUE;

                  Настройка использования лого вашей компании ( файлы ТестЛинка с графикой храняться тут: /opt/testlink-1.9.11-0/apps/testlink/htdocs/gui/themes/default/images ):
                  — Вставляем в каталог с изображениями два файла с такими же параметрами как файлы tl-logo-transparent-25.png и tl-logo-transparent-12.5.png
                  Редактируем в файле config.inc.php ( он расположен в каталоге /opt/testlink-1.9.11-0/apps/testlink/htdocs программы ТестЛинк )следующие поля:
                  $tlCfg->logo_login = 'файл с вашим лого.png'; — размер файла 231*56 пикселей, transparent
                  $tlCfg->logo_navbar = 'файл с вашим лого.png'; — размер файла 116*28 пикселей, transparent

                  — Настройка авто-коррекции имени теста (при импорте из XML) в случае если такое имя уже есть в системе. В файле config.inc.php ( он расположен в каталоге /opt/testlink-1.9.11-0/apps/testlink/htdocs программы ТестЛинк ):
                  //$tlCfg->testcase_cfg->duplicated_name_algorithm->type = 'stringPrefix';
                  //$tlCfg->testcase_cfg->duplicated_name_algorithm->text = strftime("%Y%m%d-%H:%M:%S", time());
                  $tlCfg->testcase_cfg->duplicated_name_algorithm->type = 'counterSuffix';
                  $tlCfg->testcase_cfg->duplicated_name_algorithm->text = " (%s)";

                  — Сделать перевод для текста, используемого в описании тестов, создающихся автоматически для требований. В файле config.inc.php ( он расположен в каталоге /opt/testlink-1.9.11-0/apps/testlink/htdocs программы ТестЛинк ):
                  $tlCfg->req_cfg->testcase_summary_prefix
                  $tlCfg->req_cfg->testcase_summary_prefix_with_title_and_version

                  — Можно сделать перевод части UI на русский язык. — об этом небольшим комментом ниже.

                  Последним шагом подготовки необходимо создать набор ролей (можно использовать русские буквы для названий) с определенными правами.
                  Также в ТестЛинк создайте отдельный проект для обучения персонала :-) работе с ТестЛинк.
                    0
                    $tlCfg->document_generator->company_copyright = '2014 © название компании'; — надо менять КАЖДЫЙ год

                    а так нельзя сделать?
                    $tlCfg->document_generator->company_copyright = date(«Y»).' © название компании';
                      0
                      Проверил — работает!
                      Спасибо за подсказку (я на скриптовых языках не пишу).
                      Взял вариант без кавычек.
                      $tlCfg->document_generator->company_copyright = date(Y).' © название компании';
                    0
                    Подробно про локализацию на русский

                    В поставку ТестЛинк входит локализация на русский язык.
                    Проблема в том, что примерно 40% элементов пользовательского интерфейса там не переведены на русский язык или для которых хотелось бы перевод поменять.
                    Поэтому можно выполнить дополнительную работу по переводу. К сожалению, не все элементы интерфейса запрограммированы так, чтобы перевод для них был в одном файле.
                    Поэтому, даже после полного перевода текста из файла custom_strings.txt останутся элементы, не переведенные на русский язык.

                    Что нужно сделать чтобы перевести на русский (и любой другой) язык части UI:
                    1) Перейти в каталог /opt/testlink-1.9.11-0/apps/testlink/htdocs/locale/ru_RU (если у нас используется русский язык для UI) на сервере с ТестЛинк
                    2) Скопировать к себе на ПК файлы custom_strings.txt.example и strings.txt
                    3) Скопировать из strings.txt в custom_strings.txt.example данные
                    4) Сделать нужный перевод в файле custom_strings.txt.example — ВНИМАНИЕ!!! ПЕРЕД НАЧАЛОМ РЕДАКТИРОВАНИЯ НУЖНО СДЕЛАТЬ ПРОВЕРКУ, ПРИВЕДЕННУЮ СРАЗУ ПОСЛЕ ЭТОЙ ПОСЛЕДОВАТЕЛЬНОСТИ ШАГОВ!
                    5) Переименовать custom_strings.txt.example в custom_strings.txt
                    6) Скопировать файл custom_strings.txt в каталог /opt/testlink-1.9.11-0/apps/testlink/htdocs/locale/ru_RU на сервере с ТестЛинк

                    Необходимая проверка перед редактированием:
                    1) Открыть файл в режиме редактирования.
                    2) Изменить режим кодировки файла на UTF-8. Этот шаг необходимо выполнять после КАЖДОГО открытия файла на редактирование!
                    3) Теперь можно проводить редактирование и сохранять результат.

                    Сам файлик с переводами у меня тоже есть. Но его — за пиво :-)
                      0
                      Тоже есть файлик локализации testlink 1.9.5. При подготовке я и мои коллеги старались. Составил глоссарий и переводил строки согласовано. С радостью предоставлю любым удобным способом. Файл достаточно полный, на момент версии 1.9, для более новых версий потребуется расширение.

                      Когда-то начинал перенос уже переведённого файла в проект translatedby. Закончил перенос на 18%.

                      Постараюсь не забыть опубликовать файл локализации.

                      Буду рад ответить на вопросы по локализации, изменению внешнего вида, интеграции testlink с системами учёта замечаний, администрированию, способам загрузки тестовых сценариев из внешних источников, организации процесса согласования проектов тестов, предоставлении удобного анонимного доступа к отчётам и показателям тестирования.
                      0
                      Собрал все свои комменты в одну статью: habrahabr.ru/post/234633/
                    +1
                    Файл локализации, про который написал в комментарии выше:
                    • http://pastebin.com/DeqXckUv — файл «custom_strings.1.9.5.txt», с переведёнными строками локализации для testlink 1.9.5, 198 КБайт;
                    • http://pastebin.com/aUGETs7B — файл "\testlink\locale\ru_RU\custom_strings.txt", это файл «custom_strings.1.9.5.txt» после обработки стандартным скриптом testlink дополняющим список модифицированных строк до полного списка из "\testlink\locale\en_GB\", 204 КБайт.

                    Only users with full accounts can post comments. Log in, please.