Що таке сірий Box Тестування? Техніки, приклад

⚡ Розумний підсумок

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

  • 🔍 Рівень знань: Внутрішня структура частково відома, тоді як для тестування білої скриньки повністю відома, а для тестування чорної скриньки невідома.
  • 🧪 Чотири техніки: Матричне тестування, регресійне тестування, тестування ортогональних масивів та тестування шаблонів формують основний інструментарій.
  • 🪜 Десять кроків: Визначте входи, виходи та основні шляхи, потім розбийте систему на підфункції та перевірте кожну з них.
  • 🔗 Найкраще підходить: Інтеграційне тестування, тестування на проникнення, робочі процеси на основі баз даних, веб-сервіси та API-інтерфейсиtracц.
  • 🇧🇷 Компроміс: Часткова видимість знижує зусилля, але також обмежує глибину будь-якого окремого шляху коду. tracредактор
  • 📋 Необхідна умова: Точна проектна документація має значення, оскільки застаріла схема або специфікація непомітно робить тестовий дизайн недійсним.

сірий Box Тестування, що поєднує часткові внутрішні знання з орієнтованим на користувача дизайном тестів

Що таке сірий Box Тестування?

сірий Box Тестування (також пишеться Сірий Box Тестування) — це метод тестування програмного забезпечення, який перевіряє програмний продукт або застосунок з частковим знанням внутрішньої структури застосунку. Мета Грея Box Тестування полягає в пошуку та виявленні дефектів, спричинених неправильною структурою коду або неправильним використанням програми.

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

сірий Box Тестування – це метод тестування програмного забезпечення, який поєднує білий Box Тестування та Black Box ТестуванняРізниця між цими трьома зводиться до того, яку частину внутрішньої структури може побачити тестер:

  • У білому Box Тестування внутрішньої структури (коду) є відомим.
  • Чорним Box Тестування внутрішньої структури (коду) невідоме.
  • У сірому Box Тестування внутрішньої структури (коду) частково відоме.

На діаграмі нижче ці три методи розміщені на одній шкалі видимості.

сірий Box Тестування показане між Вайтом Box і чорний Box тестування на шкалу видимості внутрішнього коду

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

Приклад сірого Box Тестування: Під час тестування функцій веб-сайту, таких як посилання або посилання-сироти, якщо тестер зіткнеться з проблемою з цими посиланнями, зміни можна буде внести негайно в HTML-код і перевірити в режимі реального часу.

Чому сірий Box Тестування

сірий Box Тестування проводиться з таких причин:

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

сірий Box Тестування проти Блек Box проти Білого Box Тестування

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

Основа Black Box Тестування сірий Box Тестування білий Box Тестування
Знання внутрішньої структури ніхто Частковий Повний
Виконано Тестери та кінцеві користувачі Тестери та розробники, що працюють з тестувальниками Розробники та інженери-тести
Основи дизайну тестів Вимоги та специфікації Archiтекстура, алгоритми, структури даних та інтерфейси Вихідний код та потік керування
Типовий рівень Системне та приймальне тестування Інтеграційне, проникненне та веб-сервісне тестування Тестування блоків та компонентів
Покриття вимірюється як Покриття вимог Інтерфейс, дані та покриття шляху Покриття операторів, гілок та шляхів
Основне обмеження Причина невдачі залишається прихованою Глибина обмежена наданим доступом Дорого, і може не відповідати відсутнім вимогам

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

сірий Box Стратегія тестування

Виконати Грея Box Під час тестування тестувальнику не обов'язково мати доступ до вихідного коду. Тест розробляється на основі знань алгоритмів, архітектур, внутрішніх станів або інших високорівневих описів поведінки програми.

Виконати Грея Box Тестування:

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

Методи, що використовуються для сірого Box Тестування проводиться:

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

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

Кроки для виконання Грея Box Тестування проводиться:

  • Крок 1: Визначте вхідні дані.
  • Крок 2: Визначте результати.
  • Крок 3: Визначте основні шляхи.
  • Крок 4: Визначте підфункції.
  • Крок 5: Розробіть вхідні дані для підфункцій.
  • Крок 6: Розробка результатів для підфункцій.
  • Крок 7: Виконайте тестовий сценарій для підфункцій.
  • Крок 8: Перевірте правильність результату для підфункцій.
  • Крок 9: Повторіть кроки з 4 по 8 для інших підфункцій.
  • Крок 10: Повторіть кроки 7 та 8 для інших підфункцій.

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

Де Грей Box Використовується тестування

Цей метод знаходить своє місце скрізь, де дефект можна діагностувати лише шляхом одночасного розгляду двох шарів. Найчастіше його застосовують у таких сценаріях:

  • Робочі процеси, що базуються на базах даних: Дія виконується через інтерфейс користувача, а отримані рядки потім запитуються безпосередньо для підтвердження того, що значення, типи та зв'язки були збережені належним чином.
  • Веб-сервіси та API: запит надсилається, а статус відповіді, заголовки та корисне навантаження перевіряються на відповідність опублікованій конфіденційності.tract, що є повсякденною формою Тестування API.
  • Точки інтеграції: Повідомлення, що перетинають межу між двома модулями, перевіряються, при цьому обидва модулі розглядаються як запущені системи, а не як вихідні файли.
  • Оцінка безпеки: Тестер на проникнення, маючи звичайний обліковий запис користувача та огляд архітектури, відтворює позицію інсайдера, яка є стандартною моделлю взаємодії «сірого ящика».
  • Веб-додатки та графічні інтерфейси: Непрацюючі посилання, сторінки-сиріти, обробка сеансів та перевірка на стороні клієнта перевіряються з частковою видимістю розмітки та потоку запитів.

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

сірий Box Тестування інструментів

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

  • Клієнти API та веб-сервісів такий як Postman та SoapUI, що використовується для видачі запитів та підтвердження кодів стану та тіл відповідей.
  • Клієнти баз даних та інструменти для SQL-запитів, що використовується для перевірки збереженого стану після дії інтерфейсу.
  • Інструменти розробника браузерів та HTTP-проксі такий як Burp Suite, що використовується для перевірки та зміни запитів під час сеансів, орієнтованих на безпеку.
  • Фреймворки для автоматизації інтерфейсу користувача такий як Selenium, що використовується для керування шаром презентації всередині тестування автоматизації на.
  • Інструменти для ведення журналу та моніторингу, що використовується для співвіднесення спостережуваної помилки з тим, що програма зафіксувала внутрішньо на той момент.

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

сірий Box Тестування

Часткова видимість створює проблеми, яких немає в жодному з чистих методів, і ось ті, з якими команди стикаються найчастіше:

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

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

Поширені запитання

Обидва терміни позначають одну й ту саму техніку. «Grey» – це британське написання, а «gray» – американське, і ці два терміни взаємозамінні в документації до інструментів та програмах сертифікації. Жоден з них не має різного технічного значення.

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

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

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

Заглушка замінює компонент, який викликає тестований модуль; драйвер замінює компонент, який би його викликав. Разом вони дозволяють підфункції виконуватися ізольовано до того, як з'явиться повна система.

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

Машинне навчання аналізує історію дефектів для етапу тестування шаблонів, ранжує інтерфейси за прогнозованим ризиком, щоб обмежений доступ витрачався ефективно, та кластеризує журнали, щоб пов'язати спостережуваний збій із внутрішнім компонентом, який його спричинив.

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

Підсумуйте цей пост за допомогою: