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