Slide 1

Slide 1 text

Организация тестирования в IT-компаниях Академгородка. Карьерный путь тестировщика

Slide 2

Slide 2 text

2  Часть 1: Что такое тестирование вообще Определения тестирования и обеспечения качества. Классификация. Обзор ролей и артефактов тестирования  Часть 2: Тестирование в реальной среде Зависимость тестирования от задачи бизнеса, структуры компании и используемой методологии  Часть 3: Собственно карьера Входные условия. Стоимость. Пути развития Тест-менеджмент

Slide 3

Slide 3 text

Часть 1. Теория 3  Чем мы всё-таки занимаемся? Определение тестирования ПО и качества продукта  Как тестировать?  Кто тестирует?  Жизненный цикл бага Тест-менеджмент

Slide 4

Slide 4 text

Базовые понятия: Качество Продукта 4  По каким критериям мы понимаем, что приложение качественное?  Функциональность — делает ли приложение то, что от него требуется  Надежность — работает ли приложение без сбоев  Производительность — работает ли приложение с приемлемой скоростью  Удобство использования  Если коротко и с практической точки зрения: качество – соответствие требованиям заказчика Тест-менеджмент

Slide 5

Slide 5 text

Базовые понятия: Тестирование 5 Первый баг 09.09.1945г. ученые Гарвардского университета, тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер произнесла этот термин Тест-менеджмент

Slide 6

Slide 6 text

Эволюция представлений о тестировании 6  Проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004]  Техническое исследование программы для получения информации о ее качестве с точки зрения определенного круга заинтересованных лиц. [С. Kaner, 1999]  Это не действие. Это интеллектуальная дисциплина, имеющая целью получение надежного программного обеспечения без излишних усилий на его проверку. [B. Beizer. Software Testing Techniques, Second Edition. NY:van Nostrand Reinhold, 1990]  Процесс наблюдения за выполнением программы в специальных условиях и вынесения на этой основе оценки каких-либо ее аспектов. [ANSI/IEEE standard 610.12- 1990: Glossary of SE Terminology. NY:IEEE, 1987]  Процесс выполнения программы с намерением найти ошибки. [Г.Майерс. Надежность программного обеспечения. М:Мир, 1980] 1980 1987 1990 1999 2004 Тест-менеджмент

Slide 7

Slide 7 text

Эволюция представлений о тестировании 7  Фокус процесса тестирования смещается в сторону проверки требований Тест-менеджмент

Slide 8

Slide 8 text

Цели тестирования 8  Тестирование помогает достичь заданного уровня качества продукта в процессе его разработки  Поиск и определение дефектов, и в идеале - предотвращение Тест-менеджмент

Slide 9

Slide 9 text

9  Тестировщик предоставляет сервис группе разработки  Команда разработки ожидает от тестировщика актуальной и точной информации:  о текущем состоянии программного продукта  прогноза успешности разработки - сможет ли проектная команда поставить продукт в срок и в надлежащем качестве, если сохранятся существующие тенденции обнаружения и исправления дефектов?  Какие корректирующие меры рекомендуется предпринять, если прогноз неблагоприятный? Тест-менеджмент За что отвечает тестировщик

Slide 10

Slide 10 text

 Модульное/Интегрированное  Альфа/Бета  Новой функциональности/Регрессионное/Приемочное  White/Black/Grey box  Test design/Exploratory  Manual/Automated  Функциональное  Нагрузочное  Интерфейса  Безопасности  И тд Классификации тестирования Тест-менеджмент 10

Slide 11

Slide 11 text

Как тестируем: уровни системы 11  Модульный (Unit) уровень Тестирование целостности кода на уровне логических модулей  Интеграционный уровень Тестирование промежуточных результатов разработки системы  Системный уровень Проверка полностью построенной системы на соответствие сформулированным требованиям Тест-менеджмент

Slide 12

Slide 12 text

Как тестируем: снаружи 12 Black box (Functional) Testing  Тестирование с точки зрения конечного пользователя Тест-менеджмент

Slide 13

Slide 13 text

Как тестируем: изнутри 13 White box (Structural) Testing  Анализ приложения на уровне кода:  Ручное (экспертное тестирование кода)  Автоматизированное тестирование инструментами статического анализа Тест-менеджмент

Slide 14

Slide 14 text

Как тестируем: «умные руки» 14 Grey box testing («серый» ящик)  Тестирование с применением знаний о коде приложения и подробностей реализации функциональности Тест-менеджмент

Slide 15

Slide 15 text

Как тестируем: Exploratory testing 15 Тестирование методом свободного поиска  Exploratory – если проводится на незнакомой системе,  Ad hoc- на уже изученной, но спонтанным образом -"на удачу" Тест-менеджмент

Slide 16

Slide 16 text

Как тестируем: тест-дизайн 16  Начинаем с анализа требований заказчика  1 пункт требования = 1 тест кейс  Незаменим при тестировании регрессий, приемочном тестировании  Плюсы  Позволяет дать оценку времени на тестирование  Позволяет зафиксировать требования заказчика  Минусы  Необходимость поддержки тест-планов  При ручном тестировании – проверка на выносливость тестировщика Тест-менеджмент

Slide 17

Slide 17 text

Как это выглядит 17 Тест-менеджмент Test procedure Expected result comment Result Step 1 Click on the button “Voir”. Step result Details of all the selected servers are displayed Pass/Fail/Skipped  Test aim  Pre-condition

Slide 18

Slide 18 text

Как тестируем: автоматизация 18 Тест-менеджмент  capture/playback tools – запись действия тестировщика во время ручного тестирования  сode-driven testing – cоздание теста непосредственно на языке программирования  keyword-driven testing – создание тестов при помощи «ключевых слов». Объединение автоматизации с созданием сценариев тестирования

Slide 19

Slide 19 text

Как это выглядит 19 Тест-менеджмент  ### script UI operation menu “Window/Open Perspective/Other...” | click with [window “Open Perspective”] { table | select-item “My RCP Perspective” button OK | click } • ### ensure that project with a name “foo” exists in the workspace get-projects | any project { project.name() == “foo” } | true

Slide 20

Slide 20 text

Как это выглядит 20 Тест-менеджмент

Slide 21

Slide 21 text

Как тестируем: проверка производительности Тест-менеджмент 21  Тестирование производительности (performance testing) – определение показателей производительности системы при типовой нагрузке.  Нагрузочное (load testing) - определение параметров производительности при максимально прогнозируемой нагрузке на систему  Стрессовое (stress testing) – определение параметров производительности системы в случае ограниченности или недоступности ресурсов  Тестирование надежности (reliability testing) – определение параметров производительности в условиях длительной эксплуатации, в том числе с большими объемами данных

Slide 22

Slide 22 text

Как тестируем  Тестирование интерфейсов  Usability-тестирование  Тестирование безопасности 22 Тест-менеджмент

Slide 23

Slide 23 text

ОСНОВНЫЕ РОЛИ  Тест-менеджер, менеджер проекта по тестированию  Тест-аналитик  Тест-дизайнер  Тестировщик, Инженер по тестированию ВСПОМОГАТЕЛЬНЫЕ РОЛИ  Администратор тестовой системы, приложений поддерживающих жизненный цикл тестирования  Администратор баз данных, менеджер баз данных Обзор ролей и артефактов в тестировании Тест-менеджмент 23

Slide 24

Slide 24 text

Обзор артефактов тестирования (RUP) 24  Дизайнер  Test Strategy  Test Automation Architecture  Test Environment Configuration  Test Suite  Тест-менеджер  Test Plan  Test Evaluation Summary Тест-менеджмент

Slide 25

Slide 25 text

Обзор артефактов тестирования (RUP) 25  Тестировщик ПО  Test script  Test log  Аналитик  Test Case  Test-Ideas List  Workload Analysis Model  Test Data  Test results Тест-менеджмент

Slide 26

Slide 26 text

Обзор ролей и артефактов тестирования (практика) 26  Роли:  Тест-менеджер  Тестировщик (тестировщик-аналитик, тестировщик- программист)  Что используется на практике:  Тест план  Чек-лист/Тест сьют  Тест кейс Тест-менеджмент

Slide 27

Slide 27 text

Типичный алгоритм работы с дефектами Работа с дефектами Тест-менеджмент 27 Open In Progress Resolved - Fixed - As Designed - Deferred - Cannot Reproduce - Obsolete Reopen Verified - Fixed - As Designed - Deferred - Cannot Reproduce - Obsolete Closed

Slide 28

Slide 28 text

Работа с дефектами 28  Правило наименования дефектов «Где? Что? Когда?»  Правила описания дефекта те же, что и для тестового случая. Однако добавляется отличие ожидаемого результата от полученного Тест-менеджмент

Slide 29

Slide 29 text

Часть 2. Реальность Тестирование в компаниях Академгородка 29  Зависимость от задач бизнеса (заинтересованность в тестировании)  Тестирование не воспринимается всерьез. Уровень качества заказчика особо не интересует  Тестирование служит скорее внутренним целям, чем внешним  Тестирование служит критерием сдачи проекта  Специфические задачи - аутсорс тестирования, разработка своей системы автоматизации тестирования  Зависимость от технологий  Можем ли автоматизировать тестирование  Работа с багтрекинговой системой  Зависимость от методологии работы  Scrum  Waterfall  «Сели и сделали»

Slide 30

Slide 30 text

Продуктовые компании/Waterfall 30 Тест-менеджмент  Продуктовые компании/Waterfall  Компании-разработчики собственного ПО  Разработка по каскадной модели – вначале разработка, потом тестирование  Отдельный отдел тестирования  Особенности  Ваша команда – команда тестировщиков  В основном, регрессионное тестирование  Отлаженная схема работы  Есть возможности (и необходимость) не только ручного тестирования  Плюсы, они же минусы  Стабильность

Slide 31

Slide 31 text

Продуктовые компании/Waterfall 31 Тест-менеджмент  Зависимость от задач бизнеса (заинтересованность в тестировании)  Тестирование служит скорее внутренним целям, чем внешним  Следствие  Нет сильной необходимости в детальных тест-планах  Зато есть потребность в автоматизации. Однако потребность в основном со стороны самих тестировщиков  Есть возможности обучения и горизонтального роста. Если повезет, то и вертикального

Slide 32

Slide 32 text

Продуктовые компании по-русски 32 Тест-менеджмент  Зависимость от задач бизнеса (заинтересованность в тестировании)  Тестирование не воспринимается всерьез. Уровень качества заказчика особо не интересует, пока чего-либо не случится  Организация процесса  Доработка существующих модулей по нечетким требованиям заказчика  Как правило, нет выделенного тестировщика. Продукт тестирует либо сам разработчик, либо аналитик  Особенности  Постоянное взаимодействие с разработчиком – при благоприятных условиях, это плюс  С необходимостью организации тестирования смиряются только после больших провалов  Как правило, на тестирование нет денег и времени (на тестирование закладывается 10% времени от всей разработки)

Slide 33

Slide 33 text

Сервисные компании/Scrum 33 Тест-менеджмент  Сервисные компании/Scrum  Компании, выполняющие разработку на заказ  Проекты небольшие и иностранных заказчиков  Использование скрам-методологии  Особенности  Ваша команда – программисты  В основном, проверка новой функциональности. Чем дальше к завершению проекта, тем больше регрессионного тестирования (логично, собственно)  Необходимость демонстрировать результаты работы раз в 2 недели – необходимость критериев качества

Slide 34

Slide 34 text

Сервисные компании/Scrum 34 Тест-менеджмент  Зависимость от задач бизнеса (заинтересованность в тестировании)  Тестирование служит критерием сдачи проекта  В то же время, есть проекты, где заказчик не заинтересован в деталях тестирования. Но оно все равно поддерживается на хорошем уровне  Особенности  Как правило - детальный тест-план. Вам надо очень четко проговаривать, что же именно вы протестировали  Приемочное тестирование  Автоматизация тестирования. Две крайности – при проекте-поддержке возможно автоматизировать все. При проекте-разработке нового ПО слишком мало времени для автоматизации. Хотя, тут больше зависит от технологии  Рост практически невозможен. Углубление умений – да, но рост, горизонтальный или вертикальный – нет.

Slide 35

Slide 35 text

Сервисные компании/Тестирование на аутсорс 35 Тест-менеджмент  Зависимость от задач бизнеса (заинтересованность в тестировании)  Тестирование и есть суть проекта. Разработки нет  Особенности  Обязателен детальный тест-план  Способы тестирования определяются заказчиком  Возможен горизонтальный (если проекты идут разнообразные) или вертикальный рост.

Slide 36

Slide 36 text

Часть 3. Карьерный путь 36  Входные условия  Требуемое образование/опыт, зарплата, обязанности  Опытный тестировщик/QA  Требуемые знания, зарплата, обязанности  Разновидности – QA/аналитик, автоматизатор (функциональное тестирование), автоматизатор (нагрузочное тестирование, производительности) и тд и тп. В принципе специализироватся можно в любом направлении тестирования, если в этом есть необходимость бизнеса  Эволюция тестировщика как тестировщика  Переход в другие профессии IT  Да любые, кроме архитектора. То есть как правило нет проблем перейти в саппорт, аналитику, программирование, внедренца...  Тест-менеджер

Slide 37

Slide 37 text

Часть 3. Карьерный путь 37 Входные условия  Требуемое образование – в принципе любое, но желательно ИТ либо математическое  Опыт – тоже любой. Это неважно  Зарплата – 15/20 т.р.  Обязанности – работа по имеющемуся тест-плану либо просто укажут, что проверить

Slide 38

Slide 38 text

Часть 3. Карьерный путь 38 Опытный тестировщик/QA  Образование здесь уже никого не волнует. Оно становится важным для самого человека  Опыт – важен. Причем уже требуется не просто опыт создания кейсов/сценариев и т.д. Знание языков программирования – чем дальше,тем жестче требование  Зарплата – от 20 т.р. (наивные) до 70 т.р. (выше не видела)  Обязанности – настройка тестовой среды, анализ спецификаций, создание скриптов для автоматизации, тестовая документация...

Slide 39

Slide 39 text

Эволюция тестера или почему тестеры не хотят быть тестерами 39 Надоело верифицировать баги Надоело исполнять тест кейсы Надоело писать тест кейсы Не придумываю фичи Хочу писать код Хочу писать другой код (с) Сергей Олейников, Parallels

Slide 40

Slide 40 text

Карьерный путь «обычного кишиневского ИТшника» 40 Ну очень напомнило Академгородок Обычный кишиневский айтишник большую часть жизни:  мечтает стать программистом,  проводит время в маленьких компаниях,  поддерживает зарубежные долгосрочные проекты,  работает в окружении малочисленного коллектива, большую часть которого составляют вечно приходящие и уходящие «студенты». Затем обычный кишиневский айтишник как следует учит Java, английский вперемешку с французским и навсегда уезжает в Канаду. (с)перто Алексей Лупан testitquickly.com/2010/11/21/37/

Slide 41

Slide 41 text

Эволюция тестера - тест-менеджер 41  Обязанности:  Контроль объема проекта  Планирование и контроль выполнения задач по тестированию  Управление персоналом  Контроль рисков, связанных с тестированием  Мотивация персонала  Но! О тестировании методом свободного поиска и программировании вам, скорее всего, придется забыть Тест-менеджмент

Slide 42

Slide 42 text

Эволюция тестера... 42 ...ограничена исключительно Вашими талантами. Грейс Мюррей Хоппер, нашедшая первый баг, стала контр-адмиралом ВМФ США Тест-менеджмент