Aug. 1st, 2012
Рассказать Алану Тьюрингу о пользе яблок
Aug. 1st, 2012 04:14 pmЕсть такая поговорка старая - "Дураку легче спрашивать чем умному отвечать"
Это если дураку. А вот если спрашивать умному, то совсем иначе.
Тьюринг в своём тесте на осмысленность в отношении машины полагался на наличие интеллекта у самого тестирующего, интеллекта превосходящего тот что подвергается тестированию. На тот момент Тьюрингу не пришло в голову, ну а точнее он даже и предположить такого не смел тогда, что тестируемое может оказываться умнее тестируюшего. И вот что в таком случае считать результатами теста и как вообще квалифицировать хоть какой-то результат?
Занимаясь изготовлением программного обеспечения постоянно приходится сталкиваться с целым рядом проблем тестирования. И эти столкновения наводят на много интересных мыслей по этому поводу.
Превая мысль такая - 1. Тест часто бывает сложнее тестируемого объекта.
Наивные неопытные люди бросающиеся тестировать программы как правило исходят из своей "common sense" логики которая играет с ними разные злющие шутки. Многим почему-то кажется что делать программы это сложно, а тестировать - это очень просто. Сама по себе вот эта убеждённость крайне неполноценна по сути.
Вторая мысль - 2. Невозможность выполнить тест не равно отрицательному результату тестирования.
Наиболее частая ошибка тестера заключается в том что обнаружив невозможность выполнить тот или иной тест он быстренько включает в результат тестирования "failed" напротив такового теста. Природа этой ошибки исходит из непонимания первой мысли.
Тестирующий предполагая увидеть некий ожидаемый результат свою неспособность провести тест не отличает от некорректного выполнения задачи тестируемым.
Третья мысль - 3. Тестирующему необходимо быть умнее тестируемого
Эта мысль кажущаяся очевидной однако не имеет широкого применения. Для иллюстрации спрошу ещё раз тот самый вопрос который задаю всегда в силу его универсальности:
Кто выиграет в шахматы - Валуев или Каспаров?
Ответ кажется очевидным, правда? Это если не слишком думать. А если подумать, то поравильный ответ:
- С чьей точки зрения?
И вот этот ответ и подсказывает нам кое что. Только это уже совсем не компьютерное и вообще не про технику.
Если вот вы берётесь тестировать скажем интеллект муравьёв, то по каким именно признакам вы убеждаете себя в том что это именно вы в данном отношении "вы - муравьи" являетесь превосходящим интеллектом? Скорее всего не по каким, а просто по нравственным признакам. Нравимся мы сами себе больше, что и говорить.
Но вот объективно критерии для тестирования например способности к интеллекту муравьёв критерии, способы, индикаторы и модели тестов задаём мы сами. И это ничем не отличается от условной "блондинки" тестирующей условный "сервер". С её "блондинкиной" точки зрения сервер "должен работать вот так"... но что это на самом деле значит мы все с вами понимаем же да.
Вот также и с муравьями и прочей природой.
Большинство обычных здравомыслящих и даже вполне образованных людей средней сложности программное обеспечение не в состоянии протестировать отличив при этом свои собственные ошибки в процессе тестирования от ошибок того что они тестируют. Что и говорить о живой природе которая нас и наш интеллект вероятно превосходит на порядки. О каких достоверных результатах такого тестирования можно говорить?
Да ровно о таких же как результаты шахматного состязания Валуева с Каспаровым. Каспаров очевидно слабее шахматист потому что даже встать не может и внятно ответить на первый же ход опонента.
Это если дураку. А вот если спрашивать умному, то совсем иначе.
Тьюринг в своём тесте на осмысленность в отношении машины полагался на наличие интеллекта у самого тестирующего, интеллекта превосходящего тот что подвергается тестированию. На тот момент Тьюрингу не пришло в голову, ну а точнее он даже и предположить такого не смел тогда, что тестируемое может оказываться умнее тестируюшего. И вот что в таком случае считать результатами теста и как вообще квалифицировать хоть какой-то результат?
Занимаясь изготовлением программного обеспечения постоянно приходится сталкиваться с целым рядом проблем тестирования. И эти столкновения наводят на много интересных мыслей по этому поводу.
Превая мысль такая - 1. Тест часто бывает сложнее тестируемого объекта.
Наивные неопытные люди бросающиеся тестировать программы как правило исходят из своей "common sense" логики которая играет с ними разные злющие шутки. Многим почему-то кажется что делать программы это сложно, а тестировать - это очень просто. Сама по себе вот эта убеждённость крайне неполноценна по сути.
Вторая мысль - 2. Невозможность выполнить тест не равно отрицательному результату тестирования.
Наиболее частая ошибка тестера заключается в том что обнаружив невозможность выполнить тот или иной тест он быстренько включает в результат тестирования "failed" напротив такового теста. Природа этой ошибки исходит из непонимания первой мысли.
Тестирующий предполагая увидеть некий ожидаемый результат свою неспособность провести тест не отличает от некорректного выполнения задачи тестируемым.
Третья мысль - 3. Тестирующему необходимо быть умнее тестируемого
Эта мысль кажущаяся очевидной однако не имеет широкого применения. Для иллюстрации спрошу ещё раз тот самый вопрос который задаю всегда в силу его универсальности:
Кто выиграет в шахматы - Валуев или Каспаров?
Ответ кажется очевидным, правда? Это если не слишком думать. А если подумать, то поравильный ответ:
- С чьей точки зрения?
И вот этот ответ и подсказывает нам кое что. Только это уже совсем не компьютерное и вообще не про технику.
Если вот вы берётесь тестировать скажем интеллект муравьёв, то по каким именно признакам вы убеждаете себя в том что это именно вы в данном отношении "вы - муравьи" являетесь превосходящим интеллектом? Скорее всего не по каким, а просто по нравственным признакам. Нравимся мы сами себе больше, что и говорить.
Но вот объективно критерии для тестирования например способности к интеллекту муравьёв критерии, способы, индикаторы и модели тестов задаём мы сами. И это ничем не отличается от условной "блондинки" тестирующей условный "сервер". С её "блондинкиной" точки зрения сервер "должен работать вот так"... но что это на самом деле значит мы все с вами понимаем же да.
Вот также и с муравьями и прочей природой.
Большинство обычных здравомыслящих и даже вполне образованных людей средней сложности программное обеспечение не в состоянии протестировать отличив при этом свои собственные ошибки в процессе тестирования от ошибок того что они тестируют. Что и говорить о живой природе которая нас и наш интеллект вероятно превосходит на порядки. О каких достоверных результатах такого тестирования можно говорить?
Да ровно о таких же как результаты шахматного состязания Валуева с Каспаровым. Каспаров очевидно слабее шахматист потому что даже встать не может и внятно ответить на первый же ход опонента.