alexthunder: (Excellent)
alexthunder ([personal profile] alexthunder) wrote2012-08-01 04:14 pm

Рассказать Алану Тьюрингу о пользе яблок

Есть такая поговорка старая - "Дураку легче спрашивать чем умному отвечать"

Это если дураку. А вот если спрашивать умному, то совсем иначе.

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

Занимаясь изготовлением программного обеспечения постоянно приходится сталкиваться с целым рядом проблем тестирования. И эти столкновения наводят на много интересных мыслей по этому поводу.

Превая мысль такая - 1. Тест часто бывает сложнее тестируемого объекта.

Наивные неопытные люди бросающиеся тестировать программы как правило исходят из своей "common sense" логики которая играет с ними разные злющие шутки. Многим почему-то кажется что делать программы это сложно, а тестировать - это очень просто. Сама по себе вот эта убеждённость крайне неполноценна по сути.

Вторая мысль - 2. Невозможность выполнить тест не равно отрицательному результату тестирования.

Наиболее частая ошибка тестера заключается в том что обнаружив невозможность выполнить тот или иной тест он быстренько включает в результат тестирования "failed" напротив такового теста. Природа этой ошибки исходит из непонимания первой мысли.

Тестирующий предполагая увидеть некий ожидаемый результат свою неспособность провести тест не отличает от некорректного выполнения задачи тестируемым.

Третья мысль - 3. Тестирующему необходимо быть умнее тестируемого

Эта мысль кажущаяся очевидной однако не имеет широкого применения. Для иллюстрации спрошу ещё раз тот самый вопрос который задаю всегда в силу его универсальности:

Кто выиграет в шахматы - Валуев или Каспаров?

Ответ кажется очевидным, правда? Это если не слишком думать. А если подумать, то поравильный ответ:

- С чьей точки зрения?

И вот этот ответ и подсказывает нам кое что. Только это уже совсем не компьютерное и вообще не про технику.

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

Но вот объективно критерии для тестирования например способности к интеллекту муравьёв критерии, способы, индикаторы и модели тестов задаём мы сами. И это ничем не отличается от условной "блондинки" тестирующей условный "сервер". С её "блондинкиной" точки зрения сервер "должен работать вот так"... но что это на самом деле значит мы все с вами понимаем же да.

Вот также и с муравьями и прочей природой.

Большинство обычных здравомыслящих и даже вполне образованных людей средней сложности программное обеспечение не в состоянии протестировать отличив при этом свои собственные ошибки в процессе тестирования от ошибок того что они тестируют. Что и говорить о живой природе которая нас и наш интеллект вероятно превосходит на порядки. О каких достоверных результатах такого тестирования можно говорить?

Да ровно о таких же как результаты шахматного состязания Валуева с Каспаровым. Каспаров очевидно слабее шахматист потому что даже встать не может и внятно ответить на первый же ход опонента.

[identity profile] old-radist.livejournal.com 2012-08-01 05:17 am (UTC)(link)
Хм. Хороший наброс!

[identity profile] singaporelj.livejournal.com 2012-08-01 06:17 am (UTC)(link)
Только с шахматами не очень понятно. Всё-таки это игра с чётким описанием правил и исключений. И "китайская ничья" в эти правила не входит. С какой точки не смотри а выиграет тот кто поставит мат. Хотя, вряд ли есть правило что делать если один из игроков скоропостижно отправляется в травмотологию.

А вот ещё такой мысль. Народонаселение стремительно тупеет, сидя перед мониторами и печатая свои "твиты" (как я сейчас). А компы умнеют. Скоро тексты ботов будут отличатся большей осмысленностью. Вот тебе и старик Тьюринг

[identity profile] alexthunder.livejournal.com 2012-08-01 07:20 am (UTC)(link)
Всё-таки это игра с чётким описанием правил и исключений.

Ваше непонимание происходит от нежелания покинуть "зону комфорта" в которой все участники событий также как и вы а) интересуются правилами б) знают их в) уважают. Просто на секунду представьте что каждый из участников событий имеет своё собственное понимание как правил так и необходимости их соблюдать. Станет может быть чуть понятее.

Скоро тексты ботов будут отличатся большей осмысленностью.

Если не уже.

Я собственно о том же.

[identity profile] norian.livejournal.com 2012-08-01 12:43 pm (UTC)(link)
ага .. машине надо не только иметь интеллект, но и прикинуцца двуногим прямоходящим, и для этого она должна быть гораздо хитрее ..

насчёт тестов - не совсем так .. чёрный ящег можно тестировать методом втыка и вытыка без всякого понимания

[identity profile] alexthunder.livejournal.com 2012-08-01 06:40 pm (UTC)(link)
чёрный ящег можно тестировать методом втыка и вытыка без всякого понимания

Без всякого понимания наблюдаемого результата?

[identity profile] norian.livejournal.com 2012-08-02 12:14 pm (UTC)(link)
без всякого понимания внутренностей ящега

"при нажатии на кнопку А должна загореться зелёная лампочка"

[identity profile] alexthunder.livejournal.com 2012-08-02 06:52 pm (UTC)(link)
Вот это описание очень простого, но уже понимания.

Как правило этого вот описания И некому написать, И никто не пытался почитать или выяснить до начала проведения теста. Это когда оборудование тестируют. Своё же.

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

[identity profile] old-radist.livejournal.com 2012-08-02 07:08 pm (UTC)(link)
А что есть "объекты тестирования не антропогенного происхождения"?

[identity profile] alexthunder.livejournal.com 2012-08-02 07:12 pm (UTC)(link)
Радист говорите?...

[identity profile] alexthunder.livejournal.com 2012-08-02 07:30 pm (UTC)(link)
Так это - явление передачи электромагнитного взаимодействия от антенны источника антенне приёмника оно разве антропогенную природу имеет?

[identity profile] old-radist.livejournal.com 2012-08-02 07:49 pm (UTC)(link)
Эк вы...

Явление передачи эм взаимодействия не имеет антропогенной природы. Соответствено но и не может никоим образом быть объектом тестирования. Антенны же приемника и передатчика (впрочем, без самих приемника и передатчика особого смысла не имеющие) антропогенную природу имеют (OMG...) и посему включающий их приемопередающий тракт может быть объектом тестирования.

Особо хочу отметить, что не все, что человек пытливого ума и ручек делает с интересующими его объектами, является тестированием. Есть еще, например, исследование.

Да, я тут почитал, что вы большой бэмс по скраму?

[identity profile] alexthunder.livejournal.com 2012-08-02 07:53 pm (UTC)(link)
Соответствено но и не может никоим образом быть объектом тестирования.

О как!

А что насчёт планеты Меркурий и Солнца? Они могут быть объектом тестирования?

Да, я тут почитал, что вы большой бэмс по скраму?

Большим я себя ни в чём особо не считаю, а скраму таки да - учился немного. А в чём интерес?

[identity profile] old-radist.livejournal.com 2012-08-02 07:57 pm (UTC)(link)
>> А что насчёт планеты Меркурий и Солнца? Они могут быть объектом тестирования?

Не-а!

>> А в чём интерес?

У нашего начальства мечта попробовать, провели всех через тренинги. Но я и на прошлой работе с агильными делами сталкивался. Одним словом - тихий ужас. °-)))

[identity profile] alexthunder.livejournal.com 2012-08-02 07:58 pm (UTC)(link)
А что такое тестирование?

[identity profile] old-radist.livejournal.com 2012-08-02 08:05 pm (UTC)(link)
Тестирование - оценочное сравнение результатов испытания/проверки чего-либо с заранее ожидаемыми результатами.

Измерение скорости работы программы без сравнения ее с заранее запланированной не является тестом.

И исследование Меркурия не является тестом. Например, температура на Меркурии может быть слишком велика для человека, но ее нельзя назвать плохой - Меркурий ничем нам не обязан.

[identity profile] alexthunder.livejournal.com 2012-08-02 08:18 pm (UTC)(link)
Тестирование - оценочное сравнение результатов испытания/проверки чего-либо с заранее ожидаемыми результатами.

И таки почему вот это невозможно проделывать с планетой Меркурий и Солнцем?

И исследование Меркурия не является тестом

По каким именно признакам? Какой компонент опредения тестирования отсутствует?

[identity profile] old-radist.livejournal.com 2012-08-02 08:39 pm (UTC)(link)
Оценочность. Меркурий нельзя забраковать и отправить на доработку. Как и передачу ЭМ волн. А антенны - можно.
Edited 2012-08-02 20:40 (UTC)

[identity profile] old-radist.livejournal.com 2012-08-02 08:53 pm (UTC)(link)
"А поговорить?" °-)

[identity profile] netut-tobylo.livejournal.com 2012-08-04 04:07 am (UTC)(link)
гнум, это херня.
тестировщику надо понимать инструмент , c помощью которого он тестирует , как запустить объект , подать входное воздействие и снять выходные данные.заметь - про сам объект он вообще знать может не более того, как его пристыковать к инструменту.
потом он должен сравнить выходные значения с теми, что ему подготовили на бумажке и поставить галочку - passed или fail. всё.
если он неспособен провести тест - он не владеет инструментом.
если ему не дали бумажку с оценками - это не его проблема.


[identity profile] alexthunder.livejournal.com 2012-08-04 04:13 am (UTC)(link)
Лёха, ты сейчас описываешь тестировщика как часть оборудования. Я говорил не о нём, а о том кто сам тест планирует.

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

Тот тестировщик которого ты описыаешь это лишь часть тестируемого механизма - его интеллект не принимается в расчёт. Однако наличие интеллекта всёже предполагается.

[identity profile] netut-tobylo.livejournal.com 2012-08-04 09:10 am (UTC)(link)
дык это.. кто требования к продукту составляет? набор требуемых функций есть? граничные уcловия? юзер-кейсы ? собственно, это и есть чуть менее, как говорится, чем полностью - протокол вот этот.




[identity profile] alexthunder.livejournal.com 2012-08-04 09:47 pm (UTC)(link)
Эээ... Лёха, а мы о чём тут сейчас говорим-то? SDLC и Waterfall детально анализируем? :)

[identity profile] netut-tobylo.livejournal.com 2012-08-05 03:55 am (UTC)(link)
про то, что мысли номер 2 и 3 - это гон какой-то :)
тестирующего умность тестируемого не должна волновать. она волнует других людей, проектировщиков.
про неспособность провести тест - я сказал уже. она тоже с умностью тестируемого не связяна.