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.

Автоматизация тестирования: отбрасываем лишнее и проверяем суть

2,503 views

Published on

Доклад Игоря Хрола на SQA Days-15. 18-19 апреля, 2014, Москва.
www.sqadays.com

Published in: Education
  • Be the first to comment

Автоматизация тестирования: отбрасываем лишнее и проверяем суть

  1. 1. QA Automation: отбрасываем лишнее и тестируем суть Игорь Хрол http://www.wargaming.net http://www.khroliz.com
  2. 2. О себе • Игорь Хрол • QA Automation Team Lead в Wargaming • Восемь лет в отрасли • Десятки проектов • Инженер, тренер, консультант, менеджер, докладчик • Мой блог: http://ru.khroliz.com
  3. 3. Всё плохо
  4. 4. Замкнутый круг Тестирование неинтересно Неопытные люди Сложную работу некому делать Работа несложная Платят меньше, чем в разработке
  5. 5. В результате... • Если в тестирование попадают талантивые люди, то случайно http://artkoshelev.github.io/posts/random-tester/ • Но после этого всё равно уходят в разработку • Тестирование считается простой и неинтересной IT-профессией • Качество тестирования оставляет желать лучшего
  6. 6. Вспомним, кто мы…
  7. 7. Тестирование неинтересно Неопытные люди Сложную работу некому делать Платят меньше, чем в разработке Работа несложная
  8. 8. Как корабль назовёшь...
  9. 9. Как корабль назовёшь... • «Если бы я спросил людей, чего они хотят, они бы попросили более быструю лошадь.» Генри Форд • Доклад от @adzynia: http://goo.gl/W2tCj6 • Автоматизация тестирования • Автоматическое тестирование • Эффективное автоматическое тестирование
  10. 10. Модель задачи по тестированию 5 8 2 1 10
  11. 11. Модель задачи по тестированию
  12. 12. Сложность тестирования
  13. 13. Экспоненциальная сложность http://ru.wikipedia.org/wiki/Экспоненциальный_рост
  14. 14. Чёрный ящик = Экспонента
  15. 15. Автоматизация тестирования - борьба с экспонентой
  16. 16. Разделяй и властвуй
  17. 17. Модель задачи по тестированию 5 8 2 1 10
  18. 18. Модель задачи по тестированию 5 8 2 1 10 800 vs 31
  19. 19. Модель задачи по тестированию
  20. 20. Сложность тестирования … Сложность:
  21. 21. Сложность тестирования …
  22. 22. Срезаем углы 1 1 1 1 10
  23. 23. Срезаем углы 1 1 1 1 10 10 vs 19
  24. 24. Срезаем углы Тестов не только меньше, но они и проще 1 1 1 1 10 10 vs 19
  25. 25. Что-то там говорили о «пирамиде» UI API Unit Tests Главное – декомпозиция задачи
  26. 26. Проект из жизни
  27. 27. Проект из жизни
  28. 28. Начало...
  29. 29. Ограничение UI-тестов • Долгие • Нестабильные • Задача: оптимизировать предусловия, которые делаются часами
  30. 30. Отказ от браузера • Плюсы – Тесты работают быстрее – Нет проблем с синхронизацией – Надёжны – Легко запускаются параллельно • Минусы – Не видно, как работают – Нет доверия – Выше порог вхождения
  31. 31. Не видно как работают Нет доверия
  32. 32. Структура решения • Технологии – Java – TestNG – Maven – HttpClient
  33. 33. Возврат к браузеру
  34. 34. Браузер • Запускается только тогда, когда реально нужен (около 3% сценариев) • Реиспользуется headless-сессия с безбраузерного взаимодействия
  35. 35. Browser Script API http://docs.oracle.com/cd/B40099_02/books/OI Ref/OIRefBrowseScript.html Browser Script HTTP Server Script
  36. 36. API всё равно лучше!
  37. 37. База данных
  38. 38. База данных • Самый быстрый способ работы с системой • Лучше туда напрямую не писать – Cпециально выверенные stored procedures • Хорошо подходит для проверок
  39. 39. Web-сервисы
  40. 40. Web-сервисы • Взаимодействие с другими системами – Эмуляция внешних запросов – Проверки исходящей инфорации
  41. 41. Application server
  42. 42. Web-server vs App-server • Web: – Вёрстка – Отсылка ответов • App: – Логика приложения
  43. 43. Siebel Java Data Bean http://docs.oracle.com/cd/E14004_01/books/OI Ref/Customizing_Siebel_Object_Interfaces12.ht ml Полный програмный интерфейс для создания логики приложения из Java
  44. 44. Правильные оракулы Задача: протестировать правила Проблема: ожидаемая вычисленная дата • зависит от календаря • зависит от текущего времени
  45. 45. Правильные оракулы • Создаём заявку под правило • Отправляем на Siebel дельту и дату • Берём из Siebel’a вычисленную нам дату • Сравниваем с датой на созданной заявке
  46. 46. Тесты производительности
  47. 47. Тесты производительности • Традиционный подход: – Нужно переписывать скрипты для каждого билда – Отдельные скрипты • Jmeter-based: – Реиспользование кода функциональных тестов – Тесты поддерживаются для новых версий вместе с функциональными тестами
  48. 48. Итоговые результаты • Быстрые тесты • Предсказуемые результаты • Легко масштабируются • Возможность взаимодействия с Siebel на любом уровне
  49. 49. Взгляд на тестирование со стороны реализации системы позволяет • Уменьшить сложность самой задачи тестирования • Уменьшить сложность и длину сценариев • Увеличить скорость и стабильность работы • Найти новые области применения автотестов
  50. 50. Спасибо! Вопросы? Игорь Хрол i_khrol@wargaming.net / khroliz@gmail.com http://ru.khroliz.com

×