"Несовершенное изделие", Михаил Спивак
[Вы должны быть зарегистрированы и подключены, чтобы видеть это изображение]
"Что означает твоя специальность Software Quality Assurance (SQA) engineer?" – спрашивают меня друзья и знакомые. Приходится долго и нудно объяснять. Говоришь человеку, что это тестирование программного обеспечения. В ответ реакция: выпученные глаза и вопрос: «А что это?»
Тогда я стал объяснять людям понятными терминами: «Вот представьте, что есть белый и пушистый ангел – программист, который творит, созидает, душу вкладывает. И есть чёрный ангел – ваш покорный слуга. Я ничего не создаю, но проверяю нетленные творения белого ангела. Я его безжалостно критикую, пишу злодейские программы, которые воздействуют на изделие, составляю отчёты о том, что продукт несовершенен. Наш господь бог – начальник проекта любит белого ангела больше; от меня у него изжога. Но внимательнее прислушивается он ко мне, чёрному ангелу проекта. Кроме меня некому указать на изъяны. Значит, без меня система не будет совершенна. Как ни крути, а сам себя программист проверить не может. И никто сам себя не может проверить. «Господь бог» не борется с моим кознями и происками, с попытками сбить светлые души с пути истинного.
Но это присказка; сказка дальше начинается.
Как гласит Библия: «И сказал Бог: сотворим человека по образу Нашему по подобию Нашему...»
Что означает «образ» и «подобие»? На эту тему много споров. Кто-то указывает на внешнее сходство. Другие – на духовное; говорят о бесконечной любви, милости и сострадании. Что за любовь такая? Никто внятного объяснения не придумал. Это и не важно. Главное, что «изделие», созданное по «образу и подобию» оказалось с изъянами. История цивилизаций знает гораздо больше порока, чем любви. Бывает, что на пожелтевших страницах манускриптов промелькнёт имя праведника, но это редкость – исключение из правил. Большинством людей движет зависть, лень, гордыня и ещё многое из того, что порицается. Как ни прискорбно, но следует признать: человек несовершенен.
Возникает вопрос. В системе «Бог-человек», где именно произошёл сбой, где погорели лампочки, где программа сбилась, контакты расплавились?
Позвольте профессиональному тестировщику очень кратко проанализировать систему. Отвлечёмся от высоких материй и спустимся на нашу грешную Землю. Уменьшим изучаемую модель во много раз. Есть такой приём: чтобы лучше понять, как система работает, её уменьшают, или увеличивают до тех размеров, которые легко воспринимаются глазом.
Итак, представим, что некий скульптор смотрит в зеркало и ваяет с себя шедевр. Устал. Ночь на дворе; освещение дома никуда не годится. Глаза слипаются, руки от усталости дрожат. Но старается мастер. Сделал работу и сказал, что это хорошо, и спать завалился. Уснул со счастливой улыбкой на устах.
Пробуждение его безрадостно. Взглянул он при свете дня на скульптуру и ужаснулся.
- А-а-а! – закричал создатель и позвал прислугу (наш скульптор – богач). – Уберите эту гадость, этот кусок глины, из моего пентхауза подальше: на землю снесите и около мусорного бака оставьте!
Скульптура получилась дрянная. Пропорции не соблюдены, гармония нарушена. Что тому виной? Варианта два: руки у скульптора-творца растут не из того места либо... что страшно представить: сам скульптор похож на Квазимодо.
Вводим дополнительное условие для задачки: скульптор обладает божественной красотой. Значит, что остаётся?.. Человек, не знакомый с тестингом скажет: «Руки у скульптора кривые. Правильно?» Нет, не правильно. Потому что еще одно дополнительное условие задачи гласит: наш скульптор высокой квалификации; руки золотые и пальчики серебряные, как говорится.
Что тогда? Вот и пришло время вспомнить про тестинг. Был бы у скульптора помощник, который объективно мог оценить и сказать: «Э-э-э, друг, что-то у тебя одна рука длиннее другой получается». Глядишь, мастер по-быстрому всё исправил и не испортил бы шедевр.
Теперь вернёмся к созданию человека. Всевышний сотворил его по образу… но не доглядел. Нет бы, вызвать черного ангела или даже начальника адского отдела – самого дьявола; составить тест-план, проверить «изделие» на вопросы алчности, корысти, бесчестия и других пороков. Особое внимание уделить работе системы под нагрузкой: тест на «не возжелай жены ближнего своего» и «не укради». Забыл Господь и про тест на стабильность работы: проверка на лень и чревоугодие. Много проверок надо было сделать перед релизом (выпуском) системы, и не только перечисленные; обо всём вкратце и не расскажешь...
Так неужели «изделие» совсем не было проверенно? Было, конечно. Любой программист-творец проверяет общую функциональность. Разумеется, Всевышний проверил, что его изделие правильно реагирует на сценарии: «Да не будет у тебя других богов пред лицом Моим» и «Помни день субботний, чтобы святить его; шесть дней работай и делай в них всякие дела твои, а день седьмой — суббота Господу, Богу твоему». Проверил, порадовался и пустил изделие в свет, назвав его Адамом.
Но недолго работала система – сбой дала. Пришлось Творцу срочно вспомогательный модуль вводить, Евой названный. Но и сей модуль был сотворён в спешке, без системного анализа. Багов (недоработок) оказалось в нём слишком много; еще больше, чем в Адаме. Тут бы в оценке качества помощь черного ангела пригодилась. Но нет… Снова понадеялся Творец на свои силы.
Модуль Ева тем временем совсем вышел из-под контроля. Вступил во взаимодействие с вредоносным вирусом Змием и через него воздействовал на Адама. Это привело к блокированию некоторых важных функций основного изделия. Так, мысленный процесс был заменён желанием пожрать райские яблоки. На священные регистры покусились; ни больше, ни меньше! Глянул Творец и ахнул. Но было поздно. Изделие пришлось убрать с глаз долой вместе с дополнительным модулем Евой и зловредным вирусом Змием.
А мораль сей басни такова: как бы ни был ты крут, не гнушайся выслушать конструктивную критику в свой адрес. Ведь даже Господу не удалось без помощи контролера создать идеальное изделие.
Copyright: Михаил Спивак, 2009
Свидетельство о публикации №2901310550