Софтуер

Възможности и пречки пред развитието на автоматизираното тестване на софтуер

Computer World

Констанца Григорова

Подобрената оперативна производителност трябва да остане ключова цел за функциите по тестване и осигуряване на качеството – чрез набавяне на специалисти с нужния набор от умения, методологии и стегната организация, твърди се в доклада „World Quality Report 2013-14“.

Според доклада, липсата на адекватни специализирани методи за тестване е най-голямото притеснение за 64% от анкетираните, а други пречки са невъзможност да се прилага автоматично тестване (56 процента), неспособност да се идентифицира фокус за Agile тестване (49 на сто), и липса на инструменти за тестване (39%).

За повече информация относно автоматизираното тестване на софтуерни продукти и системи потърсихме експертното мнение на членове на организационния комитет на конференцията за иновации в областта на автоматизираното софтуерно тестване ISTA (Innovations in Software Test Automation), която тази година ще се състои на 14 ноември. Събитието се осъществява с подкрепата на седем софтуерни компании (по азбучен ред): Experian, Hewlett-Packard Bulgaria, Infragistics Bulgaria, Musala Soft, SAP Labs Bulgaria, Skrill и VMware Bulgaria.

Цялостна автоматизация на тестването

“В глобален и национален план сложността на разработвания софтуер нараства постоянно. Точно затова, единственият дългосрочен начин за гарантиране на добро качество е пълната автоматизация на процеса на разработване и тестване на софтуер”, категоричен е Васил Поповски, директор „R&D” във VMware и член на организационния комитет на ISTA 2013.

Георги Гергинов, мениджър „Развитие” в  SAP Labs Bulgaria и член на от организационния комитет на ISTA 2013 подкрепя това мнение.

“Тенденцията да се инвестира в цялостна автоматизация и високо качество чрез автоматична валидация във всеки етап от производството на софтуер, ще се налага ускорено в отговор на бързите темпове на утвърждаване на решенията в облака”, убеден е Гергинов.

“Все повече компании започват да наблягат на инструменти и цялостни решения с отворен код в автоматизацията за различните видове тестване – функционално, за производителност, на сигурността и т.н.”, допълва и Росен Попов, мениджър по качеството в Musala Soft и член на организационния комитет на ISTA.

Според Васил Поповски, все повече компании инвестират в иновативни и полезни инструменти, които правят автоматизираното тестване по-лесно за разработка и поддръжка - като например инструменти и технологии за Mocking/stubbing, Fault Injection, автоматизирано създаване на тестове, автоматизиране на резултатите от тестването и подобни.

Георги Русев, мениджър „QA” в Experian и член на организационния комитет на ISTA подчерта, че скоростта, с която една компания може да достави нов софтуерен продукт или модерна версия на съществуващ такъв на пазара, е от ключово значение за бизнеса. “За да постигне това, е необходимо да има високо ниво на автоматизация на процесите по разработка и осигуряване на качеството на софтуерните продукти и решения. За тази цел все повече се използват комбинация от системи за „continuous integration“, инструменти и среди за тест автоматизация, на които се пишат самите тестове и се интегрират с тези системи. Задачата на тази интеграция е получаване на резултати от тестването на продукта възможно най-бързо след build процеса”, обясни Русев.

Облачни приложения

Георги Гергинов е на мнение, че преминаването на бизнеса към софтуерни решения в "облак" се развива с високи темпове. “Характерно за тези решения е, че са рентабилни и позволяват бързо и гъвкаво внедряване на нови технологии. В същото време, изискванията за сигурност и качество остават високи. За да отговорим на очакванията, ние, софтуерните компании, инвестираме все повече в автоматизиране на целия процес - от разработването на промяна в продукта, през тестването й, до финалната доставка към клиента, обясни Гергинов. - Чрез използването на цялостен автоматизиран процес, аз и колегите ми, успяваме да осигурим продуктивно внедряване на нова версия на голям и сложен продукт (SAP HANA Cloud Platform) на всеки две седмици. В ограниченото време между доставките успяваме да постигнем високо качество посредством автоматично тестване по време на целия производствен цикъл. Изграждането на тестове стартира още преди самия програмен код и се развива паралелно с него. По този начин, още от първия момент на създаване имаме възможност автоматично да валидираме резултата от работата си. След като програмният код е завършен, промяната минава няколко нива на автоматично тестване, докато стане част от продукта. Интегрираният продукт, от своя страна, също преминава през интензивно автоматизирано тестване преди да достигне до потребителите си.”

Васил Поповски също твърди, че нараства броят на компаниите, които разработват и облачни приложения, за които съответно са необходими малко по-различни начини за тестване, като security testing, usability testing, scalability, reliability & performance testing.


Възможности и пречки пред развитието на автоматизираното тестване на софтуер

© Computer World, Computerworld.bg

Според Росен Попов, автоматизацията на мобилни приложения набира все по-голяма скорост и на пазара започнаха да излизат все по-добри инструменти за постигането на тези цели. “Поради голямото разнообразие на мобилни устройства на пазара (software, hardware, разделителна способност и т.н.) стана популярно и изнасянето на този вид тестване в cloud базирани системи, разполагащи с множество различни закачени физически устройства за тестване”, допълни Попов.


Възможности и пречки пред развитието на автоматизираното тестване на софтуер

© Computer World, Computerworld.bg

“Нуждата от понижаване на разходите за тестване мотивира компаниите да инвестират в подходяща за целите виртуализационна или cloud инфраструкура, където да се реализират скъпо струващите по принцип stress testing, load testing, performance testing”, заяви Георги Русев.

Интересна тенденция според Русев също така е и развитието на т.нар. „service virtualization“. Тук се акцентира на инструменти, които могат да симулират наличието на система, която на практика не съществува или все още не е разработена.

“Целта на повечето софтуерни решения е да достигнат до по-голям брой потребители, където и да се намират те. Затова голяма част от разработваните софтуерни приложения се насочват към уеб и мобилните платформи. Автоматизираното тестване следва тенденциите в разработката на софтуер - все повече нараства нуждата от автоматизирано тестване в тези две сфери и поради тази причина нараства и броят на инструменти за тях”, посочи Русев.


Възможности и пречки пред развитието на автоматизираното тестване на софтуер

© Computer World, Computerworld.bg

Росен Попов разкри, че навлизането на Agile подходите в управлението на проектите наложи и практики като Behavior-Driven Development, Test-Driven Development и т.н. “Тук ключово е пускането на качествен продукт в кратки срокове, на всеки две-три седмици, което доведе до задължително включването на автоматизираните тестове в цялостния Continuous integration (CI) процес.”, обясни Попов.

Ангел Тодоров, Principal Architect в Infragistics и член на организационния комитет на ISTA наблюдава като нови тенденции при разработката и автоматичното тестване на софтуер техники, практики и процеси като Continuous Delivery, Continuous Integration, behavior-driven development, и offload testing to the cloud.


Кои са най-актуалните технологии и инструменти
при разработката и автоматичното тестване на софтуер?

Васил Поповски, Director R&D, VMware:

Най-актуалните технологии и инструменти са тези, които позволяват лесно, бързо, евтино и качествено автоматизирано тестване. В това число влизат системи за continuous delivery (Jenkins), Unit teting (JUnit, TestNG, NUnit, Mockito, EasyMock, Spring), Web Testing (Selenium, Sikuli), както и инструменти за следене качеството на кода в различните етапи от разработка (Sonar).

Георги Русев, QA Manager, Experian:

- Автоматизирано тестване на web и mobile:

При инструментите за автоматично тестване, както за  уеб, така и за мобилни устройства, с по-голяма популярност се славят тези, които предлагат по-голямо покритие. При уеб това е покритие от гледна точка на браузъри като поддръжката на най-разпространените бразуъри (Chrome, Internet  Explorer, Firefox, Safari) се е превърнала в „задължителна“. Инструментите, които добре покриват голяма част от тези изисквания са Selenium, Watir и Windmill.

В областта на автоматичното тестване на мобилни платформи набират скорост инструменти, предоставящи  оддръжка на най-разпространените  мобилни операционни системи( Android, iOS  и  Windows Phone) и изпълнението на един и същи тест на всяка от тях.  Такава функционалност предлагат например Ranorex, SeeTest,  Appium, EggPlant  и др.

А ако трябва да тестваме приложение, достъпно на PC и мобилно устройство, отговор можем да намерим в използването на Cucumber заедно със Selenium/WebDriver и например Appium.

- cloud testing service:

Навлизайки в cloud-a бихме отличили платформите BLITZ, LoadRunner и SOASTA, които предоставят т.нар. „cloud testing service“, когато имаме нужда.

Тестването с използване на модели от мета-данни е все-още в началото на развитиетоси, но предоставя интересни инструменти в ръцете на разработчиците, тъй като позволява използването на формалните дефиниции на интерфейсите на услугите и тяхната композиция в процеси, които от своя страна са на разположение в повечето съвременни системи – примери за инструменти: BPELUnit, Apache ODE.

Георги Гергинов, Development Manager, SAP Labs Bulgaria:

Най-актуалното предизвикателство е свързано не толкова с технологиите, колкото с начина на мислене на разработчиците на софтуер. Ако вярваме, че автоматичното осигуряване на качество е важно, намирането на подходящи инструменти не е проблем. Палитрата от технологии е много разнообразна.

Повечето софтуерни компании използват сходен набор от инструменти, които в голямата си част са с отворен код и са за безплатна употреба (Jenkins, JUnit, QUnit и др). Това спомага за споделяне на знания и опит, които са база за бързото развитие на автоматичното тестване с темпове, съответстващи на развитието на самия софтуер. Разбира се, различните компании разработват различни, специфични за техните цели, продукти. В резултат, се изграждат интересни и полезни надстройки върху базовите инструменти. 

Популярността на инструментите с отворен код е висока и ще се запази такава. Многообразието им ще нараства и ще стандартизира все по-голяма част от специфичните инструменти. Фактор за тази стандартизация е и промяната в начина на мислене, а именно, че автоматизирането на цялостния процес на разработка, валидация и доставка е критично за успеха на софтуерните продукти.

Росен Попов, Quality Manager, Musala Soft:

За web-базирани приложения Selenium WebDriver (Selenium 2) е един от най предпочитаните инструменти, не само поради това, че е с отворен код, а и поради факта, че поддръжката му е на много високо ниво - на много кратки интервали излизат версии, които да поддържат най-новите версии на браузърите. Отскоро излезе информация, че вече се работи върху Selenium 3, който със сигурност ще е много интересно да се види.

Доста от съществуващите инструменти за мобилно тестване все още са несъвършени. В момента бързо набират скорост инструменти като Robotium и Appium, които се базират на идеите заложени в WebDriver за web-тестване, както и Instrumentation. Към момента в Мусала Софт разработваме платформа за автоматизирано мобилно тестване, чрез която се опитваме да адресираме и много от проблемите на сегашните инструменти за автоматизация, а именно емулацията на физическите ограничения на мобилното устройство (наличен капацитет на батерията, ограничена процесорна мощ, малко количество оперативна памет, меняща се позиция в пространството и др.) и симулацията на интеграционната му среда (връзката към източника на безжичен Интернет, мощността на сигнала, чрез който се предава мобилния Интернет, статуса на връзката с отдалечен сървър и др.).  
Интересно е да се отбележи, че отскоро в България има и съвсем достъпни cloud решения за тестване на производителност с един от големите инструменти на пазара – HP LoadRunner.

Ангел Тодоров, Principal Architect, Infragistics:

Selenium WebDriver, Jenkins (CI), QUnit (javascript unit testing), NUnit/JUnit





© Ай Си Ти Медиа ЕООД 1997-2019 съгласно Общи условия за ползване

X