what is thread testing software testing
Цей підручник пояснює, що таке тестування потоків, коли і як його проводити, типи тестування на основі потоків та проблеми, з якими стикаються:
Тестування потоків - це техніка тестування програмного забезпечення, яка використовується для тестування програм, що базуються на клієнтському сервері.
Тестування на основі ниток слід проводити на початкових етапах тестування інтеграції, щоб ключові функції могли бути перевірені / перевірені для конкретного завдання / програми чи потоку.
Що ви дізнаєтесь:
- Чому тестування ниток
- Коли і як проводиться тестування ниток
- Види випробувань на основі ниток
- Різниця між потоком і процесами
- Різниця між тестуванням на основі потоків та тестуванням на основі користувачів
- Висновок
Чому тестування ниток
Коли компоненти інтегровані, необхідно перевірити, чи буде система працювати належним чином чи ні, і всі транзакції відбуватимуться відповідно до вимоги чи ні. Таким чином, тестування на основі ниток проводиться для тестування того самого.
Це тестування проводиться шляхом поступової інтеграції потоків на всіх рівнях, починаючи від підсистеми до повної системи, тобто всієї системи. Усі системні дії рухаються вперед лише за допомогою ниток.
Визначення потоку допомагає ділитися функціональним фоном та деталями виконання потоків між розробниками та розробниками тестувальників.
Про нитки
Потік - це потік управління в процесі. Це найменше завдання системи, яке можна запустити.
які фази sdlc?
Приклад
Веб-браузер може мати один або кілька потоків, що працюють viz. один потік для відображення зображень та тексту, а інший - для отримання даних. У певних випадках для обслуговування всіх процесів потрібна одна заявка.
Створення декількох потоків є найкращим рішенням для одного і того ж, інакше клієнт надсилає на сервер кілька запитів, і для підтвердження запитів по одному потрібно час. Багатопотокова схема допоможе одночасно відповідати на запити.
Коли і як проводиться тестування ниток
Це слід зробити на початковому етапі тестування системної інтеграції.
Тестування інтеграції виконується шляхом планової інтеграції різних модулів. План інтеграції виконується для того самого, який визначає порядок, в якому модулі будуть інтегровані для створення повної системи.
Нижче перераховані методи виконання інтеграційного тестування:
- Підхід Великого Вибуху
- Підхід зверху вниз
- Підхід знизу вгору
- Змішаний підхід
Давайте розглянемо кожну техніку в деталях.
# 1) Підхід Великого Вибуху
Підхід 'великого вибуху' застосовується лише для малих систем, оскільки всі модулі інтегровані та перевірені лише одним рухом.
Будь-яку проблему, виявлену під час цього підходу, важко локалізувати, оскільки проблема може бути з будь-якого з інтегрованих модулів. Тому виявлені проблеми з налагодженням дуже дорого виправляються в цьому підході.
# 2) Підхід зверху вниз
Підхід зверху вниз виконується з використанням заглушок, тобто після тестування модуля верхнього рівня безпосередні підпрограми інтегруються та тестуються.
Заглушки - це програми, які імітують ефект підпрограм нижчого рівня і викликаються підпрограми, що перевіряються. Тестування ниток використовує підхід зверху вниз.
# 3) Підхід знизу вгору
При підході знизу вгору всі підсистеми перевіряються індивідуально, а потім перевіряється повна система. Причиною тестування всіх підсистем окремо є тестування інтерфейсу між усіма модулями, що входять до складу підсистеми.
Для цього методу потрібні тестові драйвери, тобто програма, яка викликає інші модулі та забезпечує такий самий результат, як і фактичний продукт.
# 4) Змішане тестування інтеграції
Цей прийом являє собою поєднання як підходів зверху вниз, так і знизу вгору. Тому це називається змішаним тестуванням інтеграції.
Основні моменти для тестування на основі ниток
- Під час тестування ниток інтегруються та перевіряються нитки або невелика функціональність. Виконане тестування - це додаткове тестування на рівні підсистеми, а потім як повна система.
- На самому початковому етапі тестувальники інтеграції отримують гарну ідею та знання щодо того, що перевіряти далі.
- Тестери інтеграції повинні застосовувати і виконувати як позитивні, так і негативні сценарії лише в межах потоку. Вони повинні прийняти рішення щодо підходу до тестування ниток, якого слід застосовувати, щоб охопити також виняткові випадки та граничні випадки.
- Визначення нитки, надане розробником тестувальнику, допомагає перевірити нитку відповідно тестерами інтегратора. На будь-яку додаткову інформацію, необхідну тестувальнику, можна отримати відповідь у процесі перегляду ниток.
- Потокові процеси працюють для процесів інтеграції, а не для завершення процесу розробки.
- Щоб перевірити багатопотокову функціональність, дозвольте одночасно активувати кілька екземплярів програми чи програми, що перевіряються.
- Запустіть багатопотокову програму на різному обладнанні.
- Тестування потоків - це форма сеансового тестування, для якого сеанси формуються з потоків. Необов’язково, щоб сформований потік був сеансом.
Види випробувань на основі ниток
Проводиться два типи тестування на основі ниток:
- Тестування однієї нитки
- Тестування з кількома потоками
# 1) Тестування однієї нитки
Тестування з одним потоком перевіряє по одній транзакції за раз. Час очікування, щоб клієнт отримав відповідь на свій запит, може бути трохи довшим, оскільки він зможе обслуговувати або відповідати одному клієнту за раз.
Це тестування допомагає тестувальнику зрозуміти та перевірити логіку програми або написаного коду.
# 2) Тестування з кількома нитками
Багатопотокове тестування тестує кілька активних транзакцій одночасно. У цьому випадку для запитів клієнта створюються окремі потоки. Щоразу, коли робиться запит, потік створюється службі або відповідає на запит.
Транзакція, яка працювала нормально під час тестування в одному потоці, може провалитися під час тестування в багатопотоковому режимі, а також може перешкоджати роботі інших потоків та функціональних можливостей і зупиняти їх роботу належним чином.
в чому різниця між Linux та unix
Чи є багатопотоковий підхід кращим, ніж однопотоковий?
Багатопотокові програми кращі, ніж однопоточні, оскільки це покращує продуктивність програми. Багатопотоковість дозволяє кільком ресурсам одночасно працювати над питанням / запитом.
Проблеми під час тестування на основі ниток
Виконуючи тестування на основі ниток, тестер стикається з кількома проблемами, які впливають на продуктивність, час та вартість тестування.
- Написання модульних тестових кейсів для багатопотокового коду є складним завданням.
- Коли багатопотокове тестування проводиться на різному обладнанні, воно варіюється залежно від розміру, обсягу пам’яті, пам’яті, проблем тощо.
- Сценарії тестування як для одного, так і для декількох потоків різні.
- При багаторазовому тестуванні повинні бути запрограмовані відтворювані тести для модульних тестів.
Переваги / недоліки багатопоточності
Багатопоточність має багато переваг, а також недоліків. Як тестувальник знання того самого допомагає їм тестувати та порушувати процес тестування відповідно.
Переваги
- Багатопотоковість підвищує чуйність до користувача. Програма може дозволити програмі працювати, навіть якщо частина програми блокується.
- Спільне використання ресурсів - це ще одна перевага, оскільки потоки діляться ресурсами процесу, до якого вони пов’язані чи належать.
- Створення потоків є економічним, оскільки воно розподіляє ресурси, до яких вони належать.
Недоліки
- Складний процес тестування
- Результати дуже непередбачувані.
- Написання програми стає складнішим.
- Тупикова ситуація.
Що таке глухий кут
Коли багатопоточність виконана, потік переходить у стан очікування, якщо ресурс недоступний.
Стан очікування може не змінитися для потоку, оскільки запитуваний ресурс утримується іншими потоками очікування. Коли виникає така ситуація, це називається «Тупик».
Різниця між потоком і процесами
Давайте розберемося у відмінностях між потоком та процесами:
С.Ні | Нитка | Процес |
---|---|---|
7 | Нитки не можна ділити далі. | Процеси можуть мати кілька потоків. |
1 | Нитка - це легкий процес. | Процес є важким процесом. |
два | Якщо потік сервера блокується, може запуститися другий потік того самого завдання та завершити процес. | Якщо процес сервера блокується, інші процеси не можуть запускатися до того часу, поки процес блокування сервера не заблокується. |
3 | Потоки не ізолюють, вони ділять пам’ять. | Процес ізольований. |
4 | Створення потоків, перемикання контексту, завершення займає менше часу в потоці. | Створення потоків, перемикання контексту, припинення займають більше часу в процесах. |
5 | Потік відноситься до конкретного завдання процесу. | Процес відноситься до виконання будь-якої програми. |
6 | Використаних ресурсів у потоці дуже мало. | Ресурсів, що використовуються в процесах, більше. |
Різниця між тестуванням на основі потоків та тестуванням на основі користувачів
S.No | Тестування на основі ниток | Тестування на основі використання |
---|---|---|
1 | Нитки інтегруються та тестуються індивідуально. | Тестування починається з класів, які не залежать один від одного, тобто є незалежними. |
два | Регресійне тестування проводиться, щоб переконатися, що нічого не впливає. | Після тестування незалежних класів тестуються залежні класи. Залежні - це ті, які залежать від незалежних класів. Ця серія триває до моменту побудови повної системи. |
3 | Тестування на основі потоків інтегрує класи, які є важливими для підтвердження входу або події системи. | Тестування на основі використання інтегрує класи, необхідні для реагування або підтвердження випадку використання. |
Часті запитання
Q # 1) Що таке тестування ниток?
Відповідь: Тестування на основі ниток - це методологія, яка проводиться на ранній стадії інтеграційного тестування. Потоки або програми інтегруються та перевіряються поступово в підсистему, а потім як цілу систему.
Q # 2) Яке тестування проводиться першим?
Відповідь : Зазвичай спочатку проводять тестування знизу, а потім проводять тестування зверху вниз.
Q # 3) Що таке тестування зверху вниз?
Відповідь: Зверху вниз - це техніка тестування інтеграції, коли тестування проводиться за допомогою заглушок, тобто коли компоненти нижчого рівня ще не готові перевірити інтеграцію, створюються заглушки (тимчасові модулі), щоб отримати той самий результат, що і у випадку з фактичними модулями.
Висновок
Тестування інтеграції на основі потоків відіграє важливу роль у тестуванні основних функціональних можливостей або конкретного завдання або потоку. Ця методологія найкраща для архітектури клієнтського сервера.
Виконуючи тестування ниток, тестувальник повинен зіткнутися з багатьма проблемами, однак має також багато переваг, що робить його легким та надійним у виконанні. Це дозволить тестувальникам перевірити всі транзакції та перевірити, чи працює вона, як очікувалось, і відповідно до вимог.
Неможливо протестувати всі транзакції / події для завершення тестування потоку, через що він поділяється на одно- та багатопотоковий типи.
Рекомендована література
- Вибір тестування програмного забезпечення як вашу кар’єру
- Деякі цікаві питання для тестування програмного забезпечення
- Чи тестування програмного забезпечення є емоційним завданням?
- Java Synchronized: Що таке синхронізація потоків у Java
- Потоки Java з методами та життєвим циклом
- Багатопотоковість на C ++ з прикладами
- Багатопотоковість на Java - Підручник із прикладами
- Thread.Sleep () - метод Thread Sleep () у Java із прикладами