и обеспечения качества. Классификация. Обзор ролей и артефактов тестирования Часть 2: Тестирование в реальной среде Зависимость тестирования от задачи бизнеса, структуры компании и используемой методологии Часть 3: Собственно карьера Входные условия. Стоимость. Пути развития Тест-менеджмент
понимаем, что приложение качественное? Функциональность — делает ли приложение то, что от него требуется Надежность — работает ли приложение без сбоев Производительность — работает ли приложение с приемлемой скоростью Удобство использования Если коротко и с практической точки зрения: качество – соответствие требованиям заказчика Тест-менеджмент
тестировавшие вычислительную машину Mark II Aiken Relay Calculator, нашли мотылька, застрявшего между контактами электромеханического реле, и Грейс Хоппер произнесла этот термин Тест-менеджмент
поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [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 Тест-менеджмент
ожидает от тестировщика актуальной и точной информации: о текущем состоянии программного продукта прогноза успешности разработки - сможет ли проектная команда поставить продукт в срок и в надлежащем качестве, если сохранятся существующие тенденции обнаружения и исправления дефектов? Какие корректирующие меры рекомендуется предпринять, если прогноз неблагоприятный? Тест-менеджмент За что отвечает тестировщик
Test design/Exploratory Manual/Automated Функциональное Нагрузочное Интерфейса Безопасности И тд Классификации тестирования Тест-менеджмент 10
целостности кода на уровне логических модулей Интеграционный уровень Тестирование промежуточных результатов разработки системы Системный уровень Проверка полностью построенной системы на соответствие сформулированным требованиям Тест-менеджмент
1 пункт требования = 1 тест кейс Незаменим при тестировании регрессий, приемочном тестировании Плюсы Позволяет дать оценку времени на тестирование Позволяет зафиксировать требования заказчика Минусы Необходимость поддержки тест-планов При ручном тестировании – проверка на выносливость тестировщика Тест-менеджмент
действия тестировщика во время ручного тестирования сode-driven testing – cоздание теста непосредственно на языке программирования keyword-driven testing – создание тестов при помощи «ключевых слов». Объединение автоматизации с созданием сценариев тестирования
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
testing) – определение показателей производительности системы при типовой нагрузке. Нагрузочное (load testing) - определение параметров производительности при максимально прогнозируемой нагрузке на систему Стрессовое (stress testing) – определение параметров производительности системы в случае ограниченности или недоступности ресурсов Тестирование надежности (reliability testing) – определение параметров производительности в условиях длительной эксплуатации, в том числе с большими объемами данных
Тест-дизайнер Тестировщик, Инженер по тестированию ВСПОМОГАТЕЛЬНЫЕ РОЛИ Администратор тестовой системы, приложений поддерживающих жизненный цикл тестирования Администратор баз данных, менеджер баз данных Обзор ролей и артефактов в тестировании Тест-менеджмент 23
Тест-менеджер Тестировщик (тестировщик-аналитик, тестировщик- программист) Что используется на практике: Тест план Чек-лист/Тест сьют Тест кейс Тест-менеджмент
от задач бизнеса (заинтересованность в тестировании) Тестирование не воспринимается всерьез. Уровень качества заказчика особо не интересует Тестирование служит скорее внутренним целям, чем внешним Тестирование служит критерием сдачи проекта Специфические задачи - аутсорс тестирования, разработка своей системы автоматизации тестирования Зависимость от технологий Можем ли автоматизировать тестирование Работа с багтрекинговой системой Зависимость от методологии работы Scrum Waterfall «Сели и сделали»
ПО Разработка по каскадной модели – вначале разработка, потом тестирование Отдельный отдел тестирования Особенности Ваша команда – команда тестировщиков В основном, регрессионное тестирование Отлаженная схема работы Есть возможности (и необходимость) не только ручного тестирования Плюсы, они же минусы Стабильность
в тестировании) Тестирование служит скорее внутренним целям, чем внешним Следствие Нет сильной необходимости в детальных тест-планах Зато есть потребность в автоматизации. Однако потребность в основном со стороны самих тестировщиков Есть возможности обучения и горизонтального роста. Если повезет, то и вертикального
(заинтересованность в тестировании) Тестирование не воспринимается всерьез. Уровень качества заказчика особо не интересует, пока чего-либо не случится Организация процесса Доработка существующих модулей по нечетким требованиям заказчика Как правило, нет выделенного тестировщика. Продукт тестирует либо сам разработчик, либо аналитик Особенности Постоянное взаимодействие с разработчиком – при благоприятных условиях, это плюс С необходимостью организации тестирования смиряются только после больших провалов Как правило, на тестирование нет денег и времени (на тестирование закладывается 10% времени от всей разработки)
разработку на заказ Проекты небольшие и иностранных заказчиков Использование скрам-методологии Особенности Ваша команда – программисты В основном, проверка новой функциональности. Чем дальше к завершению проекта, тем больше регрессионного тестирования (логично, собственно) Необходимость демонстрировать результаты работы раз в 2 недели – необходимость критериев качества
в тестировании) Тестирование служит критерием сдачи проекта В то же время, есть проекты, где заказчик не заинтересован в деталях тестирования. Но оно все равно поддерживается на хорошем уровне Особенности Как правило - детальный тест-план. Вам надо очень четко проговаривать, что же именно вы протестировали Приемочное тестирование Автоматизация тестирования. Две крайности – при проекте-поддержке возможно автоматизировать все. При проекте-разработке нового ПО слишком мало времени для автоматизации. Хотя, тут больше зависит от технологии Рост практически невозможен. Углубление умений – да, но рост, горизонтальный или вертикальный – нет.
бизнеса (заинтересованность в тестировании) Тестирование и есть суть проекта. Разработки нет Особенности Обязателен детальный тест-план Способы тестирования определяются заказчиком Возможен горизонтальный (если проекты идут разнообразные) или вертикальный рост.
образование/опыт, зарплата, обязанности Опытный тестировщик/QA Требуемые знания, зарплата, обязанности Разновидности – QA/аналитик, автоматизатор (функциональное тестирование), автоматизатор (нагрузочное тестирование, производительности) и тд и тп. В принципе специализироватся можно в любом направлении тестирования, если в этом есть необходимость бизнеса Эволюция тестировщика как тестировщика Переход в другие профессии IT Да любые, кроме архитектора. То есть как правило нет проблем перейти в саппорт, аналитику, программирование, внедренца... Тест-менеджер
– в принципе любое, но желательно ИТ либо математическое Опыт – тоже любой. Это неважно Зарплата – 15/20 т.р. Обязанности – работа по имеющемуся тест-плану либо просто укажут, что проверить
уже никого не волнует. Оно становится важным для самого человека Опыт – важен. Причем уже требуется не просто опыт создания кейсов/сценариев и т.д. Знание языков программирования – чем дальше,тем жестче требование Зарплата – от 20 т.р. (наивные) до 70 т.р. (выше не видела) Обязанности – настройка тестовой среды, анализ спецификаций, создание скриптов для автоматизации, тестовая документация...
Надоело верифицировать баги Надоело исполнять тест кейсы Надоело писать тест кейсы Не придумываю фичи Хочу писать код Хочу писать другой код (с) Сергей Олейников, Parallels
Обычный кишиневский айтишник большую часть жизни: мечтает стать программистом, проводит время в маленьких компаниях, поддерживает зарубежные долгосрочные проекты, работает в окружении малочисленного коллектива, большую часть которого составляют вечно приходящие и уходящие «студенты». Затем обычный кишиневский айтишник как следует учит Java, английский вперемешку с французским и навсегда уезжает в Канаду. (с)перто Алексей Лупан testitquickly.com/2010/11/21/37/
проекта Планирование и контроль выполнения задач по тестированию Управление персоналом Контроль рисков, связанных с тестированием Мотивация персонала Но! О тестировании методом свободного поиска и программировании вам, скорее всего, придется забыть Тест-менеджмент