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

Post on 22-May-2015

392 Views

Category:

Education

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

Предисловие

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

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

2

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

3

Цели курса

4

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

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

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

Профит

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

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

5

О чем курс

Расскажем:

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

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

Научим:

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

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

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

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

6

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

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

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

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

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

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

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

7

Структура

8

Введение

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

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

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

9

Качество

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

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

Joseph Juran

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

Philip Crosby

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

Armand Feigenbaum

10

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

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

Plan-Do-Check-Act (PDCA)

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

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

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

Total Quality Control

Kaizen (Кайдзен)

12

PDCA

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

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

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

• Реализация

• Проверка

• Реакция

13

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

Plan-Do-Check-Act (PDCA)

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

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

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

Total Quality Control

Kaizen (Кайдзен)

14

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

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

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

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

FURPS, 1987

ISO 9126, 1991, 2001

ГОСТ - 28806-90 (!)

SQuaRE, ISO 25010, 2011

16

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

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

• Критерии

• Метрики

17

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

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

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

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

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

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

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

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

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

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

FURPS, 1987

ISO 9126, 1991, 2001

ГОСТ - 28806-90 (!)

SQuaRE, ISO 25010, 2011

18

ГОСТ

19

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

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

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

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

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

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

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

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

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

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

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

FURPS, 1987

ISO 9126, 1991, 2001

ГОСТ - 28806-90 (!)

SQuaRE, ISO 25010, 2011

20

SQuaRE

21

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

22

И все-таки

Quality – is value to some person.. *

Gerald Weinberg

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

23

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

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

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

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

25

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

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

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

26

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

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

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

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

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

27

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

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

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

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

28

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

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

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

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

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

29

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

B. Boehm

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

Поиск ошибок

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

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

30

Development testing

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

31

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

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

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

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

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

32

Кривая Боема

33

Кривая Боема

34

35

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

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

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

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

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

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

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

36

37

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

38

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

39

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

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

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

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

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

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

41

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

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

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

(Unit-testing)

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

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

(System testing)

42

Модульное

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

Системное

Ручное

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

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

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

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

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

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

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

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

43

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

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

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

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

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

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

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

44

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

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

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

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

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

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

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

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

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

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

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

• Ad-hoc

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

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

+ комбинации

45

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

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

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

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

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

46

Материалы

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

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

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

k.razvenskaya@corp.mail.ru

48

top related