Что пишут в блогах

Подписаться

Онлайн-тренинги

Конференции

Что пишут в блогах (EN)

Разделы портала

Про инструменты

Лучшие вакансии

.
Пять (неуважительных) причин не иметь тестеров
29.09.2008 13:56

Автор: Джоэл Сполски
Переводчик: Алексей Боленок
Оригинал статьи

«Пять (неуважительных) причин не иметь тестеров» замечательная, на наш взгляд, статья Джоэля Спольски, переведённая на русский язык ещё в 2000 году, остаётся и на сегодняшний день актуальным и интересным материалом.

  1. Ошибки возникают из-за лени программистов.
  2. Моё программное обеспечение лежит в сети.Я могу исправить ошибки в течение секунды.
  3. Мои пользователи протестируют программное обеспечение за меня.
  4. Ни один хороший тестер не хочет работать тестером
  5. Я не могу позволить себе держать тестеров!

Мы помещаем материал в раздел OpenContent, так как считаем, что материал так долго публикуемый в открытом доступе и переведённый на несколько языков может претендовать на роль открытого пособия, а его автор не указывают явно или косвенно на запрет к его распространению. Редакция оставляет за автором или переводчиком право снять материал из публикации и сделает это по их первому требованию.

В 1992 году ошибки в программном обеспечении сильно беспокоили некоего Джеймса Гляйка (James Gleick), автора научных трудов. Гляйк счёл ужасной как раз вышедшую к тому времени новую версию Microsoft Word for Windows. Он отправил в «Сандей Нью-Йорк Таймс Мэгэзин» длинную скандальную статью, в которой высмеял коллектив разработчиков Word за их невосприимчивость к чаяниям клиентов и за выпуск крайне неотлаженного продукта.

Немного позднее, пользуясь услугами местного Интернет-провайдера Panix (чьими услугами, кстати, пользуюсь и я), он захотел найти способ автоматически сортировать и фильтровать свою почту. В UNIX для этого есть шаманская утилита, которая называется procmail. Её интерфейс несколько... скажем так, невразумителен. С этим соглашаются даже самые убеждённые фанаты UNIX.

Короче, мистер Гляйк нечаянно сделал невинную опечатку в procmail или что-то в этом духе. В общем, вся его почта удалилась. Со злости он решил, что создаст собственную компанию, предоставляющую доступ в Интернет. Он нанял программиста Юдея Айвечури (Uday Ivatury) и создал компанию Pipeline, действительно опередившую своё время: это был первый коммерческий Интернет-провайдер, предоставлявший хоть какой-то графический интерфейс.

Конечно же, у Pipeline тоже были проблемы. В самой первой версии не было никакого протокола коррекции, что довольно часто приводило к искажениям при передаче данных — вплоть до того, что возникали аварийные ситуации. В их программах, как и в любых других, были ошибки. И я, когда в 1993 году устраивался на работу в Pipeline, на собеседовании поинтересовался мнением мистера Гляйка о написанной им ранее статье. «Теперь, когда вы находитесь по другую сторону баррикад», спросил я, — «вы стали хоть немного понимать, как трудно создавать хорошее программное обеспечение?»

Но Гляйк не раскаялся. Он отрицал, что в Pipeline были ошибки. Он отрицал, что его программа была ничем не лучше Word. И он сказал мне: «Когда-нибудь и ты, Джоэл, начнёшь ненавидеть Microsoft». Меня поразило то, что, несмотря на годовой опыт разработки — не использования, а именно разработки программного обеспечения, — он ни капельки не понял, как же сложно сделать действительно надёжный и простой в использовании продукт. Поэтому я и сбежал оттуда, отклонив предложение устроиться на работу. А Pipeline впоследствии была куплена компанией PSI, самым странным Интернет-провайдером в мире, а затем была без церемоний поставлена к стенке и расстреляна.

В любом программном обеспечении есть ошибки. Дело в том, что процессоры крайне педантичны. Они совершенно по-детски отказываются работать с чем-либо, что не разжевали для них тщательнейшим образом. Когда мой ноутбук находится вне дома, он постоянно глючит, потому что не может найти сетевой принтер, к которому привык. Дитё малое. Причём проблема, скорее всего, кроется в одной-единственной строчке кода, в которой допущена копеечная и практически ничего не значащая ошибка.

Вот почему вам решительно необходимо иметь отдел технического контроля (ОТК). Вам понадобится один тестер на каждых двух программистов (а если ваше программное обеспечение должно работать с множеством различных настроек или на разных операционных системах, то и больше). Каждый программист должен плотно работать с одним тестером, предоставляя ему частную сборку настолько часто, насколько это необходимо.

ОТК должен быть независимым и могущественным. Он не должен отчитываться перед отделом разработки. В идеале, начальник ОТК должен иметь право вето на выпуск продукта, который не прошёл успешного освидетельствования.

Первую настоящую работу в индустрии программного обеспечения я получил в компании Microsoft. Она не сказать, чтобы славилась высоким качеством своего кода, но всё же там работало довольно много тестеров программного обеспечения. Поэтому я пред