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

3
Цели курса
Качество – это важно
Обеспечение качества – общая задача
Как повысить качество разработки

4
Профит
 Знания и навыки, востребованные в сфере IT
 Привлекательность для работодателей

5
О чем курс
Расскажем:
 Какие виды тестирования есть, когда применяются
 Как выбирать тесты, чтобы они находили ошибки
На...
О чем мы не расскажем
Об организации процесса ручного тестирования
О




тестовой документации:
составлении тест-планов...
Структура








8
Введение
 Интернет – высококонкурентная среда
 Выживает сильнейший

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

9
Качество
Первые определения
 Пригодность к использованию/fitness for use
Joseph Juran
 Соответствие требованиям/conforma...
Управление
качеством
Управление качеством
 Plan-Do-Check-Act (PDCA)
 Juran Trilogy (Трилогия Джурана)
 Six Sigma (Шесть сигм)

 Zero Defect...
PDCA
Plan – Do – Check – Act (PDCA) – цикл Шухарта, колесо Деминга. Разработан в
1930-х годах Уолтером Шухартом (Bell Syst...
Управление качеством
 Plan-Do-Check-Act (PDCA)
 Juran Trilogy (Трилогия Джурана)
 Six Sigma (Шесть сигм)

 Zero Defect...
Модели
качества (ПО)
Модели качества ПО
 Модель МакКола (McCall), 1977
 Модель Боема, 1978

 FURPS, 1987
 ISO 9126, 1991, 2001

 ГОСТ - 28...
Модели качества ПО, McCall 1977
Характеристики качества:
• Факторы
• Критерии
• Метрики
Сопровождаемость
Гибкость
Тестопри...
Модели качества ПО
 Модель МакКола (McCall), 1977
 Модель Боема, 1978

 FURPS, 1987
 ISO 9126, 1991, 2001

 ГОСТ - 28...
ГОСТ
Качество программного средства:
Совокупность свойств программного средства, которые
обусловливают его пригодность удо...
Модели качества ПО
 Модель МакКола (McCall), 1977
 Модель Боема, 1978

 FURPS, 1987
 ISO 9126, 1991, 2001

 ГОСТ - 28...
SQuaRE

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

22
И все-таки

Quality – is value to some person.. *
Gerald Weinberg
*У каждого – свое представление о качестве.

23
Тестирование
Тестирование, ISO
Тестирование — это наблюдение за
функционированием ПО в специфических условиях с
целью определения степе...
Тестирование, ISO
Тестирование — это наблюдение за
функционированием ПО в специфических условиях с
целью определения степе...
Тестирование
 Процесс выполнения программы с намерением
обнаружить ошибки (Глен Майерс, 1979).
 Техническое исследование...
QA – QC - Тестирование
 Обеспечение качества (Quality Assurance, (S)QA) –
деятельность по разработке, внедрению, оценке и...
Верификация и валидация


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

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

30
Development testing
Development Testing (Тестирование на стадии разработки) –
процессы и методы в разработке ПО, направлен...
Зачем разработчикам
уметь тестировать
 Чтобы писать более качественный код
 Вовремя завершать проекты по разработке ПО

...
Кривая Боема

33
Кривая Боема

34
В 2011 году компанией Forrester Consulting было проведено независимое
исследование «Тестирование на стадии разработки: нов...
Основные результаты:
 Значимость тестирования на стадии разработки значительно
возросла за последние 2 года.
 Чем дольше...
Почему тестировать код на стадии разработки сегодня наиболее важно?

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

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

39
Виды
тестирования
Стратегии тестирования
 Тестирование черного ящика/Black-box Testing/DataDriven

 Тестирование белого ящика (стеклянного...
Виды тестирования
По объекту тестирования:
 Модульное тестирование

Ручное

(Unit-testing)

 Интеграционное тестирование...
Виды тестирования
По цели тестирования:
 Smoke-тестирование (“дымовое”)

 Sanity-тестирование
 Приемочное тестирование ...
Виды тестирования
По типу тестируемых характеристик:
 Функциональное (Functional)
 Нагрузочное тестирование, тестировани...
Техники тестирования
На основе спецификации (Specification-based)
• На основе выбора входных данных/Доменное (Input Domain...
В следующей лекции
 Какой ты тестировщик?
 Вся правда о тестовом покрытии

 Как выбрать тест-кейсы, чтобы обнаружить ба...
Материалы
1. Сэм Канер, Джек Фолк, Енг Кек Нгуен “Тестирование программного
обеспечения”
2. Г. Майерс “Искусство тестирова...
Спасибо за внимание!
Развенская Ксения,
k.razvenskaya@corp.mail.ru

48
Upcoming SlideShare
Loading in...5
×

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

423

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
423
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
17
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

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

    Clipping is a handy way to collect important slides you want to go back to later.

×