55
Тестирование для разработчиков Развенская Ксения & Алюков Влад

Тестирование весна 2013 лекция 1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Тестирование весна 2013 лекция 1

Тестирование для разработчиков

Развенская Ксения & Алюков Влад

Page 2: Тестирование весна 2013 лекция 1

Почему нужен этот курс

• В ВУЗах не уделяют внимания теме качества ПО • Большинство стажеров надо учить с нуля

Page 3: Тестирование весна 2013 лекция 1

Цели курса

Показать:

• Что качество – это важно

• Обеспечение качества – общая задача

А также, что:

• Тестировать – интересно

И научить будущих разработчиков:

• Выпускать более качественный код

Page 4: Тестирование весна 2013 лекция 1

Почему вам полезен этот курс

• Знания и навыки, востребованные в сфере IT

• Привлекательность для работодателей

Page 5: Тестирование весна 2013 лекция 1

О чем пойдет речь в курсе

Расскажем: • Какие виды тестирования бывают, когда

применяются • Как выбирать тесты, чтобы они находили ошибки

Научим:

• Автоматизировать функциональное тестирование

• Писать хорошие юнит-тесты

• Проводить нагрузочные испытания

• Организовывать непрерывное тестирование

Page 6: Тестирование весна 2013 лекция 1

О чем мы не расскажем

• Об организации процесса ручного тестирования

• О тестовой документации:

• составлении тест-планов

• описании тест-кейсов

• построении отчетов о тестировании

• О подробностях всех методологий тестирования

Page 7: Тестирование весна 2013 лекция 1

Структура курса

• 5 лекций (4 ак. часа) • 4 практических занятия

• Тестирование по материалу курса • Форма оценки: зачет/незачет

• Самым активным - автомат

Page 8: Тестирование весна 2013 лекция 1

Поехали!

Page 9: Тестирование весна 2013 лекция 1

Введение

• Интернет – высококонкурентная среда

• >4 млн доменов в Рунете

• ~3000 новых доменов ежедневно

• В России интернетом пользуются ~70 млн человек

Page 10: Тестирование весна 2013 лекция 1

Введение

Качество – ключ к успеху, поэтому сейчас к качеству ПО предъявляются повышенные требования.

Page 11: Тестирование весна 2013 лекция 1

Качество

Page 12: Тестирование весна 2013 лекция 1

Что такое качество?

Первые определения Пригодность к использованию/fitness for use

Joseph Juran

Соответствие требованиям/conformance to requirements

Philip Crosby

Оправдание ожиданий потребителя/meeting the expectations of the customer

Armand Feigenbaum …

Page 13: Тестирование весна 2013 лекция 1

Управление качеством

Page 14: Тестирование весна 2013 лекция 1

Управление качеством

• Plan-Do-Check-Act (PDCA)

• Juran Trilogy (Трилогия Джурана)

• Six Sigma (Шесть сигм)

• Zero Defects (Ноль дефектов)

• Quality Function Deployment (QFD)

• Total Quality Control/Total Quality Management

• Kaizen (Кайдзен)

Page 15: Тестирование весна 2013 лекция 1

Управление качеством

Plan – Do – Check – Act (PDCA) – цикл Шухарта, колесо Деминга Разработан в 1930-х годах Уолтером Шухартом (Bell System) – «цикл улучшений Шухарта».

Цикл состоит из 4 шагов:

• Планирование • Реализация • Проверка • Реакция

Page 16: Тестирование весна 2013 лекция 1

Управление качеством

Трилогия Джурана (Juran Trilogy), 1950-е гг Джозеф М. Джуран (Joseph M. Juran) определил три процесса для управления качеством:

• Планирование качества • Контроль качества • Улучшение качества Первым обосновал переход от контроля качества к управлению.

Page 17: Тестирование весна 2013 лекция 1

Управление качеством

Six Sigma (Шесть сигм), 1986 год Разработана Биллом Смитом (Motorola). В 1990х годах применялась как ключевая стратегия в General Electric.

Суть концепции – минимизация дефектов и статистических отклонений в производственном процессе.

Процесс качеством 6 сигм на выходе дает 99.99966% выходов без дефектов, или не более чем 3.4 дефекта на 1 млн операций.

Page 18: Тестирование весна 2013 лекция 1

Управление качеством

Zero Defects (Ноль дефектов), 1962 год Фил Кросби (Philip Bayard "Phil" Crosby), «Martin»

Завод изготавливал для армии США ракетные снаряды «Першинг».

Для выполнения жестких требований поставки было решено уменьшить до предела время на устранение дефектов, повторные проверки и испытания.

Page 19: Тестирование весна 2013 лекция 1

Управление качеством

Quality Function Deployment (QFD)

Впервые описал доктор Й. Акао, 1966 год.

QFD трансформирует потребности клиентов в технические

характеристики продукции, расставляет приоритеты для каждого

продукта/услуги и одновременно определяет задачи в области

развития.

Основа QFD – построение матрицы, названной в соответствии с ее

формой «Домом качества», в рамках которой фиксируется

информация о качестве продукта и принимаемых решениях.

Page 20: Тестирование весна 2013 лекция 1

Управление качеством

Total Quality Control/Total Quality Management (Всеобщее управление качеством)

Разработал Арманд Фейгенбаум (Armand Vallin Feigenbaum) в 50х гг. Фейгенбаум предложил рассматривать качество не как конечный результат производства изделия, а на каждом этапе его создания. TQM – развитие TQC.

Акцент на потребителя

Вовлечение всего персонала

Внимание к процессам

Решения основаны на фактах

Постоянное улучшение

Page 21: Тестирование весна 2013 лекция 1

Управление качеством

Kaizen (Кайдзен), 1986 год – японская философия или практика, которая фокусируется на непрерывном совершенствовании процессов производства и управления, а также всех аспектов жизни.

Цель кайдзен – производство без потерь.

В Scrum может применяться как процесс устранения помех.

Page 22: Тестирование весна 2013 лекция 1

Модели качества

(ПО)

Page 23: Тестирование весна 2013 лекция 1

Модели качества – McCall, 1977

Характеристики качества: • Факторы • Критерии • Метрики

Треугольник МакКола (факторы качества)

Эксплуатация продукта

Переработка продукта

Внедрение продукта

Сопровождаемость Гибкость Тестопригодность

Переносимость Переиспользуемость

Способность к взаимодействию

Практичность Удобство Надежность Эффективность Целостность

Page 24: Тестирование весна 2013 лекция 1

Модели качества – Boehm, 1978

Критерии МакКолл Боем

Корректность/Correctness * *

Надежность/Reliability * *

Целостность/Integrity * *

Удобство/Usability * *

Эффективность/Efficiency * *

Поддерживаемость/Maintainability * *

Тестопригодность/Testability *

Способность к взаимодействию/Interoperability *

Гибкость/Flexibility * *

Переиспользуемость/Reusability * *

Переносимость/Portability * *

Прозрачность/Clarity *

Изменяемость/Modifiability *

Документированность/Documentation *

Способность к восстановлению/Resilience *

Понятность/Understandability *

Валидность/Адекватность/Validity *

Функциональность/Functionality *

Универсальность/Generality *

Экономическая эффективность/Economy *

Page 25: Тестирование весна 2013 лекция 1

Модели качества – FURPS, 1987

Page 26: Тестирование весна 2013 лекция 1

Модели качества – ISO 9126, 1991, 2001

3 уровня оценки качества: Цели (goals) — то, что мы хотим видеть в ПО. Атрибуты (attributes) —свойства ПО, показывающие приближение к целям. Метрики (metrics) — количественные характеристики степени наличия атрибутов.

Page 27: Тестирование весна 2013 лекция 1

Качество ПО (ГОСТ)

ГОСТ - 28806-90 Качество программного средства: Совокупность свойств программного средства, которые обусловливают его пригодность удовлетворять заданные или подразумеваемые потребности в соответствии с его назначением. • функциональность (functionality) • надежность (reliability) • удобство использования (usability) • эффективность (efficiency) • сопровождаемость (maintainability) • мобильность (portability)

Page 28: Тестирование весна 2013 лекция 1

Модели качества – SQuaRE, 2011

ISO 25010 (Software product Quality Requirements and Evaluation)

Page 29: Тестирование весна 2013 лекция 1

Consortium for IT Software Quality – CISQ Model

Page 30: Тестирование весна 2013 лекция 1

Про стандарты

Page 31: Тестирование весна 2013 лекция 1

И все-таки..

Quality – is value to some person.. * Gerald Weinberg

*У каждого – свое представление о качестве.

Page 32: Тестирование весна 2013 лекция 1

Тестирование

Page 33: Тестирование весна 2013 лекция 1

Тестирование - ISO

Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO, 1990 г). ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.

Page 34: Тестирование весна 2013 лекция 1

Тестирование - ISO

В 1990 году стандартом ISO принято следующее определение тестирования: Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO, 1990 г). ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.

НЕЕЕЕЕЕЕЕЕТ

Page 35: Тестирование весна 2013 лекция 1

Тестирование

Процесс выполнения программы с намерением обнаружить ошибки (Глен Майерс, 1979).

Техническое исследование, которое проводится с целью предоставить заинтересованным лицам информацию о качестве тестируемого продукта (Сэм Канер, 1999). Проверка соответствия реального поведения системы ожидаемому, осуществляемая на конечном наборе тестов, выбранным определенным образом (SWEBOK, 2004).

Page 36: Тестирование весна 2013 лекция 1

QA – QC - Тестирование

Обеспечение качества (Quality Assurance, (S)QA) – деятельность по разработке, внедрению, оценке и усовершенствованию процессов, способствующих созданию качественного продукта (на всех этапах создания ПО).

Контроль качества (Quality Control, QC) – совокупность видов деятельности, направленных на оценку качества выпускаемого продукта и выявление расхождений с требованиями к нему.

Тестирование (Testing) – тестирование, каким мы хотим его видеть, по сути и должно являться контролем качества.

Page 37: Тестирование весна 2013 лекция 1

Верификация и валидация

Верификация – проверка соответствия характеристик продукта заданным требованиям, результатом является вывод о соответствии (или несоответствии). • Статические методы (ex. код-ревью) • Динамические методы (ex. тестирование)

Валидация - анализ заданных областей применения продукта и оценка соответствия характеристик продукта этим условиям.

“Verification: Are we building the product right? Validation: Are we building the right product?”

B. Boehm

Page 38: Тестирование весна 2013 лекция 1

Цели тестирования

• Поиск ошибок

• Оценка качества ПО

• Обеспечение стабильного развития системы

Page 39: Тестирование весна 2013 лекция 1

Зачем разработчикам изучать тестирование

Чтобы писать более качественный код Вовремя завершать проекты по разработке ПО Выпускать в продакшн качественное ПО, даже если на проекте недостаточно или нет тестировщиков Чтобы понимать специалистов по тестированию

Page 40: Тестирование весна 2013 лекция 1

Development Testing

Кривая Боема (Boehm curve)

Page 41: Тестирование весна 2013 лекция 1
Page 42: Тестирование весна 2013 лекция 1

«Development Testing: A New Era In Software Quality», 2011

В 2011 году компанией Forrester Consulting было проведено независимое исследование «Тестирование на стадии разработки: новая эры в качестве ПО». Было опрошено 250+ IT-менеджеров из более 200 компаний.

Page 43: Тестирование весна 2013 лекция 1

«Development Testing: A New Era In Software Quality», 2011

Основные результаты:

• Значимость тестирования на стадии разработки значительно возросла за последние 2 года.

• Чем дольше баги остаются не замеченными, тем выше их стоимость.

• От разработчиков требуют быстрого внедрения новейших технологий, при этом они не могут жертвовать качеством ради скорости.

• Тестирование – одна из основных функций разработчика.

• Отсутствие сотрудничества между разработчиками и тестировщиками увеличивает проектные риски.

Page 44: Тестирование весна 2013 лекция 1

Development Testing: A New Era In Software Quality

Почему тестировать код на стадии разработки сегодня наиболее важно?

Page 45: Тестирование весна 2013 лекция 1

Development Testing: A New Era In Software Quality

Рассматриваете ли вы тестирование как одну из ключевых задач разработчика?

Page 46: Тестирование весна 2013 лекция 1

Development Testing: A New Era In Software Quality

Какие виды тестирования выполняются разработчиками (в вашей компании)?

Page 47: Тестирование весна 2013 лекция 1

Виды тестирования

Page 48: Тестирование весна 2013 лекция 1

Стратегии тестирования

• Тестирование черного ящика/Black-box Testing/Data-Driven • Тестирование стеклянного ящика (белого, прозрачного)/Структурное

тестирование/White-box/Glass-box • Тестирование серого ящика/Grey-box/Комбинированное

Page 49: Тестирование весна 2013 лекция 1

Виды тестирования

По объекту тестирования: • Модульное тестирование (Unit-testing)

• Интеграционное тестирование (Integration testing)

• Системное тестирование (System testing)

Модульное

Интеграционное

Системное

Ручное

Page 50: Тестирование весна 2013 лекция 1

Виды тестирования

По цели тестирования:

• Smoke-тестирование (“дымовое”)

• Sanity-тестирование

• Приемочное тестирование (Acceptance testing)

• Регрессионное тестирование (Regression testing)

• Пользовательское тестирование (альфа- и бета-тестирование)

Page 51: Тестирование весна 2013 лекция 1

Виды тестирования

По типу тестируемых характеристик:

• Функциональное (Functional)

• Нагрузочное тестирование, тестирование производительности

(Load, Performance, Stress, Volume)

• Безопасности и защищенности (Security)

• Удобства использования (Usability)

Page 52: Тестирование весна 2013 лекция 1

Техники тестирования

• На основе спецификации (Specification-based) • На основе выбора входных данных/Доменное (Input Domain-

based) • На основе кода (Code-based)

• Поток управления (control-flow) • Поток данных (data-flow)

• На основе модели (Model-based) • Конечный автомат • Таблица принятия решений • Формальная спецификация

• На основе интуиции и опыта • Ad-hoc • Исследовательское • Прогнозирование ошибок

• … + комбинации

Page 53: Тестирование весна 2013 лекция 1

В следующей лекции

Критерии завершения тестирования

Тестовое покрытие

Критерии выбора тестов

Page 54: Тестирование весна 2013 лекция 1

Материалы

1. Сэм Канер, Джек Фолк, Енг Кек Нгуен “Тестирование программного обеспечения”

2. Г. Майерс “Искусство тестирования программ”, 3-е издание 3. International Organization for Standardization. Software Engineering—Product

Quality—Part 1: Quality Model. ISO, Geneva, Switzerland, 2001. ISO/IEC 9126-1:2001(E).

4. Software Quality Models and Philosophies http://www.bth.se/com/besq.nsf/(WebFiles)/CF1C3230DB425EDCC125706900317C44/$FILE/chapter_1.pdf

5. SWEBOK 2004 http://www.computer.org/portal/web/swebok/htmlformat 6. Forrester Consulting, “Development Testing: A New Era In Software Quality”

Page 55: Тестирование весна 2013 лекция 1

Спасибо за внимание Развенская Ксения, [email protected] Алюков Влад, [email protected]