Как пользоваться RAD Studio Quality Portal

Posted by on in Blogs

 

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

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

Некоторое время назад механизм подачи заявок разработчикам RAD Studio на новые возможности, сообщений о найденных ошибках, уточнения информации и отслеживания состояния заявок по качеству продуктов и сервисов Embarcadero был изменен. Данное описание публикуется, чтобы облегчить использование этого нового механизма всем отечественным пользователям, заинтересованным в улучшении продуктов Embarcadero.

Ранее на http://community.embarcadero.com была опубликована статья на английском языке, посвященная этой теме. Для пользователей, говорящих на русском языке, мы предлагаем свой, расширенный вариант инструкции.  

Зачем нужен Quality Portal и особенности его использования

Сообщение об обнаруженном «баге» или запрос на реализацию необходимых возможностей может подать любой участник Embarcadero Developer Network (EDNhttp://edn.embarcadero.com). Участники сети EDN также могут видеть заявки и сообщения других членов, комментировать эти заявки и принимать участие в голосовании, какие требования являются наиболее важными для них.

Старые каналы подачи заявок были заменены на более современные реализации. Новый канал получил название RAD Studio Quality Portal. При помощи Quality Portal разработчики Embarcadero получают надежный механизм взаимного общения и связи с пользователями своих продуктов.

Прежде, чем воспользоваться Quality Portal (QP в дальнейшем), пользователь должен зарегистрироваться на EDN и получить учетную запись. Это бесплатно и дополнительно дает пользователю право на использование всех сервисов EDN, в том числе и QP. Для регистрации следует перейти на https://members.embarcadero.com

После того, как у пользователя появилась своя учетная запись, ему нужно войти в EDN с помощью указанного имени и пароля.

На Quality Portal все участники могут создавать свои, комментировать или голосовать за имеющиеся здесь сообщения об ошибках (Bug Reports). QP – это прекрасный механизм повлиять на Embarcadero, чтобы расставить приоритеты для выполнения задач в первую очередь. Можно «следить» за запросами других пользователей, чтобы быстро увидеть произошедшие обновления.

Как правильно оформлять сообщение об ошибке

Если пользоваться QP правильно, можно получить максимум преимуществ. Далее приводится описание, как наиболее эффективно подавать отчеты об ошибках (Bug Reports), вносить предложения и запросы на реализацию необходимых функций, чтобы добиться скорого начала работ над ними. Здесь описаны различные способы, с помощью которых пользователи QP могут оказать максимально позитивное влияние на Embarcadero для быстрейшего решения тех проблем, которые их волнуют.

Для большинства пользователей главной причиной входа в Quality Portal будет потребность в подаче и контроле решения отчетов о программных ошибках (Bug Reports).

При подаче заявки/отчета пользователь увидит форму, такую как в заголовке:

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

В поля заносится следующая информация:

Summary

Краткое описание сути заявки

Component/s

Какая часть ПО затронута

Affects version/s

На каких версиях проявляется

Build No

Номер сборки, если есть

Language version

Если это локализованная редакция, указать какая

Edition

Редакция продукта

Description

Описание

Steps

Шаги для воспроизведения

Platform

На каких платформах проявляется

 

Поставьте себя на место разработчиков Embarcadero, разбирающих заявку.

Отчет об ошибке должен быть конкретным и содержать всю связанную информацию.  Нужно максимально полно описать программную ошибку, и как она проявляется. Опишите шаги для воспроизведения этого. Самый лучший способ, чтобы ошибка была исправлена быстро – это предоставить [тестовый] пример, воспроизводящий эту ошибку.  Если это невозможно, описать так подробно, как только возможно, все, что происходило до того, как ошибка проявилась. Отчеты об ошибках ДОЛЖНЫ содержать всю необходимую информацию.

Включайте в отчет сообщение только об одной ошибке. Если ошибок несколько, создайте несколько отчетов.

Обратите внимание на тип уведомления:

Issue Type

 Bug:

ошибка в продукте

 Documentation bug:

ошибка в справке или документации продукта.

 

Дайте отчету краткий, но информативный заголовок в поле Summary

«TButton не работает» -  никуда не годится, а

«[Android] Ошибка при двойном щелчке на TButton» - значительно лучше

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

 

У меня есть проблема с XYZ

XYZ не работает должным образом

Еще несколько примеров:

Плохо: access violation в IDE

Лучше: Открытие пустого файла .pas вызывает access violation

 

Плохо: Ошибка Push Notification

Лучше: Счетчик Push notification добавляет лишнее уведомление

 

Сообщите какая часть программного обеспечения затронута этим багом (Component/s):

·         Install

·         FireMonkey

·         VCL

·         C++ Compiler

·         C++ RTL

·         Delphi Compiler

·         Delphi RTL

·         Linker

·         Database

·         Debugger

·         IDE (Development Environment)

·         Help and Doc

·         Demos

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

·         Полное сообщение об ошибке

·         Полный стек вызовов

·         Если это уместно, стоит включить информацию о среде (например, версию Android или региональные настройки Windows,)

·         Для ошибок, которые проявляются визуально (например, элементы управления не отображаются или вопросы с разметкой IDE) включить скриншот, чтобы помочь увидеть это тем, кто читает ваш отчет

·         Если присутствуют, нужно добавить логи устройства, например, вывод logcat на Android

·         Для сообщений об ошибках или стеков вызовов использовать теги либо {code}, либо  {quote}

·         Если создается отчет о внешнем источнике информации (например, MSDN страница вызова API), включить ссылку на эту информацию

·         Если сообщение об ошибке содержит исходный текст, либо прикрепить его к проекту или добавить его в разделе steps. Если исходный код добавлен в виде текста в отчет, убедитесь, что использовались теги {code}. Это инструктирует JIRA не интерпретировать код, а также способствует читабельности отчета (помогает избежать прокрутки несколько страниц, чтобы добраться до соответствующих областей).

·         Сокращайте размер приложений до минимума. Сжимайте файлы с помощью Zip, и никогда не включайте двоичные файлы, получающиеся в результате компиляции (например, DCU или EXE). Применяйте для сжатия только формат Zip.

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

Поле Steps предназначено для того, чтобы описать, как воспроизвести ошибку. Описание должно быть кратким и понятным, как рецепт, чтобы воспроизвести ошибку за минимальное количество шагов. В шаги не следует включать сообщения об ошибках или стек вызовов – включите это в поле Description.

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

Плохое описание:

Expected: приложение не должно падать

Actual:  приложение завершилось аварийно

 

Лучше писать так:

Expected: приложение показывает меню XYZ

Actual: Возникает access violation (см. Стек вызовов в приложении)

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

 Примеры правил, найденные в интернете для разных систем сообщений об ошибках, можно просмотреть по ссылке http://www.mozilla.org/bugs/bug-reporting.htmlЗдесь можно увидеть хорошие примеры, следование которым поможет использовать QP наиболее эффективно и одновременно дать Embarcadero возможность продолжать работу над важными для пользователя вопросами

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

Дублирование сообщений

Отчет может быть отмечен, как «дубликат», сотрудниками службы поддержки Embarcadero.  Какой отчет будет признан «основным», а какие – «дублирующими», зависит от того, какой отчет дает более точную и детальную информацию о содержащихся проблемах.

Если появится новый, более подходящий отчет, он может стать новым «главным», а предыдущий – дубликатом, но это не имеет никакого отношения к тому, какой отчет первым пойдет в работу для исправления ошибки.

Обычно «дублирующий» отчет имеет статус «Resolved», а разрешение (resolution) - «Duplicate», и связан ссылкой с «главным» отчетом. Пользователи должны проверять статус и следить за обновлениями только на «главном» отчете.  

Расшифровка значений в некоторых полях Quality Portal

 

Поле Status

Значение

Расшифровка

Reported

Новый дефект, требуется тестирование

Open

Известный дефект, требуется исправление

Resolved

Внесены исправления, те, кто сообщали об ошибке могут проверять ее отсутствие и вносить замечания

Needs Feedback

Ожидание дополнительных сведений или действий

Closed

Ошибка исправленаобращение закрыто.

 

 Поле Resolution

Значение

Расшифровка

Fixed

Bug был пофиксен (исправлен)

Cannot Reproduce

Ошибку не удается воспроизвести на основании представленных сведений

Works as Expected

Так и было задумано! Это не бага, а фича! J

Duplicate

Отчет-дубликат (должна быть ссылка на главный отчет bug #)

Test Case Error

Неверное описание в отчете

Needs More Info

Требуется дополнительная информация/demo/описание шагов

No Longer Applies

Возможность была удалена и ошибка теперь неактуальна

Won't Fix

Не будет исправлено/реализовано

 

«Маленькие хитрости»

 

Текстовые эффекты и форматирование примеров кода

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

 

Notation

Описание

*strong*

Жирный текст (strong).

_emphasis_

Выделение курсивом  (emphasis)..

??citation??

Форматирование цитат.

-deleted-

Выделение как удаленный (deleted).

+inserted+

Выделение как «добавленный» inserted.

^superscript^

Верхний курсив superscript.

~subscript~

Нижний курсив subscript.

{{monospaced}}

Monospaced текст.

bq. Some block quoted text

Чтобы сделать цитатой весь абзац, поставьте "bq" перед ним.

Пример:

Some block quoted text

{quote} here is quotable
 content to be quoted {quote}

Цитата из блока текста из нескольких абзацев.

Пример:

here is quotable
content to be quoted

{color:red} look ma, red text! {color}

Изменить цвет куска текста.

пример:

look mared text!

 

 

 ТЕГИ ФОРМАТИРОВАНИЯ ПРИМЕРОВ ПРОГРАММНОГО КОДА

Notation

Описание

{code:delphi}
program Sample_prog; 
begin 
write('Hello World. Prepare to learn Delphi');
readln; 
end.
{code}
program Sample_prog;
begin 
 write('Hello World. Prepare to learn Delphi');
 readln; 
end.

{code:c++}
#include

int main()
{
std::random_device random_device;
std::mt19937 random_engine{random_device()};
std::bernoulli_distribution coin_distribution{0.25};
bool outcome = coin_distribution(random_engine);
}
{code}

#include 
int main()
{
 std::random_device random_device;
 std::mt19937 random_engine{random_device()};
 std::bernoulli_distribution coin_distribution{0.25};
 bool outcome = coin_distribution(random_engine);
}

 

 

Демонстрационный пример сообщения об ошибке

Пример сообщения об ошибке, демонстрирующий все рассмотренные выше вопросы: https://quality.embarcadero.com/browse/RSP-12206

 

 



About
Gold User, Rank: 11, Points: 295
SC at Embarcadero. DB Tools expert Delphi practitioner

Comments

Check out more tips and tricks in this development video: