Тестирование весна 2014 лекция 1
TRANSCRIPT
![Page 1: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/1.jpg)
Обеспечение качества в
разработке ПО
Развенская Ксения и Влад Алюков
![Page 2: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/2.jpg)
Предисловие
В ВУЗах не уделяют внимания теме качества ПО Понимание необходимости тестировать продукт в лучшем
случае приходит с опытом
2
![Page 3: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/3.jpg)
Опрос разработчиков Поиска
3
![Page 4: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/4.jpg)
Цели курса
4
Качество – это важно
Обеспечение качества – общая задача
Как повысить качество разработки
![Page 5: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/5.jpg)
Профит
Знания и навыки, востребованные в сфере IT
Привлекательность для работодателей
5
![Page 6: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/6.jpg)
О чем курс
Расскажем:
Какие виды тестирования есть, когда применяются
Как выбирать тесты, чтобы они находили ошибки
Научим:
Автоматизировать функциональное тестирование
Писать хорошие юнит-тесты
Проводить нагрузочные испытания
Организовывать непрерывное тестирование
6
![Page 7: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/7.jpg)
О чем мы не расскажем
Об организации процесса ручного тестирования
О тестовой документации:
составлении тест-планов
описании тест-кейсов
построении отчетов о тестировании
О подробностях всех методологий тестирования
7
![Page 8: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/8.jpg)
Структура
8
![Page 9: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/9.jpg)
Введение
Интернет – высококонкурентная среда
Выживает сильнейший
Качество – ключ к успеху
9
![Page 10: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/10.jpg)
Качество
Первые определения
Пригодность к использованию/fitness for use
Joseph Juran
Соответствие требованиям/conformance torequirements
Philip Crosby
Оправдание ожиданий потребителя/meeting the expectations of the customer
Armand Feigenbaum
…
10
![Page 11: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/11.jpg)
Управлениекачеством
![Page 12: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/12.jpg)
Управление качеством
Plan-Do-Check-Act (PDCA)
Juran Trilogy (Трилогия Джурана)
Six Sigma (Шесть сигм)
Zero Defects (Ноль дефектов)
Total Quality Control
Kaizen (Кайдзен)
…
12
![Page 13: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/13.jpg)
PDCA
Plan – Do – Check – Act (PDCA) – цикл Шухарта, колесо Деминга. Разработан в 1930-х годах Уолтером Шухартом (Bell System) – «цикл улучшений Шухарта». Концепция получила известность благодаря Эдварду Демингу, который в 1950х годах активно пропагандировал ее в качестве основного способа повышения качества.
Цикл состоит из 4 шагов:
• Планирование
• Реализация
• Проверка
• Реакция
13
![Page 14: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/14.jpg)
Управление качеством
Plan-Do-Check-Act (PDCA)
Juran Trilogy (Трилогия Джурана)
Six Sigma (Шесть сигм)
Zero Defects (Ноль дефектов)
Total Quality Control
Kaizen (Кайдзен)
…
14
![Page 15: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/15.jpg)
Моделикачества (ПО)
![Page 16: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/16.jpg)
Модели качества ПО
Модель МакКола (McCall), 1977
Модель Боема, 1978
FURPS, 1987
ISO 9126, 1991, 2001
ГОСТ - 28806-90 (!)
SQuaRE, ISO 25010, 2011
…
16
![Page 17: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/17.jpg)
Модели качества ПО, McCall 1977
Характеристики качества:• Факторы
• Критерии
• Метрики
17
Эксплуатация продукта
Переработка продукта
Внедрениепродукта
СопровождаемостьГибкостьТестопригодность
ПереносимостьПереиспользуемость
Способность к взаимодействию
Практичность Удобство Надежность Эффективность Целостность
![Page 18: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/18.jpg)
Модели качества ПО
Модель МакКола (McCall), 1977
Модель Боема, 1978
FURPS, 1987
ISO 9126, 1991, 2001
ГОСТ - 28806-90 (!)
SQuaRE, ISO 25010, 2011
…
18
![Page 19: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/19.jpg)
ГОСТ
19
Качество программного средства:
Совокупность свойств программного средства, которые обусловливают его пригодность удовлетворять заданные или подразумеваемые потребности в соответствии с его назначением.
функциональность (functionality)
надежность (reliability)
удобство использования (usability)
эффективность (efficiency)
сопровождаемость (maintainability)
мобильность (portability)
![Page 20: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/20.jpg)
Модели качества ПО
Модель МакКола (McCall), 1977
Модель Боема, 1978
FURPS, 1987
ISO 9126, 1991, 2001
ГОСТ - 28806-90 (!)
SQuaRE, ISO 25010, 2011
…
20
![Page 21: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/21.jpg)
SQuaRE
21
![Page 22: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/22.jpg)
Про стандарты
22
![Page 23: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/23.jpg)
И все-таки
Quality – is value to some person.. *
Gerald Weinberg
*У каждого – свое представление о качестве.
23
![Page 24: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/24.jpg)
Тестирование
![Page 25: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/25.jpg)
Тестирование, ISO
Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO, 1990 г).
ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.
25
![Page 26: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/26.jpg)
Тестирование, ISO
Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO, 1990 г).
ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.
26
НЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕЕТ
![Page 27: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/27.jpg)
Тестирование
Процесс выполнения программы с намерением обнаружить ошибки (Глен Майерс, 1979).
Техническое исследование, которое проводится с целью предоставить заинтересованным лицам информацию о качестве тестируемого продукта (Сэм Канер, 1999).
Проверка соответствия реального поведения системы ожидаемому, осуществляемая на конечном наборе тестов, выбранным определенным образом (SWEBOK, 2004).
27
![Page 28: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/28.jpg)
QA – QC - Тестирование
Обеспечение качества (Quality Assurance, (S)QA) –деятельность по разработке, внедрению, оценке и усовершенствованию процессов, способствующих созданию качественного продукта (на всех этапах создания ПО).
Контроль качества (Quality Control, QC) – совокупность видов деятельности, направленных на оценку качества выпускаемого продукта и выявление расхождений с требованиями к нему.
Тестирование (Testing) – тестирование, каким мы хотим его видеть, по сути и должно являться контролем качества.
28
![Page 29: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/29.jpg)
Верификация и валидация
Верификация – проверка соответствия характеристик продукта заданным требованиям, результатом является вывод о соответствии (или несоответствии).
Статические методы (ex. код-ревью)
Динамические методы (ex. тестирование)
Валидация - анализ заданных областей применения продукта и оценка соответствия характеристик продукта этим условиям.
29
“Verification: Are we building the product right?Validation: Are we building the right product?”
B. Boehm
![Page 30: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/30.jpg)
Цели тестирования
Поиск ошибок
Оценка качества ПО
Обеспечение стабильного развития системы
30
![Page 31: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/31.jpg)
Development testing
Development Testing (Тестирование на стадии разработки) –процессы и методы в разработке ПО, направленные на раннее обнаружение дефектов и повышение качества кода.
31
![Page 32: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/32.jpg)
Зачем разработчикам уметь тестировать
Чтобы писать более качественный код
Вовремя завершать проекты по разработке ПО
Выпускать в продакшн качественное ПО, даже если на проекте недостаточно или нет тестировщиков
Чтобы понимать специалистов по тестированию
32
![Page 33: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/33.jpg)
Кривая Боема
33
![Page 34: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/34.jpg)
Кривая Боема
34
![Page 35: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/35.jpg)
35
В 2011 году компанией Forrester Consulting было проведено независимое исследование «Тестирование на стадии разработки: новая эра в качестве ПО». Было опрошено 250+ IT-менеджеров из более 200 компаний.
![Page 36: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/36.jpg)
Основные результаты:
Значимость тестирования на стадии разработки значительно возросла за последние 2 года.
Чем дольше баги остаются не замеченными, тем выше их стоимость.
От разработчиков требуют быстрого внедрения новейших технологий, при этом они не могут жертвовать качеством ради скорости.
Тестирование – одна из основных функций разработчика.
Отсутствие сотрудничества между разработчиками и тестировщиками увеличивает проектные риски.
36
![Page 37: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/37.jpg)
37
Почему тестировать код на стадии разработки сегодня наиболее важно?
![Page 38: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/38.jpg)
38
Рассматриваете ли вы тестирование как одну из ключевых задач разработчика?
![Page 39: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/39.jpg)
39
Какие виды тестирования выполняются разработчиками (в вашей компании)?
![Page 40: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/40.jpg)
Видытестирования
![Page 41: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/41.jpg)
Стратегии тестирования
Тестирование черного ящика/Black-box Testing/Data-Driven
Тестирование белого ящика (стеклянного, прозрачного)/Структурное тестирование/White-box/Glass-box
Тестирование серого ящика/Grey-box/Комбинированное
41
![Page 42: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/42.jpg)
Виды тестирования
По объекту тестирования:
Модульное тестирование
(Unit-testing)
Интеграционное тестирование (Integration testing)
Системное тестирование
(System testing)
42
Модульное
Интеграционное
Системное
Ручное
![Page 43: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/43.jpg)
Виды тестирования
По цели тестирования:
Smoke-тестирование (“дымовое”)
Sanity-тестирование
Приемочное тестирование (Acceptance testing)
Регрессионное тестирование (Regression testing)
Пользовательское тестирование (альфа- и бета-
тестирование)
43
![Page 44: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/44.jpg)
Виды тестирования
По типу тестируемых характеристик:
Функциональное (Functional)
Нагрузочное тестирование, тестирование
производительности (Load, Performance, Stress, Volume)
Безопасности и защищенности (Security)
Удобства использования (Usability)
…
44
![Page 45: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/45.jpg)
Техники тестирования
На основе спецификации (Specification-based)
• На основе выбора входных данных/Доменное (Input Domain-based)
На основе кода (Code-based)
• Поток управления (control-flow)
• Поток данных (data-flow)
На основе модели (Model-based)
• Конечный автомат
• Таблица принятия решений
• Формальная спецификация
На основе интуиции и опыта
• Ad-hoc
• Исследовательское
• Прогнозирование ошибок
…
+ комбинации
45
![Page 46: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/46.jpg)
В следующей лекции
Какой ты тестировщик?
Вся правда о тестовом покрытии
Как выбрать тест-кейсы, чтобы обнаружить баги
Критерии завершения тестирования
46
![Page 47: Тестирование весна 2014 лекция 1](https://reader033.vdocuments.pub/reader033/viewer/2022052505/555e1a6cd8b42a99188b5872/html5/thumbnails/47.jpg)
Материалы
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