Я программист начального уровня Java прямо из школы. У меня есть хорошие знания и опыт работы с J2SE. Кто-нибудь может посоветовать мне, как улучшить или настроить мои навыки, чтобы стать тестером Java белого ящика? Широкий спектр входов приветствуется.
А что такое разработка через тестирование?
Ответы:
Разработка через тестирование (TDD) и ее расширенные родственники, Acceptance TDD (ATDD) и Behavior Driven Development (BDD) являются полезными методами для обучения в качестве экосистемы Java. Я сосредоточусь на TDD, так как вы ищете тестирование белого ящика.
Что такое TDD? - В основе лежит практика написания провального теста (красного цвета), его прохождение проходит путем написания реализации (зеленого цвета) и последующего перефакторинга. Википедия Статья является достаточным местом для начала , чтобы узнать дополнительную информацию. Но эта тема обширна, я рекомендую прочитать некоторые из известных книг в этой области, таких как « Разработка через тестирование на примере» и « Эффективная работа с устаревшим кодом» . Я также добавлю бесстыдный плагин для главы TDD в The Well-Gounded Java Developer
В экосистеме Java это означает, что вы хотите изучить:
А потом практиковаться, практиковаться, практиковаться, практиковаться. Хорошие тестеры Java белого ящика очень редки, лучшие из них написали тесты для широкого спектра кодовых баз.
HTH с чего начать!
источник
Junit - одна из лучших платформ модульного тестирования для языка программирования Java. Это среда с открытым исходным кодом для написания и запуска повторяемых тестов.
источник
Я обычно не люблю цитировать Википедию, но информация в этой статье кажется достаточно безопасной ...
http://en.wikipedia.org/wiki/Test-driven_development
По сути, это простейший подход к разработке программного обеспечения, в котором сначала разрабатываются и пишутся модульные тесты для сценариев использования, а затем - сложная разработка, чтобы помочь пройти эти модульные тесты.
источник
Я не уверен, что мое предложение будет рассматриваться как инструменты для тестирования белого ящика, но вы также можете посмотреть на dbUnit для проектов на основе базы данных и Selenium для веб-тестирования (например, проверка элементов, которые должны существовать, на основе некоторых результатов).
источник
В вопросе конкретно упоминается «тестирование белого ящика». Именно здесь ваши тесты обладают глубокими знаниями о внутренней структуре вашего кода и утверждают поведение на каждом шаге, а не только ввод / вывод / побочный эффект (тестирование черного ящика). Несмотря на то, что JUnit отлично подходит для обеих задач, вам нужны дополнительные дополнительные платформы, чтобы сделать это в контексте модульного теста.
EasyMock и JMock - хорошие рамки для этого. Я склоняюсь в пользу JMock.
Рискуя начать дебаты по ОТ, вы должны тщательно подумать о последствиях тестирования белого ящика. Тесты «белого ящика» тесно связаны с вашим кодом (очевидно), и, если не использовать их осторожно, фреймворк-фреймворки могут сделать ваши тесты довольно сложными, трудными для чтения и, как правило, более хрупкими при рефакторинге.
Я склонен придерживаться обоих. Тесты «черного ящика», где это возможно, и тесты «белого ящика», экономно применяемые к более рискованному / более сложному коду.
Конечно, вышеперечисленные структуры также можно использовать в тестах черного ящика, где число участвующих (внедряемых) классов велико, а простая заглушка становится громоздкой.
Что касается TDD - это прежде всего подход к написанию кода, улучшающий дизайн, а не просто способ написания тестов. Тесты, которые у вас есть в конце, являются важным результатом, но, кроме того, этот подход призван улучшить дизайн и структуру вашего приложения.
источник