Ручное тестирование

В течение многих лет большинство программистов были убеждены в том, что программы пишутся исключительно для выполнения их на машине и не предназначены для чтения человеком, а единственным способом тестирования программы является ее исполнение на ЭВМ. Это мнение стало изменяться в начале 70-х годов, а значительной степени — благодаря книге Вейн­бер­га «Психология программирования для ЭВМ». Вейн­берг доказал, что программы должны быть удобочитаемыми и что их просмотр должен быть эффективным процессом обнаружения ошибок.

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

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