304 Часть II: Приемы и технологии тестирования
проблем выявляется в ходе этой работы. К тому же ее результаты
оказывают неоценимую помощь как программистам, так и техничес-
ким писателям.
• Начните разработку тестовой документации с организационного
материала, например, со списка функций программы. В этот список
включается все, что должна делать программа. Старайтесь ничего не
упустить, поскольку полнота этого списка будет определять полно-
ту тестирования продукта. Однако поначалу список будет далеко не
полным. Вам будет не хватать глубины знания продукта, и к тому же
часть его функций будет просто не документирована. В дальнейшем
список будет расширяться и в конечном счете охватит все функции
программы. Об этом постепенном расширении списка функций мы
еще поговорим в одном из следующих разделов.
• Выполните простейший анализ граничных условий. Подумайте об;
ограничениях, которым соответствуют вводимые программой дан-
ные. Если программа не разрушается, попробуйте ввести значения,;
выходящие за эти границы. В черновиках пользовательского руко-
водства ограничения обычно не указаны. Что же касается специфи-
кации, то слишком уж часто разработчики не оставляют от
перечисленных в ней требований камня на камне. Поэтому, тести-
руя программу, придется ориентироваться только на реальные гра-
ницы данных. Запишите, какими они оказались, и покажите свои]
заметки техническим писателям или программистам, чтобы согласо-
вать окончательный вариант поведения программы и внести изме-
нения либо в нее саму, либо в документацию и собственные'
тестовые примеры.
Итак, начинайте с построения основ. Для работы с планом выберите
инструмент, позволяющий с легкостью просматривать и реорганизовывать
его компоненты. На этом первом этапе вы обязательно будете тестировать
программу, хотя и не слишком тщательно. Все же это позволит выявить ряд
наиболее очевидных проблем, которые лучше всего устранить как можно
раньше. А далее план будет углубляться и расширяться, пока не превратит-
ся в прекрасно организованную тестовую документацию.
Что дальше?
Итак, первоначальное знакомство с программой завершено. Что же
дальше? Каковы следующие наиболее важные области тестирования? На
чем следует сосредоточить внимание и дальнейшие усилия? К сожалению,
волшебной формулы здесь нет. Все зависит от ваших знаний и инстинкта
тестировщика. Можно только сказать, что, скорее всего, вы приступите к
работе над одной из шести областей, показанных на рис. 12.4.
Глава 12: Планирование и документация 305
• Наиболее вероятные ошибки. Если известно, что в определенной
части программы очень много ошибок, поработайте прежде всего с
ней. Внутри программы ошибки обитают колониями. В ходе иссле-
дований, проведенных Майерсом (Myers) в 1979 году, 47% ошибок
было найдено в 4% всех модулей системы. Это пример, иллюстри-
рующий совершенно реальную тенденцию — чем больше ошибок
обнаружено в определенной области программы, тем больше их еще
предстоит там найти. И даже вносимые исправления с большей чем
обычно вероятностью влекут за собой новые ошибки. Те области,
которые в ходе первоначального тестирования показали себя наибо-
лее слабыми, останутся такими и в дальнейшем. Поэтому лучше
всего начать с ними работать как можно раньше и как можно обсто-
ятельнее.
• Наиболее заметные ошибки. Можно поступить и иначе — прежде
всего сконцентрироваться на тех ошибках, которые более всего за-
метны пользователю или наиболее негативно скажутся на его работе
и на его впечатлении о продукте. Подумайте, какие части програм-
мы будут использоваться чаще других, какие ее возможности выгод-
но отличают ее от конкурентов и какие функции наиболее важны
для пользователя. Те из функций, которые сами по себе хороши, но
не являются жизненно важными компонентами продукта, можно
протестировать во вторую очередь. Если они не работают, это, ко-
нечно, плохо. Но гораздо хуже, если не функционируют базовые
элементы продукта, ведь тогда это вообще не продукт.
•
Наиболее часто используемые области программы. Ошибки в этих
областях повторяются без конца. Поэтому, даже если они не особен-
но серьезны, пользователь вскоре почувствует раздражение.
• Отличительные особенности программы. Если вы продаете базу
данных и утверждаете, что она сортирует таблицы в 48 раз быстрее,
чем продукты конкурентов, функцию сортировки следует протести-
ровать особенно тщательно. Если сортировка и в самом деле выпол-
няется быстро, но неправильно, вряд ли это понравится
пользователям. Высоко оптимизированные фрагменты кода являют-