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