Вступ до тестування білої коробки

Тестування є однією з важливих частин розробки програмного забезпечення, воно гарантує, що всі помилки впорядковані, а програма працює так, як і передбачалося. Тестування програмного продукту може мати кілька етапів і кілька процедур. У цій статті ми розглянемо один із важливих підходів до процесу тестування, тестування білого поля.

Що таке тестування білої коробки?

Тестування білого поля також називається тестуванням кодової бази, тестуванням чіткої скриньки, тестуванням відкритого ящика та структурним тестуванням. Основна ідея такого підходу до тестування програмного забезпечення - це розгляд внутрішньої структури конструкції та коду програми для її тестування.

Під час тестування в Білій коробці тестер може бачити весь код програми, і йому доручено перевірити порядок роботи входів і виходів у програмі. На відміну від тестування чорної скриньки, яка більш орієнтована на тестування функціональності програми, White Box Testing займається тестуванням внутрішніх структур програми. Огляд цієї програми таким чином дозволяє нам працювати над вдосконаленням дизайну, зручності використання та підвищенням продукту більш безпечним.

Як ви здогадаєтесь, це називалося тестуванням білої коробки або скляної коробки, оскільки тестер може бачити код та інші частини програми.

Що відрізняє тестування білої коробки від тестування чорної скриньки

Якщо ви в минулому тестували пальці ніг на тестуванні, я впевнений, що ви натрапили на тестування Black Box. Найбільша різниця між тестуванням білої скриньки та тестуванням чорної скриньки полягає в тому, що на відміну від тестування чорної скриньки, яка проводиться з точки зору користувача, тестування білої скриньки проводиться з точки зору розробника.

Іншими словами, замість того, щоб дивитися на програму ззовні, підхід White Box Testing бачить внутрішній код і тестує його.

Як проводиться тестування білого ящика?

Ми можемо розділити процес тестування білої коробки на два основні етапи.

1. Розуміння наданого коду

Спочатку тестувальнику в тестуванні білого ящика потрібно буде вивчити код програми. Враховуючи факт білого тестування - це розуміння та тестування всього внутрішнього коду програми, кожен, хто має завдання тестування коду, повинен не тільки добре володіти програмуванням, але і йому знадобиться добре володіти мовою. вихідного коду.

Безпека є одним із важливих аспектів тестування білої скриньки, тому тестувальник також повинен бути хорошим у безпечній практиці кодування.

2. Створення тестових справ та їх виконання

Після того, як код буде вивчений командою тестування, вони можуть розпочати тестування коду, щоб перевірити його правильний потік та структуру. Для цього тестувачі напишуть код для деяких тестових випадків, який спробує пройти всі рядки коду, присутні в програмі.

Це також можна зробити в ручному тестуванні, яке включає пробну помилку та помилку. Тестери можуть також використовувати деякі автоматизовані інструменти тестування, такі як JUnit і NUnit.

Приклад тестування білого ящика

Щоб краще зрозуміти концепцію тестування білої коробки, погляньте на код нижче:

print (int x, int y) (
int sum = x + y;
If ( sum > 0 )
Print ( "Positive", result )
Else
Print ( "Negative", result )
)

Як ми обговорювали раніше, мета білого тестування полягає в тому, щоб пройти всі гілки, петлі та заяви, які присутні в коді. Враховуючи це, ми можемо зробити 2 тестові випадки, один, де обидва входи позитивні, а інший, де обидва входи - це від’ємні цілі.

Приклад:

  • А = 10 і В = 20
  • А = -10 і В = -20

Методи тестування білого ящика

Один з найпопулярніших методів тестування для тестування білого поля називається аналізом покриття коду. Ця методика намагається усунути будь-які прогалини в наборі тестових випадків, і він визначає розділи програми, які не використовуються в тестових випадках. Після виявлення цих прогалин ми можемо створити випадки, щоб побачити і перевірити частини коду, які не перевірені, це призведе до отримання більш полірованого продукту в кінці.

Нижче наведено кілька методів аналізу покриття:

  • Покриття заяви: У цьому методі ми намагаємось хоча б один раз пройти всі твердження в коді. Це запевняє, що весь код перевірений.
  • Покриття гілки: Цей метод планується перетинати кожну гілку точок рішення у коді. Це гарантує, що всі рішення проходять перевірку хоча б один раз.

Є також деякі інші методи тестування, ось лише декілька:

  • Охоплення умов: У цій техніці тестування ми гарантуємо, що всі умови охоплені в коді, наприклад:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

Як бачимо, тут ми маємо 2 умови: A == 0 і B == 0. Тепер ці умови отримують ПРАВИЛЬНУ і ЛІЖНУ як значення. Одним з можливих прикладів може бути:

# TC1 - A = 0, B = 110
# TC2 - A = 10, B = 0

  • Багаторазове покриття: Це трохи досконаліше, ніж останнє. Як ви здогадаєтесь, ми перевіряємо всі можливі комбінації та всі можливі результати хоча б один раз. Ось гідний приклад:

READ A, B
IF (A == 0 || B == 0)
PRINT '0'

# TC1: A = 0, B = 0
# TC2: A = 0, B = 10
# TC3: A = 110, B = 0
# TC4: A = 110, B = 5

Звідси. Нам потрібно 4 тестові справи на 2 умови.

Отже, якщо є n умов, тоді нам знадобиться 2 n тестових випадків.

  • Основне тестування контуру: У цій техніці тестування білого поля ми робимо графік контрольного потоку, а потім обчислюємо його цикломатичну складність, що становить кількість незалежних шляхів. Використовуючи цикломатичну складність, ми можемо знайти мінімальну кількість тестових випадків, які ми можемо спроектувати для кожного незалежного шляху графіка потоку.
  • Тестування циклу: петлі - це один із найбільш використовуваних інструментів у зброї програміста. Оскільки вони лежать в основі такої кількості алгоритмів, має сенс лише техніка тестування на основі циклів. Можна виділити 3 типи петель: прості, вкладені та з'єднані. Давайте розглянемо, як тестер поводитиметься з технологіями цих типів:

1. Прості петлі: Для циклу, який простий у дизайні і має розмір n, ми можемо розробити кілька тестових випадків, які виконують наступне:

  • Пропустіть сказану петлю.
  • Пройдіть петлю лише один раз.
  • Майте 2 проходи
  • Майте будь-яку кількість проходів, яка менша за її розмір.
  • n-1 і n + 1 проходять через петлю.

2. Вкладені петлі: Для коду з вкладеними петлями, ми починаємо з внутрішньої петлі, а потім виходимо назовні, поки не зможемо дійти до самого зовнішнього циклу.

3. Сполучені петлі: У випадку цих циклів. Ми використовуємо простий цикл тестування один за іншим, і якщо об'єднаний цикл не є незалежним, ми можемо мати справу з ними, як це було зроблено з вкладеними петлями.

Переваги

Тепер, коли ми побачили, що таке метод тестування та як він працює. Давайте розглянемо деякі плюси цього.

  • Тестування білого ящика має прості та чіткі правила, щоб повідомляти тестеру, коли тестування буде зроблено.
  • Техніку тестування білого ящика легко автоматизувати, це призводить до того, що розробнику доведеться найняти менше тестерів і менші витрати.
  • Він показує вузькі місця, що робить оптимізацію програмістам досить простою.
  • Команда тестування може розпочати свою роботу без необхідності чекати, коли команда розробників завершить розробку інтерфейсу користувача.
  • Оскільки в більшості випадків усі шляхи коду охоплені кодом, тестування коду проходить більше.
  • Це допомагає у видаленні частин коду, неістотних для функціональності програми.

Недоліки

  • Він цілком оподатковує ресурси. Щоб завершити тестування, вам знадобиться хтось, хто дуже добре знає ваш код, щоб бути в команді тестування і хто сам хороший програміст. Цей тип рівня кваліфікації збільшує витрати на тестування.
  • У багатьох випадках неможливість перевірити всі можливі умови в коді неможливо через часові обмеження або бюджетні обмеження.
  • Оскільки тестування білого поля засноване на перевірці функціональності існуючого коду, ви не можете знайти відсутню функціональність у програмі.
  • Якщо будь-яка частина коду перероблена і переписана, тестерам потрібно написати тестові справи ще раз.

Інструменти для тестування білого поля

Тепер, коли ви знайомі з перевагами, недоліками та технікою тестування білого поля, ми можемо ознайомитись з деякими популярними інструментами, які тестери можуть використовувати для тестування білого поля.

  • JSUnit.net

Це інструмент тестування JavaScript. JSUnit є частиною Junit та її тестовою базою з відкритим кодом, яка може бути використана для тестування White Box. JSUnit є повністю відкритим кодом під GNU Public License 2.0, що означає, що навіть для комерційного використання розробник не повинен сплачувати жодну плату за ліцензування.

  • CppUnit

Як і JSUnit, CppUnit також вважається частиною JUnit. Інструмент може виводити у простому тексті чи форматі XML, залежно від потреби тестера, і він може створювати одиничні тести з власними класами. CppUnit ліцензується під LGPL.

  • Veracode

Хоча це не є безкоштовним у використанні, Veracode має деякі потужні інструменти, які можна використовувати для тестування .NET, C ++, Java та деяких інших мов. Тестування White Box може бути виконано і для додатків для настільних ПК, веб- і мобільних додатків.

  • NUnit

Це рамковий блок тестування, і це було написано на C #. Інструмент підтримує всі доступні мови .Net, а також підтримує тест, керований даними. Функціонально, він може працювати як при паралельному, так і одночасному виконанні, а також може забезпечити рамки класу та тестові програми для бігуна. Одна примітна особливість NUnit в тому, що він досить простий у використанні.

  • JUnit

Як ви можете здогадатися з його назви, JUnit - це інструмент автоматизації тестування для Java. Фургон JUnit легко інтегрується з IDE, такими як eclipse, Macen ACT тощо. Він здатний підтримувати тестові розробки та також може синхронізувати існуючі тести з новоствореними. JUnit є повністю відкритим кодом та безкоштовний у використанні для будь-якого виду Java Development.

  • CSUnit

Як і Nunit, CSUnit створений для підтримки тестування одиниць у .Net Framework. Він підтримує такі мови, як C # і VB.Net. CSUnit має вбудовану підтримку практики факторингу та інших типів практик, які використовуються у підходному розвитку підходу SDLC.

Висновок

Тестування займає дуже важливе місце в процесі розробки програмного забезпечення, і тестування White Box є цінним підходом до його виконання. Хоча цей підхід до тестування може бути дорогим та трудомістким, єдиним способом переконатися, що в процесі тестування були охоплені всі частини коду, залишається тестування білої скриньки.

Найважливіша частина тестування білої коробки - наскільки ознайомлений тестер з кодом. Хтось із завдань тестування на підході до WBT, хто не має хорошої руки з вихідним кодом та використовуваною мовою програмування, спричинить багато проблем. Крім того, залежність лише від тестування білого поля не є хорошою ідеєю, оскільки вона не охоплює відсутні функції. Для більш охопленого підходу до розробки слід проводити тестування білої скриньки та тестування чорної скриньки, оскільки вона охопить максимальні помилки, дефекти та інші функції, які потрібно додати перед відвантаженням товару.

Рекомендовані статті

Це керівництво для тестування білого ящика. Тут ми обговорили, як проводиться тестування білого ящика за допомогою прикладів та різних методів тестування білої коробки з інструментами. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Питання для інтерв'ю з тестуванням програмного забезпечення
  2. Кар'єра в тестуванні програмного забезпечення
  3. Питання для інтерв'ю для тестування гри
  4. Питання щодо інтерв'ю ETL
  5. Кодове покриття проти тестового покриття | Топ-4 відмінності, які потрібно вивчити
  6. Інструменти охоплення коду | Топ-6 інструментів покриття коду