Методологии за тестване на софтуер: Научете QA модели

Съдържание:

Anonim

Какво представлява методологията за тестване на софтуер?

Методологията за тестване на софтуера се определя като стратегии и типове тестове, използвани за удостоверяване, че тестваното приложение отговаря на очакванията на клиента. Тестовите методологии включват функционални и нефункционални тестове за валидиране на AUT. Примери за методологии за тестване са тестване на единици, тестване на интеграция, тестване на системата, тестване на производителността и т.н. Всяка методология за тестване има определена цел на теста, стратегия за тестване и резултати.

Забележка : Тъй като тестването на софтуер е неразделна част от всяка методология за разработка, много компании използват термина „Методологии за развитие и методологии за тестване“ в разговорно изражение. Следователно методологиите за тестване могат също да се отнасят до водопад, пъргави и други модели за осигуряване на качеството в сравнение с горната дефиниция на методологии за тестване. Дискусията за различни видове тестове не добавя стойност за читателите. Следователно ще обсъдим различните модели на развитие.

В този урок ще научите -

  • Модел на водопад
  • Итеративно развитие
  • Agile методология
  • Екстремно програмиране
  • Коя софтуерна методология да избера?
  • Как да настроите методологии за тестване на софтуер?

Модел на водопад

Какво е?

В модела на водопада развитието на софтуера напредва през различни фази като анализ на изискванията, дизайн и т.н. - последователно .

В този модел следващата фаза започва едва когато завърши по-ранната фаза.

Какъв е подходът за тестване?

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

Едва след като дизайнът на софтуера завърши, екипът ще премине към изпълнение на тестовите случаи, за да гарантира, че разработеният софтуер се държи както се очаква.

При тази методология екипът за тестване преминава към следващата фаза само когато предишната фаза е завършена.

Предимства

Този модел на софтуерно инженерство е много лесен за планиране и управление. Следователно проектите, при които изискванията са ясно дефинирани и заявени предварително, могат лесно да бъдат тествани с помощта на модел на водопад.

Недостатъци

В модела на водопада можете да започнете със следващата фаза само след като предишната фаза е завършена. Следователно този модел не може да побере непланирани събития и несигурност.

Тази методология не е подходяща за проекти, при които изискванията се променят често.

Итеративно развитие

Какво е?

В този модел голям проект е разделен на малки части и всяка част е подложена на множество итерации на модела водопад. В края на итерация се разработва нов модул или се подобрява съществуващ модул. Този модул е ​​интегриран в софтуерната архитектура и цялата система е тествана заедно

Какъв е подходът за тестване?

Веднага след като итерацията приключи, цялата система се подлага на тестване. Обратната връзка от тестването е незабавно достъпна и е включена в следващия цикъл. Времето за тестване, необходимо за последователна итерация, може да бъде намалено въз основа на опита, придобит от минали итерации.

Предимства

Основното предимство на итеративното развитие е обратната връзка на теста, която е налице веднага в края на всеки цикъл.

Недостатъци

Този модел значително увеличава режийните разходи за комуникация, тъй като в края на всеки цикъл трябва да се дава обратна информация за резултатите, усилията и т.н.

Agile методология

Какво е?

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

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

Какъв е подходът за тестване?

Постепенното тестване се използва в гъвкавите методи за разработка и следователно всяка версия на проекта се тества щателно. Това гарантира, че всички грешки в системата са отстранени преди следващото издание.

Предимства

Възможно е да се правят промени в проекта по всяко време, за да се спазят изискванията.

Това допълнително тестване минимизира рисковете.

Недостатъци

Постоянното взаимодействие с клиента означава допълнителен натиск във времето върху всички заинтересовани страни, включително самия клиент, екипите за разработка на софтуер и тестове.

Екстремно програмиране

Какво е?

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

При екстремно програмиране разработчиците обикновено работят по двойки.

Екстремното програмиране се използва на места, където изискванията на клиентите непрекъснато се променят.

Какъв е подходът за тестване?

Екстремното програмиране следва разработка, ръководена от тестове, която е описана по следния начин -

  1. Добавете Test Case към тестовия пакет, за да проверите новата функционалност, която тепърва ще бъде разработена
  2. Изпълнете всички тестове и очевидно добавеният нов тестов случай трябва да се провали, тъй като функционалността все още не е кодирана
  3. Напишете някакъв код, за да приложите функцията / функционалността
  4. Стартирайте отново тестовия пакет. Този път новият тестов случай трябва да премине, тъй като функционално е кодиран

Предимства

Клиентите, които имат предвид неясен софтуерен дизайн, биха могли да използват екстремно програмиране

Непрекъснатото тестване и непрекъснатата интеграция на малки версии гарантират, че софтуерният код е доставен с високо качество

Недостатъци

Срещите между екипа за разработка на софтуер и клиентите допълват изискванията за време.

Коя софтуерна методология да избера?

Налични са много методологии за разработване на софтуер и съответното тестване. Всяка техника за изпитване и методология е проектирана за определена цел и има своите относителни достойнства и недостатъци.

Изборът на конкретна методология зависи от много фактори като естеството на проекта, изискването на клиента, графика на проекта и т.н.

От гледна точка на тестване, някои методологии настояват за въвеждане на тестове в началото на жизнения цикъл на разработката, докато други изчакват, докато работещ модел на системата бъде готов.

Как да настроите методологии за тестване на софтуер?

Методологиите за тестване на софтуер не трябва да се създават само с цел тестване на софтуерен код. Трябва да се има предвид голямата картина и основната цел на проекта трябва да бъде удовлетворена от методологията за тестване.

Планиране

Реалистичното планиране е ключът към прилагането на успешна методология за тестване и графикът трябва да отговаря на нуждите на всеки член на екипа.

Определени резултати

За да се запазят всички членове на екипа на една и съща страница, трябва да се предоставят добре дефинирани резултати. Резултатите трябва да съдържат пряко съдържание без никакви неясноти.

Тестов подход

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

Отчитане

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