16 Глава 1. Основы автоматизации
численные анекдоты про Билла Гейтса, нельзя не отдать должного
этому человеку. Так вот, и профессия «тестировщик программного
обеспечения» родилась в недрах именно Microsoft. Когда товарищ
Гейтс решил потеснить махину Sun Microsystems и весь лагерь Unix
как таковой на рынке операционных систем для серверов, создав Win-
dows NT, он пришел к здравому заключению. Бороться с ОС, кото-
рую писали и отлаживали десятки тысяч человек, можно лишь про-
тивопоставив им свою армию спецов. Но программисты, особенно
когда их много и они работают над гигантским проектом, не способ-
ны следить за качеством выпускаемой продукции. И вот именно для
создания конкурентоспособной ОС и была «создана» группа людей,
ответственных за тестирование и качество конечного продукта.
Вот мы и подошли к вопросу о том, кто же такой тестировщик, чем
он занимается и чем он отличается от инженера по качеству. Итак,
тестировщик — это
человеку
оценивающий программный продукт с
точки зрения пользователя. Собственно, его задача заключается в
подтверждении того, что человек, впервые видящий и использую-
щий программу, будет в состоянии полностью использовать ее
функциональность, не испытывая при этом неудобства от «зависа-
ния» системы, появления сообщений об ошибках, ни с того ни с сего
закрывающихся окон и прочих «прелестей», которыми изобилуют
многие программные продукты. В его обязанности входит также
проверка того, что программный продукт делает именно то, что он
должен, и так, как он это должен делать. Ситуация, когда пользо-
ватель щелкает на кнопке Печать, а вместо отправки документа на
принтер он просто сохраняется, является неприемлемой для хорошо
протестированного продукта. Инженер по качеству — это тот же
тестировщик,
только
ответственный
за
качество
продукта в тече-
ние
всего цикла
разработки.
Давайте взглянем на типичную схему та-
кого цикла.
Как видно из этой схемы, отдел разработки бизнес-требований
(ОРБТ) (Product Specialists) предоставляет группе тестирования (QA)
и группе программистов (Development) два документа: BRD (Bu-
siness Requirement Document), описывающий бизнес-логику выпус-
каемого продукта, и FDD (Functional Design Document), описываю-
щий функциональные требования к выпускаемому продукту. После
того как программисты рассмотрят эту документацию, они создадут
еще один документ
—
TDD (Technical Design Document), который
затем будет отправлен на рассмотрение в отдел разработки бизнес-
требований и группе тестирования. После его рассмотрения и утвер-