Тестирование методом свободного поиска (exploratory testing)
Тренер: Баранцев Алексей
Продолжительность курса: 8 часов
Тестирование методом свободного поиска, или тестирование без заранее спроектированных тестов, выполняемых в точном соответствии с планом -- это, наверное, единственный подход к тестированию, который эффективно работает в условиях неопределенности:
- когда требований нет или они часто меняются,
- когда на ранних этапах разработки отдельные части программы уже работают, но некоторые еще не реализованы,
- когда программа активно эволюционирует и не удается зафиксировать тесты,
- когда тестировщик осваивает новую предметную область или новый вид тестирования,
- когда тестировщик начинает использовать новые методы тест-дизайна, опыта применения которых у него нет,
- когда цели следующей итерации тестирования меняются в зависимости от результатов предыдущей итерации,
- когда все остальные подходы уже исчерпали себя, а пользователи почему-то все равно не считают наш продукт идеальным :)
Предварительное проектирование тестов -- это попытка построить тактический план тестирования, попытка декомпозировать задачу тестирования до уровня отдельных тестов.
Однако неопределенность мешает построить стабильный тактический план, поскольку в процессе его выполнения обнаруживается новая информация, приводящая к изменению планов и первоначальных оценок.
Что же делать?
Если неопределенность высока, надо отказаться от предварительного проектирования тестов и низкоуровневых планов тестирования. Это позволит сохранить гибкость, даст возможность быстро реагировать на появление новой информации и подстраиваться к изменившейся ситуации.
Надо перейти к тестированию методом свободного поиска.
А как же контроль и учет? Можно ли при этом сохранить управляемость процесса тестирования?
Можно. Свобода не должна превращаться в хаос и анархию. Вы можете двигаться любым путем, но прийти в нужную точку. Вы можете делать работу в любом порядке, но сделать всю. Свобода на тактическом уровне прекрасно сочетается с хорошей управляемостью на стратегическом уровне.
Кроме того, это дополнительно дает возможность тестировщикам локально оптимизировать свою работу -- проектировать наиболее подходящие тестовые сценарии и данные, определять наиболее удобную последовательность выполнения тестов, может быть даже полностью отказаться от такого понятия как "тест" и перейти к использованию "check-листов", "cheet-листов", "idea-листов".
Идеологи и энтузиасты тестирования методом свободного поиска выработали ряд приемов, которые на первый взгляд могут показаться противоречащими традиционным практикам, но на самом деле обеспечивают хорошее качество тестирования и высокую производительность труда в условиях "тактической свободы действий":
- тестирование "по целям", а не "по плану",
- "сеансовое" тестирование (час тестируем - час не тестируем),
- тестирование силами "дорогих" тест-дизайнеров, а не "дешевых" тест-инженеров,
- и даже полная замена последних первыми (конечно, не путем увольнения, а путем повышения квалификации),
- "парное тестирование" (двое тестировщиков за одним компьютером),
- фиксация тестов в учетных системах не до, а после тестирования,
- использование альтернативных методов оценки полноты и качества тестирования.
Разумеется, это требует перестройки отношения к тестированию со стороны руководства, и отношения тестировщиков к руководству. Чтобы тестировать "по целям", а не "по плану" надо научиться формулировать и согласовывать цели, надо научиться получать от руководства "заказ" на тестирование, надо научиться представлять результаты тестирования и давать ответ на вопрос "сколько протестировано и сколько еще осталось" в условиях, когда нет ни плана, ни тестов.
Да, все это предъявляет дополнительные требования к квалификации тестировщиков, но результатом является заметное повышение их производительности труда. А для тестировщиков это означает, что они могут задействовать не только руки, но и мозг, что превращает тестирование из рутины в увлекательнейшее занятие.
Конечно, вряд ли всего за один день я смогу помочь вам повысить вашу производительность тестирования в разы. Но я покажу вам направление, двигаясь в котором вы сможете достичь такого эффекта.
Я расскажу о том, какие приемы можно внедрить быстро и получить немедленный результат, а какие потребуют длительной "притирки" к конкретному проекту и даже к индивидуальному стилю тестирования. Я расскажу о том, когда не стоит применять тестирование методом свободного поиска. Я расскажу, как можно автоматизировать (до определенной степени, конечно) свободный поиск.
Я расскажу все, что знаю.
А дальше вам предстоит двигаться самостоятельно, потому что это один из постулатов тестирования методом свободного поиска -- адаптация применяемых приемов и техник к меняющейся ситуации для максимально эффективного достижения поставленных целей тестирования.
После завершения обучения слушатели:
- Будут иметь представление о различных парадигмах тестирования
- Будут знать, какие существуют подходы к оценке полноты тестирования
- Научатся определять баланс между тестированием "по плану" и тестированием методом свободного поиска
- Научатся применять технику "сеансов" для организации работ по тестированию
- Научатся использовать различные техники для фиксации спроектированных и фактически выполненных тестов
Программа тренинга
1. Вводное упражнение -- построение плана тестирования учебного приложения.
Обсуждение факторов, влияющих на точность планирования (оценка времени, определение последовательность действий, учёт рисков).
Обсуждение возможных действий при появлении в процессе тестирования новой информации, не учтённой при планировании.
2. Обсуждение теоретических аспектов.
Что такое "тестирование"? Какие бывают "виды тестирования"?
План чего мы построили и что будет являться результатом выполнения этого плана?
Различные парадигмы тестирования -- почему они существуют и каковы практические последствия этого.
Что такое тестирование методом свободного поиска и какое место оно занимает в общей картине мира.
3. Первый практический сеанс тестирования, обсуждение результатов.
Обсуждение влияния результатов тестирования на построенный ранее план.
Рассмотрение достоинств и недостатков одновременного проектирования и выполнения тестов.
4. Концепция "сеанса тестирования" и способ организации процесса тестирования в виде набора сеансов.
Различие между понятиями "цель", "задание", "план".
Как формулировать цели тестирования?
Метафора "The touring test". Построение карты приложения. Выбор "туров".
Как описывать результаты тестирования?
5. Второй практический сеанс тестирования, обсуждение результатов.
Парное тестирование -- достоинства и недостатки.
Что делать между сеансами тестирования?
6. Дополнительные идеи, которые можно применять при тестировании методом свободного поиска.
Чит-листы.
Автоматизация.
7. Третий практический сеанс: регрессионное тестирование, обсуждение результатов.
Обсуждение достоинств и недостатков использования тестирования методом свободного поиска при регрессионном тестировании.
8. Особенности взаимоотношения с коллегами и начальством. -- как им объяснить, "чем это вы тут занимаетесь"?
Как оценивать полноту тестирования?
Как оценивать качество работы тестировщика?
Как начать внедрение тестирования методом свободного поиска?
Когда и где не стоит использовать тестирование методом свободного поиска.