Скачать презентацию Курс Основы тестирования ПО Лекция 7 Процессы Скачать презентацию Курс Основы тестирования ПО Лекция 7 Процессы

Докучаев. Основы тестирования ПО - Лекция #7.pptx

  • Количество слайдов: 69

Курс «Основы тестирования ПО» Лекция № 7 «Процессы в тестировании» Докучаев Сергей / руководитель Курс «Основы тестирования ПО» Лекция № 7 «Процессы в тестировании» Докучаев Сергей / руководитель группы нефункционального тестирования/ Тензор, 2014

Вводная Сегодня на лекции: 1. Классификация ошибок 2. Процессы в тестировании 3. Пример полного Вводная Сегодня на лекции: 1. Классификация ошибок 2. Процессы в тестировании 3. Пример полного цикла тестирования 2

Вводная Литература: 1. Роман Савин «Тестирование dot com» 3 Вводная Литература: 1. Роман Савин «Тестирование dot com» 3

Ошибки 9 сентября 1945 года Гарвард Mark II 4 Ошибки 9 сентября 1945 года Гарвард Mark II 4

Ошибки Гейзенбаг – ошибка, которая исчезает или меняет свои свойства при попытке её обнаружить. Ошибки Гейзенбаг – ошибка, которая исчезает или меняет свои свойства при попытке её обнаружить. Термин пришёл из квантовой механики – принцип неопределённости Гейзенберга. Синоним: плавающая ошибка 5

Ошибки Борбаг (англ. Bohr bug) – стабильно повторяющаяся ошибка. Пришёл их химии (очень прочный, Ошибки Борбаг (англ. Bohr bug) – стабильно повторяющаяся ошибка. Пришёл их химии (очень прочный, стабильный элемент) Синонимы: стабильный или устойчивый. 6

Ошибки Мандельбаг – ошибка со столь сложным поведением, что оно выглядит хаотичным. Откуда пришло: Ошибки Мандельбаг – ошибка со столь сложным поведением, что оно выглядит хаотичным. Откуда пришло: множество Мандельброта. Чаще всего возникает как следствие ошибок, возникших на стадии проектирования системы 7

Ошибки Шрёдинбаг – ошибка, которая никак не проявляет себя, однако внезапно возникает, если кто-то Ошибки Шрёдинбаг – ошибка, которая никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на неё в коде или при необычных условиях и осознает, что программа в принципе не должна работать с такой ошибкой. После этого программа действительно перестаёт работать, пока не поправят ошибку. 8

Типы ошибок 9 Типы ошибок 9

Типы ошибок 10 Типы ошибок 10

Типы ошибок 11 Типы ошибок 11

Типы ошибок 12 Типы ошибок 12

Типы ошибок 13 Типы ошибок 13

Типы ошибок 14 Типы ошибок 14

Типы ошибок 15 Типы ошибок 15

Типы ошибок 16 Типы ошибок 16

Типы ошибок 17 Типы ошибок 17

QA. QC. Testing. 18 QA. QC. Testing. 18

QA. QC. Testing. Обеспечение качества (quality assurance) – это процесс формирования требуемых свойств или QA. QC. Testing. Обеспечение качества (quality assurance) – это процесс формирования требуемых свойств или качеств продукции по мере её создания. В нашем случае – отдел «Управления качеством» QA контролирует качество всего: • требования • кодинга • контроля версий • код ревью • менеджмент релизов • все виды процессов в дизайне, разработке, тестировании 19

QA. QC. Testing. Контроль качества (quality control) – это набор процедур, используемых для определения QA. QC. Testing. Контроль качества (quality control) – это набор процедур, используемых для определения того, что качество продукта соответствует заявленному уровню. Какие процедуры: • • • статический анализ кода мануальное тестирование автотесты бета-тестирование верификация валидация 20

QA. QC. Testing. Процесс – Quality Assurance Продукт – Quality Control 21 QA. QC. Testing. Процесс – Quality Assurance Продукт – Quality Control 21

QA. QC. Testing. Quality Assurance Quality Control Testing 22 QA. QC. Testing. Quality Assurance Quality Control Testing 22

QA. QC. Testing. 23 QA. QC. Testing. 23

Процесс тестирования 24 Процесс тестирования 24

Процесс тестирования Ревью требований (ТЗ, дизайн макеты и т. д. ) Планирование Тест-дизайн Настройка Процесс тестирования Ревью требований (ТЗ, дизайн макеты и т. д. ) Планирование Тест-дизайн Настройка окружения Выполнение тестирования Отчёты 25

Требования 26 Требования 26

Процесс тестирования 27 Процесс тестирования 27

Процесс тестирования Чем раньше найдём ошибку, тем дешевле она нам обойдётся Тестирование переносим на Процесс тестирования Чем раньше найдём ошибку, тем дешевле она нам обойдётся Тестирование переносим на более ранние этапы разработки системы Начинаем тестирование с ревью требований 28

Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях 3. Требования изменяются в последний момент 4. Противоречивые требования 5. Не ясные требования 29

Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях 3. Требования изменяются в последний момент 4. Противоречивые требования 5. Не ясные требования Пример 1: в дизайн макете отсутствует дизайн сообщений об ошибках, которые выводятся на сайте Пример 2: в ТЗ не указали, как должна реагировать система на клик по кнопке «Подтвердить» 30

Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях 3. Требования изменяются в последний момент 4. Противоречивые требования 5. Не ясные требования 31

Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях 3. Требования изменяются в последний момент 4. Противоречивые требования 5. Не ясные требования 32

Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях 3. Требования изменяются в последний момент 4. Противоречивые требования 5. Не ясные требования Пример: в одном месте написано, что поиск в документах должен вестись только по краткому описанию, а в другом месте, что по полному 33

Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях Процесс тестирования Какие проблемы можем выловить: 1. Неполнота требований 2. Частые изменения в требованиях 3. Требования изменяются в последний момент 4. Противоречивые требования 5. Не ясные требования Любые слова из списка ниже: • быстро/медленно • возможно • лучше • нормально • оптимально • etc. 34

Процесс тестирования Как тестируем: • UML диаграммы • Схемы • Mindmap В идеале интерактивный Процесс тестирования Как тестируем: • UML диаграммы • Схемы • Mindmap В идеале интерактивный прототип => Axure 35

Процесс тестирования 36 Процесс тестирования 36

Планирование 37 Планирование 37

Процесс тестирования Тест-план – документ, в деталях описывающий подход к тестированию отдельно взятого продукта Процесс тестирования Тест-план – документ, в деталях описывающий подход к тестированию отдельно взятого продукта Существуют различные стандарты по оформлению такого документа (IEEE 829, RUP) В любом случае обязательно в тест-плане должно быть: 1. Описание SUT (тестируемое приложение в целом) 2. Подробное описание функционала, которое будем тестировать 3. Каким образом будем тестировать (юнит-тесты, мануальное, авто, производительности, в каких браузерах) 4. Расписание (либо точные даты, либо привязки к другим процессам) 5. Критерии начала тестирования 6. Критерии окончания тестирования 38

Процесс тестирования Планирование тестирования – всецело зависит от общей методологии разработки и скорее относится Процесс тестирования Планирование тестирования – всецело зависит от общей методологии разработки и скорее относится к QA деятельности, чем к самому тестированию 39

Процесс тестирования Тест-планов может быть несколько: • Мастер тест план (как правило не изменен) Процесс тестирования Тест-планов может быть несколько: • Мастер тест план (как правило не изменен) • Детализированный тест-план (для каждого подпродукта) • План приёмочных испытаний Тест-планы тоже тестируются Основная сложность: поддержание тест-плана в актуальном состоянии 40

Тест-дизайн 41 Тест-дизайн 41

Процесс тестирования Тест-дизайн – этап процесса тестирования, на котором проектируются и создаются тесткейсы, тестовые Процесс тестирования Тест-дизайн – этап процесса тестирования, на котором проектируются и создаются тесткейсы, тестовые данные, автотесты, сценарии нагрузочного тестирования и т. д. Тест-кейсы объединяются в тестсьюиты, для создания наиболее удобной для работы иерархии. 42

Процесс тестирования Детализация тест-кейсов: 1. Тест-кейс (расписываем шаги) <= подробный вариант 2. Чек-листы (пишем Процесс тестирования Детализация тест-кейсов: 1. Тест-кейс (расписываем шаги) <= подробный вариант 2. Чек-листы (пишем только что нужно проверить) <= без деталей Способы хранения: 1. Документы (Word, Excel, текстовые файлы, …) 2. Специализированные системы (e. g. Test. Link) 3. Гибридный вариант (чек-листы интегрированы в Сбис, подробные документы в вордовских файлах) 43

Процесс тестирования Эффект пестицида – ситуация, когда при множественном использовании одних и тех же Процесс тестирования Эффект пестицида – ситуация, когда при множественном использовании одних и тех же тесткейсов (автотестов, сценариев, etc. ) мы перестаём находить ошибки. Особенно актуально для автотестов и формальных методов в функциональном тестировании. 44

Процесс тестирования Основные причины возникновения: 1. Всё протестировать не возможно 2. Функционал постоянно меняется Процесс тестирования Основные причины возникновения: 1. Всё протестировать не возможно 2. Функционал постоянно меняется – возникают скрытые изменения Как бороться: 1. 2. 3. 4. Следить за изменениями в продукте Проводить ревизию тестов, которые не ловят ошибки Чаще менять тестовые данные Использовать исследовательское тестирование 45

Настройка окружения 46 Настройка окружения 46

Процесс тестирования В случае с тестированием веб-приложения: 1. Собираем проект (вытаскиваем из репозиториев, подтягиваем Процесс тестирования В случае с тестированием веб-приложения: 1. Собираем проект (вытаскиваем из репозиториев, подтягиваем все зависимости, копилируем, собираем в единый продукт) 2. Обновляем стенд 3. Настраиваем клиентскую часть (ОС, браузер, виртуалки) 4. Проверяем настройки на клиентской и серверной частях 47

Процесс тестирования Непрерывная интеграция (англ. Continuous Integration) – практика разработки ПО, которая заключается в Процесс тестирования Непрерывная интеграция (англ. Continuous Integration) – практика разработки ПО, которая заключается в частом выполнении автоматизированных сборок проекта для скорейшего выявления интеграционных проблем. + проблемы выявляются на ранних стадиях + постоянное наличие текущей стабильной версии + организованность всего процесса разработки + идеальная платформа для автоматизации тестирования - дорого - необходимость поддержки большого штата машин - при больших размерах – выделенная команда (сборщики) 48

Процесс тестирования Существует множество решений для CI, наш выбор: 49 Процесс тестирования Существует множество решений для CI, наш выбор: 49

Процесс тестирования 1180 задач ≈10000 запусков ежедневно 50 Процесс тестирования 1180 задач ≈10000 запусков ежедневно 50

Процесс тестирования 51 Процесс тестирования 51

Процесс тестирования 52 Процесс тестирования 52

Проведение тестирования 53 Проведение тестирования 53

Процесс тестирования Выполнение тестирования: • • • прогонка юнит-тестов прогонка интеграционных тестов проведение нагрузочного Процесс тестирования Выполнение тестирования: • • • прогонка юнит-тестов прогонка интеграционных тестов проведение нагрузочного тестирования проведение тестирования безопасности выполнение проверок по тест-кейсам выполнение проверок по чек-листам (свободный поиск) 54

Процесс тестирования Создаём баг-репорт: 1. 2. 3. 4. Шаги воспроизведения ошибки Фактический результат Ожидаемый Процесс тестирования Создаём баг-репорт: 1. 2. 3. 4. Шаги воспроизведения ошибки Фактический результат Ожидаемый результат Серьёзность и приоритет 55

Процесс тестирования Что мы рассмотрели? 56 Процесс тестирования Что мы рассмотрели? 56

Процесс тестирования 57 Процесс тестирования 57

Процесс тестирования Стенды: dev test fix production 58 Процесс тестирования Стенды: dev test fix production 58

Процесс тестирования Стенды: dev test fix production Транк-версия, все сваливают всё, что хотят 59 Процесс тестирования Стенды: dev test fix production Транк-версия, все сваливают всё, что хотят 59

Процесс тестирования Стенды: dev test fix production После фиксации версия попадает на test-стенд Львиная Процесс тестирования Стенды: dev test fix production После фиксации версия попадает на test-стенд Львиная доля тестирования проходит именно на данном стенде 60

Процесс тестирования Стенды: dev test fix production За 3 -5 дней до релиза обновляется Процесс тестирования Стенды: dev test fix production За 3 -5 дней до релиза обновляется фикс-стенд Стенд конфигурируется максимально похожим на боевой (клонирование, синхронизация БД) 61

Процесс тестирования Стенды: dev test fix production Обновляется ночью в выходные. Обновлением занимается служба Процесс тестирования Стенды: dev test fix production Обновляется ночью в выходные. Обновлением занимается служба экспулатации 62

Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация 63 Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация 63

Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: 64 Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: 64

Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: 65 Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: 65

Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: Малый Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: Малый круг: 66

Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: Малый Процесс тестирования Стенды: Тест-дизайн: dev Разработка тест-кейсов test fix production Актуализация Большой круг: Малый круг: Автотестирование: 67

Вопросы есть? 68 Вопросы есть? 68

Спасибо за внимание! Докучаев Сергей Валерьевич / sv. dokuchaev@tensor. ru (4852) 262 -000 (доб. Спасибо за внимание! Докучаев Сергей Валерьевич / sv. dokuchaev@tensor. ru (4852) 262 -000 (доб. 3435) sbis. ru Разработка СБИС