Книг с тех пор я читать стал гораздо меньше, увы, возможность смотреть сериалы на Loox 720 развращала. Сейчас стараюсь исправиться.
Даже фоток? Никогда б не подумал! Я, кажется, сбрасывал несколько раз фотки с CF от Casio QV-4000 (да, КПК определил марку первого цифровика) на SD на Loox 720 — неимоверно медленно и печально.
Кроме железного с дырочками у меня был пластмассовый конструктор «Полет». В книжечке к нему рекламировался добавочный набор «Мотор», с моторчиками, батарейками и т.п. Но его в продаже найти не удалось :(
А электронный конструктор, только не «Знаток», а что-то вроде «Юного радиолюбителя» я несколько раз безуспешно пытался заказать в Роспосылторге…
Для Java навскидку есть checkstyle и pmd. Вообще говоря, можно подключить достаточно мощный статический анализатор, который будет выявлять потенциальный проблемы. Но всё это увеличивает время коммита, так что в какой-то момент надо остановиться и навешивать все эти проверки на ночные сборки.
Против говнокода есть Code Review, но после робота ревьюер по крайней мере будет нормально отформатированный код читать и не отвлекаться на формальности.
Еще бывают любопытные заблуждения, связанные с наследованием. Уж не буду говорить про то, что очень многие используют этот механизм для повторного использования кода, ломая все теоретические благие намерения.
Забавно задавать вопрос о квадрате и прямоугольнике — кто кого наследовать должен? :)
Все-таки движение от искусства, которое под силу только опытным тестировщикам, к технологии, которой можно обучить — правильное. Тогда завтра затраты будут меньше.
Проверить — это ползадачи. Вторая половина — подавать на вход компонента значения надо в разных состояниях компонента. То есть тестами являются цепочки вызовов. Нереально покрыть все классы состояний компонента цепочками случайных вызовов.
А что за дополнительные тесты, откуда они берутся? У вас это черезчур кратко.
> Мы составляем генераторы для получения случайных аргументов I, подаём их на вход компонентам C
> и проверяем выходы O, а также проверяем дополнительными тестами целостность состояния компонента C.
Дело в том, что результатом работы компонента является не только O, но и его измененное внутреннее состояние. O зависит не только от I, но и от состояния компонента на момент подачи ему I.
Сгенерировать I само по себе может быть достаточно сложно (один из предельных примеров — транслятор, для которого надо генерировать корректные входные программы), но ещё и сам компонент надо загнать во все возможные состояния. То есть, тест — это не просто цикл, а обход графа состояний компонента.
Отдельная песня, если взаимодействие с компонентом идет не через вызовы синхронного API, а, например, по сети.
Даже фоток? Никогда б не подумал! Я, кажется, сбрасывал несколько раз фотки с CF от Casio QV-4000 (да, КПК определил марку первого цифровика) на SD на Loox 720 — неимоверно медленно и печально.
А электронный конструктор, только не «Знаток», а что-то вроде «Юного радиолюбителя» я несколько раз безуспешно пытался заказать в Роспосылторге…
… донесение до клиента мысли, что ты это УЖЕ ДЕЛАЛ…
Почему же за это надо минусовать? Мне такой подход нравится, хороший знак, что разводить не будут.
Забавно задавать вопрос о квадрате и прямоугольнике — кто кого наследовать должен? :)
А что за дополнительные тесты, откуда они берутся? У вас это черезчур кратко.
> Мы составляем генераторы для получения случайных аргументов I, подаём их на вход компонентам C
> и проверяем выходы O, а также проверяем дополнительными тестами целостность состояния компонента C.
Дело в том, что результатом работы компонента является не только O, но и его измененное внутреннее состояние. O зависит не только от I, но и от состояния компонента на момент подачи ему I.
Сгенерировать I само по себе может быть достаточно сложно (один из предельных примеров — транслятор, для которого надо генерировать корректные входные программы), но ещё и сам компонент надо загнать во все возможные состояния. То есть, тест — это не просто цикл, а обход графа состояний компонента.
Отдельная песня, если взаимодействие с компонентом идет не через вызовы синхронного API, а, например, по сети.
Мы эту собаку не первый год грызем: citforum.ru/SE/testing/unitesk/
www.unitesk.ru
2. Дайте, пожалуйста, ссылку на закон про санузел! :)
rulinux.net.ru/node/154
Но главное зло — это Google Toolbar. Если стоит, попробуйте отключить, у меня FF без него больше 300 мегов не занимает (около 30 вкладок).
Так что, в настройках PayPal нет выбора способа конвертации?