Как эффективно тестировать крупный веб-проект Александр Сербул Руководитель направления контроля качества интеграции и внедрений 1С-Битрикс
Когда и что тестируют Чем лучше тестировать – инструменты Выбор эффективной стратегии Цели
Программист уточняет требования у кого? (менеджер, аналитик, клиент) Программист реализовал логику в коде Программист протестировал сам – альфа- тестирование Когда и что тестируют - Программист
Откуда баги берутся? Менеджер/аналитик не знает точно сценария использования (ну как так???) В ТЗ – тоже эмоц. жидкость Клиент сам не знает, или знает, но далеко сидит От вопросов программиста - вздрагивают Когда и что тестируют - Программист
Снижаем число ошибок Product Owner/менеджер/аналитик/представитель клиента – ДАЮТ КОМПЕТЕНТНЫЕ ОТВЕТЫ (KPI, премия) на вопросы программиста о предметной области Представитель заказчика – доступен и компетентен Проведен предварительный анализ сценариев использования, объектов и отношений между ними От вопросов программиста – «вскакивают», обсуждают и принимают решение Когда и что тестируют - Программист
Снижаем число ошибок Программист обеспечен современными инструментами - IDE Программист использует систему контроля версий – SVN, git, mercurial Программист документирует код или пишет «понятно» для себя и других Программист может писать модульные тесты Программист должен сделать функциональные тесты Программист все равно оставит ошибки в коде! Это нормально. Когда и что тестируют - Программист
А вот и я! Вдруг появились новые/измененные требования Так устроена жизнь, это бывает всегда Понятный модульный/объектный код, а не монолит из гумуса Актуализация сценариев использования, модели данных Функциональные тесты – снижают боль Модульные тесты – снимают боль Вот именно тут, ВНЕЗАПНО, модульные/функциональные тесты оказываются нужными Когда и что тестируют - Программист
Еще несколько моментов Общий стандарт кодирования Простая архитектура Перфекционистов-времяедов – «расстреливать» на месте Выделенная роль по аудиту кода и информационной безопасности. Скупой платит дважды. Минимум переключения людей между задачами (Kanban?) Всплытие и открытое обсуждение проблем Мотивация на простые и эффективные решения Доски, обсуждения, отсутствие бюрократических барьеров, позитивная творческая профессиональная атмосфера Когда и что тестируют - Программист
Откуда берутся баги? Разные браузеры и их версии Разные разрешения экрана, ОС Разные диалекты JS Непонятные сценарии использования – снова некого спросить, прочитать (ну как так???) Можно знать одновременно PHP, JS, CSS и HTML НЕЛЬЗЯ УМЕТЬ одновременно PHP, JS, CSS и HTML! Не экономьте на специалистах. Создать стенд с разными версиями браузеров Selenium – автоматические тестирование Когда и что тестируют - Верстальщик
В каком ВУЗе готовят тестировщиков? Тестировщик – это призвание, неподдельная любовь к совершенству в простоте! Тестировщик – это свежий взгляд, всегда полезно, но… Только умный, злой и въедливый «параноик», знающий требования не хуже: -Клиента -Менеджера проекта -Аналитика -Программиста «За одного Тестировщика 10 программистов дают» Когда и что тестируют - Тестировщик
Понимание архитектуры веб-проекта Где и что настраивается и почему Обновление софта Распределение сервисов по машинам Мониторинг, аналитика Нагрузочные испытания Резервное копирование Одно неловкое движение и веб-система «становится колом». Контроль качества работы веб-проекта изнутри – как сверстали, как закодили – все видно и «слышно»! Когда и что тестируют - Сисадмин
Погружение в предметную область проекта теперь у… Менеджера (аналитика, Product Owner) Программиста Верстальщика Тестировщика Сисадмина Клиент и так там плавает (обычно) Зачем «включают дурочка» и как с этим бороться? Product Owner? А не жалко? A few months after this first launch, the project's customer representative a key role in the Extreme Programming methodology quit due to burnout and stress, and couldn't be replaced. A few months after the launch of C3s first phase Marie developed a facial tick, it was the most visible symptom of too many hours at the office, too much stress and too much time away from her family. Marie was able to transfer to a less stressful job... Погружение
Сделали как написано, проверили, багов больше нет?
Да полно!!!
Ценность раннего фидбека от Клиента Вы – не эксперты в предметной области Чаще встречайтесь с Клиентом! Короткие итерации Product Owner, демонстрации (Scrum) Customer representative Найдите с Клиентом общий язык Научите Клиента пользоваться мозгом Критерий готовности задачи, acceptance test Бюрократия и здравый смысл «Секрет» бета-версий. Привлекайте сотрудников Клиента к тестированию! Когда и что тестируют - Клиент
«Секрет» бета-версий
Да полно!!! Вот она, правда…
Снижаем вероятность ошибок на ранних этапах Автоматизируем тестирование Создаем открытую, творческую медиа среду Технологические прототипы, «идентичные» боевым Поощряем простые и понятные решения (метафора) «Отстреливаем» перфекционистов-времяедов Заставляем исполнителей погружаться в проект с головой Снижаем переключение контекста (ну или пишем 5000 стр. ТЗ) Используем мозги и сотрудников Клиента – максимально Короткие итерации, частый фидбек от Клиента Continuous Integration – полезно познакомиться, но без фанатизма. Подведем итоги
Спасибо за внимание! Вопросы? Александр Сербул AlexSerbul