Тестирование ПС — это процесс выполнения его программ на некотором наборе данных, для которых заранее известен результат, а также правило поведения этих программ.
Тестирование проводится уже с программой, не имеющих ошибок. Целью тестирования является получение результатов по конкретным данным, а также контроль качества программы и убедиться в правильности работы ПС.
Тестирование должно включать проверку всех ветвей программы и должно включать минимальный набор примеров. При тестировании нельзя предусмотреть такие всевозможные ситуации, но надо добиваться определенных результатов.
У Г. Майерса сформулированы основные принципы организации тестирования:
необходимой частью каждого теста должно являться описание ожидаемых результатов работы программы, чтобы можно было быстро выяснить наличие или отсутствие ошибки в ней;
следует по возможности избегать тестирования программы ее автором, т.к. кроме уже указанной объективной сложности тестирования для программистов здесь присутствует и тот фактор, что обнаружение недостатков в своей деятельности противоречив человеческой психологии (однако отладка программы эффективнее всего выполняется именно автором программы);
по тем же соображениям организация — разработчик программного обеспечения не должна «единолично» его тестировать (должны существовать организации, специализирующиеся на тестировании программных средств);
должны являться правилом доскональное изучение результатов каждого теста, чтобы не пропустить малозаметную на поверхностный взгляд ошибку в программе;
необходимо тщательно подбирать тест не только для правильных (предусмотренных) входных данных, но и для неправильных (непредусмотренных);
при анализе результатов каждого теста необходимо проверять, не делает ли программа того, что она не должна делать;
следует сохранять использованные тесты (для повышения эффективности повторного тестирования программы после ее модификации или установки у заказчика);
тестирования не должно планироваться исходя из предположения, что в программе не будут обнаружены ошибки (в частности, следует выделять ;птя тестирования достаточные временные и материальные ресурсы);
следует учитывать так называемый «принцип скопления ошибок»: вероятность наличия не обнаруженных ошибок в некоторой части программы прямо пропорциональна числу ошибок, уже обнаруженных в этой части;
10) следует всегда помнить, что тестирование — творческий процесс, а не относиться к нему как к рутинному занятию.