Журнал LinuxFormat - перейти на главную

Слава России и Путину!

Материал из Linuxformat
(перенаправлено с «LXF135:Mantis»)
Перейти к: навигация, поиск
Mantis' Раз­вер­ни­те свою соб­ст­вен­ную сис­те­му от­сле­жи­ва­ния оши­бок

Содержание

Ин­ци­ден­ты: Най­ти и обез­вре­дить

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

Ес­ли вы пи­ше­те неболь­шую про­грам­му для од­но­курсницы, то возникаю­щие в ней ошиб­ки нетруд­но удер­жать и в го­ло­ве; но когда речь за­хо­дит о серь­ез­ных про­ек­тах, без систе­мы от­сле­жи­вания оши­бок уже не обой­тись. Се­го­дня мож­но най­ти мно­же­ство та­ких про­грамм-«баг­тре­ке­ров» [англ. bug tracker], при­чем рас­про­стра­няе­мых под сво­бод­ны­ми ли­цен­зия­ми, но мы оста­но­вим­ся на Mantis.

Уста­нов­ка

Ска­чай­те Mantis с офи­ци­аль­но­го сай­та (http://www.mantisbt.org), раз­мести­те его на сво­ем сер­ве­ре под управ­лением Apache и пе­рей-ди­те в брау­зе­ре по за­дан­но­му для Mantis ад­ре­су, что­бы при­сту­пить непо­сред­ствен­но к уста­нов­ке.

На пер­вом эта­пе про­ис­хо­дит пре­дин­ста­ля­ци­он­ная ди­аг­но­сти­ка: Mantis про­ве­ря­ет, уста­нов­лен ли PHP и под­дер­жи­ва­ет ли он безо­пас­ный ре­жим. Тут же нам пред­ла­га­ет­ся вы­брать тип ба­зы дан­ных (MySQL, MS SQL, PostgreSQL, Oracle и др.), при­чем боль­шая часть из них ра­бо­та­ет в экс­пе­ри­мен­таль­ном ре­жи­ме. Да­лее необ­хо­ди­мо вве­сти па­ра­мет­ры БД: имя и па­роль для досту­па, на­звание ба­зы и имя и па­роль ад­минист­ра­то­ра БД (ес­ли тре­бу­ет­ся соз­дать но­вую ба­зу дан­ных). По­сле на­жи­май­те Install/Upgrade Database и смот­ри­те на ди­аг­но­сти­че­ские со­об­щения.

Обыч­но всё про­хо­дит от­лич­но, и вы ви­ди­те на­про­тив ка­ж­дой стро­ки сло­во GOOD на зе­ле­ном фоне. Са­мая частая при­чи­на сбоя – за­прет на запись в ди­рек­то­рию про­ек­та, из-за че­го Mantis не мо­жет соз­дать кон­фи­гу­ра­ци­он­ный файл config_inc.php, по­это­му вам на­до ли­бо за­ранее обес­пе­чить Apache со­от­вет­ствую­щи­ми пра­ва­ми, ли­бо пе­ре­име­но­вать config_inc.php.sample в config_inc.php в корне про­ек­та вруч­ную и за­дать необ­хо­ди­мые на­строй­ки в фай­ле: их мож­но по­смот­реть на той же web-странице в раз­де­ле Write Configuration File. По­сле успеш­ной уста­нов­ки от­крой­те в брау­зе­ре ваш сайт; вам бу­дет пред­ло­же­но вве­сти имя и па­роль, а так­же уда­лить учет­ную запись administrator или сменить ей па­роль (root по умол­чанию) и уда­лить пап­ку admin – про­де­лай­те это. Ав­то­ри­зуй­тесь и пер­вым де­лом пе­рей­ди­те по ссыл­ке MyAccount, где в по­ля Password и Confirm password вве­ди­те но­вый па­роль, за­тем сно­ва ав­то­ри­зуй­тесь и в ме­ню MyAccount > Preferences смените язык [Language] с анг­лий­ско­го на русский.

Ба­зо­вые на­строй­ки

Прак­ти­че­ски вся на­строй­ка систе­мы про­из­во­дит­ся вруч­ную с по­мо­щью фай­ла config_inc.php, и пер­вое, что мы предприм­ем – ру­си­фи­ци­ру­ем Mantis. До это­го мы вы­бра­ли язык для един­ст-вен­но­го поль­зо­ва­те­ля систе­мы – ад­минист­ра­то­ра, но ес­ли вы зай­де­те на сайт, на­при­мер, из дру­го­го брау­зе­ра, пе­ред вами от­кро­ет­ся анг­лоя­зыч­ный ин­тер­фейс. Что­бы по­пра­вить дело, до­бавь­те в config-inc.php две стро­ки:

$g_default_language = 'russian';
$g_language_choices_arr = array('english', 'russian');

Пер­вая от­ве­ча­ет за язык по умол­чанию, а вто­рая – за доступ­ные язы­ки. В на­шем слу­чае по умол­чанию вы­бран русский, а в на­строй­ках учет­ной запи­си мож­но ука­зать еще и анг­лий­ский. Что­бы за­дать на­звание ок­на брау­зе­ра и вкла­док, ис­поль­зуй­те $g_window_title, а за­го­ло­вок, ко­то­рый ото­бра­жа­ет­ся на всех страницах ввер­ху и по цен­тру, за­да­ет­ся в пе­ре­мен­ной $g_page_title.

Пе­ре­мен­ные $g_favicon_image и $g_logo_image со­дер­жат путь до икон­ки сай­та (favicon) и ло­го­ти­па со­от­вет­ствен­но. Эти пе­ре­мен­ные принима­ют путь до изо­бра­жений от­но­си­тель­но ди­рек­то­рии, в ко­то­рой уста­нов­лен Mantis, на­при­мер, images/my_logo.jpg. Конеч­но, кар­тин­ка долж­на там уже на­хо­дить­ся.

Па­ра­метр $g_show_realname = ON; за­став­ля­ет систе­му по­ка­зы­вать ре­аль­ное имя поль­зо­ва­те­ля, а не ник. За­меть­те, что во­круг ON нет ка­вы­чек, так как это не стро­ка, а за­ранее оп­ре­де­лен­ная пе­ре­мен­ная. А ес­ли до­ба­вить в кон­фи­гу­ра­ци­он­ный файл стро­ку $g_show_avatar = ON; то к ком­мен­та­ри­ям бу­дут под­гру­жать­ся ава­та­ры с сай­та http://www.gravatar.com – конеч­но, ес­ли у ва­ших поль­зо­ва­те­лей есть на нем учет­ная запись.

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

Ка­те­го­рии оши­бок

Лю­бая ошиб­ка или но­во­вве­дение, ре­ги­ст­ри­руе­мые в систе­ме, долж­ны быть отнесе­ны к оп­ре­де­лен­ной ка­те­го­рии – на­при­мер, при раз­ра­бот­ке сай­та (да­лее по тек­сту мы бу­дем на­страи­вать Mantis под web-про­ект) мож­но вы­де­лить категории

  • CSS
  • HTML
  • Ввод дан­ных
  • Панель ад­минист­ри­ро­вания
  • Фильт­ра­ция дан­ных

В Mantis су­ще­ству­ют гло­баль­ные и локаль­ные ка­те­го­рии. Пер­вые доступ­ны для всех про­ек­тов, у ко­то­рых вы­бра­но по­ле На­сле­до­вать гло­баль­ные ка­те­го­рии; локаль­ные же соз­да­ют­ся для ка­ж­до­го про­ек­та в от­дель­но­сти. До­ба­вить гло­баль­ные ка­те­го­рии мож­но на странице Управ­ление > Управ­ление про­ек­та­ми. По­ми­мо на­звания, для ка­ж­дой ка­те­го­рии мож­но на­зна­чить от­вет­ствен­но­го: ска­жем, при ре­ги­ст­ра­ции ошиб­ки в CSS или HTML она сра­зу пе­ре­да­ст­ся вер­сталь­щи­ку. Ес­ли от­вет­ствен­ный не оп­ре­де­лен, то ошиб­ки спер­ва про­смат­ри­ва­ет менед­жер про­ек­та, ко­то­рый на­зна­ча­ет ис­полните­ля. За­ме­тим, что от­вет­ствен­ный за ка­те­го­рию дол­жен иметь уро­вень досту­па не ниже уча­стника.

Управ­ля­ем поль­зо­ва­те­ля­ми

Что­бы на­зна­чать для ка­те­го­рий от­вет­ствен­ных, нуж­но сна­ча­ла до­ба­вить их в систе­му. Это де­ла­ет­ся на странице Управ­ление > Управ­ление поль­зо­ва­те­ля­ми. На­жми­те на кноп­ку Соз­дание но­вой учет­ной запи­си и за­полните несколь­ко неслож­ных по­лей.

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

В Mantis су­ще­ству­ет несколь­ко уровней досту­па. Ка­ж­дый сле­дую­щий уро­вень по­лу­ча­ет все воз­мож­но­сти пре­ды­ду­ще­го плюс свои соб­ствен­ные. На­при­мер,

  • На­блю­да­тель име­ет минималь­ные воз­мож­но­сти, он мо­жет лишь про­смат­ри­вать ошиб­ки.
  • Инициа­тор мо­жет са­мо­стоя­тель­но до­бав­лять запи­си о най­ден­ных ошиб­ках, от­сле­жи­вать их, а так­же уста­нав­ли­вать ви­ди­мость для во­про­са. Та­кой тип поль­зо­ва­те­ля от­лич­но по­дой­дет для тесте­ров.
  • Ре­дак­тор мо­жет из­ме­нять основ­ные па­ра­мет­ры ошиб­ки: серь­ез­ность, воспро­из­во­ди­мость, со­стояние, при­ори­тет, ви­ди­мость, ре­шение и т. д.
  • Уча­стник, ру­ко­во­ди­тель и ад­минист­ра­тор име­ют поч­ти оди­на­ко­вый на­бор прав, оз­на­ко­мить­ся с ко­то­ры­ми и из­менить их мож­но на странице Управ­ление > Управ­ление кон­фи­гу­ра­ци­ей > По­ро­ги про­цес­са.

Один поль­зо­ва­тель мо­жет иметь несколь­ко уровней досту­па: один гло­баль­ный и несколь­ко ин­ди­ви­ду­аль­ных (для ка­ж­до­го из про­ек­тов). Ес­ли в про­ек­те яв­но не ука­зы­вать уро­вень досту­па поль­зо­ва­те­ля, то ис­поль­зу­ет­ся гло­баль­ный.

Те­перь, когда учет­ная запись соз­да­на, мож­но на­зна­чить её от­вет­ствен­ной за ка­кую-нибудь ка­те­го­рию. Ес­ли вы раз­ра­ба­ты­вае­те ком­мер­че­ский про­ект или же у вас есть дру­гие при­чи­ны ог­раничить доступ к Mantis, то в кон­фи­гу­ра­ци­он­ный файл сле­ду­ет до­ба­вить стро­ку

$g_allow_signup = OFF;

ко­то­рая за­пре­тит поль­зо­ва­те­лям ре­ги­ст­ри­ро­вать­ся в сис­те­ме. Ес­ли мы до­ба­вим $g_send_reset_password = OFF; то за­быв­чивые поль­зо­ва­те­ли не смо­гут вос­ста­но­вить свой па­роль в ав­то­ма­ти­че­ском ре­жи­ме: им при­дет­ся об­ра­щать­ся к ад­ми­ни­ст­ра­то­ру сай­та.

$g_max_failed_login_count = OFF;

снима­ет ог­раничение по ко­ли­че­ству по­пы­ток ав­то­ри­зо­вать­ся. За­мените OFF на ка­кое-нибудь чис­ло, и зло­умыш­ленники не смо­гут бесконеч­но под­би­рать па­ро­ли учет­ных запи­сей. С по­мо­щью па­ра­мет­ра $g_signup_use_captcha мож­но вклю­чить или вы­клю­чить ото­бра­жение ко­да под­твер­ждения (Captcha) при ре­ги­ст­ра­ции.

Соз­дание про­ек­та

Mantis – мно­го­поль­зо­ва­тель­ская и мно­го­про­ект­ная сре­да, и пре­ж­де чем до­бав­лять ошиб­ки, нуж­но соз­дать хо­тя бы один про­ект. Пе­рей­ди­те в меню Управ­ление > Управ­ление про­ек­та­ми и на­жми­те на кноп­ку Соз­дать но­вый про­ект. Пе­ред ва­ми поя­вит­ся фор­ма с несколь­ки­ми по­ля­ми:

  • На­звание про­ек­та.
  • Со­стояние Раз­ра­ба­ты­вае­мый, вы­пу­щен­ный, ста­биль­ный, уста­рев­ший.
  • Ви­ди­мость Ес­ли вы­брать Об­щая, то ошиб­ки, за­ре­ги­ст­ри­ро­ван­ные для про­ек­та, бу­дут доступ­ны лю­бо­му поль­зо­ва­те­лю; ес­ли вы­брать Ог­раничен­ная, то данный про­ект смо­гут уви­деть толь­ко те поль­зо­ва­те­ли, ко­то­рые «свя­за­ны» с про­ек­том вруч­ную, и ад­минист­ра­то­ры.
  • На­сле­до­вать гло­баль­ные ка­те­го­рии О них мы пи­са­ли вы­ше.
  • Путь для за­гру­жае­мых фай­лов Мож­но ука­зать как аб­со­лют­ный путь, так и путь от ка­та­ло­га, в ко­то­ром на­хо­дит­ся Mantis. Глав­ное, что­бы все ди­рек­то­рии су­ще­ство­ва­ли и у web-сер­ве­ра бы­ли пра­ва на запись в них. По умол­чанию фай­лы всё рав­но бу­дут со­хра­нять­ся в ба­зе дан­ных; что­бы из­менить та­кое по­ве­дение, до­бавь­те стро­ку $g_file_upload_method = DISK; в кон­фи­гу­ра­ци­он­ный файл. Кро­ме за­груз­ки на диск и в ба­зу дан­ных, мож­но пе­ре­да­вать фай­лы по FTP. Необ­хо­ди­мые для это­го на­строй­ки ука­за­ны в до­ку­мен­та­ции. Так же мож­но за­дать мак­си­маль­ный раз­мер за­гру­жае­мых фай­лов, до­пусти­мые и за­пре­щен­ные фор­ма­ты.
  • Для бо­лее де­таль­но­го опи­сания про­ек­та за­полните по­ле Под­роб­но­сти.

По­сле то­го как про­ект соз­дан, ста­но­вят­ся доступ­ны­ми мно­же­ство на­стро­ек: на­до лишь пе­рей­ти на страницу про­ек­та, ко­то­рая со­сто­ит из несколь­ких бло­ков. Сна­ча­ла идет блок под­про­ек­тов – бо­лее мел­ких про­ек­тов, вхо­дя­щих в круп­ный. На­при­мер, при раз­ра­бот­ке го­род­ско­го ин­тернет-пор­та­ла мож­но вы­де­лить в под­про­ек­ты но­во­ст­ной пор­тал, сер­вис по­иска ра­бо­ты, про­да­жу недви­жи­мо­сти и т. д. За­тем идет блок ка­те­го­рий: ввер­ху рас­по­ло­же­ны гло­баль­ные ка­те­го­рии, внизу – локаль­ные, ко­то­рые за­да­ют­ся тут же на странице. В сле­дую­щем бло­ке мы соз­да­ем вер­сии про­ек­та. Про­став­ляя га­лоч­ки на­про­тив со­от­вет­ствую­щих по­лей, мож­но от­ме­тить вер­сию как вы­пу­щен­ную или уста­рев­шую, или, ес­ли оста­вить по­ля пусты­ми, то вер­сия бу­дет на­хо­дит­ся в про­цес­се раз­ра­бот­ки. Са­мый нижний блок от­ве­ча­ет за поль­зо­ва­те­лей, ко­то­рые долж­ны по­лу­чить доступ к про­ек­ту. Ес­ли ви­ди­мость про­ек­та за­да­на как Об­щая и нет ни од­но­го поль­зо­ва­те­ля, свя­зан­но­го с ним, то все уча­стники бу­дут иметь доступ в со­от­вет­ствии с на­строй­ка­ми сво­ей учет­ной запи­си. Ес­ли ви­ди­мость про­ек­та ог­раниче­на, нуж­но на­зна­чить ка­ж­до­го уча­стника и его роль в про­ек­те вруч­ную. Для это­го вы­бе­ри­те нуж­но­го че­ло­ве­ка из спи­ска поль­зо­ва­те­лей, ко­то­рые доступ­ны в систе­ме, оп­ре­де­ли­те для него уро­вень досту­па и на­жми­те на кноп­ку До­ба­вить.

Когда поль­зо­ва­тель до­ба­вит­ся в про­ект, в окне Управ­ление учет­ны­ми запи­ся­ми в по­ле Дей­ствия для это­го уча­стника бу­дет доступ­на кноп­ка Уда­лить, ко­то­рая не уда­ля­ет поль­зо­ва­те­ля из систе­мы, а лишь раз­ру­ша­ет его связь с про­ек­том.

За­ре­ги­ст­ри­ру­ем ошиб­ку

Прой­дя сквозь деб­ри на­стро­ек, мы до­б­ра­лись до ре­ги­ст­ра­ции оши­бок, ко­то­рые в вер­сии 1.2 на­зы­ва­ют­ся «ин­ци­ден­та­ми», а рань­ше бы­ли «во­про­са­ми». На са­мом де­ле под ин­ци­ден­том мо­жет ре­ги­ст­ри­ро­вать­ся не толь­ко ошиб­ка, но и об­ра­щение поль­зо­ва­те­ля в служ­бу под­держ­ки или за­планиро­ван­ное но­во­вве­дение.

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

Да­лее оп­ре­де­ля­ет­ся серь­ез­ность ошиб­ки, при­чем пер­вым в спи­ске сто­ит пункт Но­во­вве­дение, ко­то­рый от­ве­ча­ет за бу­ду­щие воз­мож­но­сти про­грам­мы. Осталь­ные пунк­ты сле­ду­ют в по­ряд­ке уве­ли­чения серь­ез­но­сти. Еще одним па­ра­мет­ром важ­но­сти ошиб­ки яв­ля­ет­ся При­ори­тет её об­ра­бот­ки и ре­шения.

Сле­дую­щая груп­па по­лей от­ве­ча­ет за плат­фор­му, на ко­то­рой за­ре­ги­ст­ри­ро­ва­на ошиб­ка, а так­же за опе­ра­ци­он­ную систе­му и её вер­сию. Нам пред­ла­га­ет­ся вы­брать про­филь или за­полнить дан­ные вруч­ную. Сей­час ни один про­филь не досту­пен, но его все­гда мож­но до­ба­вить в раз­де­ле Управ­ление > Управ­ление гло­баль­ны­ми про­фи­ля­ми. Для web-сай­тов они обыч­но остав­ля­ют­ся пусты­ми, по­то­му что web-при­ло­жения ра­бо­та­ют внут­ри брау­зе­ра, а не ОС.

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

Ме­ж­ду те­ку­щей и це­ле­вой вер­си­ей на­хо­дит­ся по­ле На­зна­чить, в ко­то­ром мож­но вы­брать от­вет­ствен­но­го за ошиб­ку. Ес­ли вы уже вы­бра­ли ка­те­го­рию, к ко­то­рой при­кре­п­лен ис­полнитель, то мож­но остав­лять по­ле пустым; его так­же мож­но не за­пол­нять, по­ка не станет яс­но, кто бу­дет от­ве­чать за ин­ци­дент. Ес­ли для ка­те­го­рии оп­ре­де­лен ис­полнитель, а вы на­зна­чае­те дру­го­го уча­стника, то зна­чение по умол­чанию бу­дет пе­ре­оп­ре­де­ле­но. За­ме­тим, что за­да­вать це­ле­вую вер­сию и ис­полните­ля мо­гут толь­ко чле­ны с уровнем досту­па не ниже уча­стника. Инициа­то­ры и ре­дак­то­ры мо­гут толь­ко ука­зы­вать вер­сию про­грам­мы, в ко­то­рой бы­ла об­на­ру­же­на ошиб­ка.

Те­перь са­мое вре­мя опи­сать са­му ошиб­ку. Для это­го пред­на­зна­че­ны обя­за­тель­ные по­ля Суть и Под­роб­но­сти, а так­же необя­за­тель­ные Ша­ги по воспро­из­ве­дению и До­полнитель­ные све­дения. В кон­це вы мо­же­те при­ло­жить к ошиб­ке файл – на­при­мер, эк­ран­ный снимок – а так­же ука­зать для ошиб­ки ви­ди­мость.

Ес­ли есть ве­ро­ят­ность то­го, что ошиб­ку мо­гут уви­деть зло­умыш­ленники и за­тем ис­поль­зо­вать её в сво­их це­лях, ви­ди­мость сле­ду­ет ог­раничить. Ес­ли же боль­шая часть оши­бок не долж­на быть доступ­на об­ще­ствен­но­сти, то до­бавь­те в кон­фи­гу­ра­ци­он­ный файл стро­ку $g_default_bug_view_status = VS_PRIVATE; что­бы по умол­чанию вы­би­ра­лась ог­раничен­ная ви­ди­мость.

На­жми­те на кноп­ку Со­хранить ин­ци­дент, что­бы за­ре­ги­ст­ри­ро­вать ошиб­ку в ба­зе дан­ных.

На­стро­им по­ля

Как я уже упо­мя­нул, для web-про­ек­тов нет боль­шой разницы, в ка­кой ОС они ра­бо­та­ют, а вот в ка­ком брау­зе­ре – есть. Прав­да, в фор­ме до­бав­ления ин­ци­ден­та нет та­ко­го по­ля, но мы мо­жем его соз­дать. Зай­ди­те в Управ­ление > Управ­ление на­страи­вае­мы­ми по­ля­ми, вве­ди­те на­звание по­ля (ла­тиницей, browser) и на­жми­те Соз­дать на­страи­вае­мое по­ле, по­сле че­го вас пе­ренесет на страницу де­таль­ной кон­фи­гу­ра­ции. Здесь вы мо­же­те из­менить имя по­ля, за­дать его тип (спи­сок, це­лое, ве­ще­ствен­ное и т. д.) или оп­ре­де­лить до­пусти­мые зна­чения с по­мо­щью ре­гу­ляр­но­го вы­ра­жения. Вы так­же мо­же­те вы­брать зна­чение по умол­чанию и за­да­вать па­ра­мет­ры досту­па и ото­бра­жения по­ля.

До­ба­вим спи­сок со мно­же­ствен­ным вы­бо­ром из по­пу­ляр­ных ин­тернет-брау­зе­ров – для это­го вы­бе­ри­те со­от­вет­ствую­щий тип, а в по­ле До­пусти­мые зна­чения вве­ди­те без ка­вы­чек раз­де­лен­ные вер­тикаль­ной чер­той на­звания брау­зе­ров лю­бой|Opera 8.x|Opera 9.x|Internet Explorer 8.x|Internet Explorer 9.x|Firefox 2.x|Firefox 3.x|дру­гой. В ка­че­стве зна­чения по умол­чанию уста­но­ви­те «лю­бой». От­крой­те доступ на чтение на­блю­да­те­лю, а инициа­то­ру по­зволь­те запись. За­тем раз­ре­ши­те по­ка­зы­вать по­ле при соз­дании и из­менении ин­ци­ден­та, уста­но­вив га­лоч­ки в со­от­вет­ствую­щих по­лях, и на­жми­те на кноп­ку Из­менить на­страи­вае­мое по­ле. По­сле сно­ва зай­ди­те в на­страи­вае­мое по­ле и при­вя­жи­те его к ва­шим про­ек­там.

Те­перь при соз­дании ошиб­ки вам бу­дет пред­ло­же­но вы­брать брау­зе­ры, в ко­то­рых она возника­ет. Един­ствен­ный ми­нус – имя по­ля ото­бра­жа­ет­ся ла­тиницей, но это мы лег­ко ис­пра­вим. От­крой­те файл lang/strings_russian.txt и до­бавь­те в конец стро­ку

$s_browser = 'Браузер';

Про­смотр

До­бав­лен­ные ошиб­ки и но­во­вве­дения мож­но по­смот­реть на странице Спи­сок ин­ци­ден­тов (верхнее ме­ню). Она со­сто­ит из двух частей: фильт­ра и соб­ствен­но спи­ска ин­ци­ден­тов. По умол­чанию фильтр свер­нут, и что­бы ис­поль­зо­вать всю его мощь, кликните на сим­вол + (плюс) сле­ва от сло­ва По­иск. Пе­ред ва­ми раскро­ет­ся мно­же­ство по­лей, ко­то­рые мож­но из­ме­нять, щел­кая по на­званиям, под­черк­ну­тым и вы­де­лен­ным синим цве­том как ссыл­ки. По­сле вы­бо­ра нуж­ных зна­чений на­жми­те на кноп­ку Фильт­ро­вать и смот­ри­те ре­зуль­тат.

Фильт­ры мож­но со­хра­нять для по­сле­дую­ще­го ис­поль­зо­вания или соз­да­вать на них по­сто­ян­ные ссыл­ки, в том чис­ле и ко­рот­кие (TinyURL). Сра­зу под фильт­ром идет раз­но­цвет­ный спи­сок ин­ци­ден­тов. Ка­ж­дая стро­ка от­ве­ча­ет за од­ну ошиб­ку или но­во­вве­дение, а её цвет – за со­стояние во­про­са, ко­то­рое так­же пи­шет­ся в столб­це Со­стояние вме­сте с именем ис­полните­ля (ес­ли он на­зна­чен).

Стол­бец с бу­к­вой «П» от­ве­ча­ет за при­ори­тет ин­ци­ден­та. При­ори­те­ты ото­бра­жа­ют­ся гра­фи­че­ски в ви­де чер­то­чек (низ­кий при­ори­тет) и пе­ре­вер­ну­тых га­ло­чек (вы­со­кий); чис­ло чер­то­чек и га­ло­чек варь­и­ру­ет­ся в за­ви­си­мо­сти от сте­пени важ­но­сти.

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

Оста­но­вим­ся на да­те – сей­час она пред­став­ле­на в ино­стран­ном фор­ма­те ГГГГ-MM-ДД, что неудоб­но для русскоя­зыч­ных поль­зо­ва­те­лей. Ис­пра­вить та­кое по­ве­дение мож­но, до­ба­вив в кон­фи­гу­ра­ ци­он­ный файл стро­ки:

$g_short_date_format = 'd.m.y';
$g_normal_date_format = 'd.m.y H:i';
$g_complete_date_format = 'd.m.Y H:i';

По­ми­мо стан­дарт­ных столб­цов, мож­но по­ка­зы­вать и свои соб­ствен­ные (в том чис­ле на­страи­вае­мые) по­ля. До­ба­вим, на­при­мер, ко­лон­ку с на­званием брау­зе­ров. Зай­ди­те в Управ­ление > Управ­ление кон­фи­гу­ра­ци­ей > Ото­бра­жае­мые столб­цы. В по­ле Все имею­щие­ся столб­цы най­ди­те custom_browser и ско­пи­руй­те его в по­ле Про­смотр ин­ци­ден­тов, пред­ва­ри­тель­но по­ста­вив за­пя­тую.

Ра­бо­чий про­цесс

Соз­да­вать и про­смат­ри­вать ошиб­ки мы нау­чи­лись; по­ра уз­нать, как их из­ме­нять и ка­ким об­ра­зом ошиб­ки пе­ре­хо­дят из од­но­го со­стояния в дру­гое. Са­мый про­стой спо­соб внести из­менения – это вы­брать нуж­ную запись из спи­ска ин­ци­ден­тов с по­мо­щью «га­ло­чек», а за­тем при­менить од­но из бы­ст­рых дей­ствий, доступ­ных под таб­ли­цей. На­при­мер, вы­би­ра­ем ошиб­ки без ис­полните­ля, На­зна­чить и жмем ОK, а на сле­дую­щей странице ука­зы­ва­ем от­вет­ствен­но­го. Из­менить ка­ж­дую ошиб­ку в от­дель­но­сти мож­но, щелк­нув по икон­ке с ка­ран­да­шом. И тре­тий ва­ри­ант – это зай­ти на страницу с опи­санием ин­ци­ден­та (клик­нув на его но­ме­ре) и ра­бо­тать с кноп­ка­ми под стро­кой Вло­жен­ные фай­лы.

Как вы уже по­ня­ли, ошиб­ки мо­гут быть в несколь­ких со­стояниях:

  • Но­вый Ошиб­ка толь­ко что соз­да­на, и по­ка не яс­но, кто её бу­дет ре­шать. Обыч­но но­вые ошиб­ки до­бав­ля­ют тести­ров­щи­ки.
  • Ну­жен от­клик Ис­поль­зу­ет­ся, когда ошиб­ка соз­да­на нестан­дарт­ным спо­со­бом – на­при­мер, за­кры­та и опять во­зоб­нов­ле­на.
  • Рас­смот­рен Ошиб­ка про­смот­ре­на раз­ра­бот­чи­ка­ми и яв­ля­ет­ся вполне до­пусти­мой, но по­ка её никто не по­вто­рил.
  • Под­твер­жден Раз­ра­бот­чи­ки смог­ли воспро­из­ве­сти ошиб­ку, но еще не на­зна­чен от­вет­ствен­ный за её ре­шение.
  • На­зна­чен Оп­ре­де­лен от­вет­ствен­ный за эту ошиб­ку.
  • От­ра­бо­тан Ошиб­ка ре­ше­на, но еще не про­ве­ре­на инициа­то­ром – на­при­мер, тести­ров­щи­ком, ко­то­рый её до­ба­вил.
  • За­кры­та – ошиб­ка ре­ше­на и про­ве­ре­на инициа­то­ром. Имен­но инициа­тор и за­кры­ва­ет её.

Кро­ме со­стояний, жизнен­ный цикл оши­бок оп­ре­де­ля­ет­ся ре­шением (от­крыт, ре­шен, по­втор­но от­крыт и т. д.). Раз­лич­ные со­че­тания со­стояний и ре­шений да­ют яс­ную кар­ти­ну, в ка­кой ста­дии ошиб­ка на­хо­дит­ся сей­час и ка­кие уже про­шла. По­смот­реть эту ин­фор­ма­цию мож­но на странице ошиб­ки в бло­ке Исто­рия из­менений.

Кро­ме про­смот­ра спи­ска ин­ци­ден­тов, Mantis по­зво­ля­ет по­лу­чать раз­лич­ные сре­зы и от­че­ты об ошиб­ках. Пер­вым яв­ля­ет­ся свод­ка ав­то­ри­зо­ван­но­го поль­зо­ва­те­ля (пункт верхнего ме­ню Моя свод­ка), где уча­стник систе­мы мо­жет по­смот­реть все ин­ци­ден­ты, ко­то­рые как-то с ним свя­за­ны. Вто­рым яв­ля­ет­ся ста­ти­с­тика всех ин­ци­ден­тов, за­ре­ги­ст­ри­ро­ван­ных в Mantis.

Персональные инструменты
купить
подписаться
Яндекс.Метрика