пятница, 2 апреля 2010 г.

Исследовательское тестирование: заблуждение об "изучении"

Во время дискуссии, развернувшейся вокруг моего поста про исследовательское тестирование (ET), всплыло много вопросов, с которыми я решила последовательно разбираться. И чтобы сразу стало понятно, с чем именно я решила разбираться в первую очередь, приведу цитату из комментариев к моему посту:


"у тестирования методом свободного поиска есть существенный недостаток: ознакомление с программой в ходе ее исследования не поможет прояснить, были ли программистами правильно воплощены те задачи, которые перед ними кто-то когда-то поставил"

Подобные мысли никак не соответствовали моему представлению о ET и не вязались с моими собственными тестерскими убеждениями.

Но насколько я поняла, высказанная мысль - это достаточно популярное заблуждение, касающееся ET, проистекающее, возможно, из самого его определения (одного из них, наиболее популярного, благодаря его краткости):
исследовательское тестирование - это одновременное изучение, дизайн тестов и их выполнение (exploratory testing is simultaneous learning, test design, and test execution)

Похоже, именно слово "изучение" (learning) может вводить в заблуждение и заставлять думать, что ET предполагает получение информации о тестируемом продукте исключительно в процессе его тестирования, т.е. взаимодействия с ним. 

Я чувствовала, что "изучение" в контексте ET - это гораздо больше, чем просто ознакомление с неизвестным продуктом в ходе его тестирования, но надо было найти этому подтверждение - выяснить, что же именно и исходно вкладывалось в это понятие.

К счастью, развёрнутое объяснение этого самого "изучения" в ET нашлось в документе "A Tutorial in Exploratory Testing" Кема Канера, начиная с такого определения на с.41:

Изучение: всё, что может направить нас в том, что тестировать, как тестировать или как распознать проблему (Learning: Anything that can guide us in what to test, how to test, or how to recognize a problem)

Сразу становится понятно, что "изучение" - это не просто знакомство с программой в ходе её тестирования, а нечто гораздо большее. Это очень многое, включая и анализ всевозможных источников информации о явных и неявных требованиях к продукту, и даже изучение того, как надо изучать. Всё, что пишет Кем Канер по этому поводу, лучше у него и читать - лично я не рискну даже пытаться пересказать это всё своими словами, т.к. слишком уж это объёмно, многогранно и подлежит основательному осмыслению. 

Но изучение спецификаций к продукту - безусловно к этому относится. Так что тестирование продукта без представления о требованиях к нему - это всего лишь миф о ET, причём очень далёкий от самого ET.

27 комментариев:

  1. Самая большая проблема - перевод терминов и learning в данном контексте лучше переводить как познание.

    ОтветитьУдалить
  2. clauster, а можете уточнить, что Вы подразумеваете под «самой большой проблемой»? Проблема чего - моего поста? ET в русскоязычной среде? меня? :) И в чём заключается то, что она «самая большая»?

    Кстати, вариант «познание» мне как-то не слишком нравится. Ведь речь не идёт о каком-то поиске истины или чего-либо подобного. Не просто приобретение знаний. Тут именно процесс активного изучения, анализа, осмысления, поиска и т.д. Так что не соглашусь. Хотя и термин «изучение» не считаю идеальным, но лучшего пока не нашла.

    ОтветитьУдалить
  3. Проблема - из-за которой много споров и недопониманий. То, что вы описали, как раз и есть познание :) Вкратце, поиск истины (правды) о состоянии продукта - это же и есть цель тестирования. Вспомните выражение 'момент истины' - часто ли вам по ходу тестирования приходится сталкиваться с такими моментами? Думаю, что часто. Вот видите, даже общаясь, казалось бы, на одном языке, возникают недопонимания.

    ОтветитьУдалить
  4. Видимо, с терминологий - это вопрос личного восприятия. Просто для меня «познание» - это в определённой степени процесс однонаправленный, когда человек только получает информацию извне. А «изучение» - нечто более активное, предполагающее и двустороннее взаимодействие с внешней информацией… Ну вот не получается толком объяснить :( Но трактовка понятий - это очень субъективно. Скажите «холодно» - и спектр того, что представят себе люди, будет очень широким. Думаете, имеет смысл об этом спорить?

    В любом случае:

    во-первых, мне НЕ кажется, что проблема именно в терминологии и переводах; проблема скорее в неполноте информации - когда одновременное изучение/познание наряду с тестированием трактуется только как изучение/познание исключительно посредством тестирования. Т.е. если люди судят только по этому определению и не вникают глубже, то именно в таком случае и возникают проблемы.

    во-вторых, я лично вообще при чтении не занимаюсь для себя переводами всего на русский язык. Я воспринимаю learning как learning, исходя не из самого термина, но из развёрнутого объяснения того, что за этим стоит. Называете вы это познанием или я изучением - какая собственно разница, если вы и я вкладываем в это подобный смысл?

    ОтветитьУдалить
  5. Пока ходила на обед, решила пояснить:

    Я считаю, что как бы мы ни назвали этот процесс - изучение, познанием, расследованием, поисками правды или ещё как угодно - разницы нет, если люди считают, что в исследовательском тестировании всё это предполагается ТОЛЬКО через непосредственное взаимодействие с тестируемым продуктом.

    Важно то, что исследовательское тестирование предполагает и придаёт очень большое значение этому самому изучению, познанию, расследованию, поиску правды или ещё как угодно - с использованием ВСЕГО, что только может нам помочь в понимании того «что тестировать, как тестировать или как распознать проблему».

    ОтветитьУдалить
  6. Как это, однонаправленный? Извне, это откуда вообще? Ладно, понятно - у вас все с ног на голову :) Изучение более узкий термин, это усвоение чего-либо, какой-то области (например, вы изучили органы управления автомобилем), а познание это творческий процесс по получению _достоверной информации_ (вы изучили органы управления автомобилем, научились на нем ездить, заливать бензин, менять колеса, ремонтировать и т.д.). Из меня, конечно, гуманитарий так себе, но вы не путайте образы и суть вещей (я про холодно). Вот образы субъективны, да, причем не всегда верны.

    Неполнота информации это миф, информационный вакуум всегда заполняется, вопрос только, чем? Поэтому определение должно быть достаточно понятным, чтобы вникание глубже (познание :)) требовалось не для понимания определения (изучение :)), а ради самого вникания. Существуют же вещи о которых вы ничего не знаете, но представляете что это такое.

    Но если вы в итоге переводите и публикуете это в публичном блоге, как вы думаете, все ли смогут вложить правильный смысл? Я, видя слово изучение вкладываю совершенно другой смысл, и не отсюда ли растут ноги комментария:
    "у тестирования методом свободного поиска есть существенный недостаток: ознакомление с программой в ходе ее исследования не поможет прояснить, были ли программистами правильно воплощены те задачи, которые перед ними кто-то когда-то поставил"

    ОтветитьУдалить
  7. Ох... Споры какие-то слегка ни о чём. Но ладно, давайте в конце концов обратимся к каким-либо авторитетам, что ли - толковый словарь Ожегова пойдёт?

    ИЗУЧИТЬ (http://slovarozhegova.ru/word.php?wordid=9745)

    ИЗУЧИТЬ, -учу, -учишь; -ученный; сов., кого-что. 1. Постичь учением, усвоить в процессе обучения. И. ремесло. И. иностранный язык. 2. Научноисследовать, познать. И. древнюю рукопись. 3. Внимательно наблюдая,ознакомиться, понять. Я. обстановку. И. чей-н. характер. II несов. изучать,-аю, -аешь. II сущ. изучение, -я, ср.

    ПОЗНАТЬ (http://slovarozhegova.ru/word.php?wordid=22098)

    ПОЗНАТЬ, -аю, -аешь; познанный; сов. (книжн.). 1. кого-что. Постигнуть, приобрести знание о ком-чем-н., узнать вполне.П. природу. П. сущность вещей.П. жизнь. П. друга в -несчастье. 2. что. Испытать, пережить. П. радость. П.горечь разлуки. II несов. познавать, -наю, -наешь. II сущ. познание, -я, ср.(к 1 знач.) и познавание, -я, ср. (к 1 знач.). II прил. познавательный, -ая,-ое (к 1 знач.). П. процесс.

    Так что если уж на то пошло, то 2е значение глагола «изучить» - это также «познать».

    Я не претендую на то, что моё мнение - однозначно верное. Но признать таковым и ваше мнение я не могу. И продолжаю настаивать на том, что восприятие всё-таки субъективно. Хорошо, плохой пример с «холодно». Берём другой пример - «обучение»: для кого-то - это значит «ходить в школу и сидеть за партой», для кого-то - это будет значит «перерыть все мыслимые и немыслимые источники информации, чтобы что-то постичь и познать». Так что спорить о словах - не бессмысленное ли всё-таки занятие? Вы говорите, что вы воспринимаете так, а я - воспринимаю по-другому. Но разве кто-либо из нас является репрезентативной выборкой, чтобы решить, что одно слово подходит, а другое - нет?

    Да, я пишу публичный пост и привожу свои переводы. Но я при этом пишу свои пояснения. И заодно я привожу оригинальный английский текст. И кроме того - ссылки на источник. Я надеюсь, что люди не будут из всего поста воспринимать только одно слово и на его основании делать выводы. Но я и не надеюсь, что меня правильно поймут все. Однако я надеюсь, что кто-то всё-таки поймёт ту мысль, которую я пыталась выразить.

    ОтветитьУдалить
  8. А насчёт намёков на то, что упомянутый мной комментарий явился следствием употребления мной «не тех» слов - даже как-то оправдываться неприятно. Перечитайте всё обсуждение и решите сами.

    ОтветитьУдалить
  9. Ожегова не пойдет, довольно поверхностный, да и он советский, а в советское время русский язык сильно обеднили да много подмен понятий появилось. Но это уже оффтопик.
    Обучение пассивный процесс, т.е. кто-то кого-то обучает. Спорить о словах не бессмысленное занятие, чтобы выяснить суть не нужна репрезентативная выборка. Я для себя решил - слово "изучение" в данном случае не совсем подходит.

    Все что вы приняли за намеки на вас, к вам никакого отношения не имеет, я просто хотел показать глобальность данной проблемы. Насколько я знаю, Алексей в теме CDTS и ET, но (возможно он просто повыделывался :)) неправильный перевод\понимание слова может привести к искажению изначального смысла при субъективном восприятии. Эта проблема иногда настолько серъезна, что многие переведенные книжки невозможно читать, потому что в голове ничего не увязывается.

    PS: Я никогда не приписываю "имхо", т.к. и так должно быть понятно что я излагаю своё мнение, если не даю ссылку на источник. Я не какой-то там языкоборец или зануда, просто хотелось продемонстрировать проблему.

    ОтветитьУдалить
  10. Коллеги, я заметил, что незаметно слово "изучение" связалось со словом "обучение".

    Согласен с Леной, что у слова "изучение" есть значение, весьма близкое к одному из значений слова "познание". У Ожегова оно второе. Третье тоже достаточно хорошо коррелирует с ET.

    А со словом "обучение" связано первое значение, "усвоить в процессе обучения", и это значение действительно никакого отношения к ET не имеет.

    Однако ведь и у слова "познать" в словаре Ожегова есть второе значение, менее подходящее.

    Вряд ли вообще удастся найти ИДЕАЛЬНО подходящее слово, потому что человеческие языки неформальны, многозначны и двусмысленны. Разве что использовать специально придуманное слово, либо своё собственное, либо чужое, например, "грокнуть" :)

    ОтветитьУдалить
  11. Алексей, спасибо :)

    (и открыла для себя слово "грокнуть", раньше не слышала :) )

    ОтветитьУдалить
  12. Alexei Barantsev комментирует...

    Коллеги, я заметил, что незаметно слово "изучение" связалось со словом "обучение".

    Согласен с Леной, что у слова "изучение" есть значение, весьма близкое к одному из значений слова "познание". У Ожегова оно второе. Третье тоже достаточно хорошо коррелирует с ET.
    *************
    Да, во втором значении очень интересный пример: Изучить древнюю рукопись. Это далеко не то же самое, что познать древнюю рукопись. Всё, надоело занудствовать.

    ОтветитьУдалить
  13. (и открыла для себя слово "грокнуть", раньше не слышала :) )

    Для того, чтобы грокнуть слово "грокнуть", надо полностью прочитать роман Хайнлайна "Чужой в чужой стране", словарного определения недостаточно :)

    ОтветитьУдалить
  14. Да, согласна: «познать древнюю рукопись» - звучит по-другому, очень громко.

    Я вообще не понимаю этой тяги к громким словам. Как будто вообще возможно действительно познать суть каких-то вещей. Что есть суть? Что есть истина? Это уход в какие-то философские дебри...

    Что реально - это изучить вопрос с доступного множества сторон; и если вдобавок при этом откроется какая-то истина - ну, замечательно, вот только совершенно не обязательно. Тем более, что, например, удовлетворённость конечного пользователя - это не поиски абсолютной истины, а скорее попытка понять и угодить очень субъективным желаниям и восприятию. Так что про познание ли в конечном итоге речь идёт?

    А при употреблении всех этих громких слов ещё как будто подчёркивается, что исследовательский подход - это что-то сложнопостижимое и недоступное простым смертным, а только удел какой-то касты просветлённых. По-моему, проще надо быть...

    ОтветитьУдалить
  15. Выскажу свою точку зрения тоже.

    Лично я считаю, что слово "изучение" подходит в данном случае лучше всего, потому что именно оно наиболее точно передаёт значение английского слова "learn".

    Отцы-основатели сочли правильным употребить именно этот термин, а не cognize или хотя бы find out, которые более точно соответствуют русскому понятию "познавать".

    Отличие, на мой взгляд, заключается в том, что слово "познавать" (и его упомянутые выше английские аналоги) имеет слишком сильный оттенок философствования, то есть познания не путём экспериментов, а путём размышления. Надо признать, что find out имеет более широкий смысл, но даже этот глагол не был использован.

    И мне кажется, что learn очень хорошо подходит всеми своими смыслами, потому что научиться чему-нибудь в процессе обучения -- это тоже неплохо, если учиться у правильного человека.

    Может быть это и не имеет прямого отношения к ET когда мы говорим о том, как тестировщик выполняет тесты, но уж точно имеет отношение к тому, что тестировщик-человек, занимающийся таким видом тестирования, должен быть открыт и всегда готов к тому, чтобы узнать что-нибудь новое, в том числе и посредством обучения.

    ОтветитьУдалить
  16. Этот комментарий был удален автором.

    ОтветитьУдалить
  17. Слова ни разу не громкие и это не дебри, а основы философии. Бах, кстати, не гнушается изучать философию и даже где-то говорил, что тестирование это не компьютерная наука. Специально для вас скопипастил из Википедии.
    *************************
    Суть=Сущность - то постоянное, что сохраняется в явлении при различных его вариациях, в том числе и временных.

    Познание — это творческий процесс получения и постоянного обновления знаний необходимых человеку:

    * Познание (философия) — совокупность процедур и методов приобретения знаний о явлениях и закономерностях объективного мира. Познание - душевная деятельность, результатом которого получается знание, явление внешнего и внутреннего мира в их сосуществовании и закономерной последовательности.
    * Познание (в психологии) (когнитивность) — термин, обозначающий в психологии способность к умственному восприятию и переработке внешней информации.
    * Познание (обществознание) — процесс деятельности человека, основным содержанием которого является отражение объективной реальности в его сознании, а результатом- получение нового знания об окружающем мире.

    И́стина — верное отражение объекта познающим субъектом, воспроизведение его таким, каким он существует сам по себе, вне и независимо от познающего субъекта и его сознания. Истиной может называться само знание (содержание знания) или сама познанная действительность. В целом, истина есть универсальная категория, понятие, используемое, в частности, как в религии и философии, так и в рамках научного познания. Противоположным истине является понятие заблуждения
    *************************
    А теперь ответьте для себя ещё раз, нужно ли докапываться до истины. Не понял, при чем тут удовлетворенность конечного пользователя - т.к. судя по тому, что вы употребляете "субъективный", вы собираетесь каждого персонально удовлетворить, а это заблуждение.

    По поводу сложнопостижимости и недоступности простым смертным не то что исследовательского подхода, а в принципе тестирования - иногда такое впечатление складывается после собеседования кандидатов. Если бы все было так просто, то все бы кругом были экспертами, но ведь нет.

    ОтветитьУдалить
  18. Алексей, насчёт "грокнуть" - это понятно. Открыла я его для себя исключительно в смысле "узнала о его существовании" (надеюсь, меня никто не раскритикует по поводу такого употребления слова "открыть") :)

    ОтветитьУдалить
  19. Не думаю, это совершенно правильное использование слова открыть :)

    ОтветитьУдалить
  20. Вы меня конечно извините, что вмешиваюсь в вашу дискуссию, но мне кажется что, нежели тратить столько времени на подбор "идеального" слова, лучше просто подробнее расписать, что автор под этим словом подразумевает (что Лена и сделала, и за что ей Спасибо!). Главное услышать именно то, что хочет передать автор.

    Все равно даже если вы подберете слово, которое идеально описывает вашу мысли, найдется человек, который воспримет его по своему. Людям не всегда свойственно вдумываться в каждое написанное слово.

    ОтветитьУдалить
  21. clauster,

    по поводу основ философии: я в курсе, что Джеймс Бах многим интересуется, но не думаю, что он это делает ради того, чтобы превратить тестирование пусть не в дебри, но даже в основы философии.

    Мне лично очень не нравится оперирование понятиями типа «суть» и «истина» хотя бы потому, что не уверена, что это в принципе можно постичь. Как можно быть уверенным в постижении какой-либо истины, когда все мы вообще можем быть сном Будды? Я лично не знаю в этом мире ничего абсолютного и непреложного.

    Что касается той субъективности, про которую я говорила: ну, во-первых, если продукт разрабатывается для конкретного заказчика, то о его конкретно субъективной удовлетворённости и идёт речь, здесь вроде как и спорить не стоит? А во-вторых, даже если речь идёт о каком-то коробочном продукте, то всё равно целью является удовлетворённость потенциальных пользователей. Конечно, не каждого конкретного, но хотя бы какого-то большинства. А мнения и желания большинства очень много общего имеют с какими-то абсолютными истинами?

    По поводу сложности тестирования: думаю, что многое зависит от подачи. Если позиционировать тестирование как что-то сложное и недоступное, то и результат будет соответствующим. А в том же ЕТ, насколько я понимаю, акцент делается именно на то, что это подход, гораздо более соответствующий естественному мыслительному процессу и гораздо в меньшей степени искусственный и надуманный, чем подход скриптовый.

    Кстати, мне очень понравилось, как Алексей Баранцев описал свою точку зрения на эти вопросы терминологии. Это точка зрения весьма созвучна моей.

    А вообще мне кажется, что вся эта дискуссия ушла уже куда-то совсем непонятно куда. И это тот случай, когда за деревьями леса уже совсем не видно. Стоит ли её продолжать - решать, конечно, вам. Но заранее приношу извинения, если я промолчу в ответ.

    ОтветитьУдалить
  22. Философией не просто так интересуется и другим тестировщикам советует - это помогает для развития мышления, советую вам почитать книжку Lessons Learned in Software Testing.
    Куда-то вас понесло не в ту степь.
    Пример использования слова истина в IT: True\False - Истина\Ложь
    Пример использования слова суть (сущность): ER-diagram - диаграмма сущность-связь (модель базы данных).
    Пожалуйста, не надо передергивать, я нигде не употреблял слов абсолютный, идеальный и т.п. Я пытался озвучить глобальную проблему - искажение смысла при некорректном переводе как одна из главных причин недопониманий и кривотолков. Наверное надо было дать ссылки в самом начале - я переводил пару статей, где пришел к тому, что лучше использовать слово познание вместо изучение (не сочтите за рекламу):
    http://bugsclock.blogspot.com/2009/08/exploratory-testing.html
    http://bugsclock.blogspot.com/2009/08/blog-post_26.html

    ОтветитьУдалить
  23. Ну, вы бы сразу сказали, что рассматриваете познание истины в смысле получения значения TRUE переменной типа boolean, а то ты тут спорим...

    А если серьёзно, то мне кажется, что вы просто выбрали не самый подходящий пример для демонстрации «глобальной проблемы» - в данном случае, где спор разгорелся о терминах, отличающихся нюансами. Возможно, для вас как для переводчика это очень острый вопрос, но что-то мне подсказывает, что для большинства людей «изучение» и «познание» будут означать примерно одно и то же. Вот если бы я «learning» перевела, допустим, как «образованность» - вот тут бы эта «глобальная проблема» заиграла во всей красе. Но ведь не перевела же...

    ОтветитьУдалить
  24. Мне показалось, что тема заметки о причинах недопонимания. И я даже не сомневаюсь, что использование гуманитарно-религиозно-философского слова познание режет слух технарям. Кстати, образованность очень интересное старославянское слово и его изначальный смысл отличается от того, что под ним понимают сейчас. Не зря в его основе лежит "образ". Ну да ладно. :)

    ОтветитьУдалить
  25. Лена, вы говорили: "но что-то мне подсказывает, что для большинства людей «изучение» и «познание» будут означать примерно одно и то же." Я тоже решил вставить свои 5 копеек :)

    В моем понимании изучение - это более высокоуровневый процесс, предшествующий процессу познания. Сначала мы изучаем, а только потом познаем. Поэтому познание, по-моему, неразрывно связано с изучением:
    "Хочешь что-то познать, будь готов к изучению."

    ОтветитьУдалить
  26. Согласна про "неразрывно связано" - для меня это тоже так.

    Мне самой постоянно хотелось написать что-то на тему "познание через изучение", но так и не смогла ничего толково сформулировать. Но исходя из такой формулировки, лично я при мысли о "процессе познания" буду в первую очередь думать о "процессе изучения".

    ОтветитьУдалить