Конвенционално тестване срещу обектно ориентирано тестване
Тестване на софтуер е една от най-важните стъпки в процеса на разработка на софтуер. Софтуерното тестване гарантира, че разработеният софтуер удовлетворява всички изисквания на клиента и се изпълнява без грешки. Тъй като парадигмите и техниките за разработка на софтуер се изместиха от първоначалната разработка на софтуер за водопад към OOD / Agile и други по-нови концепции, тестването също се измести от конвенционалното (традиционно) тестване към обектно ориентирано тестване (OOT). Но тъй като разработването на водопад все още се използва, конвенционалните тестове все още се използват от тестерите.
Какво е конвенционално тестване?
Конвенционалният процес на тестване се осъществява най-вече, когато жизненият цикъл на водопада се използва за разработване на софтуер в организациите. Конвенционалното тестване винаги се провежда по време на тестовата фаза на жизнения цикъл, която обикновено следва фазата на развитие и продължава фазата на изпълнение. По време на тази фаза на тестване ще се провеждат основно три вида тестове. Тестването на системата ще гарантира, че характеристиките на системата отговарят на изискванията на клиента, документирани в SRS (спецификация на софтуерните изисквания), като обикновено се подхожда към черна кутия. Интеграционното тестване тества предварителния проект, като се използва функционален и разлагащ подход. Тестът за интеграция се основава на структурата на дизайна, като се използва или подходът отгоре надолу или отгоре отгоре. И накрая, тестовете на устройството се уверяват, че подробният дизайн е правилен.
Какво е обектно ориентирано тестване?
Използването на обектно ориентиран (OO) анализ и дизайн заедно с Agile и други скорошни методологии за разработка на софтуер водят до обектно ориентирано тестване. Развитието на ОО обикновено е фокусирано върху поведението. Тестването се прави с акцент върху състава. Това означава, че дизайнът се създава парче по парче и се съставя заедно, за да завърши пълната система. Тъй като за разработката на OO днес се използват бързо прототипиране и някаква форма на инкрементален подход, трите конвенционални тестови нива (система, интеграция и тестване на единици) не са ясно видими в OO дизайна (но те съществуват в повечето случаи). Тестването на системата (под OO тестване) ще изисква голяма част от същия (черна кутия) подход като конвенционалното тестване и ще провери спецификацията на изискванията (защото изискванията трябва да бъдат проверени независимо от процеса на разработка). Изпитването на единица при обектно ориентирано тестване е подобно на конвенционалното тестване на единица, но основната разлика е дефиницията на използваната единица. Понастоящем приетите единици, използвани за тестване на единици, са класове и методи.
Каква е разликата между конвенционалното и обектно ориентираното тестване?
Конвенционалното тестване е традиционният подход за тестване най-вече, когато се използва жизнения цикъл на падане на вода за развитие, докато обектно-ориентираното тестване се използва, когато обектно-ориентираният анализ и дизайн се използват за разработване на корпоративен софтуер. Конвенционалното тестване се фокусира повече върху разлагането и функционалните подходи, за разлика от обектно ориентираното тестване, което използва композиция. Трите нива на тестване (система, интеграция, единица), използвани при конвенционалното тестване, не са ясно дефинирани, когато става дума за обектно ориентирано тестване. Основната причина за това е, че разработката на ОО използва инкрементален подход, докато традиционното развитие следва последователен подход. По отношение на единичното тестване, обектно ориентираното тестване разглежда много по-малки единици в сравнение с конвенционалното тестване.