SlideShare ist ein Scribd-Unternehmen logo
1 von 55
Downloaden Sie, um offline zu lesen
Тестирование для
разработчиков
Развенская Ксения & Алюков Влад
Почему нужен этот курс
• В ВУЗах не уделяют внимания теме качества ПО
• Большинство стажеров надо учить с нуля
Цели курса
Показать:
• Что качество – это важно
• Обеспечение качества – общая задача
А также, что:
• Тестировать – интересно
И научить будущих разработчиков:
• Выпускать более качественный код
Почему вам полезен этот курс
• Знания и навыки, востребованные в сфере IT
• Привлекательность для работодателей
О чем пойдет речь
в курсе
Расскажем:
• Какие виды тестирования бывают, когда
применяются
• Как выбирать тесты, чтобы они находили ошибки
Научим:
• Автоматизировать функциональное тестирование
• Писать хорошие юнит-тесты
• Проводить нагрузочные испытания
• Организовывать непрерывное тестирование
О чем мы не расскажем
• Об организации процесса ручного тестирования
• О тестовой документации:
• составлении тест-планов
• описании тест-кейсов
• построении отчетов о тестировании
• О подробностях всех методологий тестирования
Структура курса
• 5 лекций (4 ак. часа)
• 4 практических занятия
• Тестирование по материалу курса
• Форма оценки: зачет/незачет
• Самым активным - автомат
Поехали!
Введение
• Интернет – высококонкурентная среда
• >4 млн доменов в Рунете
• ~3000 новых доменов ежедневно
• В России интернетом пользуются
~70 млн человек
Введение
Качество – ключ к успеху, поэтому сейчас к
качеству ПО предъявляются повышенные
требования.
Качество
Что такое качество?
Первые определения
Пригодность к использованию/fitness for use
Joseph Juran
Соответствие требованиям/conformance to
requirements
Philip Crosby
Оправдание ожиданий потребителя/meeting the
expectations of the customer
Armand Feigenbaum
…
Управление
качеством
Управление качеством
• Plan-Do-Check-Act (PDCA)
• Juran Trilogy (Трилогия Джурана)
• Six Sigma (Шесть сигм)
• Zero Defects (Ноль дефектов)
• Quality Function Deployment (QFD)
• Total Quality Control/Total Quality Management
• Kaizen (Кайдзен)
Управление качеством
Plan – Do – Check – Act (PDCA) – цикл Шухарта, колесо Деминга
Разработан в 1930-х годах Уолтером Шухартом (Bell System) – «цикл
улучшений Шухарта».
Цикл состоит из 4 шагов:
• Планирование
• Реализация
• Проверка
• Реакция
Управление качеством
Трилогия Джурана (Juran Trilogy), 1950-е гг
Джозеф М. Джуран (Joseph M. Juran) определил три процесса для
управления качеством:
• Планирование качества
• Контроль качества
• Улучшение качества
Первым обосновал переход от контроля качества к управлению.
Управление качеством
Six Sigma (Шесть сигм), 1986 год
Разработана Биллом Смитом (Motorola).
В 1990х годах применялась как ключевая стратегия в General Electric.
Суть концепции – минимизация дефектов и статистических
отклонений в производственном процессе.
Процесс качеством 6 сигм на выходе дает 99.99966% выходов без
дефектов, или не более чем 3.4 дефекта на 1 млн операций.
Управление качеством
Zero Defects (Ноль дефектов), 1962 год
Фил Кросби (Philip Bayard "Phil" Crosby), «Martin»
Завод изготавливал для армии США ракетные снаряды «Першинг».
Для выполнения жестких требований поставки было решено
уменьшить до предела время на устранение дефектов, повторные
проверки и испытания.
Управление качеством
Quality Function Deployment (QFD)
Впервые описал доктор Й. Акао, 1966 год.
QFD трансформирует потребности клиентов в технические
характеристики продукции, расставляет приоритеты для каждого
продукта/услуги и одновременно определяет задачи в области
развития.
Основа QFD – построение матрицы, названной в соответствии с ее
формой «Домом качества», в рамках которой фиксируется
информация о качестве продукта и принимаемых решениях.
Управление качеством
Total Quality Control/Total Quality Management (Всеобщее
управление качеством)
Разработал Арманд Фейгенбаум (Armand Vallin Feigenbaum) в 50х гг.
Фейгенбаум предложил рассматривать качество не как конечный
результат производства изделия, а на каждом этапе его создания.
TQM – развитие TQC.
Акцент на
потребителя
Вовлечение
всего
персонала
Внимание к
процессам
Решения
основаны на
фактах
Постоянное
улучшение
Управление качеством
Kaizen (Кайдзен), 1986 год – японская философия или
практика, которая фокусируется на непрерывном
совершенствовании процессов производства и
управления, а также всех аспектов жизни.
Цель кайдзен – производство без потерь.
В Scrum может применяться как процесс устранения
помех.
Модели
качества
(ПО)
Модели качества – McCall, 1977
Характеристики качества:
• Факторы
• Критерии
• Метрики
Треугольник МакКола (факторы качества)
Эксплуатация
продукта
Переработка
продукта
Внедрение
продукта
Сопровождаемость
Гибкость
Тестопригодность
Переносимость
Переиспользуемость
Способность к взаимодействию
Практичность Удобство Надежность Эффективность Целостность
Модели качества – Boehm, 1978
Критерии МакКолл Боем
Корректность/Correctness * *
Надежность/Reliability * *
Целостность/Integrity * *
Удобство/Usability * *
Эффективность/Efficiency * *
Поддерживаемость/Maintainability * *
Тестопригодность/Testability *
Способность к взаимодействию/Interoperability *
Гибкость/Flexibility * *
Переиспользуемость/Reusability * *
Переносимость/Portability * *
Прозрачность/Clarity *
Изменяемость/Modifiability *
Документированность/Documentation *
Способность к восстановлению/Resilience *
Понятность/Understandability *
Валидность/Адекватность/Validity *
Функциональность/Functionality *
Универсальность/Generality *
Экономическая эффективность/Economy *
Модели качества – FURPS,
1987
Модели качества – ISO 9126,
1991, 2001
3 уровня оценки качества:
Цели (goals) — то, что мы хотим видеть в ПО.
Атрибуты (attributes) —свойства ПО, показывающие приближение к
целям.
Метрики (metrics) — количественные характеристики степени
наличия атрибутов.
Качество ПО (ГОСТ)
ГОСТ - 28806-90
Качество программного средства:
Совокупность свойств программного средства, которые обусловливают
его пригодность удовлетворять заданные или подразумеваемые
потребности в соответствии с его назначением.
• функциональность (functionality)
• надежность (reliability)
• удобство использования (usability)
• эффективность (efficiency)
• сопровождаемость (maintainability)
• мобильность (portability)
Модели качества – SQuaRE,
2011
ISO 25010 (Software
product Quality
Requirements and
Evaluation)
Consortium for IT
Software Quality – CISQ Model
Про стандарты
И все-таки..
Quality – is value to some person.. *
Gerald Weinberg
*У каждого – свое представление о
качестве.
Тестирование
Тестирование - ISO
Тестирование — это наблюдение за функционированием ПО в
специфических условиях с целью определения степени соответствия ПО
требованиям к нему (ISO, 1990 г).
ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.
Тестирование - ISO
В 1990 году стандартом ISO принято следующее определение
тестирования:
Тестирование — это наблюдение за функционированием ПО в
специфических условиях с целью определения степени соответствия ПО
требованиям к нему (ISO, 1990 г).
ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.
НЕЕЕЕЕЕЕЕЕТ
Тестирование
Процесс выполнения программы с намерением обнаружить
ошибки (Глен Майерс, 1979).
Техническое исследование, которое проводится с целью
предоставить заинтересованным лицам информацию о качестве
тестируемого продукта (Сэм Канер, 1999).
Проверка соответствия реального поведения системы
ожидаемому, осуществляемая на конечном наборе тестов,
выбранным определенным образом (SWEBOK, 2004).
QA – QC - Тестирование
Обеспечение качества (Quality Assurance, (S)QA) – деятельность по
разработке, внедрению, оценке и усовершенствованию процессов,
способствующих созданию качественного продукта (на всех этапах
создания ПО).
Контроль качества (Quality Control, QC) – совокупность видов
деятельности, направленных на оценку качества выпускаемого продукта и
выявление расхождений с требованиями к нему.
Тестирование (Testing) – тестирование, каким мы хотим его видеть, по
сути и должно являться контролем качества.
Верификация и валидация
Верификация – проверка соответствия характеристик продукта заданным
требованиям, результатом является вывод о соответствии (или
несоответствии).
• Статические методы (ex. код-ревью)
• Динамические методы (ex. тестирование)
Валидация - анализ заданных областей применения продукта и оценка
соответствия характеристик продукта этим условиям.
“Verification: Are we building the product right?
Validation: Are we building the right product?”
B. Boehm
Цели тестирования
• Поиск ошибок
• Оценка качества ПО
• Обеспечение стабильного развития системы
Зачем разработчикам
изучать тестирование
Чтобы писать более качественный код
Вовремя завершать проекты по разработке ПО
Выпускать в продакшн качественное ПО, даже если на
проекте недостаточно или нет тестировщиков
Чтобы понимать специалистов по тестированию
Development Testing
Кривая Боема (Boehm curve)
«Development Testing: A New Era In
Software Quality», 2011
В 2011 году компанией Forrester Consulting было проведено независимое
исследование «Тестирование на стадии разработки: новая эры в
качестве ПО». Было опрошено 250+ IT-менеджеров из более 200
компаний.
«Development Testing: A New Era In
Software Quality», 2011
Основные результаты:
• Значимость тестирования на стадии разработки значительно
возросла за последние 2 года.
• Чем дольше баги остаются не замеченными, тем выше их стоимость.
• От разработчиков требуют быстрого внедрения новейших технологий,
при этом они не могут жертвовать качеством ради скорости.
• Тестирование – одна из основных функций разработчика.
• Отсутствие сотрудничества между разработчиками и тестировщиками
увеличивает проектные риски.
Development Testing: A New Era In
Software Quality
Почему тестировать код на стадии разработки сегодня наиболее
важно?
Development Testing: A New Era In
Software Quality
Рассматриваете ли вы тестирование как одну из ключевых задач
разработчика?
Development Testing: A New Era In
Software Quality
Какие виды тестирования выполняются разработчиками (в
вашей компании)?
Виды
тестирования
Стратегии тестирования
• Тестирование черного ящика/Black-box Testing/Data-Driven
• Тестирование стеклянного ящика (белого, прозрачного)/Структурное
тестирование/White-box/Glass-box
• Тестирование серого ящика/Grey-box/Комбинированное
Виды тестирования
По объекту тестирования:
• Модульное тестирование
(Unit-testing)
• Интеграционное тестирование
(Integration testing)
• Системное тестирование
(System testing)
Модульное
Интеграционное
Системное
Ручное
Виды тестирования
По цели тестирования:
• Smoke-тестирование (“дымовое”)
• Sanity-тестирование
• Приемочное тестирование (Acceptance testing)
• Регрессионное тестирование (Regression testing)
• Пользовательское тестирование (альфа- и бета-тестирование)
Виды тестирования
По типу тестируемых характеристик:
• Функциональное (Functional)
• Нагрузочное тестирование, тестирование производительности
(Load, Performance, Stress, Volume)
• Безопасности и защищенности (Security)
• Удобства использования (Usability)
…
Техники тестирования
• На основе спецификации (Specification-based)
• На основе выбора входных данных/Доменное (Input Domain-
based)
• На основе кода (Code-based)
• Поток управления (control-flow)
• Поток данных (data-flow)
• На основе модели (Model-based)
• Конечный автомат
• Таблица принятия решений
• Формальная спецификация
• На основе интуиции и опыта
• Ad-hoc
• Исследовательское
• Прогнозирование ошибок
• …
+ комбинации
В следующей лекции
Критерии завершения тестирования
Тестовое покрытие
Критерии выбора тестов
Материалы
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)/CF1C3230DB425EDCC1257069003
17C44/$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”
Спасибо за внимание
Развенская Ксения, k.razvenskaya@corp.mail.ru
Алюков Влад, v.alyukov@corp.mail.ru

Weitere ähnliche Inhalte

Was ist angesagt?

Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
Alexei Lupan
 
Требования к по
Требования к поТребования к по
Требования к по
JaneKozmina
 

Was ist angesagt? (20)

Процесс тестирования
Процесс тестированияПроцесс тестирования
Процесс тестирования
 
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
Аналитик и Тестировщик в одном лице – путь к качеству (Максим Цепков, SQA Day...
 
Testing
TestingTesting
Testing
 
2.1 Тестирование: основные определения
2.1 Тестирование: основные определения2.1 Тестирование: основные определения
2.1 Тестирование: основные определения
 
тестирование программного обеспечения
тестирование программного обеспечениятестирование программного обеспечения
тестирование программного обеспечения
 
Test design print
Test design printTest design print
Test design print
 
тестирование по
тестирование потестирование по
тестирование по
 
Istqb lesson 3
Istqb lesson 3Istqb lesson 3
Istqb lesson 3
 
Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?Как принести пользу разработке и упростить себе жизнь?
Как принести пользу разработке и упростить себе жизнь?
 
Михаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for qualityМихаил Павлов - is a tester responsible for quality
Михаил Павлов - is a tester responsible for quality
 
Who is a functional tester
Who is a functional testerWho is a functional tester
Who is a functional tester
 
Istqb lesson 2
Istqb lesson 2Istqb lesson 2
Istqb lesson 2
 
Istqb lesson 6
Istqb lesson 6Istqb lesson 6
Istqb lesson 6
 
Istqb lesson 4
Istqb lesson 4Istqb lesson 4
Istqb lesson 4
 
Теория тестирования, часть 1
Теория тестирования, часть 1 Теория тестирования, часть 1
Теория тестирования, часть 1
 
Istqb lesson 1
Istqb lesson 1Istqb lesson 1
Istqb lesson 1
 
Requirements engineering. IREB practices
Requirements engineering. IREB practicesRequirements engineering. IREB practices
Requirements engineering. IREB practices
 
Требования к по
Требования к поТребования к по
Требования к по
 
Istqb lesson 5
Istqb lesson 5Istqb lesson 5
Istqb lesson 5
 
урок 1
урок 1урок 1
урок 1
 

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

Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Zestranec
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
CEE-SEC(R)
 
Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6
Technopark
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagile
Agile Base Camp
 
современные модели качества программного обеспечения
современные модели качества программного обеспечениясовременные модели качества программного обеспечения
современные модели качества программного обеспечения
cezium
 
Слайдкаст. Измерения в ИТ и ПО. Часть II
Слайдкаст. Измерения в ИТ и ПО. Часть IIСлайдкаст. Измерения в ИТ и ПО. Часть II
Слайдкаст. Измерения в ИТ и ПО. Часть II
Sergiy Povolyashko
 

Ähnlich wie Тестирование весна 2013 лекция 1 (20)

Нефункциональные требования.pptx
Нефункциональные требования.pptxНефункциональные требования.pptx
Нефункциональные требования.pptx
 
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
Организация процесса тестирования в Agile команде с помощью матрицы квадранто...
 
QA процесс, часть 2
QA процесс, часть 2QA процесс, часть 2
QA процесс, часть 2
 
Как развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CIКак развить отдел тестирования от палки-копалки до CI
Как развить отдел тестирования от палки-копалки до CI
 
Trpo 12 управление качеством
Trpo 12 управление качествомTrpo 12 управление качеством
Trpo 12 управление качеством
 
Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6Бизнес и системный анализ весна 2013 лекция 6
Бизнес и системный анализ весна 2013 лекция 6
 
Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi Testing in Scrum - Yuriy Malyi
Testing in Scrum - Yuriy Malyi
 
Yuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagileYuriy malyi testinginscrumagile
Yuriy malyi testinginscrumagile
 
Nfr and quality-models
Nfr and quality-modelsNfr and quality-models
Nfr and quality-models
 
Mva stf module 3 - rus
Mva stf module 3 - rusMva stf module 3 - rus
Mva stf module 3 - rus
 
Сергей Ревко
Сергей РевкоСергей Ревко
Сергей Ревко
 
Quality Principles
Quality PrinciplesQuality Principles
Quality Principles
 
Модуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проектаМодуль 8. Лекция 37-38. Управление качеством проекта
Модуль 8. Лекция 37-38. Управление качеством проекта
 
KPI тестировщиков - особенности и проблемы
KPI тестировщиков - особенности и проблемыKPI тестировщиков - особенности и проблемы
KPI тестировщиков - особенности и проблемы
 
QA Fest 2017. Андрей Ладутько.Тестовая стратегия: создание и оптимизация
QA Fest 2017. Андрей Ладутько.Тестовая стратегия: создание и оптимизацияQA Fest 2017. Андрей Ладутько.Тестовая стратегия: создание и оптимизация
QA Fest 2017. Андрей Ладутько.Тестовая стратегия: создание и оптимизация
 
Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...
Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...
Test Strategy: creation and optimization - QA Fest-2017 (Тестовая стратегия: ...
 
современные модели качества программного обеспечения
современные модели качества программного обеспечениясовременные модели качества программного обеспечения
современные модели качества программного обеспечения
 
Слайдкаст. Измерения в ИТ и ПО. Часть II
Слайдкаст. Измерения в ИТ и ПО. Часть IIСлайдкаст. Измерения в ИТ и ПО. Часть II
Слайдкаст. Измерения в ИТ и ПО. Часть II
 
01ka-nov
01ka-nov01ka-nov
01ka-nov
 
Mva stf module 1 - rus
Mva stf module 1 - rusMva stf module 1 - rus
Mva stf module 1 - rus
 

Mehr von Technopark

СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
Technopark
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
Technopark
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
Technopark
 

Mehr von Technopark (20)

Лекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель PregelЛекция 11. Вычислительная модель Pregel
Лекция 11. Вычислительная модель Pregel
 
Лекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.RuЛекция 14. Hadoop в Поиске Mail.Ru
Лекция 14. Hadoop в Поиске Mail.Ru
 
Лекция 13. YARN
Лекция 13. YARNЛекция 13. YARN
Лекция 13. YARN
 
Лекция 12. Spark
Лекция 12. SparkЛекция 12. Spark
Лекция 12. Spark
 
Лекция 10. Apache Mahout
Лекция 10. Apache MahoutЛекция 10. Apache Mahout
Лекция 10. Apache Mahout
 
Лекция 9. ZooKeeper
Лекция 9. ZooKeeperЛекция 9. ZooKeeper
Лекция 9. ZooKeeper
 
Лекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и HiveЛекция 7. Введение в Pig и Hive
Лекция 7. Введение в Pig и Hive
 
Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)Лекция 6. MapReduce в Hadoop (графы)
Лекция 6. MapReduce в Hadoop (графы)
 
Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)Лекция 5. MapReduce в Hadoop (алгоритмы)
Лекция 5. MapReduce в Hadoop (алгоритмы)
 
Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)Лекция 4. MapReduce в Hadoop (введение)
Лекция 4. MapReduce в Hadoop (введение)
 
Лекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFSЛекция 3. Распределённая файловая система HDFS
Лекция 3. Распределённая файловая система HDFS
 
Лекция 2. Основы Hadoop
Лекция 2. Основы HadoopЛекция 2. Основы Hadoop
Лекция 2. Основы Hadoop
 
Лекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduceЛекция 1. Введение в Big Data и MapReduce
Лекция 1. Введение в Big Data и MapReduce
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL"
 
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
СУБД 2013 Лекция №10 "Нереляционное решение в области баз данных — NoSQL" Час...
 
СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"СУБД 2013 Лекция №9 "Безопасность баз данных"
СУБД 2013 Лекция №9 "Безопасность баз данных"
 
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"СУБД 2013 Лекция №8 "Конфигурирование базы данных"
СУБД 2013 Лекция №8 "Конфигурирование базы данных"
 
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
СУБД 2013 Лекция №7 "Оптимизация запросов и индексирование"
 
СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"СУБД 2013 Лекция №5 "Определение узких мест"
СУБД 2013 Лекция №5 "Определение узких мест"
 
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
СУБД 2013 Лекция №6 "Профилирование запросов. Сложноструктурированные SQL-зап...
 

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

  • 2. Почему нужен этот курс • В ВУЗах не уделяют внимания теме качества ПО • Большинство стажеров надо учить с нуля
  • 3. Цели курса Показать: • Что качество – это важно • Обеспечение качества – общая задача А также, что: • Тестировать – интересно И научить будущих разработчиков: • Выпускать более качественный код
  • 4. Почему вам полезен этот курс • Знания и навыки, востребованные в сфере IT • Привлекательность для работодателей
  • 5. О чем пойдет речь в курсе Расскажем: • Какие виды тестирования бывают, когда применяются • Как выбирать тесты, чтобы они находили ошибки Научим: • Автоматизировать функциональное тестирование • Писать хорошие юнит-тесты • Проводить нагрузочные испытания • Организовывать непрерывное тестирование
  • 6. О чем мы не расскажем • Об организации процесса ручного тестирования • О тестовой документации: • составлении тест-планов • описании тест-кейсов • построении отчетов о тестировании • О подробностях всех методологий тестирования
  • 7. Структура курса • 5 лекций (4 ак. часа) • 4 практических занятия • Тестирование по материалу курса • Форма оценки: зачет/незачет • Самым активным - автомат
  • 9. Введение • Интернет – высококонкурентная среда • >4 млн доменов в Рунете • ~3000 новых доменов ежедневно • В России интернетом пользуются ~70 млн человек
  • 10. Введение Качество – ключ к успеху, поэтому сейчас к качеству ПО предъявляются повышенные требования.
  • 12. Что такое качество? Первые определения Пригодность к использованию/fitness for use Joseph Juran Соответствие требованиям/conformance to requirements Philip Crosby Оправдание ожиданий потребителя/meeting the expectations of the customer Armand Feigenbaum …
  • 14. Управление качеством • Plan-Do-Check-Act (PDCA) • Juran Trilogy (Трилогия Джурана) • Six Sigma (Шесть сигм) • Zero Defects (Ноль дефектов) • Quality Function Deployment (QFD) • Total Quality Control/Total Quality Management • Kaizen (Кайдзен)
  • 15. Управление качеством Plan – Do – Check – Act (PDCA) – цикл Шухарта, колесо Деминга Разработан в 1930-х годах Уолтером Шухартом (Bell System) – «цикл улучшений Шухарта». Цикл состоит из 4 шагов: • Планирование • Реализация • Проверка • Реакция
  • 16. Управление качеством Трилогия Джурана (Juran Trilogy), 1950-е гг Джозеф М. Джуран (Joseph M. Juran) определил три процесса для управления качеством: • Планирование качества • Контроль качества • Улучшение качества Первым обосновал переход от контроля качества к управлению.
  • 17. Управление качеством Six Sigma (Шесть сигм), 1986 год Разработана Биллом Смитом (Motorola). В 1990х годах применялась как ключевая стратегия в General Electric. Суть концепции – минимизация дефектов и статистических отклонений в производственном процессе. Процесс качеством 6 сигм на выходе дает 99.99966% выходов без дефектов, или не более чем 3.4 дефекта на 1 млн операций.
  • 18. Управление качеством Zero Defects (Ноль дефектов), 1962 год Фил Кросби (Philip Bayard "Phil" Crosby), «Martin» Завод изготавливал для армии США ракетные снаряды «Першинг». Для выполнения жестких требований поставки было решено уменьшить до предела время на устранение дефектов, повторные проверки и испытания.
  • 19. Управление качеством Quality Function Deployment (QFD) Впервые описал доктор Й. Акао, 1966 год. QFD трансформирует потребности клиентов в технические характеристики продукции, расставляет приоритеты для каждого продукта/услуги и одновременно определяет задачи в области развития. Основа QFD – построение матрицы, названной в соответствии с ее формой «Домом качества», в рамках которой фиксируется информация о качестве продукта и принимаемых решениях.
  • 20. Управление качеством Total Quality Control/Total Quality Management (Всеобщее управление качеством) Разработал Арманд Фейгенбаум (Armand Vallin Feigenbaum) в 50х гг. Фейгенбаум предложил рассматривать качество не как конечный результат производства изделия, а на каждом этапе его создания. TQM – развитие TQC. Акцент на потребителя Вовлечение всего персонала Внимание к процессам Решения основаны на фактах Постоянное улучшение
  • 21. Управление качеством Kaizen (Кайдзен), 1986 год – японская философия или практика, которая фокусируется на непрерывном совершенствовании процессов производства и управления, а также всех аспектов жизни. Цель кайдзен – производство без потерь. В Scrum может применяться как процесс устранения помех.
  • 23. Модели качества – McCall, 1977 Характеристики качества: • Факторы • Критерии • Метрики Треугольник МакКола (факторы качества) Эксплуатация продукта Переработка продукта Внедрение продукта Сопровождаемость Гибкость Тестопригодность Переносимость Переиспользуемость Способность к взаимодействию Практичность Удобство Надежность Эффективность Целостность
  • 24. Модели качества – Boehm, 1978 Критерии МакКолл Боем Корректность/Correctness * * Надежность/Reliability * * Целостность/Integrity * * Удобство/Usability * * Эффективность/Efficiency * * Поддерживаемость/Maintainability * * Тестопригодность/Testability * Способность к взаимодействию/Interoperability * Гибкость/Flexibility * * Переиспользуемость/Reusability * * Переносимость/Portability * * Прозрачность/Clarity * Изменяемость/Modifiability * Документированность/Documentation * Способность к восстановлению/Resilience * Понятность/Understandability * Валидность/Адекватность/Validity * Функциональность/Functionality * Универсальность/Generality * Экономическая эффективность/Economy *
  • 26. Модели качества – ISO 9126, 1991, 2001 3 уровня оценки качества: Цели (goals) — то, что мы хотим видеть в ПО. Атрибуты (attributes) —свойства ПО, показывающие приближение к целям. Метрики (metrics) — количественные характеристики степени наличия атрибутов.
  • 27. Качество ПО (ГОСТ) ГОСТ - 28806-90 Качество программного средства: Совокупность свойств программного средства, которые обусловливают его пригодность удовлетворять заданные или подразумеваемые потребности в соответствии с его назначением. • функциональность (functionality) • надежность (reliability) • удобство использования (usability) • эффективность (efficiency) • сопровождаемость (maintainability) • мобильность (portability)
  • 28. Модели качества – SQuaRE, 2011 ISO 25010 (Software product Quality Requirements and Evaluation)
  • 29. Consortium for IT Software Quality – CISQ Model
  • 31. И все-таки.. Quality – is value to some person.. * Gerald Weinberg *У каждого – свое представление о качестве.
  • 33. Тестирование - ISO Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO, 1990 г). ISO/IEC 29119 Software Testing – новый стандарт, 2011 год.
  • 34. Тестирование - ISO В 1990 году стандартом ISO принято следующее определение тестирования: Тестирование — это наблюдение за функционированием ПО в специфических условиях с целью определения степени соответствия ПО требованиям к нему (ISO, 1990 г). ISO/IEC 29119 Software Testing – новый стандарт, 2011 год. НЕЕЕЕЕЕЕЕЕТ
  • 35. Тестирование Процесс выполнения программы с намерением обнаружить ошибки (Глен Майерс, 1979). Техническое исследование, которое проводится с целью предоставить заинтересованным лицам информацию о качестве тестируемого продукта (Сэм Канер, 1999). Проверка соответствия реального поведения системы ожидаемому, осуществляемая на конечном наборе тестов, выбранным определенным образом (SWEBOK, 2004).
  • 36. QA – QC - Тестирование Обеспечение качества (Quality Assurance, (S)QA) – деятельность по разработке, внедрению, оценке и усовершенствованию процессов, способствующих созданию качественного продукта (на всех этапах создания ПО). Контроль качества (Quality Control, QC) – совокупность видов деятельности, направленных на оценку качества выпускаемого продукта и выявление расхождений с требованиями к нему. Тестирование (Testing) – тестирование, каким мы хотим его видеть, по сути и должно являться контролем качества.
  • 37. Верификация и валидация Верификация – проверка соответствия характеристик продукта заданным требованиям, результатом является вывод о соответствии (или несоответствии). • Статические методы (ex. код-ревью) • Динамические методы (ex. тестирование) Валидация - анализ заданных областей применения продукта и оценка соответствия характеристик продукта этим условиям. “Verification: Are we building the product right? Validation: Are we building the right product?” B. Boehm
  • 38. Цели тестирования • Поиск ошибок • Оценка качества ПО • Обеспечение стабильного развития системы
  • 39. Зачем разработчикам изучать тестирование Чтобы писать более качественный код Вовремя завершать проекты по разработке ПО Выпускать в продакшн качественное ПО, даже если на проекте недостаточно или нет тестировщиков Чтобы понимать специалистов по тестированию
  • 41.
  • 42. «Development Testing: A New Era In Software Quality», 2011 В 2011 году компанией Forrester Consulting было проведено независимое исследование «Тестирование на стадии разработки: новая эры в качестве ПО». Было опрошено 250+ IT-менеджеров из более 200 компаний.
  • 43. «Development Testing: A New Era In Software Quality», 2011 Основные результаты: • Значимость тестирования на стадии разработки значительно возросла за последние 2 года. • Чем дольше баги остаются не замеченными, тем выше их стоимость. • От разработчиков требуют быстрого внедрения новейших технологий, при этом они не могут жертвовать качеством ради скорости. • Тестирование – одна из основных функций разработчика. • Отсутствие сотрудничества между разработчиками и тестировщиками увеличивает проектные риски.
  • 44. Development Testing: A New Era In Software Quality Почему тестировать код на стадии разработки сегодня наиболее важно?
  • 45. Development Testing: A New Era In Software Quality Рассматриваете ли вы тестирование как одну из ключевых задач разработчика?
  • 46. Development Testing: A New Era In Software Quality Какие виды тестирования выполняются разработчиками (в вашей компании)?
  • 48. Стратегии тестирования • Тестирование черного ящика/Black-box Testing/Data-Driven • Тестирование стеклянного ящика (белого, прозрачного)/Структурное тестирование/White-box/Glass-box • Тестирование серого ящика/Grey-box/Комбинированное
  • 49. Виды тестирования По объекту тестирования: • Модульное тестирование (Unit-testing) • Интеграционное тестирование (Integration testing) • Системное тестирование (System testing) Модульное Интеграционное Системное Ручное
  • 50. Виды тестирования По цели тестирования: • Smoke-тестирование (“дымовое”) • Sanity-тестирование • Приемочное тестирование (Acceptance testing) • Регрессионное тестирование (Regression testing) • Пользовательское тестирование (альфа- и бета-тестирование)
  • 51. Виды тестирования По типу тестируемых характеристик: • Функциональное (Functional) • Нагрузочное тестирование, тестирование производительности (Load, Performance, Stress, Volume) • Безопасности и защищенности (Security) • Удобства использования (Usability) …
  • 52. Техники тестирования • На основе спецификации (Specification-based) • На основе выбора входных данных/Доменное (Input Domain- based) • На основе кода (Code-based) • Поток управления (control-flow) • Поток данных (data-flow) • На основе модели (Model-based) • Конечный автомат • Таблица принятия решений • Формальная спецификация • На основе интуиции и опыта • Ad-hoc • Исследовательское • Прогнозирование ошибок • … + комбинации
  • 53. В следующей лекции Критерии завершения тестирования Тестовое покрытие Критерии выбора тестов
  • 54. Материалы 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)/CF1C3230DB425EDCC1257069003 17C44/$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”
  • 55. Спасибо за внимание Развенская Ксения, k.razvenskaya@corp.mail.ru Алюков Влад, v.alyukov@corp.mail.ru