Управление конфигурациями и
тестовой средой,
или как вложить в руки тестировщиков
холодное оружие.
Садовская Яна,
АБАК-ПРЕ...
О нас
О чем доклад?
● Почему нас перестало устраивать
текущее положение дел?
● Как сделать новый легкий стенд?
● Что мы для этог...
What do we have?
● 5 проектов;
● scrum;
● 2-3 потока задач к тестированию;
● тяжелые тестовые стенды;
● 6 машин на один ст...
Параллельная разработка
project
team #1
team #2
branch #1
branch #2
branch #3
branch #4
branch #5
P
A
I
N
staging #1
stagi...
Работа с громадной базой
~ 25 млн. товаров
~ 800 т. компаний
● дамп базы ~ до 14 ч.
● деплой ~ 10 - 30 м.
● операции с баз...
Что делать?
Ход работ
Все компоненты — на одну виртуальную машину
db
script
front
cacheindex
job
mail knives
mail
Ход работ
● минимальный набор данных — в фикстуры;
● латание дыр: данные для корректного
функционирования — в фикстуры;
● ...
Эталонный #дамп
Нужно работать с минимальным и достаточным
набором данных. Кладем в sql файл.
Как отбирали:
● логика;
● те...
Режимы работы ножа
● deploy
● deploy:fixtures
● deploy:dump
параметры:
● название ветки с кодом
● версия БД (только для de...
Внедрение
● у каждого тестировщика свой нож, с преферансом и
барышнями;
● новая ветка — новый нож;
● отдельный сферический...
PROFIT!!!
● количество потребляемого железа свели к
минимуму;
● все операции на ноже ~ 2-5 минут;
● пустая изолированная с...
Целостность окружения
Как сохранить нужное нам окружение для
ножа?
Решение — Docker. Будем хранить в
контейнерах.
Но это т...
Нерешенные проблемы
:( целостность окружения;
: необходимость обновления фикстур;
8( периодический мердж миграций,
дампов;...
Планы на будущее
● использование контейнеров (Docker);
● нож для каждого проекта;
● запилить красивый интерфейс
управления...
Спасибо за внимание!
Посмотреть всякое:
О нас — railsc.ru
О контейнерах — docker.io
О фикстурах — github.com/mbleigh/seed-...
Upcoming SlideShare
Loading in …5
×

Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014

8,047 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
8,047
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Я. Садовская "Управление конфигурациями и тестовой средой", DUMP-2014

  1. 1. Управление конфигурациями и тестовой средой, или как вложить в руки тестировщиков холодное оружие. Садовская Яна, АБАК-ПРЕСС
  2. 2. О нас
  3. 3. О чем доклад? ● Почему нас перестало устраивать текущее положение дел? ● Как сделать новый легкий стенд? ● Что мы для этого придумали? ● Какие проблемы остались?
  4. 4. What do we have? ● 5 проектов; ● scrum; ● 2-3 потока задач к тестированию; ● тяжелые тестовые стенды; ● 6 машин на один стенд; ● синхронизация с внешними сервисами.
  5. 5. Параллельная разработка project team #1 team #2 branch #1 branch #2 branch #3 branch #4 branch #5 P A I N staging #1 staging #2 staging #3
  6. 6. Работа с громадной базой ~ 25 млн. товаров ~ 800 т. компаний ● дамп базы ~ до 14 ч. ● деплой ~ 10 - 30 м. ● операции с базой ~ 4 - 6 ч.
  7. 7. Что делать?
  8. 8. Ход работ Все компоненты — на одну виртуальную машину db script front cacheindex job mail knives mail
  9. 9. Ход работ ● минимальный набор данных — в фикстуры; ● латание дыр: данные для корректного функционирования — в фикстуры; ● простейший режим ножа: развертывание базы из фикстур; User.seed(:id, {:id => 1, :name => "Super User", :login => "blahblah", :password => "123456", :created_at => Datetime.now} )
  10. 10. Эталонный #дамп Нужно работать с минимальным и достаточным набором данных. Кладем в sql файл. Как отбирали: ● логика; ● техники тест-дизайна; ● накопленный опыт; ● здравый смысл.
  11. 11. Режимы работы ножа ● deploy ● deploy:fixtures ● deploy:dump параметры: ● название ветки с кодом ● версия БД (только для deploy:dump)
  12. 12. Внедрение ● у каждого тестировщика свой нож, с преферансом и барышнями; ● новая ветка — новый нож; ● отдельный сферический нож в вакууме для автотестов; Как быть с данными? ● если данные тестировщику больше не нужны — дропаем; ● если данные нужны — сохраняем дамп базы.
  13. 13. PROFIT!!! ● количество потребляемого железа свели к минимуму; ● все операции на ноже ~ 2-5 минут; ● пустая изолированная среда для автотестов; ● каждому члену команды можно создать столько ножей, сколько хочет, с какой хочет конфигурацией; ● счастье тестировщика.
  14. 14. Целостность окружения Как сохранить нужное нам окружение для ножа? Решение — Docker. Будем хранить в контейнерах. Но это так, на будущее.
  15. 15. Нерешенные проблемы :( целостность окружения; : необходимость обновления фикстур; 8( периодический мердж миграций, дампов; ;[ связи со сторонними сервисами.
  16. 16. Планы на будущее ● использование контейнеров (Docker); ● нож для каждого проекта; ● запилить красивый интерфейс управления деплоями.
  17. 17. Спасибо за внимание! Посмотреть всякое: О нас — railsc.ru О контейнерах — docker.io О фикстурах — github.com/mbleigh/seed-fu mailto: sadovskaya@ek.apress.ru

×