Unknown macro: {alias}
Unknown macro: {composition-setup}
cloak.toggle.exclusive = false
Unknown macro: {toggle-cloak}
Покрытие кода
Все знают, что запись тестов является "полезной вещью". Измерение тестового покрытия сообщает точно, какой код выполняется тестами. Clover не только предоставляет Вам точное и подробное покрытие кода, он дает Вам информацию, необходимую для оценки качества покрытия, идентифицирует области покрытия низкого качества и указывает на существующие тесты тогда, когда Вам нужно запустить еще тестов.
Unknown macro: {cloak}
Потестовое покрытие
Выполнено != Протестировано
Разнообразие инструментов покрытия кода просто измеряет, какие операторы выполняются во время запуска теста. Clover записывает, какой тест(ы) был ответственен за покрытие. Это очень полезно при диагностировании тестовых отказов, при добавлении тестов.
Обычно покрытие сообщает, что что-то покрыло Ваш код, что есть лучше, чем ничего. Clover позволяет Вам сразу видеть тесты, которые покрыли оператор и Вы можете выяснить, эффективны ли эти покрытия.
|
|
Быстро идентифицируйте код с "уникальным" покрытием, видя, сколько тестирования были выполнено для строки кода - например, покрытый код от одного теста.
|
Когда Вы выбираете прецедент, строки, которые этот прецедент выполнил подсвечиваются.
|
|
|
Легко просмотрите все тесты, которые покрыли указанный класс.
|
Щелкните по строке, чтобы видеть тесты, которые поспособствовали покрытию этой строки исходного кода.
|
Визуализируйте свои метрики
Clover обеспечивает визуализацию, чтобы помочь Вам понять и максимально использовать свои метрики.
Рабочий стол в HTML отчете дает сводку Вашего проекта. Наряду с кратким обзором статистики, он также предлагает самые рискованные классы (низкое покрытие, высокая сложность) и наименьшее количество протестированных методов.
Метод визуализации данных - Treemap (плоское дерево) покрытия Clover и облака покрытия помогают Вам идентифицировать, где надо сфокусировать ограниченные ресурсы тестирования, помогая Вам идентифицировать под протестированным кодом, который больше всего извлечет выгоду из большего количества тестов.
|
|
Облачный отчет покрытия выделяет комплекс непротестированного кода, таким образом, Вы можете найти то, что нуждается в тестировании.
|
Просматривайте свое покрытие в классическом методе визуализации данных - treemap (плоское дерево) для целого проекта или единственного пакета.
|
|
|
Рабочий стол Clover дает "мгновенное" представление о покрытие кода Вашего проекта.
|
Используйте исторические отчеты, по ним легко отследить покрытие кода в течение времени.
|
Больше чем покрытие
Clover измеряет потестовое покрытие, обеспечивающее понимание тестирования, просмотром какие тесты какой код покрыли. Отчеты комбинируют покрытие с цикломатической сложностью, чтобы показать Вам, как направить Ваше тестирование и где это необходимо больше всего.
Clover интегрирует результаты тестов с результатами покрытия – измеряющиеся результаты испытаний для JUnit, и TestNG (могут быть сконфигурированы и другие платформы тестирования). Clover позволяет Вам видеть как все классы, которые указанный тест покрыл, так и "значение" определенного теста. Clover также показывает уникальное потестовое покрытие, показывающее точно, какие тесты каких операторов покрыли. Это позволяет Вам узнать, насколько покрытие было бы уменьшено, если бы тест не был выполнен.
|
|
Clover позволяет Вам развернуть результаты тестов.
|
Просматривайте исключения, которые вызвали отказ для данного теста.
|
|
|
Просмотр исходников на уровне деталей покрытия кода.
|
|
Unknown macro: {cloak}
Unknown macro: {toggle-cloak}
Тестовая оптимизация
Бывает ли у Вас чувство что Вы проводите половину жизни ожидая запуска тестов? Вероятно бывает. Что еще хуже, что большинство из этих циклов впустую запускают тесты, которые не изменились в коде, который не менялся. Clover поможет вам сэкономить время, выполняя правильные тесты. Быстрые тесты дают быстрые сборки.
Unknown macro: {cloak}
Не повторяйте себя
Тестовая оптимизация Clover сочетает выборочное тестирование и приоритезацию тестов, чтобы организовать быстрые отклики о качестве кода.
Тестовая оптимизация ускоряет единичное и функциональное тестирование с помощью запуска тестов, которые:
- Покрывают код, который изменился с предыдущего запуска.
- Провалились или имели ошибки в предыдущем запуске.
Преимущества тестовой оптимизации:
- Результатынепрерывной интеграции (CI) могут прийти в несколько раз быстрее.
- "Разработка внутреннего цикла" резко ускоряется, так что Вы можете проверить все изменения перед созданием коммита.
- Разработчики предупреждаются раньше, чтобы исправить поломки.
- Меньше ресурсов на сервере потребляется долгим запуском сборок, уменьшая время ожидания других сборок.
|
|
Пример результатов сборки с и без включенной тестовой оптимизации.
|
Интегрируя Clover с IDE, Вы можете включить тестовую оптимизацию из IDE.
|
Проваливайтесь быстро
Если Вы будете терпеть неудачу, сделайте это быстро.
Мало того, что тестовая оптимизация ускоряет каждую сборку, она переупорядочивает тестовое выполнение, так, что сборки, которые не удались перестанут работать как можно быстрее. Чем быстрее сборка проваливается, тем быстрее она может быть исправлена.
Тестовая оптимизация упорядочивает тесты эвристическим образом:
- Новизна тестового отказа или ошибки.
- Новизна изменения в коде покрытый тестом.
- Тест время выполнения (сначала более быстрые тесты).
|
|
Когда выполняются оптимизированные тесты, представление JUnit выводит на экран дополнительную информацию о сэкономленном времени.
|
Сборки Bamboo провалятся быстрее с тестовой оптимизацией Clover, которая увеличивает производительность.
|
Настройка
Clover позволяет Вам решать как Вы хотите оптимизировать. Все команды разные. Вы можете использовать тестовую оптимизацию Clover, чтобы пойти по определенному сценарию, таким как:
- Выполненные только тестов, которые изменились или тестовый код, который изменился.
- Сначала запуск вышеупомянутых тестов, затем остальных.
- В произвольном порядке.
- Выполнение самых коротких тестов сначала.
- Выполнение всех тестов каждую энную сборку.
С Clover у Вас есть способность оптимизировать Ваши сборки, под образ Вашей работы, деятельности и места выполнения.
|
Выберите настройки оптимизации для покрытия кода с Clover в IDE.
|
Unknown macro: {cloak}
Unknown macro: {toggle-cloak}
Groovy
Groovy все больше и больше помогает разработчикам расширить свои приложения Java. Поддержка покрытия кода Clover для Groovy гарантирует, что Ваши сценарии пуленепробиваемы как Ваш код.
Unknown macro: {cloak}
Покрытие кода Groovy
Основанные на Java динамические языки такие как Groovy становятся все более и более популярными, так как они поддерживают более быструю разработку и итерацию, разрешая разработчикам использовать в своих интересах библиотеки объектов Java, которые они использовали в течение многих лет. Динамический контроль типов обеспечивает больше гибкости кода и ускоряет внутренний цикл разработки с интерпретируемым кодом устранением компиляцию кода. Эти преимущества представляют риск неправильного поведения и исключений во время выполнения. Например, разработчик может предоставить доступ к объекту мошеннику через опечатку (например, x.fooo, вместо x.foo).
Если Ваш компилятор не проверит Ваш синтаксис, то пользователи проверят, когда выявятся ошибки. Используйте Clover , чтобы гарантировать, что у Вашего кода Groovy есть тестовое покрытие, в котором он нуждается.
|
|
HTML отчеты Clover дают сводку покрытия и результатов единичных тестов кода Groovy.
|
Узнавайте насколько хорошо протестирован код, просматривая детали тестов строки кода.
|
|
|
Clover может обработать код Groovy до полного покрытия Вашего кода.
|
Получите информацию покрытия кода наведением мыши на строку кода.
|
Интеграция с Grails
Плагин для Grails представляет отчеты покрытия кода Clover из платформы разработки веб-приложения Grails. Плагин дает подробную информацию с подсвеченными областями низкого покрытия в Вашем проекте.
|
|
Легко идентифицируйте, сколько кода Groovy покрыто с Clover.
|
Пример рабочего стола Clover, который показывает сводку покрытия кода на проекте Weceem Grails CMS.
|
Unknown macro: {cloak}
Unknown macro: {toggle-cloak}
Управление backlog'ом (приоритезированный список работ)
Непрерывная интеграция является более чем просто инструментом, который автоматизирует сборки - он обеспечивает быструю обратную связь и может быть использован для проверки тестами целостности и качества кода.
Сделайте покрытие кода частью Вашего процесса непрерывной интеграции и получайте немедленные результаты тестирований вместе с результатами сборки.
Unknown macro: {cloak}
Составьте список работ (backlog)
Управляйте многообразием списков задач просто. Панель планирования используется для составления списка из задач, историй, дефектов и всех возможных действий для выпуска продукта. Используйте сочетания клавиш для перемещения и изменения карточек заданий. Нажмите на продукт и посмотрите в развернутом виде на список спринтов (итерация) и списки работ по каждому спринту (sprint backlog).
Добавьте задачи быстро заполнением обязательных полей в JIRA Agile формах. Просмотривайте карточки заданий отдельно по продуктам, компонентам или исполнителям и сортируйте список задач по любому полю. Составьте представления карточек заданий, используя JIRA фильтры или пользовательские ограничения. Сделайте доступными представления для всей команды, чтобы каждый член команды видел то же что видит другой.
|
|
Следите за любой числовой статистикой для облегчения определения приоритетов.
|
Просматривайте панель планирования по продукту, компоненту, исполнителю или по всему проекту.
|
|
|
Фильтрация по продуктам на панели планирования по исполнителю или компоненту.
|
Добавьте контекст для фильтрации на панели планирования и выделения нужных карточек.
|
Перетаскивайте карточки
Ответственный за продукт просто перетаскивает карточки вверх и вниз, чтобы приоритезировать список задач (backlog). Также можно нажать на любое поле в на карточке, чтобы изменить его. Выберите одно из трех представлений - Темы, Карточки или Список - чтобы видеть нужное вам количество информации.
Используйте статистических маркеры, чтобы облегчить процесс планирования. Добавьте маркер для любого поля - оценка времени работы, сложность задач (story points). Маркер разделит задачи по нужному критерию и укажет потенциал команды на данный спринт (итерация) или продукт. У вас будет представление о том, какие задания, скорее всего, будут завершены в течение спринта.
|
|
Выберите маркер на панели планирования для любой статистической величины.
|
Настройте панель планирования для сортировки списка работ по любому ранжируемому полю.
|
|
|
Настраиваемые статистические маркеры помогают приоритезировать ваш список работ.
|
Приоритизируйте запросы, перетаскивая карточки.
|
Unknown macro: {cloak}
Unknown macro: {toggle-cloak}
Планирование спринта
Clover может быть запущен в IntelliJ IDEA и Eclipse. Генерируйте свое покрытие, просматривайте метрики, покрытие в своем редакторе, точные тесты, в которые попал оператор под Вашим курсором! Clover дает исчерпывающий набор качественных тестовых функций, которые тесно интегрированы с IntelliJ IDEA и Eclipse.
Unknown macro: {cloak}
Планирование сессий стало легким
Как только список задач (backlog) приоритезирован, панель планирования облегчает сессии планирования спринта. Редактирование заданий прямо на карточке идеально подходит для ввода и изменения информации и оценок непосредственно во время планирования сессий. Просто нажмите на любое поле для ввода значений. Затем назначьте задачи на спринт (итерация), просто перетащив карточки задач на нужный спринт какого-либо продукта.
Используйте статистические маркеры, чтобы облегчить процесс планирования.Добавьте маркер для любого поля - оценка времени работы, сложность задачи (story points). Маркер разделит задачи по нужному критерию и укажет потенциал команды на данный спринт или продукт. Затем просто перетащите маркер на спринт, чтобы разделить карточки по нужному критерию.
Отслеживайте работу на протяжении планирования спринта с раздела "Статистика" на панели планирования и сразу же на лету изменяйте приоритеты по мере необходимости.
|
|
Перетаскивайте маркер на панели планирования чтобы регулировать ёмкость работ команды.
|
Перетаскивайте маркер на спринты чтобы подвинуть карточки.
|
|
|
Редактируйте поля прямо на карточке.
|
Планируйте спринты перетаскиванием карточек на продукты.
|
Оценка пользовательских историй и технических задач
Многие команды Scrum оценивают пользовательские истории, используя сложность задачи (story points). Сложность задачи относительная величина для сравнения с другими историями. Многие команды пошли по уникальным путям оценки (например числа Фибоначчи). По умолчанию GreenHopper использует численные значения, но он может быть настроен по любой другой системе с помощью пользовательских полей.
Как только пользовательские истории приоритезированы, они могут быть разбиты на задачи в ходе планирования. В отличие от пользовательских историй, задачи могут быть оценены с использованием абсолютного значения, как, например, количество часов. Некоторые команды делают оценку до планирование спринта (итерация) в то время как другие делают оценку после.
Независимо от того, как ваша команда оценивает усилия, статистика для спринта и отчеты по выпуску продукта обновляются мгновенно, чтобы легче планировать спринт.
|
|
Разбивайте пользовательские истории на подзадачи или технические задачи, для оценки и планирования.
|
Задавайте сложность задачи (story points) пользовательским историям прямо из панели планирования.
|
|
|
Записывайте пользовательские истории во время планирования сессий.
|
|
Настройка итераций (sprint)
Как правило, Scrum Master создает версия для каждого спринта в релизе (выпуск продукта). Статистика по продуктам в правом столбце на панели планирования отображает даты начала и окончания для каждого спринта и продукта, а также важную статистику для мониторинга. Статистика по продуктам агрегирует статистику по всем включенным спринтов.
Установите минимальное и максимальное значения для любой статистической величины указывающей потенциал команды для облегчения планирования спринта.
|
|
Отчет по версии показывает информацию для всех вложенных версии.
|
Установите статистические маркеры и укажите ёмкость работ вашей команды, чтобы легче при планировать сессии.
|
|
|
Создавайте версию для каждого продукта и спринты в ней.
|
|
Unknown macro: {cloak}