К основному контенту

Checking in Testing

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

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

Тест или Проверка? :)
1. Вы не делаете проверок. Вы тестируете, и одна из ваших тактик - это дать компьютеру задание сделать проверки.

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

3. Как тестировщик-человек, не робот, вас нельзя запрограммировать что-то сделать (гипноз?). Вы будете именно тестировать, это неизбежно.

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

5. Между тем, те, кто программирует (пишет) проверки, сами не делают проверок, потому они не следуют строго прописанным алгоритмам.

6. Алгоритмы не имеют мнения, мудрости и нацеленности (интенциональности) для того, чтобы генерировать проверки. Вам нужны люди - эти чертовы умельцы делают это хорошо.

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

8. Компиляция - это часть программирования, которая полностью может быть выполнена алгоритмически. Разрабатывать программы - это не "компилировать".

9. Тестировать весь продукт делая только проверки - это все равно, что разрабатывать продукт просто компилируя код.

Еще на эту тему: статья Баха "Тестирование и проверки"

Комментарии

Популярные сообщения из этого блога

Mock vs Stub

Когда мы начали изучать модульное тестирование, то одними из первых терминов, с которыми пришлось познакомиться, стали Mock и Stub. Ниже попробуем порассуждать в чем их сходство и различие, как и для чего они применяются. Проверять работоспособность тестируемого объекта (system uder test - SUT) можно двумя способами: оценивая состояние объекта или его поведение. В первом случае проверка правильности работы метода SUT заключается в оценке состояния самого SUT, а также взаимодействующих объектов, после вызова этого метода. Во-втором, мы проверяем набор и порядок действий (вызовов методов взаимодействующих объектов, других методов SUT), которое должен совершить метод SUT. Собственно, если коротко, то в одном случае используется Stub, а в другом Mock. Это объекты, которые создаются и используются взамен реальных объектов, с которым взаимодействует SUT в процессе своей работы. Теперь подробнее. Gerard Meszaros использует термин Test Double (дублер), как обозначение для объек

План "Б" или как прикольно провести субботний день

Всем привет. Вчера состоялась конференция " План Б ". Организаторами выступили ребята из Яндекса, за что им большое спасибо. Судя по приблизительным подсчетам в мероприятии участвовало около 200 человек. Основной темой конференции было планирование, планирование всего: проектов, разработки, тестирования, дизайнеров и даже организации музыкального фестиваля. Сначала думал написать отчет в обычном своем стиле: кто и что говорил, но почитав твиттер по #pbconf понял, что просто потеряю время :) Поэтому кому оооочень интересно узнать подробности следуйте за птичкой и вы все узнаете (тэг #pbconf попал в top-30 твиттера) Здесь приведу лишь те вещи, которые мне запали в мозг Роман Чернин о продуктовой разработке: "нет заказчика, нет требований, нет сроков -> как принимать решения? ответ: заводим себе Product Manager-а" Оля Павлова (@op): "бойтесь иллюзии точной формулировки" "заказчик - ребенок, выдаем ему игрушку как можно ча

Переключите тумблер или умные люди дурного не посоветуют

Навеяно интересными вопросами про TDD после  вчерашнего выступления . Uncle Bob : " Flipping the Bit " Подробнее постараюсь перевести чуть позже, пока только это: Как определить, что у коллеги (или у вас) ТУМБЛЕР переключен?  Если ваши ответы на вопросы ниже совпадают с приведенными - то все хорошо :) Мантра: Сможете ли вы выполнить работу быстрее используя TDD? ДА Существуют ли какие-либо задачи, которые вы можете выполнить быстрее без TDD? НЕТ Я понимаю, что TDD может помочь в долгом проекте, а что если у вас короткая задача? Будете использовать TDD? Да, потому что TDD быстрее даже в короткой перспективе Что если времени реально не хватает, и босс стоит над душой, будете ли вы использовать TDD? ДА В любом случае? ДА Есть ли случаи, когда вам не нужно использовать TDD? НЕТ Представьте себе что вы на звездном корабле Enterprise ( Star track ) и осталась всего секунда до взрыва антиматерии. Все что вам нужно, чтобы избежать этого, поменять один IF. Будете ли вы и