Тестирование+белого+ящика+(white+box)

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

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

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

Стратегия Белого ящика включает в себя следующие методы тестирования:
 * 1) покрытие операторов (подразумевает //выполнение каждого оператора// программы, по крайней мере, один раз)
 * 2) покрытие решений (необходимо составить такое число тестов, при которых каждое условие в программе примет как истинное значение, так и ложное значение)
 * 3) покрытие условий (если после составления тестов у нас останутся не покрытые операторы, то мы должны дополнить свой набор тестов таким образом чтобы каждый оператор выполняется не менее одного раза)
 * 4) покрытие решений и условий (необходимо составить тесты так, чтобы //результаты каждого условия выполнялись// хотя бы один раз, //результаты каждого решения так же выполнялись// хотя бы один раз, и //каждый оператор должен быть выполнен// хотя бы один раз)
 * 5) комбинаторное покрытие условий (//все возможные комбинации результатов условий в каждом решении//, а также //каждый оператор выполнились// по крайней мере один раз)

http://www.rus-lib.ru/book/38/men/21/3.7..html http://ru.wikipedia.org/wiki/Стратегия_тестирования_по_принципу_«Белого_ящика»