Подходи за автоматизация на софтуерното тестване
Автоматизирано тестване на софтуер - е набор от практики, подходи и методи, които заедно позволяват да се автоматизира (с помощта на трета страна, във връзка с помощните средства на системата или софтуер, включително и развитие на околната среда) извършване на дейности, насочени към тестване на софтуер.
Автоматизиране на функционални изследвания - процес, насочен към намаляване на разходите за извършване на функционални изследвания чрез създаване на специални програми, за да "замени" тестерите при извършване на тестове.
Основните цели на въвеждането на автоматизирана функционалност тестове трябва да включват:
• Намаляването на разходите за изпитване чрез автоматизиране на изпитването;
• Спестете време за тестване, защото, като правило, автоматизирани тестове движат по-бързо от извършване на същите тестове ръчно. Този фактор дава възможност да се увеличи броя на тестовете, извършени в една сесия на изследване;
• Надеждност - автоматизирани тестове, предназначени за изключване на човешкия фактор.
Целта на процеса на автоматизация тест е да се осигури по-добри финансови резултати през спестяване ресурси и подобряване на качеството на извършената работа на софтуерното тестване.
Недостатъците на автоматизирано функционално тестване в сравнение с ръчно тестване трябва да включват следното:
• Твърдо предварително програмиране - автоматичен тест не е в състояние да открива дефектите, за които не е програмиран;
• Автоматизирани тестове, както и всяка софтуерна система, трябва да бъдат подкрепени, което води до допълнителни разходи за всички стадий на разработка и тестване приложения;
• сценарии, по автоматизирано тестване, както и всяка програма, могат да съдържат грешки. Това води до необходимостта от по-нататъшно утвърждаване на автоматизираните резултатите още една проба.
Следните подходи към avtomtaizatsii софтуерното тестване:
• Тестване на ниво код;
• Проверете молбата Ви по графичния интерфейс.
Тестване на ниво код.
Този подход се използва главно в модулен и регресия тестване. Единица тестване проверява функционалността и изглежда за дефекти в частите на прилагане, които са налични и могат да бъдат тествани отделно (програмни модули, обекти, класове, функции и т.н.).
Предимствата на единица тестване включват:
• насърчаване на промени. Звено тестване по-късно позволява на програмистите да Преструктуриране на, като се, че модулът продължава да работи правилно (регресия тестване);
• Опростяване на интеграцията. Звено тестване помага за премахване на съмнение за отделните модули и може да се използва за тестване на подход "отдолу-нагоре": първо тества отделните части на програмата, а след това на програмата като цяло. Този подход значително опростява интеграция тестване;
• Разделяне на интерфейс от изпълнението. Тъй като някои класове могат да използват други класове, тестване на определен клас често се разпространява към класовете, свързани с него. Например, класът използва базата данни в хода на писмено изпитване програмист открива, че тестът трябва да си взаимодействат с базата данни. Това е грешка, защото тестът не надвишава ограничението за клас.
Разбира се, при тестване на ниво код има и недостатъци:
• Не се открият всички грешки. Това следва от практическата невъзможност за проследяване на всички възможни пътища на програмата, с изключение на най-простите случаи. Освен това, тест за всеки от модулите поотделно. Това означава, че грешките интеграция, функции на системно ниво, изпълнени в няколко модула, не са определени;
• Голяма част от тест код. Тестване на софтуера - комбинаторен проблем. Например, всяка възможна стойност на булева променлива изисква два теста, един вариант на вярно, а от друга - до фалшиви изпълнение. В резултат на това всеки източник линия се изисква за изпитване линии 3-5;
• стриктно спазване на технологии за тестване. Необходимо е да се съхранява не само запис на всички изследвания, извършени, но също така и за всички промени на изходен код на всички модули. За тази цел, трябва да използвате системата за версия на софтуера за управление. По този начин, ако по-нова версия на софтуера не минава теста, който е бил успешно премина по-рано, че ще бъде лесно да се провери код версии на източника и поправите грешката.
Инструменти за улесняване на прилагането на теста за единица е предназначена за широк кръг от езици. В D и Cobra езици звено за анализ е вграден в самия граматиката на езика и е достъпна без допълнителни библиотеки.
За Java: JUnit, TestNG, JavaTESK и др.
За C ++: CPPUnit, Boost Test, Google ++ Рамковата С Тестване и други.
За PHP: SimpleTest, PHPUnit и сътр.
Тестване на прилагане чрез графичен интерфейс.
Популярността на този вид тест се обяснява с два фактора:
• Приложението се тества по същия начин, че ще използва хората;
• Можете да тествате вашата кандидатура, без да има достъп до изходния код.
UI-Automation е разработила над 4 поколения на инструменти и техники:
• Запис и възпроизвеждане полезност записва действията на изпитатели време на употреба тестове. Те ви позволяват да извършва изпитвания без пряка намеса на човека в продължение на дълъг период от време, значително повишаване на производителността и премахване на "тъп" повтарящи се действия повторения по време на употреба тестове. В същото време, всяка малка промяна в софтуера, който се изпитва изисква пренаписване на ръчни тестове;
• Scripts (Scripting) - форма на език за програмиране, специално предназначени за автоматизиране на тестване на софтуер. Ангажиран в развитието на високо ниво, програмисти, които работят отделно от тестерите, просто изпълнете тестовете. В допълнение, скриптовете са по-подходящи за тестване на GUI и не могат да бъдат вградени или общ пакет по никакъв начин на интегриране в системата. На последно място, промени в тест софтуер изисква сложни промени в съответните скриптове;
• основан на данни тестване - методология, което се използва в тест за автоматизация. Характерна особеност е, че скриптовете за изпитанията са изпълнени и проверени въз основа на данни, които се съхраняват в централното хранилище на данни или база данни. Ролята на базата данни може да изпълни ODBC-ресурси, CSV или XLS файлове и т.н. Основан на данни тестване - обединение на няколко взаимодействащи тестови скриптове и източници на данни в рамките използвани в методологията. В тази рамка, променливите се използват за въвеждане на стойности и за изход на тестови стойности: в скрипт тест обикновено се кодира приложение за навигация, четене на източниците на данни, провеждане на трупи за тестване. По този начин, логиката да бъде изпълнено в сценария, също зависи от данните;
• основани на ключови думи автоматизация включва разделяне на процеса на създаване на тестовете в 2 фази: планиране и фазата изпълнение.
Популярни програми за този тип изпитване, включват:
о HP LoadRunner, HP Professional QuickTest, Център за качество на HP
о IBM Rational FunctionalTester, IBM Rational PerformanceTester, IBM Rational TestStudio
о AutomatedQA TestComplete
• с отворен код:
Въз основа на описанието по-горе, чрез използването на изпитване чрез GUI обхваща повече сценарии, използващи продукта. Освен това, тестване на кода на ниво, за да се откаже от някои тестове на функционални тестери, но натоварването за разработчиците ще бъде повече.
Ако избраният техника тестване чрез графичен интерфейс, е необходимо да изберете инструменти, които могат да помогнат за автоматизиране на процеса на тестване, тъй като други техники, за да се използват Automator-тестер. Automator-тестер ще доведе до допълнителни разходи за самите компании. Utility е лесна за използване, има широко достъпни, не изискват допълнителни умения за програмиране от функционални тестери.
Ако изберете автоматизация на процеса на тестване с помощта на специални инструменти, автоматизация на тест ще се осъществи чрез въвеждането на работата на тестери специални скенери, повечето от които работят на нивото на страницата код, за да бъдат напълно информирани за обекта на изпитването. Чрез предаване на специални стойности на сървъра на приложения и сканирайте получи отговор относно нарушенията на протоколите за безопасност. Голямото предимство на използването на такива скенери е, че техните проверки могат да се изпълняват през нощта, като по този начин се намалява неудобството да тестера до минимум. Също така, използването на скенери дава възможност за повече проверки за единица време, отколкото системите за тестер за сигурност. В този случай всеки резултат получил сканиране трябва да се провери отново да се потвърди наличието на уязвимост.
Вече е широко използван софтуер за автоматизация тест, който предлага широка гама от услуги за тестване на различни уязвимости. По-специално:
• Wapiti. Тя ви позволява да извършва проверка за сигурност на уеб приложения. Прилагането провежда сканиране нападател позиция. Това означава, че приложението ще сканира страниците на уеб приложения за скриптове или форми, чрез които можете да се извършват хакерство.
• Netsparker Общността Edition. Това е скенер за SQL инжекция. Това е безплатна версия на уеб уязвимост на скенера, така че потребителите да могат да започнат веднага да сканира вашия сайт. Скенерът е много лесен за употреба, бърз и лесен за употреба, потребителят няма да има нужда да се притеснявате за фалшиви аларми.
• N-Stalker безплатната версия. Той предлага да се извърши ограничен брой проверки за оценка на уеб сигурност, която ще помогне за подобряване на цялостната инфраструктура на сигурността на уеб-услуга. Инструментът използва най-изчерпателна база данни на уеб атака подписи, е на разположение днес - «N-Stealth Уеб Атака подпис База данни».
• Websecurify - е усъвършенстван инструмент за тестване, специално предназначена за бързо и точно разкриване на уязвимости в уеб приложение.
• OWASP Zed Атака Proxy Project - Инструмент за тестване на защитата на основното ниво, позволява проверка на уязвимостта към XSS атаки, извършвани основни проверки на възможността за SQL инжекция, дава възможност на потребителя да сканира за кандидатстване пристанища, грапавини, а също така ви позволява да контролирате протоколи, използвани по време на изпитването. Този инструмент ще бъде особено полезен за тестери за безопасност, както и разработчици. Скенерът дава възможност да се работи в пасивен режим и активен. Security Scanner е безплатна дистрибуция.
При избора на условие за скенер Очевидно е, че наличието на скенер широко достъпен е един от най-важните критерии на решения. Въпреки това, като важна система да работи с няколко вида уеб уязвимости, и е лесен за използване.
Въз основа на въвеждането на алтернативи на скенера OWASP Zed Атака Proxy проекта ще бъде най-добрият вариант.