Часть 2. Введение в исскуство Unit Тестирования на PHP - Заблуждения

Written by Yaroslav Vorozhko on January 17, 2008 – 10:30 pm -

Автор: padraic
Оригинал: An Introduction to the Art of Unit Testing in PHP
Перевод: Ярослав Ворожко

unit_testing

Перед введением в процесс блочного тестирования, хочу немного рассказать про общие ошибки и заблуждения начинающих.

Общие ошибки и заблуждения блочного тестирования:

  1. Тестирование съедает очень много времени;
  2. Сложный код не может быть протестирован;
  3. Это небольшой проект, поэтому мне не нужны тесты;
  4. Тестирование утомляет.

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

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

Второе, сложный код в процессе блочного тестирования разбивается на более простой и более унифицированный код, который потом проще сопровождать, изменять и дописывать. Факт, что если вам ваш код, кажется очень сложным для тестирования - это все потому, что вы не торопитесь или не желаете начать заниматься тестированием!

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

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

Все, больше никаких рассуждений. Присядь, отдохни, и читай дальше. ;-)


Tags: , , , ,
Posted in Development | 1 Comment »

Часть 1. Введение в исскуство Unit Тестирования на PHP

Written by Yaroslav Vorozhko on January 15, 2008 – 12:39 pm -

Автор: padraic
Оригинал: An Introduction to the Art of Unit Testing in PHP
Перевод: Ярослав Ворожко

unit_testing

 

Введение

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

Ручное тестирование может выполняется не регулярно и обычно в сокращенных рамках. Для тестирования исходного кода регулярно и глубоко применяют автоматические тесты, которые могут исполняються периодически. В PHP такие тесты обычно пишутся используя Unit Test framework - это фреймоврк, который позволяет тестировать исходный код приложения или библиотеки изолированными блоками функциональности, такими как классы или методы.

Как только блочное тестирование стало популярным, то это стало стандартом для таких приложений как Swiftmailer, Zend Framework и Symfony - все они используют блочное тестирование для проверки исходного кода.

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

От себя добавлю:

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


Tags: , , , , , , , , , ,
Posted in Development | No Comments »

urchinTracker(); is not defined

Written by Yaroslav Vorozhko on January 14, 2008 – 10:37 pm -

google-analytics

Javascript warning urchinTracker(); is not defined можно увидеть в FireFox, когда установлен FF extension FireBug или в IE 6 и IE7, когда включено отображение ошибок.

Исправляеться следующим образом:
Строку urchinTracker();
заменяем на
if (typeof(urchinTracker) == ‘function’) urchinTracker();

Цитата  от Владимира Лучанинова:  “Решение правильное, если функция не объявлена, то typeof будет undefined, если объявлена, то function. Честно говоря, не понимаю, почему Google не предлагает сразу вставлять такой код.

Интересно, то что эту ошибку можно увидеть на многих крупных сайтах. У вас ведь ее нет? ;-)


Tags: , , , , , , , , , ,
Posted in Tips And Tricks | 4 Comments »