разница между модулем и коробкой - PullRequest
0 голосов
/ 23 декабря 2018

Я хочу знать, в чем разница между коробкой и модулем в программировании. Мне задали этот вопрос, и я как-то запутался сейчас.ссылка
https://www.nbs -system.com / ru / blog / черный ящик-серый-ящик-белый-ящик-тестирование-что-различия /

если полеверхняя ссылка и аналогичная ссылка, тогда поле - тестирование программы, а модуль - программа

1 Ответ

0 голосов
/ 23 декабря 2018

«Коробка» - это обычное слово из объекта, который вы знаете из реального мира.Это серверы по аналогии с кодом, собранным вместе, чтобы сформировать некий программный компонент.Это связано с тем, что его внутренние части настолько связаны друг с другом, в отношении ответственности и связи, в использовании внутренних данных, в достижении общей цели, поэтому имеет смысл сгруппировать их вместе.Мы называем это модулем, и много раз это отображается в исходный файл (но не обязательно), но та же концепция группировки применяется к классам, пакетам (обычно модулям / классам, сгруппированным вместе), библиотекам или даже целым приложениям или системам.

То, на что в основном распространяется термин «ящик», это тот факт, что существует граница между тем, что находится внутри ящика, и субъектами, взаимодействующими с ним извне (пользователи или другие системы).

Ящик имеетпредставить публичный интерфейс с внешним миром, чтобы стать полезным или полезным.Это должно быть задокументировано, иначе вы не знаете, как его использовать.Когда вы используете его, основываясь на этой информации, только для достижения своих целей, ничего не зная о внутренностях, мы говорим, что вы используете «черный ящик».

Это имеет много преимуществ, поскольку может сделать коробкумощная абстракция, которая проста в использовании, оборачивая возможную сложную реализацию внутри.Он инкапсулирует вещи и скрывает их от пользователя.

Если каким-либо образом вы как сторонний актер каким-то образом используете коробку, потому что вы знаете, как что-то делается внутри, вы нарушаете этот принцип инкапсуляции.Вы, вероятно, входите в режим использования «серого ящика».Это опасно, потому что если поменять коробку, ваши предположения (и код) могут потерпеть неудачу.

Используя его в качестве «белого ящика», вы действительно полностью знаете, как он сделан внутри, так что вы можете принимать очень взвешенные решенияв вашем коде, но теперь код коробки не может быть затронут на самом деле.Итак, идёт абстракция.

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

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

Тестирование Грея, в частности, применимо, вероятно, когда вытестируете написанный вами код, который использует другие модули или библиотеки, которых у вас нет, и, как правило, не хотите тестировать (код других был уже протестирован), но все же у вас есть некоторые знания о его внутренностях, и вы проводите дополнительные тесты, чтобы охватить ваш код , который исследует эти знания.

Редактировать: Поэтому, если они не хотят, чтобы вы различали модуль как код, который находится внутри, и поле как открытый интерфейс для модуля, нет никакой разницына самом деле.

...