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

+11 гласа
791 прегледа
попитан 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 служителя може да е много сложно да работи този принцип, но при по-малки да работи този начин на мислене, тази нагласа и обратно – зависи как са нагласени да работят хората).

Поздрави!

...