Как искать и находить баги?
тренер: Баранцев Алексей
Вы уже освоили основные техники тест-дизайна? Отлично! Значит, Вы – квалифицированный тестировщик.
Но куда двигаться дальше? Что делать, чтобы стать высококвалифицированным тестировщиком?
Как научиться находить баги, которые не находят другие тестировщики, несмотря на то, что они знают те же самые техники?
Освоение техник – это лишь первый шаг на пути к мастерству. Как нотная грамота и гаммы для музыканта. Как умение держать ракетку и наносить удары слева и справа для теннисиста. Как знание дебютов и эндшпилей для шахматиста.
Разумеется, техники надо знать. Но для осмысленного, а тем более творческого их применения требуется ещё кое-что:
Нужны дополнительные профессиональные навыки.
Этот тренинг нацелен на формирование у тестировщика специальных навыков:
- наблюдательность,
- умение задавать вопросы,
- “чтение между строк”,
- поиск информации,
- “брейншторминг”,
- моделирование,
- выстраивание причинно-следственных связей,
- сравнение и выявление различий,
- фокусировка и расфокусировка,
- латеральное мышление и рефрейминг,
- профессиональное “двоемыслие”.
Почитайте внимательно статьи и учебники про техники тест-дизайна. Они правильные, и они работают. Но в них не хватает чего-то неуловимого...
Откуда берутся пропущенные баги, которые тестировщик “не заметил”? Почему не заметил? Техники не виноваты. В них ничего не говорится о том, как надо проверять результат. Просто не хватило наблюдательности.
Почему в продуктив попадают баги, для которых тестировщик “не придумал” подходящего теста? Техники не виноваты. Просто неверно выбрана модель или техника применялась не там и не так.
В описаниях техник уделяется много внимания тому, как анализировать входные данные, как строить комбинации, какие последовательности нужно выполнять.
Но там не написано главного – как понять, что вы нашли баг? Как его узнать? Как понять, правильно или неправильно работает программа? Говоря “профессиональным” языком – тема оракулов не раскрыта.
Наконец, как понять, правильно или неправильно вы применяете ту или иную технику? Тема оценки полноты покрытия не раскрыта тоже.
На этом тренинге мы будем учиться:
- систематически анализировать документацию, проследим путь от спецификации к тестам и дальше, к багам,
- видеть не только то, что очевидно, чтобы замечать неочевидные баги,
- переключать внимание с одного аспекта на другой, чтобы ловить “интеграционные” баги,
- определять, что является багом, а что не является,
- доказывать, что баг – это действительно баг,
- задавать правильные вопросы заказчику, менеджеру, аналитику и даже программисту,
- придумывать тесты без использования техник не хуже, чем с техниками,
- строить разные модели – ментальные, формальные, концептуальные.
Кроме того, мы освоим профессиональную работу с уже обнаруженными багами:
- как правильно описывать баги,
- как следить за судьбой описанного бага,
- как перепроверять якобы исправленные баги,
- как не уставать при регрессионном тестировании и перепроверках,
Помимо пойманных багов надо уметь также работать и с непойманными (да, это будет случаться, несмотря ни на что). Поэтому мы будем учиться:
- подсчитывать тестовое покрытие и оценивать полноту тестирования,
- протоколировать результаты работы,
- писать хорошие тестовые отчёты,
- объяснять, почему же мы всё таки пропустили этот баг...
Игры, упражнения, соревнования, и конечно – реальное тестирование, всё это будет в программе тренинга.
После него вы вернётесь на своё рабочее место “намагниченным” и “заряженным” на поиск багов. И они это почувствуют, не сомневайтесь :)
Программа тренинга
День первый
1. Подготовка инфраструктуры, знакомство – 30 минут
2. Тестирование учебной программы (упражнение и разбор), обсуждение на тему «Что важнее – техники или навыки?» – 60+15 минут
3. Тестирование новой программы, искусство задавания вопросов (упражнение и разбор) – 60 минут
4. Что делать, когда ты нашел баг? Глобализация и локализация (демонстрация и обсуждение) – 45 минут
5. Искусство описания багов (упражнение и разбор) – 60 минут
6. Регрессионное тестирование и перепроверка багов – как и зачем много раз выполнять одни и те же тесты? – 45 минут
7. Моделирование: умение смотреть на программу под разными углами (упражнение и разбор) – 45 минут
8. Тестирование юзабилити: поселите у себя в голове персонажей (упражнение) – 30 минут
День второй
1. Стратегия тестирования (обсуждение) – 45 минут
2. Сравнение двух программ: какая лучше? (упражнение и обсуждение) – 60 минут
3. HICCUPPSF: эвристики построения оракулов (демонстрация, упражнение и разбор) – 15+60 минут
4. Построение тестов для сложной функциональности (упражнение и разбор) – 60 минут
5. Тест-кейсы, чеклисты, тестирование методом свободного поиска – в каком соотношении смешивать? (обсуждение) – 30 минут
6. Тестирование методом свободного поиска (упражнение и разбор) – 60 минут
7. Регрессионное тестирование и перепроверка багов – как и зачем много раз выполнять одни и те же тесты? (обсуждение) – 30 минут
8. Автоматизация тестирования (демонстрация и обсуждение) – 45 минут
9. Завершение курса, подведение итогов – 30 минут
В этом тренинге по согласованию с Майклом Болтоном используется методика и упражнения из всемирно известного тренинга Rapid Software Testing. Для подготовки к тренингу тренер Алексей Баранцев трижды провел совместные с Майклом тренинги в качестве ассистента и второго тренера.