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

48
Обеспечение качества в разработке ПО Развенская Ксения и Влад Алюков

Upload: technopark

Post on 22-May-2015

392 views

Category:

Education


0 download

TRANSCRIPT

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

Обеспечение качества в

разработке ПО

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

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

Предисловие

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

случае приходит с опытом

2

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

Опрос разработчиков Поиска

3

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

Цели курса

4

Качество – это важно

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

Как повысить качество разработки

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

Профит

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

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

5

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

О чем курс

Расскажем:

Какие виды тестирования есть, когда применяются

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

Научим:

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

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

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

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

6

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

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

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

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

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

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

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

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

7

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

Структура

8

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

Введение

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

Выживает сильнейший

Качество – ключ к успеху

9

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

Качество

Первые определения

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

Joseph Juran

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

Philip Crosby

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

Armand Feigenbaum

10

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

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

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

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

Plan-Do-Check-Act (PDCA)

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

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

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

Total Quality Control

Kaizen (Кайдзен)

12

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

PDCA

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

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

• Планирование

• Реализация

• Проверка

• Реакция

13

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

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

Plan-Do-Check-Act (PDCA)

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

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

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

Total Quality Control

Kaizen (Кайдзен)

14

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

Моделикачества (ПО)

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

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

Модель МакКола (McCall), 1977

Модель Боема, 1978

FURPS, 1987

ISO 9126, 1991, 2001

ГОСТ - 28806-90 (!)

SQuaRE, ISO 25010, 2011

16

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

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

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

• Критерии

• Метрики

17

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

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

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

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

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

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

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

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

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

Модель МакКола (McCall), 1977

Модель Боема, 1978

FURPS, 1987

ISO 9126, 1991, 2001

ГОСТ - 28806-90 (!)

SQuaRE, ISO 25010, 2011

18

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

ГОСТ

19

Качество программного средства:

Совокупность свойств программного средства, которые обусловливают его пригодность удовлетворять заданные или подразумеваемые потребности в соответствии с его назначением.

функциональность (functionality)

надежность (reliability)

удобство использования (usability)

эффективность (efficiency)

сопровождаемость (maintainability)

мобильность (portability)

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

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

Модель МакКола (McCall), 1977

Модель Боема, 1978

FURPS, 1987

ISO 9126, 1991, 2001

ГОСТ - 28806-90 (!)

SQuaRE, ISO 25010, 2011

20

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

SQuaRE

21

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

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

22

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

И все-таки

Quality – is value to some person.. *

Gerald Weinberg

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

23

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

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

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

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

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

ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.

25

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

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

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

ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.

26

НЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕТ

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

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

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

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

Проверка соответствия реального поведения системы ожидаемому, осуществляемая на конечном наборе тестов, выбранным определенным образом (SWEBOK, 2004).

27

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

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

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

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

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

28

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

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

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

Статические методы (ex. код-ревью)

Динамические методы (ex. тестирование)

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

29

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

B. Boehm

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

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

Поиск ошибок

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

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

30

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

Development testing

Development Testing (Тестирование на стадии разработки) –процессы и методы в разработке ПО, направленные на раннее обнаружение дефектов и повышение качества кода.

31

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

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

Чтобы писать более качественный код

Вовремя завершать проекты по разработке ПО

Выпускать в продакшн качественное ПО, даже если на проекте недостаточно или нет тестировщиков

Чтобы понимать специалистов по тестированию

32

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

Кривая Боема

33

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

Кривая Боема

34

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

35

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

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

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

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

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

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

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

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

36

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

37

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

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

38

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

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

39

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

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

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

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

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

Тестирование черного ящика/Black-box Testing/Data-Driven

Тестирование белого ящика (стеклянного, прозрачного)/Структурное тестирование/White-box/Glass-box

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

41

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

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

По объекту тестирования:

Модульное тестирование

(Unit-testing)

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

Системное тестирование

(System testing)

42

Модульное

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

Системное

Ручное

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

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

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

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

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

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

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

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

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

43

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

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

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

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

Нагрузочное тестирование, тестирование

производительности (Load, Performance, Stress, Volume)

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

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

44

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

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

На основе спецификации (Specification-based)

• На основе выбора входных данных/Доменное (Input Domain-based)

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

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

• Поток данных (data-flow)

На основе модели (Model-based)

• Конечный автомат

• Таблица принятия решений

• Формальная спецификация

На основе интуиции и опыта

• Ad-hoc

• Исследовательское

• Прогнозирование ошибок

+ комбинации

45

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

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

Какой ты тестировщик?

Вся правда о тестовом покрытии

Как выбрать тест-кейсы, чтобы обнаружить баги

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

46

Page 47: Тестирование весна 2014 лекция 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. http://www.testingeducation.org/BBST/foundations/

7. Forrester Consulting, “Development Testing: A New Era In Software Quality”

8. http://www.intuit.ru/department/se/testing/3/2.html

47

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

Спасибо за внимание!

Развенская Ксения,

[email protected]

48