Тестова розробка та вдосконалення навичок тестування білого поля


9

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

А що таке тестова розробка?


Чому б і тестування Black Box також не було?
Мартійн Вербург

@Martijn, враховуючи передумови, швидше за все, через технічні проблеми тестування білої скриньки. Крім того, хоча методи чорної скриньки дуже корисні для розробників, люди з хорошими якостями для розробника не роблять хороших тестерів чорних ящиків, ми занадто цікаві і можемо стати нетерплячими. Я знаю, що зробив.
StuperUser

Відповіді:


9

Тест-керований розвиток (TDD) та його двоюрідні сестри, Acceptance TDD (ATDD) та Behavior Driven Development (BDD) - корисні методи для вивчення тестеру в екосистемі Java. Я зосередиться на TDD, коли ви шукаєте тестування білого поля.

Що таке TDD? - В самому серці це практика написання невдалого тесту (червоного), виготовлення цього тесту шляхом написання програми (зеленого кольору), а потім повторного факторингу. Вікіпедія Стаття є достатньо місця для початку , щоб дізнатися додаткову інформацію. Але тема обширна, я рекомендую прочитати деякі відомі книги в цьому просторі, такі як Тестування керованої розробки за прикладом та ефективна робота зі застарілим кодом . Я також кину в безсоромний штекер для розділу TDD в «Добре заземленому розробнику Java»

В екосистемі Java це означає, що ви хочете навчитися:

  1. Бібліотека JUnit та / або бібліотека TestNG .
  2. Знущальна бібліотека, наприклад Mockito або JMock
  3. Засіб перевірки навантаження для атаки коду - JMeter
  4. Поняття впорскування в залежність (форма інверсії управління)

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

HTH почніть!


Вони також є корисними методами для навчання як розробника в екосистемі Java. Як я розумію, тестери повинні робити тестування в чорному ящику.
Том

1

Junit - одна з найкращих одиниць тестування для мови програмування Java. Це рамка з відкритим кодом для написання та запуску повторюваних тестів.


1

Я зазвичай не люблю цитувати Вікіпедію, але інформація в цій статті здається досить безпечною ...

http://en.wikipedia.org/wiki/Test-driven_development

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


0

Я не впевнений, чи буде моя пропозиція розглядатися як інструмент для тестування білого поля, але ви також можете подивитися на dbUnit для проектів, керованих базами даних, і Selenium для веб-тестування (наприклад, перевірка елементів, які повинні існувати на основі деяких результатів).


0

Питання конкретно посилається на "тестування білого поля". Тут ваші тести мають інтимні знання про внутрішню структуру вашого коду та стверджують поведінку на кожному кроці, а не просто вхід / вихід / побічний ефект (тестування чорної скриньки). Хоча JUnit чудово виконує і те, і інше, вам потрібні додаткові рамки, щоб зробити це в рамках тестування одиниць.

EasyMock та JMock - це хороші рамки для цього. Я схильний виступати за JMock.

Загрожуючи розпочати дебати про ОТ, слід ретельно подумати про наслідки тестування білого поля. Тести білого поля чітко пов'язані з вашим кодом (очевидно), і якщо їх не використовувати обережно, глузування рам може спричинити ваші тести досить складні, важкі для читання і, як правило, більш крихкі при рефакторингу.

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

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

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

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.