Специалист, проводящий независимое тестирование ПО, должен избрать стратегию, которая позволит определить, насколько выбранный тест удовлетворяет ожиданиям тестирования. Под стратегией тестирования понимают совокупность тех систематических методов, которые используют для создания или отбора тестов, включаемых в тестовый комплект. Сюда относятся случайные вводы, тесты, предназначенные для проверки подозрений, тесты для проверки на соответствие установленным требованиям, тесты на проверку искаженности программы и другие.
Разумеется, стратегия может считаться эффективной, в случае если тесты, входящие в ее состав, скорее всего, выявят неисправности тестируемого проекта.
Эффективность выбранного тестировщиком направления зависит от природы тестов, а также от природы тех ошибок, поиск которых эти тесты призваны осуществлять. Квалифицированный специалист перед тем, как проводить тестирование программного обеспечения, должен оценить ситуацию и подобрать эффективную для нее стратегию.
Одна из главных сложностей заключается в том, что по мере изменения объекта с целью исправления ошибок в нем и повышения его производительности меняется и эффективность выбранной тестировщиком стратегии. Типы находимых в объекте ошибок изменяются, и прежняя стратегия уже не может дать такого же высокого, как раньше, результата.
Различают несколько основных стратегий тестирования. Так, стратегия поведенческого теста базируется на технических требованиях. Ее используют для теста перечисленных в спецификации характеристик, а также для тестов на соответствие требованиям заказчика. Независимое тестирование ПО согласно такой стратегии называют поведенческим тестированием.
Стратегию структурного теста используют для определения правильности структуры тестируемой программы. Особенностью такой стратегии является то, что она требует полноценного доступа к исходному коду. Эта стратегия позволяет проверить работу каждого оператора, каждой ветви, использование всего объема данных, а также исполнение всех команд программой.
Назначение стратегии гибридного теста нетрудно определить из названия. Это комбинация двух выше описанных стратегий. При этом тестирование программного обеспечения по одной стратегии не может быть одинаково полезным в разных случаях. Полезность той или иной зависит от характеристик тестируемой программы, ее предполагаемых ошибок, а также от уровня знаний тестировщика.