Рубрика «tdd» - 21

Фреймворк для автоматического тестирования PHP проектов Codeception обзавелся первым серьезным апдейтом. Пришлось перелопатить всё ядро, всё поломать, всё починить и сделать это так, чтобы не сломать обратную совместимость. Как результат, теперь в тестах можно использовать любой PHP-код, а не только сценарий, добавилась возможность находить элементы по XPath, а также появилась возможность использования модулей Codeception в тестах PHPUnit.
Читать полностью »

Введение

В своей прошлой статье "Readme-driven development" я немного затронул тему разработки через тестирование. Комментарии продемонстрировали, что немало людей неверно понимают истинную роль тестов в процессе написания кода.

Этой статьей я начну цикл в котором раскрою тему test- (TDD) и behaviour- (BDD) driven development и покажу на практике как разработка через тестирование может помочь писать качественный и надежный код. Познакомлю со всеми основными терминами и подходами.

Цикл будет полезен и интересен всем, кто интересуется темой TDD/BDD, тем кто еще сомневается в необходимости тратить свое время на написание тестов, тем кто пишет, но не уверен что делает это правильно. И даже тем кто уверен. А так же JavaScript разработчикам желающим сделать свой код лучше и надежнее.

Не смотря на то, что в данном цикле статей в качестве примеров используется JavaScript, приобретенные опыт и знания могут быть легко проецированы на ваш любимый язык программирования. Да и кто сейчас не знает JavaScript, надежного друга и кровного врага любого web-разработчика?
Читать полностью »

Вряд ли найдется на этой планете противник ТЗ. ТЗ позволяет защитить разработчиков, менеджеров и сам продукт от неминуемо бурной фантазии заказчика.

Это гарант того, что проект однажды будет завершен. Понимание задачи — одно из самых важных этапов в решении оной.

ТЗ поможет встать на ноги любому проекту, даже если вы занимаетесь разработкой собственной open source библиотеки.

И самое лучшее ТЗ для open source — readme.

Документацию принято писать после того, как написан код. Я считаю этот подход неверным.

Те, кто хотя бы однажды ощутили пользу от TDD (test-driven development) согласятся, что писать тесты после кода, это как анестезия после операции. Это больно.
Читать полностью »

Сейчас я расскажу про применение техники TDD для разработки моделей, используя Yii-framework.
Изначально предполагается, что была прочитана тема «Тестирование» из официального мануала (http://yiiframework.ru/doc/guide/ru/test.overview).

Итак, окружение настроено и сейчас нашей задачей будет — создать модели категории и продуктов(Category, Product) и покрыть их тестами.

Читать полностью »

Фреймворк для автоматического тестирования веб-приложений на PHP — Codeception живет и развивается. Но в этот раз вместо скупой порции новостей я бы хотел представить вам первый скринкаст в котором показаны азы работы с Codeception. Если вы только читали про Codeception, то вам обязательно стоит взглянуть на него в действии. Ну а если не читали, но у вас есть веб-сайт, который бы вы хотели протестировать — тоже взгляните.
Читать полностью »

В Островке есть два основных продукта: для пользователей (ostrovok.ru) и «админка» для отелей (экстранет), куда подписанные нами отели заносят данные. Это отдельные продукты, со своими командами и различным отношением к разработке через тестирование (TDD). Одинаковая платформа: django и postgres. В экстранете используют TDD и у них куча тестов. Поначалу тесты были и в ostrovok.ru, но ввиду ухода части адептов в экстранет и очень интенсивного развития их перестали поддерживать. В общем передо мной встала задача внедрить тестирование. Первые шаги сделаны и хочу поделиться этим опытом и решениями, которые были применены.

У нас есть отдел QA и Selenium автотесты, но это отдельно.

С django и тестами вообще дела обстоят довольно хорошо и конечно лучше с самого начала все покрывать тестами, наращивая функционал и делая рефакторинги.

В нашем случае уже существовал огромный функционал и очень много всесторонних зависимостей и интеграции с внешними API. И нужно, чтоб это все работало в тестовой среде. Про быстрый SQLite в памяти можно забыть, в проекте есть привязки к особенностям postgres, да и идентичность тестового окружения все таки важна, поэтому тесты тоже работают на postgres.
Читать полностью »

«Вы тестируете? — Возможно.
Все мы согласны, что тестирование – отличная штука, но в реальности доставляет много проблем. В настоящий момент мы занимаемся beta-тестированием партнерского CI сервиса, который предназначен для того, чтобы делать за вас всю тяжелую работу.
Мы работаем над созданием удивительного сервиса CI! Только представьте, что вы сможете использовать исключения для автоматизированного создания тестов! Да, мы работаем над этим!
Ответьте на это сообщение для получения доступа к beta-версии.»

— примерно такие слова в моем вольном переводе с английского я прочитал, зайдя однажды на всем известный airbrakeapp.com, чтобы посмотреть, какие ошибки успели найти юзеры в наших приложениях за ночь.
Читать полностью »

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

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

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

Тестирование в стиле TSA

Когда разработчики впервые открывают для себя прелести разработки через тестирование — это как переход в новый, лучший мир, где гораздо меньше стресса и незащищенности. Этот прекрасный опыт действительно стоит отпраздновать. Но осознание преимуществ тестирования — только первый шаг к просветлению. Самое сложное — понять что НЕ нужно тестировать.

Если новичку можно и не заботиться о том что не стоит тестировать в первый день, то на второй день ему бы лучше начать вникать в это. Люди — создания привычки, поэтому если вы начнете формировать плохую привычку избыточного тестирования с самого начала, то вам будет гораздо труднее избавиться от нее потом. А избавиться от этой привычки вы должны.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js