Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Управление конфигурациями и
тестовой средой,
или как вложить в руки тестировщиков
холодное оружие.
Садовская Яна,
АБАК-ПРЕ...
О нас
О чем доклад?
● Почему нас перестало устраивать
текущее положение дел?
● Как сделать новый легкий стенд?
● Что мы для этог...
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,275 views

Published on

  • Be the first to comment

  • Be the first to like this

Я. Садовская "Управление конфигурациями и тестовой средой", 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

×