Как и многие другие стартапы в наших проектах, в первый год существования родились горы кода, которые хоть и были неплохо покрыты 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 или о подобных разработках, как вы их используете, какова степень интеграции ваших инструментов, что удобно и неудобно.
Автор: kentastik