Тестване на производителност срещу натоварване
В контекста на софтуерното инженерство се извършва тестване на производителността, за да се открият тесните места на дадена система. Тестовете за производителност могат да се използват и за проверка на атрибути като надеждност, използване на ресурси и мащабируемост и за установяване на базова линия за производителността на системата. Тестването на натоварването е един от поджанровете на тестването на производителността. Извършва се за измерване на поведението на система при определено работно натоварване. Тестването на натоварването е по-уместно за многопотребителски системи, базирани на модел клиент-сървър, но други софтуерни системи, като текстови процесори или графични редактори, също могат да бъдат тествани при натоварване.
Тестване на производителността
Както бе споменато по-горе, тестването на производителността се прави, за да се определят и елиминират тесните места на софтуерна система и да се установи базова линия на нейната производителност, която би била полезна за по-нататъшно тестване. Тестването на производителността включва тестове като тестове за натоварване, тестове за издръжливост (тестове за накисване), тестове за пикове, тестове за конфигурация и тестове за изолация. Тестването на производителността изисква получаване на внимателно контролиран набор от измервания на системата. За да получите най-добри резултати от тестването на ефективността, то трябва да бъде добре планирано и трябва да се извършва на стабилна система, където процесът на тестване може да протича гладко. Важно е ясно да разберете какво всъщност искате да измерите по отношение на производителността на системата, когато правите тестове за производителност. Например, ако тествате производителността на уеб приложение, може да искате да знаете приемливото време за реакция и броя на едновременните потребители, които могат да бъдат обработени от системата. Като имате предвид тези два аспекта, можете да започнете теста, като постоянно увеличавате броя на потребителите и идентифицирате пречка.
Тестване на натоварване
Както споменахме по-рано, тестването на натоварване е част от тестването на производителността и често се извършва чрез увеличаване на натоварването на софтуерна система с помощта на автоматизирани инструменти. Тестването на натоварване понякога е известно като обемно тестване. Някои примерни тестове за натоварване биха били тестване на пощенски сървър с голям брой потребителски пощенски кутии или тестване на редактиране на много голям документ с помощта на текстообработваща програма. Тестовете за натоварване се извършват, като се използва предварително определено ниво на натоварване, като обикновено се използва максималното натоварване, което системата може да издържи без срив. Обикновено тестването на натоварване има за цел да разкрие грешки, които не се откриват при обикновеното тестване, като например проблеми с управлението на паметта, изтичане на памет, препълване на буфер и т.н. Тестването на натоварване също служи като средство за гарантиране, че системата отговаря на базовата производителност, установена по време на тестване на производителността.
Разлика между производителност и тестване на натоварване
Въпреки че термините тестване на ефективността и тестване на натоварването се използват взаимозаменяемо, тестването на натоварване е само един аспект на тестването на ефективността. Целите на двата теста също са различни. Тестването на производителността използва техники за тестване на натоварване с цел получаване на измервания и сравнителен анализ и използва няколко нива на натоварване. Но тестването на натоварване работи на едно предварително дефинирано ниво на натоварване, обикновено най-високото натоварване, което системата може да управлява без срив. На практика тестовете за производителност се правят с намерението да се намерят тесните места на системата и да се отстранят. И когато системата вече не може да бъде оптимизирана, се стартира тестване на натоварването, за да се определи какво трябва да добавите към системата (най-често хардуерни разширения като брой уеб сървъри или сървъри на бази данни), за да поддържате изискванията, предварително дефинирани от клиента.