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.

Software testing in practice

852 views

Published on

Published in: Technology
  • Finally found a service provider which actually supplies an essay with an engaging introduction leading to the main body of the exposition Here is the site ⇒⇒⇒WRITE-MY-PAPER.net ⇐⇐⇐
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/Gcy3z ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • D0WNL0AD FULL ▶ ▶ ▶ ▶ http://1lite.top/Gcy3z ◀ ◀ ◀ ◀
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Software testing in practice

  1. 1. Промышленное тестирование Николай Васильев IITU Software Testing, 2014 1
  2. 2. Для чего мы тестируем? IITU Software Testing, 2014 2
  3. 3. Для чего мы тестируем? • Для самопроверки – Разработчик, чтобы быть уверенным в качестве проделанной работы • Для сохранения имиджа – Не показывать пользователям ерунду – Давать пользователям то, что работает, не обманывает ожиданий • Предотвратить потери в деньгах • Предотвратить вред жизни или здоровью IITU Software Testing, 2014 3
  4. 4. Почему мы тестируем? • Люди ошибаются • Даже самая мелкая ошибка может стоить дорого • Разработчики не всегда проверяют свой код – А уж тем более, не всегда делают это эффективно IITU Software Testing, 2014 4
  5. 5. Задача тестирования • Проверить, что полезные фичи реализованы как надо • Проверить, что нет вредных эффектов • Сделать это все эффективно IITU Software Testing, 2014 5
  6. 6. Роли в проекте IITU Software Testing, 2014 6
  7. 7. Роли в проекте • Что такое проект? – Ограничение по времени – Есть определенная цель – Есть методы ее достижения – Есть метрики оценки успешности (KPI) • Проекты могут быть маленькие (месяцы) • Могут быть большие • Могут быть бессрочные – Состоят из подпроектов – Мы называем их «сервисы» IITU Software Testing, 2014 7
  8. 8. Роли в проекте • Руководитель сервиса (тимлид) • Менеджер проектов • Разработчики • Тестирование • Админы (devops) IITU Software Testing, 2014 8
  9. 9. Роли в проекте: тимлид • Руководит направлением, сервисом • Отвечает за все проекты в направлении • Решает межпроектные споры • Решает внутрипроектные споры – Если договориться с менеджером не получилось IITU Software Testing, 2014 9
  10. 10. Роли в проекте: менеджер проекта • Координирует проект – Или несколько небольших • Согласует работу участников проекта • Согласует сроки всех задач • Согласует приоритеты задач IITU Software Testing, 2014 10
  11. 11. Роли в проекте: разработчик • Каждый разработчик – реализует полезные бизнес-функции • Senior, Старший разработчик – Знает всю техническую систему (подсистему), которая затронута проектом – Сам делает как правило только самые важные и ответственные задачи – Несет ответственность за младших разработчиков • Разработчик – То же самое, но знает только часть нужной системы – Несет ответственность за свои задачи • Junior, младший разработчик; Intern, стажер – Не знает систему, или знает недостаточно – Все знания получает в процессе работы – Ответственность за его задачи несет senior IITU Software Testing, 2014 11
  12. 12. Роли в проекте: разработчик • Рост разработчика – Увеличение знания системы (экспертиза) – Ответственность за свои задачи (от 0 до 100%) – Ответственность за задачи в подсистеме, системе (от 0 до 100%) IITU Software Testing, 2014 12
  13. 13. Роли в проекте: системный администратор • Выкладывает готовый софт в продакшн – Production – софт, который сейчас обслуживает пользователей • Следит за работоспособностью продакшна • То же самое для тестовой среды – С меньшим приоритетом IITU Software Testing, 2014 13
  14. 14. Роли в проекте: тестирование! IITU Software Testing, 2014 14
  15. 15. Роли в проекте: руководитель группы тестирования • Знает всю техническую систему, которая затронута проектом (см. Senior) • Знает как тестировать каждый узел системы • Оценивает риски и приоритеты тестирования • Согласует объем и приоритет задач на тестирование • Несет ответственность за качество тестирования IITU Software Testing, 2014 15
  16. 16. Роли в проекте: тестировщик • Знает часть сервиса и как ее тестировать – Как правило, лучше всех в проекте (эксперт) • Создает план на тестирование компонентов – если нужно • Проводит тесты • Фиксирует дефекты, документирует • Создает тестовую документацию (как тестируем), если нужно – Тест-кейсы – Чеклисты – списки кейсов • Дает добро (или блокирует) выкладку релиза IITU Software Testing, 2014 16
  17. 17. Роли в проекте: автоматизатор тестирования • Тестировщик-программист • Пишет программы, которые делают тесты автоматически • Когда? – Когда вручную невозможно – Когда вручную не эффективно IITU Software Testing, 2014 17
  18. 18. Роли в проекте: нагрузочное тестирование • Отдельная каста • Имитируют высокую нагрузку на сервис на специализированной среде • Измеряют показатели скорости и качества ответа – Скорость ответа приемлема – Нет отказов IITU Software Testing, 2014 18
  19. 19. Тимлид НагрузочникРазработчик Менеджер Тестировщик Автоматизатор Технический писатель IITU Software Testing, 2014 19
  20. 20. Процесс разработки и тестирования • Разработка ведется по фичам (задачам) • Фича, Feature – законченный элемент системы, отдельная полезная функция IITU Software Testing, 2014 20
  21. 21. Процесс разработки и тестирования • Создается задача – Task, issue, change request, фича, таска… • Реализуется разработчиком • Коммит в бранч • Сборка, юнит-тесты (если есть) • Код ревью • Тестирование в бранче • Мерж в мастер • Сборка релиза по мастеру IITU Software Testing, 2014 21
  22. 22. Процесс тестирования релиза • Создается специальный issue – Какие пакеты и как надо выкатить (для админов) – Какие задачи вошли в релиз и какие есть подводные камни (для тестирования) • Тестирование регрессии – Вручную при каждой сборке; один раз на релиз вручную; каждый раз при сборке – автоматически; выборочно; • Тестирование новых фич – Получить спецификацию на фичу, дополнить, убрать все неясности • Заведение багов • Проверка resolved – исправленных багов • Решение о выкладке в продакшн IITU Software Testing, 2014 22
  23. 23. Методы тестирования • Тестирование по спецификации – В явном виде может и не быть • Исследовательское тестирование • Бета-тестирование • Сравнение с эталоном IITU Software Testing, 2014 23
  24. 24. Технологии и средства тестирования • Дизайн и обсуждение дизайна тестов – Блокнот, ручка, маркер, доска • Коммуникации – Почта, джаббер, телефон, личные и видео встречи • Организация работы – Issue-трекер, вики IITU Software Testing, 2014 24
  25. 25. Технологии и средства тестирования • Инструменты тестирования – Браузер – Командная строка (bash, ssh, diff) – Текстовые редакторы – СКВ – git, svn – Языки программирования, среды разработки (для автотестов) IITU Software Testing, 2014 25
  26. 26. Технологии и средства тестирования • Кастомные инструменты – https://github.com/yandex-qatools/htmlelements – https://github.com/allure-framework – Различные дифферы – Фреймворки… • Jenkins, teamcity • WebDriver (Selenium) IITU Software Testing, 2014 26
  27. 27. Облачные технологии в тестировании IITU Software Testing, 2014 27
  28. 28. Облачные технологии в тестировании • Пример https://github.com/yandex- qatools/htmlelements- examples/blob/master/htmlelements-junit- example/src/test/java/my/company/web/Searc hingByRequestTest.java IITU Software Testing, 2014 28
  29. 29. IITU Software Testing, 2014 29
  30. 30. Облачные технологии в тестировании • Что из этого можно делать удаленно (в облаке)? IITU Software Testing, 2014 30
  31. 31. Облачные технологии в тестировании • Что из этого можно делать удаленно (в облаке)? – Выполнение самого Java кода – Получение браузера IITU Software Testing, 2014 31
  32. 32. Облачные технологии в тестировании • Что из этого можно делать удаленно (в облаке)? – Выполнение самого Java кода – Получение браузера • Так и происходит :) IITU Software Testing, 2014 32
  33. 33. Облачные технологии в тестировании • Другой пример - тестирование serverside • Есть маленькая копия продакшн – тестовый стенд • Тесты на нем можно гонять в один поток • Где здесь применить облако? IITU Software Testing, 2014 33
  34. 34. Облачные технологии в тестировании • Другой пример - тестирование serverside • Есть маленькая копия продакшн – тестовый стенд • Тесты на нем можно гонять в один поток • Где здесь применить облако? • Правильно! – Делать новые стенды по мере надобности – Удалять ненужные IITU Software Testing, 2014 34
  35. 35. Облачные технологии в тестировании • Что еще можно сделать с помощью облака? • Наладить автозапуск тестов: – Jenkins-хук по сборке релиза – Разворачивание тестового стенда – Запуск теста – Отчет приходит в почту • Нам остается только пить кофе :) IITU Software Testing, 2014 35
  36. 36. Методы оценки качества тестирования IITU Software Testing, 2014 36
  37. 37. Методы оценки качества тестирования • Экспертная оценка – Руководитель сервиса – Менеджер – Senior – Руководитель группы тестирования • Статистика – Найденных багов – Пропущенных багов – Критичности тех и других • Скорость тестирования • Измерение code coverage IITU Software Testing, 2014 37
  38. 38. Обязанности и ответственность тестировщика • Тестирование :) • Анализ задачи – Обнаружить нестыковки – Какие нужны доступы, ресурсы • Заведение багов • Отчет о тестировании – «можно катить» – Ссылка на отчет автотестов, с кратким резюме – ок/не ок • Root cause analysis – По пропущенным багам • Ведение документации по тестированию IITU Software Testing, 2014 38

×