338 Часть II: Приемы и технологии тестирования
Матрица операционного окружения
В этой матрице строки (или столбцы) могут соответствовать перемен-
ным окружения — типу и версии операционной системы, диспетчера па-
мяти, языку, стране и т.п.
Столбцы (строки) могут также представлять переменные среды, а могут
соответствовать отдельным параметрам, типам аппаратуры, кодам ошибок
и всему остальному, что потребует тестирования в комплексе с параметра-
ми операционной среды.
Матрица комбинаций входных данных
Случается, что ошибки, связанные с вводом, определяются не самими
данными или событиями, а их комбинациями. Если программа сбоит толь-
ко в том случае, когда пользователь вводит 60 символов в третьей строке
экрана, после чего нажимает стрелку вправо — налицо ошибка, и эту
ошибку ни за что не выявить, тестируя отдельные действия и переменные.
К сожалению, в большинстве программ количество возможных комбинаций
входных действий и данных столь велико (а чаще и просто бесконечно),
что протестировать их все невозможно. Поэтому вопрос состоит в том, как
выявить наиболее интересные из них.
Майерсом (Myers, 1979) описан сложный, но комплексный подход к
этой задаче, называемый причинно-следственными диаграммами (Cause-effect
Graphing). Мы не будем описывать его в данной книге, однако тем, кому
предстоит серьезно заниматься тестированием, рекомендуется его изучить.
Наш собственный подход носит более экспериментальный характер.
Комбинации входных условий мы изучаем прямо по ходу тестирования.
Таким образом, в поле нашего зрения попадают не все теоретически воз-
можные варианты, а самые естественные из них. Очень полезно обратиться
к программистам со списком переменных программы и спросить у них,
какие из этих переменных абсолютно независимы. Но полностью полагать-
ся на их информацию не стоит: во-первых, память может их подводить, а
во-вторых, кто-либо из программистов может найти занятным подбросить
вам заведомо ложную информацию. Так что для надежности все равно
выполните несколько проверочных тестов.
Как следует поработав с программой и почувствовав, что связи между
ее данными уже достаточно прояснились, мы приступаем к более последо-
вательному тестированию их комбинаций.
Матрицы сообщений об ошибках и
клавиатурных комбинаций
В этой главе уже рассказывалось о таблице, описывающей реакцию
программы на все возможные нажатия клавиш. Настало время более под-
робно рассмотреть этот вопрос.
Глава 12: Планирование и документация 339
В системах с графическим пользовательским интерфейсом все сообще-
ния об ошибках выводятся в диалоговых окнах. В ответ на сообщение
пользователь должен щелкнуть на кнопке ОК или нажать клавишу <Enter>.
Любые другие его действия окном игнорируются. Однако на практике даже
в системах со встроенной поддержкой диалоговых окон программисты
нередко снабжают отдельные окна возможностью реагировать и на другие
события.
Тестировщики часто спрашивают, зачем тестировать все окна сообще-
ний в программе для Macintosh, если все они работают одинаково. Если
тщательно протестировано одно из окон программы, можно считать, что
протестированы все. Однако опытные специалисты знают, что это невер-
но. Нам не раз приходилось сталкиваться с ситуациями, когда приложения
Macintosh, Amiga, Windows и DOS разрушались именно нестандартными
действиями пользователя в окне сообщения.
Конечно, невозможно нажать каждую клавишу в каждом диалоговом
окне программы, но следует всегда иметь в виду, что нажатие клавиш, не
имеющих никакого эффекта в одном диалоговом окне, может разрушить
другое. Поэтому мы выработали подход, позволяющий оптимальным обра-
зом протестировать программу на предмет подобных ситуаций. В его осно-
ве лежит матрица, строки которой связаны с диалоговыми окнами
программы, а столбцы — с группами клавиши их сочетаний. Для каждой
строки (т.е. в каждом окне сообщения) проверяется несколько клавиш из
каждой группы. Один из способов разбиения клавиш на группы показан на
рис. 12.22.
Документирование тестовых
материалов
В этом разделе рассказывается о документах, описывающих процесс
тестирования. Это не только плановые документы — в них записывается,
что вы делали, почему, когда, какими были результаты и что должно быть
сделано далее.
Мы уже говорили о том, каково назначение тестовой документации и
какую пользу она может принести, если ее правильно применять. Теперь
давайте поговорим о типах плановых документов.
Когда говорят о тестовой документации, вовсе не имеют в виду некую
монолитную концепцию. Напротив, возможных типов документов огром-
ное множество. Некоторые из них более полезны, чем другие, некоторые
дешевле, некоторые носят более фундаментальный характер. Приступая к
каждому новому проекту, вам предстоит решать, какие из всех этих мно-
гочисленных документов лучше всего удовлетворят его нуждам.