Рациональное объяснение: билды строятся из кода, хранимого в
CVS. Если же код не компилируется, то билд будет сломан (build
is broken) и соответственно никакого тестирования не будет.
Мы касались этого правила, говоря об идее постоянной интегра-
ции кода.
Идем дальше.
Код написан, тестирование и ремонт багов закончены. Настало
время первого релиза www.testshop.rs!!!
Первый релиз происходит так:
1. Подготовка машины у хостинг-провайдера (production
server, просто production или live machine — машина для пользо-
вателей).
Когда говорили об аренде сервера хостинг-провайдера, то име-
лось в виду, что мы арендовали совершенно конкретный компью-
тер, который находится где-то у провайдера и имеет уникальное
(в общемировом масштабе) сетевое ID, которое называется IP
Address ("ай-пи адрес"). Используя этот IP Address, мы подсое-
диняемся к этой машине и настраиваем
а) провайдерский Линукс (например, создаем директории,
редактируем разрешения и т.д.);
б) провайдерский Apache (например, вносим изменения в
файл конфигурации и т.д.);
в) провайдерскую MySQL (например, определяем максималь
ное количество соединений и т.д.).
Цикл разработки ПО
113
2. Подготовка релиз-скрипта (release script) — программы, кото-
рая автоматизирует процесс релиза на машину для пользователей.
3. Исполнение релиз-скрипта:
а) релиз-скрипт запускает билд-скрипт, чтобы на тест-маши
не создался новый билд;
б) релиз-скрипт берет файлы этого нового билда и по прото
колу FTP ("эф-ти-пи" — File Transfer Protocol) пересылает
их в машину для пользователей;
в) релиз-скрипт:
• копирует из CVS на машину для пользователя скрипты
для базы данных (DB-scripts) и
• запускает эти скрипты.
Скрипты для базы данных создают или модифицируют схему
базы данных. Так как у нас первый релиз, то схема базы данных
только создается, а именно создаются три таблицы:
• user_info (для данных о пользователях);
• user_transaction (для данных о транзакциях пользователя);
• book_vault (для данных о наименованиях книг и их наличии).
Кстати, нужно различать
• схему базы данных (database, или просто DB, schema) и
• сами данные.
Схема базы данных — это совокупность виртуальных контейнеров
(над БД работают программисты и администраторы БД).
Данные — это начинка этих виртуальных контейнеров, которую своими
действиями на www.testshop.rs, например регистрацией, создают/из-
меняют пользователи (user_info и user_transaction) или другие лица
(например, Харитоныч, который через специальную программу, напи-
санную Митей, может добавить новые названия книг и их количество
в book_vault).
Небольшое отступление
По мере развития проекта машина для пользователей превратится в
десятки связанных между собой веб-серверов, серверов с приложением
и серверов с базами данных, образующих production pool, т.е. сово-
купность компьютеров, обслуживающих наших пользователей. Но это
будет потом. А пока...
Welcome to www.testshop.rs!!! Наш первый релиз состоялся!!!
Книги продаются, к проекту примкнули кореша Харитоныча, в
результате чего появились деньги, чтобы нанять новых людей и
вообще начать активно расширяться.
114
Тестирование Дот Ком. Часть 1
Над проектом уже работают 2 продюсера, 7 программистов и 1
тестировщик. Долго ли, коротко ли, а уже и второй релиз (версия
2.0) состоялся.
На следующий день после выпуска версии 2.0 лавина жалоб от поль-
зователей дает основания полагать, что версия 2.0 www.testshop.rs
так же насыщена багами, как версия-2004 Государственной думы
единороссами.