Софтуерният тестер (QA) е важна част от екипа и процеса за разработка на софтуерен продукт.
Всяка компания и, в частност, екип определят етапите за разработка и методологията, които ще работят най-добре за бързото и качествено разработване на продукта.
Най-популярните шест етапа за разработка на софтуер са: анализиране на изискванията, планиране на предстоящата работа, архитектурен дизайн, разработка на продукта, тестване и внедряване на продукта. Възможно е да се добави и етап за поддръжка на продукта в зависимост от желанието на клиента.
Според срока за разработка на продукта и начина на работа на екипа може да се избере подходяща методология, по която да се работи. Едни от най-популярните методологии са водопаден модел (Waterfall model) и гъвкави методологии (Agile, в частност Scrum, Kanban и други).
При Waterfall model-а през етапите на разработка на софтуер се преминава само веднъж, което е удобно за по-малки като обем проекти, разработвани в по-кратък срок. При използването на този модел QA-ите могат да се включат във всеки един етап от разработката на софтуерния продукт.
Колкото по-рано се замеси QA-ът, толкова повече познания ще събере и етапът „Тестване“ ще премине по-леко, с по-малко въпроси за изясняване и повече открити дефекти. В етапите преди „Тестване“ QA-ите анализират изискванията, комуникират възникнали въпроси и несъответствия, съставят тестови сценарии, планират и приоритизират работата си. По време на етап „Тестване“ се изпълняват подготвените тестови сценарии върху вече разработения продукт, описват се откритите дефекти, тестват се отново вече поправени проблеми. Фазата се приема за завършена, когато има фиксиран брой налични дефекти с нисък приоритет, с които е приемливо да бъде предаден софтуерът на клиента. QA-ите често пъти участват и в етапите за внедряване и поддръжка на разработения продукт, тъй като по време на тестването те са се запознали с всички функции на системата и са я тествали от гледна точка на различни потребители. QA-ите помагат за по-лесната комуникация между клиенти и разработчици (developers).
При използване на Agile методологиите се внася повече динамичност в работата на екипите, тъй като става възможно получаването на по-навременна обратна връзка от клиента. Софтуерният проект се разделя на по-малки части, които преминават по-често през етапите на разработка – например на всеки от една до четири седмици (така наречените итерации, спринтове). Agile методологиите толерират по-честата обмяна на информация в екипа чрез повтарящи се срещи между участниците в разработката на софтуера като например: ежедневна среща за свършената работа, обсъждане на възникнали проблеми и отчет за работата, която предстои да бъде свършена. По време на тази среща (daily meeting) QA-ите получават ценна информация от разработчиците за това каква част от продукта е разработена към момента и по какъв начин, така QA-ите може да планират по-добре работата си и/или да поискат съвет от мениджърите на проекта за това коя от задачите им е с по-висок приоритет към момента. С напредване на итерациите се натрупват и много дефекти за повторно тестване, все повече нови функционалности, за които трябва да бъдат създадени и изпълнени тестови сценарии.
Задълженията на QA-ите може да варират в зависимост от позицията, на която са. QA-ите с повече опит обучават нови служители, създават рипорти за свършената работа, комуникират директно с клиента, подготвят тестова среда.
Софтуерните тестери имат възможност за непрекъснато обогатяване на знанията чрез използване на нови инструменти за тестване и прилагане на разнообразни видове тестване. Често срещано в кариерния път на QA специалистите е преминаването към позиции като Automation QA, Developer, DevOps, Project manager, Scrum master.
Автор: Ина Бунова
Повече за курса по “Софтуерно тестване”