Курс «Основы тестирования ПО» Лекция № 7 «Процессы







































































12-dokuchaev._osnovy_testirovaniya_po_-_lekciya_#7.pptx
- Количество слайдов: 69
Курс «Основы тестирования ПО» Лекция № 7 «Процессы в тестировании» Докучаев Сергей / руководитель группы нефункционального тестирования/ Тензор, 2014
2 Вводная Сегодня на лекции: Классификация ошибок Процессы в тестировании Пример полного цикла тестирования
3 Вводная Литература: Роман Савин «Тестирование dot com»
4 Ошибки 9 сентября 1945 года Гарвард Mark II
5 Ошибки Гейзенбаг – ошибка, которая исчезает или меняет свои свойства при попытке её обнаружить. Термин пришёл из квантовой механики – принцип неопределённости Гейзенберга. Синоним: плавающая ошибка
6 Ошибки Борбаг (англ. Bohr bug) – стабильно повторяющаяся ошибка. Пришёл их химии (очень прочный, стабильный элемент) Синонимы: стабильный или устойчивый.
7 Ошибки Мандельбаг – ошибка со столь сложным поведением, что оно выглядит хаотичным. Откуда пришло: множество Мандельброта. Чаще всего возникает как следствие ошибок, возникших на стадии проектирования системы
8 Ошибки Шрёдинбаг – ошибка, которая никак не проявляет себя, однако внезапно возникает, если кто-то наткнётся на неё в коде или при необычных условиях и осознает, что программа в принципе не должна работать с такой ошибкой. После этого программа действительно перестаёт работать, пока не поправят ошибку.
9 Типы ошибок
10 Типы ошибок
11 Типы ошибок
12 Типы ошибок
13 Типы ошибок
14 Типы ошибок
15 Типы ошибок
16 Типы ошибок
17 Типы ошибок
18 QA. QC. Testing.
19 QA. QC. Testing. Обеспечение качества (quality assurance) – это процесс формирования требуемых свойств или качеств продукции по мере её создания. В нашем случае – отдел «Управления качеством» QA контролирует качество всего: требования кодинга контроля версий код ревью менеджмент релизов все виды процессов в дизайне, разработке, тестировании
20 QA. QC. Testing. Контроль качества (quality control) – это набор процедур, используемых для определения того, что качество продукта соответствует заявленному уровню. Какие процедуры: статический анализ кода мануальное тестирование автотесты бета-тестирование верификация валидация
21 QA. QC. Testing. Процесс – Quality Assurance Продукт – Quality Control
22 QA. QC. Testing. Quality Assurance Quality Control Testing
23 QA. QC. Testing.
24 Процесс тестирования
25 Процесс тестирования
26 Требования
27 Процесс тестирования
28 Процесс тестирования Чем раньше найдём ошибку, тем дешевле она нам обойдётся Тестирование переносим на более ранние этапы разработки системы Начинаем тестирование с ревью требований
29 Процесс тестирования Какие проблемы можем выловить: Неполнота требований Частые изменения в требованиях Требования изменяются в последний момент Противоречивые требования Не ясные требования
30 Процесс тестирования Какие проблемы можем выловить: Неполнота требований Частые изменения в требованиях Требования изменяются в последний момент Противоречивые требования Не ясные требования Пример 1: в дизайн макете отсутствует дизайн сообщений об ошибках, которые выводятся на сайте Пример 2: в ТЗ не указали, как должна реагировать система на клик по кнопке «Подтвердить»
31 Процесс тестирования Какие проблемы можем выловить: Неполнота требований Частые изменения в требованиях Требования изменяются в последний момент Противоречивые требования Не ясные требования
32 Процесс тестирования Какие проблемы можем выловить: Неполнота требований Частые изменения в требованиях Требования изменяются в последний момент Противоречивые требования Не ясные требования
33 Процесс тестирования Какие проблемы можем выловить: Неполнота требований Частые изменения в требованиях Требования изменяются в последний момент Противоречивые требования Не ясные требования Пример: в одном месте написано, что поиск в документах должен вестись только по краткому описанию, а в другом месте, что по полному
34 Процесс тестирования Какие проблемы можем выловить: Неполнота требований Частые изменения в требованиях Требования изменяются в последний момент Противоречивые требования Не ясные требования Любые слова из списка ниже: быстро/медленно возможно лучше нормально оптимально etc.
35 Процесс тестирования Как тестируем: UML диаграммы Схемы Mindmap В идеале интерактивный прототип => Axure
36 Процесс тестирования
37 Планирование
38 Процесс тестирования Тест-план – документ, в деталях описывающий подход к тестированию отдельно взятого продукта Существуют различные стандарты по оформлению такого документа (IEEE 829, RUP) В любом случае обязательно в тест-плане должно быть: Описание SUT (тестируемое приложение в целом) Подробное описание функционала, которое будем тестировать Каким образом будем тестировать (юнит-тесты, мануальное, авто, производительности, в каких браузерах) Расписание (либо точные даты, либо привязки к другим процессам) Критерии начала тестирования Критерии окончания тестирования
39 Процесс тестирования Планирование тестирования – всецело зависит от общей методологии разработки и скорее относится к QA деятельности, чем к самому тестированию
40 Процесс тестирования Тест-планов может быть несколько: Мастер тест план (как правило не изменен) Детализированный тест-план (для каждого подпродукта) План приёмочных испытаний Тест-планы тоже тестируются Основная сложность: поддержание тест-плана в актуальном состоянии
41 Тест-дизайн
42 Процесс тестирования Тест-дизайн – этап процесса тестирования, на котором проектируются и создаются тест-кейсы, тестовые данные, автотесты, сценарии нагрузочного тестирования и т.д. Тест-кейсы объединяются в тест-сьюиты, для создания наиболее удобной для работы иерархии.
43 Процесс тестирования Детализация тест-кейсов: Тест-кейс (расписываем шаги) <= подробный вариант Чек-листы (пишем только что нужно проверить) <= без деталей Способы хранения: Документы (Word, Excel, текстовые файлы, …) Специализированные системы (e.g. TestLink) Гибридный вариант (чек-листы интегрированы в Сбис, подробные документы в вордовских файлах)
44 Процесс тестирования Эффект пестицида – ситуация, когда при множественном использовании одних и тех же тест-кейсов (автотестов, сценариев, etc.) мы перестаём находить ошибки. Особенно актуально для автотестов и формальных методов в функциональном тестировании.
45 Процесс тестирования Основные причины возникновения: Всё протестировать не возможно Функционал постоянно меняется – возникают скрытые изменения Как бороться: Следить за изменениями в продукте Проводить ревизию тестов, которые не ловят ошибки Чаще менять тестовые данные Использовать исследовательское тестирование
46 Настройка окружения
47 Процесс тестирования В случае с тестированием веб-приложения: Собираем проект (вытаскиваем из репозиториев, подтягиваем все зависимости, копилируем, собираем в единый продукт) Обновляем стенд Настраиваем клиентскую часть (ОС, браузер, виртуалки) Проверяем настройки на клиентской и серверной частях
48 Процесс тестирования Непрерывная интеграция (англ. Continuous Integration) – практика разработки ПО, которая заключается в частом выполнении автоматизированных сборок проекта для скорейшего выявления интеграционных проблем. + проблемы выявляются на ранних стадиях + постоянное наличие текущей стабильной версии + организованность всего процесса разработки + идеальная платформа для автоматизации тестирования - дорого - необходимость поддержки большого штата машин - при больших размерах – выделенная команда (сборщики)
49 Процесс тестирования Существует множество решений для CI, наш выбор:
50 Процесс тестирования 1180 задач ≈10000 запусков ежедневно
51 Процесс тестирования
52 Процесс тестирования
53 Проведение тестирования
54 Процесс тестирования Выполнение тестирования: прогонка юнит-тестов прогонка интеграционных тестов проведение нагрузочного тестирования проведение тестирования безопасности выполнение проверок по тест-кейсам выполнение проверок по чек-листам (свободный поиск)
55 Процесс тестирования Создаём баг-репорт: Шаги воспроизведения ошибки Фактический результат Ожидаемый результат Серьёзность и приоритет
56 Процесс тестирования Что мы рассмотрели?
57 Процесс тестирования
58 Процесс тестирования dev test fix production Стенды:
59 Процесс тестирования dev test fix production Транк-версия, все сваливают всё, что хотят Стенды:
60 Процесс тестирования dev test fix production После фиксации версия попадает на test-стенд Стенды: Львиная доля тестирования проходит именно на данном стенде
61 Процесс тестирования dev test fix production За 3-5 дней до релиза обновляется фикс-стенд Стенды: Стенд конфигурируется максимально похожим на боевой (клонирование, синхронизация БД)
62 Процесс тестирования dev test fix production Стенды: Обновляется ночью в выходные. Обновлением занимается служба экспулатации
63 Процесс тестирования dev test fix production Стенды: Тест-дизайн: Разработка тест-кейсов Актуализация
64 Процесс тестирования dev test fix production Стенды: Тест-дизайн: Разработка тест-кейсов Актуализация Большой круг:
65 Процесс тестирования dev test fix production Стенды: Тест-дизайн: Разработка тест-кейсов Актуализация Большой круг:
66 Процесс тестирования dev test fix production Стенды: Тест-дизайн: Разработка тест-кейсов Актуализация Большой круг: Малый круг:
67 Процесс тестирования dev test fix production Стенды: Тест-дизайн: Разработка тест-кейсов Актуализация Большой круг: Малый круг: Автотестирование:
68 Вопросы есть?
Спасибо за внимание! Разработка СБИС Докучаев Сергей Валерьевич / [email protected] (4852) 262-000 (доб. 3435) sbis.ru