Это процедурно прочный модуль, в котором все функции модуля связаны по данным.
6. Информационная прочность — модуль выполняет несколько функций над одной и той же строкой данных, но каждая функция представляется отдельным входом в модуль.
7. Функциональная прочность — это когда модуль выполняет одну функцию — это то, к чему следует стремиться при проектировании модульной структуры ПО.
Модуль может соответствовать описанию нескольких типов прочности. В этом случае принято его относить к высшему типу прочности, определению которой он удовлетворяет.
Сцепление модулей является мерой взаимозависимости модулей по данным и определяется как способом передачи данных между модулями, так и свойствами передаваемых данных.
Виды сцеплений охарактеризуем в порядке уменьшения сцепления.
1. Сцепление по содержимому — модуль ссылается на данные (содержимое) другого модуля. 2. Сцепление по общей области — модули ссылаются на одну и ту же глобальную структуру данных.
3. Сцепление по управлению — один модуль управляет функционированием другого. При этом в вызываемый модуль передается значение управляющей переменной.
4. Сцепление по формату — модули ссылаются на одну и ту же структуру данных. Если модуль А вызывает модуль В и передает ему запись анкетных данных служащего и при этом как А так и В чувствительны к изменению структуры или формата записи, то А и В сцеплены по формату.
Такого сцепления, по возможности, следует избегать, поскольку оно создает ненужные связи между модулями.
5. Сцепление по данным — передаваемые параметры — простые (неструктурированные) данные.
Сцепление модулей может удовлетворять определению нескольких типов сцепления. В этом случае принято относить тип сцепления к самому жесткому типу, т.е. к меньшему по номеру из рассмотренных типов сцеплений.
При разработке модульной структуры ПО следует стремиться к усилению связей в модуле и ослаблению их взаимодействия.
Тести́рование програ́ммного обеспе́чения — процесс исследования программного обеспечения (ПО) с целью получения информации о качестве продукта.
При тестировании белого ящика (англ. white-box testing, также говорят — прозрачного ящика), разработчик теста имеет доступ к исходному коду программ и может писать код, который связан с библиотеками тестируемого ПО. Это типично для юнит-тестирования (англ. unit testing), при котором тестируются только отдельные части системы.
Тестирование чёрного ящика (black box)
При тестировании чёрного ящика, тестировщик имеет доступ к ПО только через те же интерфейсы, что и заказчик или пользователь, либо через внешние интерфейсы, позволяющие другому компьютеру либо другому процессу подключиться к системе для тестирования. Как правило, тестирование чёрного ящика ведётся с использованием спецификаций или иных документов, описывающих требования к системе.
тестируется минимально возможный для тестирования компонент, например, отдельный класс или функция. Часто модульное тестирование осуществляется разработчиками ПО.
Интеграционное тестирование (integration testing)
тестируются интерфейсы между компонентами, подсистемами. При наличии резерва времени на данной стадии тестирование ведётся итерационно, с постепенным подключением последующих подсистем.
тестируется интегрированная система на её соответствие требованиям.
По времени проведения тестирования:
Альфа-тестирование (alpha testing)
имитация реальной работы с системой штатными разработчиками, либо реальная работа с системой потенциальными пользователями/заказчиком. Чаще всего альфа-тестирование проводится на ранней стадии разработки продукта, но в некоторых случаях может применяться для законченного продукта в качестве внутреннего приёмочного тестирования.
Бета-тестирование (beta testing)
в некоторых случаях выполняется распространение версии с ограничениями (по функциональности или времени работы) для некоторой группы лиц, с тем чтобы убедиться, что продукт содержит достаточно мало ошибок.