• Главная
  • О нас
  • Статьи
  • Вакансии
  • Контакты

Научить разработчиков тестировать. Реально ли? Нужно ли?

10 Май 2013 by Juds in Разное tags: it experience, TDD, tester
BEVm8YJCAAAsYxR
Очередные мысли (с вольными переводом) на тему тестирования разработчиками. Навеяно статьей Joel Montvelisky, который считает, что отправить разработчика тестировать – это отправить лису охранять курятник.
Но если напрячься, то можно научить разработчиков несложным, но эффективным техниками тестирования. Возможно, это может помочь вашему проекту.
Для этого потребуется несколько шагов.
Шаг 1 “Понять и простить” 
0_5d12a_17f3455d_l
Нужно понять, что у разработчиков есть свои слабости:
  • родительская забота о своем коде
  • сфокусированность на успешном сценарии, вместо поиска проблем
  • склонность смотреть на сложную проблему, как на набор небольших, простых и изолированных
  • разработчик реже думает о пользователе
  • меньше знаний общих проблем и узких мест продукта
Хмм, действительно часто наблюдаю и заботу, и узкий взгляд на проблему. Да, есть товарищи, которые, что называется кровью заплатили за этот самый опыт. И теперь реже наступают на грабли. Но забывать о слабостях все равно не нужно. С другой стороны: может “успешный сценарий” и есть те самые 20% функционала используемые 80% пользователей?

Шаг 2 – учим планировать тестирование.
Многие разработчики считают, что тестирование не требует планирования. На самом деле, это не так. Если мы говорим о тестировании разработчиками, то здесь есть некоторые правила при планировании:
  • Если тестировать, то чужой код (см. про бережное отношение к своему коду выше)
  • Обсуждайте набор тестов с тестировщиками
  • Расширяйте сценарии после анализа окружения, конфигурации, набора данных, с которые будут задействованы в сценариях.
  • Тестируйте эвристически: принцип SFDEPOT

SFDEPOT нам дает:

S(tructure) – из чего состоит продукт
F(unction) – что продукт делает
D(ata) – с чем он работает
P(latform) – от чего зависит
O(perations) – как он будет использован

T(ime) – когда он будет использован

Шаг 3 Что делать, когда запускаются тесты :)

  1. Записывайте новые идеи того, что нужно проверить, “баги” в которые воткнулись и которые нужно зарепортить (звучит как совет КО, имхо лучше сразу чинить. Вы же разработчик ;) С другой стороны, правильно отмеченные проблемы помогут вам на рестроспективах)
  2. Не забывайте про работу с граничными значениями (большие/маленькие файлы, специфичные даты, максимальные/минимальные числовые значения и тп)
  3. Размышляйте о негативных сценариях (например пропадание электричества и тп)
  4. Старайтесь смотреть шире. При проверке конкретной функциональности, смотрите вокруг: что происходит с продуктом и его окружением.
  5. Боритесь с селективной слепотой (слепотой по невниманию - Inattentional Blindness). Этот ролик поясняет в чем суть. Вы увлекаетесь одним предметом и не замечаете того, что происходит вокруг.
Шаг 4 Что делать, когда (как вам кажется) вы закончили тестировать
Даже когда вам кажется, что вы закончили, вы не должны успокаиваться. Подумайте где и что вы бы могли проверить.
Вот несколько практик

  • Делайте перерывы, займитесь другими делами. А потом проанализируйте заново что вы проверяли и что нашли. Обычно помогает освежить мозги.
  • Расскажите вашим коллегам о том, что и как вы проверяли. Самое удивительное, что в процессе этого, к вам в голову будут приходить новые идеи.
  • Посоветуйтесь со спецами (наверняка у вас есть крутаны-тестировщики). Они обязательно придумают вам еще 100500 сценариев, которые вы забыли проверить. :)
А на самом деле, кто в итоге будет тестировать: разработчики, тестировщики или совместно – не важно. Главное чтобы: “пацан наШкодил – пацан исправил” :) А кто эту шкоду нашел, какая разница?
Но ведь пацаны пишут все правильно и без ошибок, не так ли? ;)Почему? Потому что используют TDD.
Uncle Bob (aka Robert C. Martin) недавно замутил очередную бурю по этому вопросу. Две интересные статьи всколыхнули прогрессивную общественность The Start-Up Trap и The Pragmatics of TDD. Читаем и задумываемся.Так нужно ли учить разработчиков тестировать? Наверно нужно. Постоянно появляются статьи про то, что тестировщикам нужно уметь программировать . Так почему же разработчики не должны понимать базовые принципы тестирования. Это позволит команде говорить на одном языке.

Источник: maxshulga-ru.blogspot.com

Google готовит глобальное обновление игровых сервисов для Android
Коллективный разум: Что такое краудсорсинг?

Leave a Comment! Отменить ответ

You must be logged in to post a comment.
Уроки
  • Cinema 4D
  • Unity3D
  • PHP
  • Delphi
  • JavaScript
  • Python
  • HTML5
  • Go
Статьи
  • Новости
  • Game Development
  • PHP
  • QA
  • IT Юмор
  • Разное
Теги
Android Composer Delphi excerption experience Game Design game development gameplay Git Go! AOP google Google Analytics HHVM it experience it юмор Laravel Linux manager Phalcon PHP Python QA RFC Selenium Silex Slim Symfony 2 unity3d warcraft Yii Yii 2 Zend Framework 2 Zephir Биографии Новости Обучение веб-разработка высоконагруженные проекты дайджест дизайн исследование подборка ссылки стартап тенденции
О Нас

Juds–компания по разработке программного обеспечения, разработке веб-проектов и мобильных приложений. Все предлагаемые нами решения индивидуальны и направлены на максимально точное удовлетворение потребностей наших партнеров. Мы находимся в постоянном поиске новых ярких решений. Главные критерии – актуальность применения и инновационность.

Статьи
  • Лучшее из мира PHP за 2013
  • Полезные функции Google Analytics
  • Что в SEO можно считать нормальным и работающим, а что – отжившим
  • 30 полезных для себя вещей
  • Дайджест интересных новостей и материалов из мира PHP (20 октября — 10 ноября 2013)
  • Cinema 4D: создаем плагин – объект
IT Юмор
Метки
Android Composer experience Game Design game development google HHVM it experience it юмор Laravel manager PHP unity3d Yii Zend Framework 2 Zephir Новости Обучение веб-разработка дайджест исследование подборка ссылки стартап тенденции
© 2014 Juds. Все права защищены.