Основы тестирования ПО

45
Основы тестирования ПО Вводный курс Автор: Алексей Баранцев

Upload: ashton-wong

Post on 03-Jan-2016

54 views

Category:

Documents


3 download

DESCRIPTION

Вводный курс. Основы тестирования ПО. Автор: Алексей Баранцев. Программа семинара. Что такое тестирование? Характеристики качества и виды контроля качества Классификации тестирования по уровням по целям «чёрное и белое». Что такое тестирование?. Тестирование – это…. … не разработка - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Основы тестирования ПО

Основы тестирования ПОВводный курс

Автор: Алексей Баранцев

Page 2: Основы тестирования ПО

Программа семинара

Что такое тестирование?Характеристики качества и виды

контроля качестваКлассификации тестирования

по уровням по целям «чёрное и белое»

Page 3: Основы тестирования ПО

Что такое тестирование?

Page 4: Основы тестирования ПО

Тестирование – это…

… не разработка… не анализ… не управление… не техписательство… не… не… не

Page 5: Основы тестирования ПО

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

предоставление отрицательной обратной связи

Page 6: Основы тестирования ПО

Положительная и отрицательная обратная связь

Page 7: Основы тестирования ПО

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

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

Quality ControlКонтроль качества

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

Page 8: Основы тестирования ПО

История определений Процесс выполнения программы с намерением найти ошибки.

[Г.Майерс. Надежность программного обеспечения. М:Мир, 1980] Процесс наблюдения за выполнением программы в специальных

условиях и вынесения на этой основе оценки каких-либо ее аспектов. [ANSI/IEEE standard 610.12-1990: Glossary of SE Terminology. NY:IEEE, 1987]

Это не действие. Это интеллектуальная дисциплина, имеющая целью получение надежного программного обеспечения без излишних усилий на его проверку. [B. Beizer. Software Testing Techniques, Second Edition. NY:van Nostrand Reinhold, 1990]

Техническое исследование программы для получения информации о ее качестве с точки зрения определенного круга заинтересованных лиц. [С. Kaner, 1999]

Проверка соответствия между реальным поведением программы и ее ожидаемым поведением на конечном наборе тестов, выбранном определенным образом. [IEEE Guide to Software Engineering Body of Knowledge, SWEBOK, 2004]

1980

1987

1990

1999

2004

Page 9: Основы тестирования ПО

Рабочее определение №1

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

проверка соответствия программы требованиям,

осуществляемая путём наблюдения за её работой

в специальных, искусственно созданных ситуациях, выбранных определённым образом

Page 10: Основы тестирования ПО

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

Программа

Информация онесоответствияхТребования

Page 11: Основы тестирования ПО

Определение по SWEBOK

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

проверка соответствия

между реальным поведением программы и ее ожидаемым поведением

на конечном наборе тестов, выбранном определенным образом

SWEBOK, 2004

Page 12: Основы тестирования ПО

Определение по SWEBOK

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

проверка соответствия

между реальным поведением программы и ее ожидаемым поведением

на конечном наборе тестов, выбранном определенным образом

SWEBOK, 2004

Page 13: Основы тестирования ПО

Определение по SWEBOK

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

проверка соответствия

между реальным поведением программы и ее ожидаемым поведением

на ограниченном наборе тестов, выбранном определенным образом

SWEBOK, 2004

Page 14: Основы тестирования ПО

Рабочее определение №1 (повтор)

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

проверка соответствия программы требованиям,

осуществляемая путём наблюдения за её работой

в специальных, искусственно созданных ситуациях, выбранных определённым образом

Page 15: Основы тестирования ПО

Рабочее определение №2

Тест – это

специальная, искусственно созданная ситуация, выбранная определённым образом,

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

для проверки её соответствия некоторому требованию

Page 16: Основы тестирования ПО

Тестировщик:

1. Управляет выполнением программы, создаёт искусственные ситуации

2. Наблюдает поведение программы и сравнивает наблюдаемое поведение с ожидаемым

Page 17: Основы тестирования ПО

Основные задачи тестирования

1. Что подать на вход?стимулы

2. Что ожидается на выходе?реакцииоракул

Page 18: Основы тестирования ПО

Входы и выходы

Page 19: Основы тестирования ПО

Входы и выходы

Программа

Page 20: Основы тестирования ПО

Разновидности входов и выходов

Пользовательский интерфейс (UI)Программный интерфейс (API)Сетевой протоколФайловая системаСостояние окруженияСобытия

Page 21: Основы тестирования ПО

Характеристики качества и виды контроля качества

Page 22: Основы тестирования ПО

Аспекты качества

Стандарт ISO 9126 Функциональность Надёжность

Практичность Эффективность Сопровождаемость Переносимость

Page 23: Основы тестирования ПО

1 - Функциональность

Пригодность к использованию (suitability)

Точность, правильность (accuracy)Способность к взаимодействию

(interoperability)Соответствие стандартам и правилам

(compliance)Защищенность (security)

Page 24: Основы тестирования ПО

2 - Надёжность

Зрелость, завершенность (обратна к частоте отказов) (maturity)

Устойчивость к отказам (fault tolerance)Способность к восстановлению

работоспособности при отказах (recoverability)

Page 25: Основы тестирования ПО

3 - Практичность

Понятность (understandability)Удобство обучения (learnability)Работоспособность (operability)Привлекательность (attractiveness)

Page 26: Основы тестирования ПО

4 - Эффективность

Временные характеристики (time behaviour)

Использование ресурсов (resource utilisation)

Page 27: Основы тестирования ПО

5 - Сопровождаемость

Анализируемость (analyzability) Изменяемость, удобство внесения

изменений (changeability) Риск возникновения неожиданных

эффектов при внесении изменений (stability)

Контролируемость , удобство проверки (testability)

Page 28: Основы тестирования ПО

6 - Переносимость

Адаптируемость (adaptability) Устанавливаемость, удобство установки

(installability) Способность к сосуществованию с другим

ПО (coexistence) Удобство замены другого ПО данным

(replaceability)

Page 29: Основы тестирования ПО

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

функциональностинадёжностиэффективностипрактичностисопровождаемостипереносимости…

Page 30: Основы тестирования ПО

Различные классификации видов тестирования

Page 31: Основы тестирования ПО

Уровни тестирования

Модульное Интеграционное Системное

Page 32: Основы тестирования ПО

Приложение-матрёшка

КИСВеб-приложениеКлиентскаячасть

Серверная часть

JS library

Сервер приложений Базаданных

Storedproc

Storedproc

JS func

JS libraryJS func

library

class

class

method

method

method

method

Page 33: Основы тестирования ПО

Тестирование бывает:

Модульное Интеграционное Системное

функциональности надёжности эффективности практичности сопровождаемости мобильности

Page 34: Основы тестирования ПО

Тестирование бывает:

Page 35: Основы тестирования ПО

Чёрное и белое

Page 36: Основы тестирования ПО

Рабочее определение

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

проверка соответствия программы требованиям,

осуществляемая путём наблюдения за её работой

в специальных, искусственно созданных ситуациях , выбранных определённым образом

Page 37: Основы тестирования ПО
Page 38: Основы тестирования ПО

No more bugs found, boss!

Page 39: Основы тестирования ПО

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

Page 40: Основы тестирования ПО

Чёрное и белое

Page 41: Основы тестирования ПО

Чёрное

Полностью покрыты все …… входные данные… комбинации входных данных… последовательности

комбинаций входных данных

Page 42: Основы тестирования ПО

Белое

Полностью покрыты все …… строки кода программы… ветви в коде программы… пути в коде программы

Page 43: Основы тестирования ПО

Приложение-матрёшка

КИСВеб-приложениеКлиентскаячасть

Серверная часть

JS library

Серверприложений

Базаданных

пакет

libraryJS library

library

library

Веб-сервис

Приложение

База данных

Чужоеприложение

Page 44: Основы тестирования ПО

Разноцветные ящики

Page 45: Основы тестирования ПО

Продолжение следует…