Содержание
- 3. Ситуации Новый функционал ломает старый или старый функционал бесследно исчезает QA перегружен или QA отсутствует “Всё
- 5. Ситуации Новый функционал ломает старый или старый функционал бесследно исчезает QA перегружен или QA отсутствует “Всё
- 6. КАК?
- 7. ПО КУСОЧКАМ!
- 8. Четыре кусочка Этап 1. Непрерывная интеграция Этап 2. Интеграционное тестирование Этап 3. Тестирование скриншотами Этап 4.
- 9. ЭТАП 1 Непрерывная интеграция
- 10. Непрерывная интеграция. Continuous Integration Сделать что-то по расписанию или по какому-либо событию Собрать ночную сборку и
- 11. Процесс Коммит в репозиторий Continuous Integration Unity Test Runner Edit Mode тесты (Unit-тесты) Unity Test Runner
- 12. Результаты первого этапа. Непрерывная интеграция Основная ветка всегда в рабочем состоянии Нет ошибок в редакторе Билд
- 13. ЭТАП 2 Интеграционное тестирование
- 14. Интеграционное тестирование Взаимодействие модулей Бизнес-логика Можно проводить на реальных устройствах Дополнение к ручному тестированию и unit-тестам
- 15. Unity Test Runner
- 16. Тест-кейс. Игра BFG.
- 17. Пример теста [ UnityTest ] public IEnumerator ShopWindowTest() { // -> .. создание gameProvider, viewProvider yield
- 18. Запуск сцены [ UnityTest ] public IEnumerator ShopWindowTest() { // -> .. создание gameProvider, viewProvider yield
- 19. TestElement - помечаем поля public class ViewShopExample : MonoBehaviour { [ SerializeField ] [ TestElement( "Close"
- 20. Нажимаем на кнопку [ UnityTest ] public IEnumerator ShopWindowTest() { // -> .. создание gameProvider, viewProvider
- 21. Способы нажать на кнопку в Unity UI Внешний - API операционной системы Работает не только на
- 22. Эмуляция курсора в Unity UI
- 23. Assert yield return gameProvider.StartWithCustomScene( "TestFrameworkExample" ); yield return viewProvider.ClickButton ( "Shop" ); yield return viewProvider.WaitView ();
- 24. Делаем скриншоты GameViewUtils.SetResolution( 800, 600 ); yield return gameProvider.StartWithCustomScene( "TestFrameworkExample" ); yield return viewProvider.ClickButton ( "Shop"
- 25. Результаты этапа 2. Интеграционное тестирование Запускаемость игры Основной игровой луп Дополнительная логика Можно определить состояние билда
- 26. ЭТАП 3 Тестирование скриншотами
- 27. Сравнение скриншотов GameViewUtils.SetResolution( 800, 600 ); yield return gameProvider.StartWithCustomScene( "TestFrameworkExample" ); var beforeShop = screenshotHelper.CreateScreenshot( "MainMenu"
- 28. Сравнение скриншотов. Результат. PASSED FAILED
- 29. Итоговый результат GameViewUtils.SetResolution( 800, 600 ); yield return gameProvider.StartWithCustomScene( "TestFrameworkExample" ); var beforeShop = screenshotHelper.CreateScreenshot( "MainMenu"
- 30. Тестирование скриншотами. Шейдеры Источник: https://simonschreibt.de/wft/watchdog-compare/
- 31. Тестирование скриншотами. Алгоритмы
- 32. Тестирование скриншотами. Сравнение с оригиналом Храним оригинал скриншота в репозитории Сравниваем новые скриншоты против оригинала Если
- 33. Результаты этапа 3. Тестирование скриншотами Из кода сложно понять, что игра выглядит неправильно Человек справляется лучше
- 34. ЭТАП 4 Performance-тестирование
- 35. Performance-тестирование Собираем метрики во время тестов Память Производительность Скорость загрузки Миллион других параметров Строим график по
- 36. Скриншот Performance-тестирования
- 37. Результаты этапа 4. Performance-тестирование Известные метрики об игре Известен момент когда что-то пошло не так Проще
- 38. Выводы Поэтапно вводим интеграционное тестирование Этап 1. Непрерывная интеграция Этап 2. Интеграционное тестирование Этап 3. Тестирование
- 39. Полезные ссылки https://www.gdcvault.com/play/1025013/Tools-Tutorial-Day-Tools-to (GDC, Amy Phillips, Tools to Reduce Open Bug Count at Media Molecule) http://gdcvault.com/play/1022784/Fast-Iteration-Tools-in-the
- 40. Бонус 1. Улучшаем плей-тесты Увеличиваем Time.timeScale (не применимо для всех тестов/приложений) Не должны зависеть от рандома
- 41. Бонус 2. Что хотелось бы видеть в Unity Возможность экспортировать результаты тестов с устройства Возможность фильтровать
- 42. Бонус 3. Альтернативы. SikuliX Источник: http://sikulix.com/
- 43. Бонус 4. Альтернативы. Unium Источник: https://assetstore.unity.com/packages/tools/unium-automated-test-tools-95998
- 45. Скачать презентацию