Test & Test Case Management in Jira [инструменты]

Части:
1. Условности
2. Реализация
3. Автоматизации работывы тут
4. Создание отчетов
5. Связь с другими проектами

Во многом, для того чтобы работать с системой, о которой я рассказал в первых двух частях, достаточно возможностей самой Jira. Чтобы отслеживать текущее состояние по проектам, вполне подходит совмещение фильтров (по проекту и статусу Open) и дашбордов.  Но на мой взгляд это не слишком интересно отслеживать работу конкретно по тест кейсам. Интереснее оперативно получать информацию о тех кейсах, которые показали ошибки (Resolution: Failed). Для того, чтобы работа была приятнее, нужно настроить какие поля будут отображаться для этого фильтра. Делается это прямо из навигатора по задачам, пункт справа вверху Set Column Order for filter.

Я использую следующие поля: Priority,Key, Summary, Status, Assignee, Fix Version,Links, Created, Updated. А когда смотрю на табличку анализирую записи вот так. Смотрю, есть ли внешние ссылки (Links). Если есть, то просматриваю сначала описание тест кейса для теста (там так же могут быть внешние ссылки) и после смотрю внешние ссылки для этого теста. Если ссылок нет и  приоритет выше, чем Major смотрю дату создания и последнего обновления и комментарии по тест кейсу и тесту. Если ничего нет запрашиваю объяснения у человека, который выполнил тестирование (Assignee) и его лида (тут уже достаточно памяти). Такой подход не позволяет решить проблему обмена информацией и своевременной актуализации тест кейсов. Например существовавшая функциональность сильно изменилась в новой версии, но информация об этом будет в несена  в тест кейсы только после того, как изменения будут проанализированы тестерами. К этому времени тест кейсы могут быть уже пройдены. Вместе с тем это достаточно надежный способ для того, чтобы поддерживать актуальную информацию о регрессионных проблемах при тестировании.

Итак, что легко можно автоматизировать при работе с TCMS средствами Jira, например:

  • Получение актуального статуса по объему оставшейся и выполненной работы (фильтр, либо отчет. Project Pivot Report, например);
  • Получение статуса по загрузке участников группы в тестирование по тест кейсам (фильтр + портлет Pie Chart);
  • Составление календаря с указанием предполагаемых сроков завершения тестирования по каждому тесту [правда, обычно по всем разом] (фильтр + портлет Issue Calendar);
  • Получение актуального статуса по упавшим тестам (фильтр);
  • Получение отчётов по проделанной работе  (отчеты по проекту);
  • Получение списка изменений в тест кейсах (фильтр по Update After/Before);
  • Получение списка автоматических тестов (фильтр);
  • Получение отчета по загрузке работой по людям и по версиям (снова отчеты по проекту);

В общем то, всё что касается отчётов и вытягивания информации по задачам можно сделать стандартными средствами. Но вот управлять задачами на тестирование уже так легко не получится. Стандартными средствами нельзя создать множество подзадач или задач и поставить правильные линки. Даже через массовые операции (Bulk Operations) этого сделать нельзя.  Я когда, при проектировании столкнулся с этой проблемой сильно задумался. Три дня, пока создавал сабтаски руками, думал о том, что вся предыдущая работа вот-вот пойдёт насмарку, потому что работа с системой требовала неадекватного количества операций, длительных по времени, что делало систему нерабочей в тех объемах в которых хотелось. А хотелось не только управлять тест кейсами, но контролировать тестирование по ним.

Решений, в итоге, было несколько (в порядке появления):

1. Забыть про создание отдельных задач (тестов) к тест кейсам и обойтись одной общей (Test by Test Cases, а в описании давать список ссылок). Проблему этот подход не решал.

2. Доработать Jira, чтобы можно было создавать сабтаски массово. После реализации оказалось, что это не эффективно и отнимало слишком много ресурсов на серверной стороне.

3. Разработать плагин для Jira. Идея сразу умерла, уже не помню почему.

4. Использовать XML-RPC. Вот это уже прижилось, хотя всё-равно потребовались небольшие доработки в Jira. Оказалось, что в RPC так же нет возможности создавать подзадачи, хотя просто задачи создавать можно. А в Jira отличие задачи от подзадачи только в её типе (Issue Types) и том, что у подзадачи ссылка на родительскую задачу не пустое значение. Не смотря на просьбы участников, эта возможность еще не добавлена в официальный плагин XML-RPC. Большой привет Atlassian. Но никто не мешает внести изменения самостоятельно. К сожалению плагин, который опубликован в таске JRA-6896 не работает с версиями старше 3.10, придётся править исходники, которые поставляются вместе с используемой версией Jira (не самая сложная работа).

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

Самой первой появилась программа для создания подзадач. Напомню, что в описанной структуре тест кейс представлен как задача верхнего уровня, а тест (как действие) представлен подзадачей и создается для каждой версии попавшей в тестирование (в идеале).

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

В итоге подзадача состоит из:

Summary –  Тема (Summary) тест кейса с префиксом Test ( например, TEST – Check login form)

Reporter – имя залогинившегося пользователя

Assignee – Никого (Unassigned).

Fix For, Affected Version, Component, Original Estimate, тип теста (автоматический/ручной) и Labels. Копируются из тест кейса.

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

Ответственный (Assignee) за тестирование проставляется позже через Bulk Operations, либо точечно.

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

Тут уже использовалось соединение через XML-RPC с Confluence и с Jira. Вообще, я только когда разобрался в этих возможностях понял, что оба продукта разрабатывают разные группы, со своим взглядом (и похоже они иногда вынашивают планы взаимного тотального уничтожения).

В плагине для Confluence не пришлось что-либо менять. Эта программа вытаскивает версии из нескольких проектов в Jira, подставляет нужные темплейты (с тест планом, тест кейсами, найденными багами)  и каким то волшебным способом создаёт страницу в Confluence.

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

5 Comments

  1. Alex, а можно увидеть картинки к статьям по jira?
    Статьи, кстати, очень полезные!!

    1. Я поправил ссылки, все картинки должны быть теперь видны (либо ctrl+f5 поможет)

Leave a Reply

Your email address will not be published. Required fields are marked *