Рациональное объяснение: билды строятся из кода, хранимого в
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 Государственной думы
единороссами.