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

  • 1,422 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,422
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

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