Какво представлява Agile Testing?

+11 гласа
1,468 прегледа
попитан 2016 май 28 от Trayan.Toshev. (540 точки)
редактиран 2016 май 28 от Admin
На няколко места срещнах термина Agile Testing, накой може ли да ми разкаже какво представлява и дали се прилага някъде в България?

1 отговор

+5 гласа
отговорени 2016 май 30 от Daniel Ivanov (11,160 точки)
редактиран 2016 юли 9 от Daniel Ivanov
 
Най-добър отговор

Привет,
В света на софтуерното разработване, терминът agile (на български „гъвкав“) обикновено се свързва с някакъв подход на проектен мениджмънт, който има за цел да обедини екипи с помощта на  принципите за сътрудничество, гъвкавост, леснота, прозрачност, и отзивчивост да даде обратна връзка през целия процес на разработване на нова програма или продукт. А  Agile testing (с главно А) е практиката на тестване за бъгове или проблеми с производителността/ изпълнението (performance issues) в рамките на контекста на един динамичен работен процес.

Какви са предимствата на Agile методологиката?

•             Тестването спестява пари и време;

•             По-малко документация;

•             Редовна обратна връзка (feedback) от крайния потребител;

•             Ежедневните срещи (мийтинги)  с колегите могат драстично да ускорят намирането на отговори на въпросите/ проблемите.

Началото на Agile:

През 2001 г. в Юта 17 човека решават да направят манифест с цел иновативни, гъвкави подходи към проектното организиране и да разчупят традиционните линейни методологии.

В него те описват защо е по-добре  да се избират:

Индивидуалните срещи с потребителите пред процесите и инструментите;

Работещият софтуер пред подробната документация;

Съвместната работа с потребителите пред договаряне на договори;

Реагиране на промените пред следване на план.

Като също казват, че въпреки че нещата вдясно са стойностни, тези вляво ги ценят повече.

Деление:

Разделят и разработването на софтуера на няколко части и искат да се отличат от другите подходи, например “waterfall” (на бълг. водопад) :

Requirements (Изисквания)

Design (Дизайн)

Implementation (Имплементация)

Verification (Верификация/потвърждение)

Maintenance (Поддръжка)

Идеята им е, че developer-ите и tester-ите са като 2 страни на една монета, които трябва да се срещат и да обсъждат проблемите ежедневно.

Те считат, че в многото корпурации практиката е грешна – девелопърите се опитват да изгладят кода си и да стане перфектен, който след това се дава на тестърите, които, пък,  се опитват да го счупят по възможно най-много начини и пак да върнат рапорта към дев. екипа. Според тях това изисква много повече време и $. Те казват, че по-добрия подход би бил да ги слеят не в смисъл да са заедно самите хора,а в смисъл на процес на работа и време -девелопърите да мислят повече като QA, а QA повече като девелопъри, като не се пренебрегват нито едните, нито другите (странна работа :D).  Другото е – тяхно един вид мото : “ Постоянно се интегрирай и постоянно ще произвеждаш качествен продукт“;

И сега за самия манифест

Принципи на Agile тестването:

Тестването НЕ е фаза – Agile екипът тества постоянно и постоянното тестване е единственият начин за осигуряване на непрекъснат и постоянен прогрес;

Тестването движи проекта напред – Когато следваш общоприети методи, тестването се счита като „порта за качество“, но Agile тестването дава обратна връзка през цялото време и така постоянно отговаря на нуждите на потребителите си;

Всички тестват – в кръговрата на системното разработване (Systems development life cycle), само тест екипът тества, докато при Agile и разработчиците и бизнес анализаторите тестват ;

Намаляне на времето, нужно за обратна връзка – докато в другите практики по време на Acceptance тестването (фазата,в която се разбира дали един продукт отговаря на изискванията и дали предлага това, което се изисква и най-вече се ползва black-box testing) бизнес анализаторите знаят в какво положение се намира разработването на продукта, то при Agile те отговарят на всички въпроси и по този начин намалят загубите и потребителите са много по-доволни ( отговарят им на време);

Чист код – фиксването на бъгове и изчистването на кода веднага след оправянето му  е практика;

Намаляване на тестовата документация – вместо дълга документация, Agile тестърите ползват checklists (контролни списъци) за многократна употреба и се фокусират върху същината на тестването, а не в несъществените детайли;

Бъди задвижван от тестването – в другите методи тестването се прави след имплементацията, докато при Agile тестърите тестването се прави докато се имплементира.

Най-добрите практики за Agile тестването са :

1.            Автоматизирани unit тестове;

2.            Разработката да е на базата на тестването;

3.            Автоматизирани regression тестове;

4.            Изследователно тестване

Относно другият ти въпрос – дали го има и дали се прилага в Бъглария:

Отговорът ми е : ДА

Има курсове, които се провеждат из цяла България и това е, както вече споменах, практика, която се ползва навсякъде по света, въпреки че при някои работи по-добре от колкото при други. Не е лесно да се сменя методологиката в 1 корпорация (например във фирма с 5000 служителя може да е много сложно да работи този принцип, но при по-малки да работи този начин на мислене, тази нагласа и обратно – зависи как са нагласени да работят хората).

Поздрави!

...