what is thread testing software testing
Този урок обяснява какво е тестване на нишки, кога и как да се извърши, видове тестване на нишки и предизвикателства, пред които са изправени:
Тестването на нишки е техника за тестване на софтуер, която се използва за тестване на приложения, базирани на клиентски сървър.
Тестване на основата на нишки трябва да се извършва в началните етапи на тестване на интеграция, така че ключовите функции да могат да бъдат тествани / проверени за конкретна задача / програма или нишка.
Какво ще научите:
- Защо тестване на нишки
- Кога и как се извършва тестване на резби
- Видове тестови тестове
- Разлика между резбата и процесите
- Разлика между тестване, базирано на нишки и потребител
- Заключение
Защо тестване на нишки
Когато компонентите са интегрирани, е необходимо да се провери дали системата ще работи както се очаква или не и всички транзакции ще се случат според изискването или не. Така тестването, базирано на нишки, идва, за да тества същото.
Това тестване се извършва чрез постепенно интегриране на нишките на всички нива, започвайки от подсистемата до цялостната система, т.е. цялата система. Всички системни дейности се движат напред само с нишките.
Определението на нишката помага за споделяне на функционалния фон и подробности за изпълнението на нишките между разработчиците и разработчиците с тестери.
Относно нишките
Нишката е потокът от контрол в даден процес. Това е най-малката задача на системата, която може да се изпълни.
кой е най-добрият софтуер за управление на задачи
Пример
Уеб браузърът може да има една или повече нишки, работещи viz. една нишка за показване на изображения и текст и друга нишка за извличане на данни. В определени случаи трябва да се изисква едно приложение, което да обслужва всички процеси.
Създаването на множество нишки е най-доброто решение за една и съща, в противен случай клиентът изпраща множество заявки до сървъра и ще отнеме време, за да потвърди заявките една по една. Multi-thread ще помогне да се отговори на заявките едновременно.
Кога и как се извършва тестване на резби
Това трябва да се направи в началния етап на теста за системна интеграция.
Интеграционното тестване се извършва чрез планирано интегриране на различни модули. Планът за интеграция се следва за същия, който определя реда, в който модулите ще бъдат интегрирани, за да се направи цялостната система.
По-долу са изброени техниките за изпълнение на тестове за интеграция:
- Подход на Големия взрив
- Подход отгоре надолу
- Подход отдолу нагоре
- Смесен подход
Нека разгледаме всяка техника в детайли.
# 1) Подход на Големия взрив
Подходът на Големия взрив се използва само за малки системи, тъй като всички модули са интегрирани и тествани само с едно движение.
Всеки проблем, открит по време на този подход, е трудно да се локализира, тъй като проблемът може да бъде от някой от интегрираните модули. Следователно откритите проблеми с отстраняването на грешки са много скъпи за отстраняване при този подход.
# 2) Подход отгоре надолу
Подходът отгоре надолу се извършва с помощта на заглушките, т.е. след като модулът от най-високо ниво е тестван, непосредствените подпрограми се интегрират и тестват.
Stubs са програмите, които симулират ефекта на рутинните програми от по-ниско ниво и се извикват от тестваните рутини. Тестването на нишки използва подход отгоре надолу.
# 3) Подход отдолу нагоре
При подхода отдолу-нагоре всички подсистеми се тестват индивидуално и след това се тества пълната система. Причината за тестването на всички подсистеми поотделно е да се тества интерфейсът между всички модули, които са част от подсистемата.
Тази техника изисква тестови драйвери, т.е.програмата, която извиква останалите модули и осигурява същия изход като действителния продукт.
# 4) Смесено тестване на интеграция
Тази техника е комбинация от подходи отгоре надолу и отдолу нагоре. Следователно това се нарича Тестване на смесена интеграция.
Ключови точки за извършване на тестване на основата на нишки
- Докато извършвате тестване на нишки, нишките или малка функционалност се интегрират и тестват. Извършеното тестване е допълнително тестване на ниво подсистема и след това като цялостна система.
- В самия начален етап тестерите за интеграция получават добра идея и знания какво да тестват допълнително.
- Интеграционните тестери трябва да прилагат и изпълняват както положителни, така и отрицателни сценарии само в границите на нишките. Те трябва да вземат решение за подхода за тестване на нишки, който да се следва, за да обхване и изключителни случаи и гранични случаи.
- Определението на нишката, предоставено от разработчика на тестера, помага да се тества съответно нишката от тестерите на интегратора. Всяка допълнителна информация, изисквана от тестера, може да получи отговор в процеса на преглед на нишката.
- Процесите на нишки работят по-скоро за интеграционни процеси, отколкото за крайния процес на разработка.
- За да тествате функционалността на много нишки, оставете няколко екземпляра на приложението или програмата, които ще се тестват, да бъдат активни едновременно.
- Стартирайте програмата с много нишки на различен хардуер.
- Тестването на нишки е форма на тестване на сесии, за което сесиите се формират от нишки. Не е необходимо формираната нишка да е сесия.
Видове тестови тестове
Извършват се два типа тестване на нишки:
- Тестване с единична нишка
- Тестване с много нишки
# 1) Тестване с единична нишка
Тестването с една нишка тества по една транзакция наведнъж. Времето на изчакване клиентът да получи отговор на заявката си може да бъде малко по-дълго, тъй като той ще може да обслужва или отговаря на един клиент наведнъж.
Това тестване помага на тестера да разбере и тества логиката на програмата или написания код.
# 2) Тестване с много нишки
Тестването с няколко нишки тества едновременно няколко активни транзакции. В този случай се създават отделни нишки за заявките на клиента. Винаги, когато е направена заявка, се създава нишка към услугата или отговаря на заявката.
Транзакция, която работеше добре при тестване с единична нишка, може да се провали при тестване в многонишка, а също така може да попречи на други нишки и функционалности и да ги спре да работят според очакванията.
Многопоточен подход по-добър ли е от подхода с една нишка?
Многонишковите приложения са по-добри от еднонишковите, тъй като подобряват производителността на приложението. Многопоточността позволява редица ресурси да работят по даден въпрос / заявка едновременно.
Предизвикателства при извършване на тестове, базирани на нишки
Докато извършва тестване на основата на нишки, тестерът се сблъсква с няколко предизвикателства, които оказват влияние върху производителността, времето и разходите за тестване.
- Писането на единични тестови случаи за многонишкови кодове е предизвикателство.
- Когато се прави тестване с много нишки на различен хардуер, то варира в зависимост от размера, капацитета за съхранение, паметта, проблемите и т.н.
- Сценариите за тестване както за една нишка, така и за множество нишки са различни.
- При тестване на множество нишки трябва да се програмират възпроизводими тестове за единични тестове.
Предимства / недостатъци на Multi-Threading
Многофункционалността има много предимства, както и недостатъци. Като тестер, знаейки същото, им помага да тестват и разбият процеса на тестване съответно.
Предимства
- Многопоточността увеличава отзивчивостта на потребителя. Приложението може да остави програмата да работи, дори ако част от приложението бъде блокирана.
- Споделянето на ресурси е друго предимство, тъй като нишките споделят ресурсите на процеса, с който са свързани или към които принадлежат.
- Създаването на нишки е икономично, тъй като споделя ресурсите, към които принадлежат.
Недостатъци
- Комплексен процес на тестване
- Резултатите са много непредсказуеми.
- Написването на програма става по-трудно.
- Възникване на задънена улица.
Какво е задънена улица
Когато се направи многопоточност, нишката влиза в състояние на изчакване, ако ресурсът не е наличен.
Състоянието на изчакване може да не се промени за нишката, тъй като заявеният ресурс се задържа от други изчакващи нишки. Когато възникне такава ситуация, това се нарича Deadlock.
Разлика между резбата и процесите
Нека разберем разликите между нишката и процесите:
S.No | Тема | Процес |
---|---|---|
7 | Нишките не могат да се разделят допълнително. | Процесите могат да имат множество нишки. |
един | Нишката е лек процес. | Процесът е тежък процес. |
две | Ако нишката на сървъра се блокира, може да се изпълни втора нишка от същата задача и да завърши процеса. | Ако процесът на сървъра бъде блокиран, други процеси не могат да се изпълняват, докато процесът на блокиран сървър не бъде блокиран. |
3 | Нишките не изолират, те споделят памет. | Процесът е изолиран. |
4 | Създаването на нишки, превключване на контекст, прекратяване отнема по-малко време в нишката. | Създаването на нишки, превключването на контекста, прекратяването отнема повече време в процесите. |
5 | Нишката се отнася до конкретната задача на даден процес. | Процесът се отнася до изпълнението на всяка програма. |
6 | Използваните ресурси са много малко в нишката. | Ресурсите, използвани в процесите, са повече. |
Разлика между тестване, базирано на нишки и потребител
S.No. | Тестване на нишки | Тестване въз основа на употреба |
---|---|---|
един | Нишките се интегрират и тестват индивидуално. | Тестването започва с класове, които не са зависими един от друг, т.е. са независими. |
две | Извършва се регресивно тестване, за да се гарантира, че нищо няма да се повлияе. | След като се направи тестване на независими класове, тогава се тестват зависими класове. Зависимите са тези, които зависят от независимите класове. Тази серия продължава до момента, в който е изградена цялостната система. |
3 | Тестването, базирано на нишки, интегрира класовете, които са от съществено значение за потвърждаване на входа или събитието на системата. | Тестването на базата на използване интегрира класовете, които са от съществено значение за реагиране или потвърждаване на случая на употреба. |
често задавани въпроси
В # 1) Какво е тестване на резби?
Отговор: Тестването на основата на нишки е методология, която се извършва по време на ранната фаза на интеграционното тестване. Нишките или програмите се интегрират и тестват постепенно в подсистема и след това като цялостна система.
въпроси и отговори за интервю за тестване на селен
В # 2) Кое тестване се прави първо?
Отговор : Обикновено първо се прави тестване отдолу нагоре и след това се извършва тестване отгоре надолу.
В # 3) Какво е тестване отгоре надолу?
Отговор: Отгоре надолу е техника за тестване на интеграция, при която тестването се извършва с помощта на заглушки, т.е. когато компонентите от по-ниско ниво все още не са готови да тестват интеграцията, се създават заглушки (временни модули), за да получат същия изход, както в случая с действителните модули.
Заключение
Тестването на интеграция, базирана на нишки, играе важна роля при тестването на основните функционалности или конкретната задача или нишка. Тази методология е най-добра за архитектура, базирана на клиентски сървър.
Докато извършва тестване на нишки, тестерът трябва да се справи с много предизвикателства, но има и много предимства, което го прави лесно и надеждно за изпълнение. Той позволява на тестерите да тестват всички транзакции и да проверят дали работи както се очаква и според изискването.
Невъзможно е да се тестват всички транзакции / събития, за да се завърши тестването на нишката, поради което се разделя на единични и многонишкови типове.
Препоръчително четене
- Изборът на софтуерно тестване като кариера
- Някои интересни въпроси за интервю за тестване на софтуер
- Емоционална задача ли е тестването на софтуер?
- Синхронизирано с Java: Какво представлява синхронизация на нишки в Java
- Java нишки с методи и жизнен цикъл
- Многопоточност в C ++ с примери
- Многопоточност в Java - Урок с примери
- Thread.Sleep () - метод на Sleep Thread () в Java с примери