Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Flash Builder 4 и юнит тесты

Adobe Flash
Был приятно удивлен тем, что теперь создание юнит-тестов занимает считанные мгновения.
Итак, кратенько расскажу и покажу, как писать юнит-тесты в Flash Builder 4.

Это даже не статья, а просто описание нескольких простых шагов

Поехали!
Читать дальше →
Всего голосов 37: ↑31 и ↓6 +25
Просмотры 2.3K
Комментарии 19

«Я не пишу юнит-тесты, потому что ...» — отговорки

TDD *
Перевод
Я глубоко верю в методику TDD (разработка через тестирование), так как видел на практике пользу от неё. Она выводит разработку ПО на новый уровень качества и зрелости, хотя она до сих пор не стала повсеместно распространённой. Когда наступает момент выбора между функциональностью, временем и качеством, всегда страдает именно качество. Мы обычно не хотим потратить больше времени на тестирование и не хотим идти на уступки в количестве выпускаемой функциональности. Если вы не планировали использовать методику TDD с самого начала проекта, то потом очень трудно перейти на неё.

Все мы слышали
множество оправданий
Всего голосов 72: ↑60 и ↓12 +48
Просмотры 15K
Комментарии 225

Тесты для тестов

Тестирование IT-систем *Программирование *TDD *
Tutorial
Один из самых частых ответов на вопрос «Почему я не пишу юнит-тесты» — это вопрос «А кто напишет тесты для моих тестов? Где гарантия, что в моих тестах тоже не будет ошибки?», что свидетельствует о серьёзном недопонимании сути юнит-тестов.

Цель этой заметки — коротко и чётко зафиксировать этот момент, чтобы больше не возникало разногласий.

Итак, юнит-тест — это
Читать дальше →
Всего голосов 79: ↑72 и ↓7 +65
Просмотры 18K
Комментарии 111

О тесте печальном

Блог компании AlterGeo
О том, что тестировать — нужно, важно и полезно знают, кажется, все. В этом посте мне бы хотелось пробежаться по тем моментам, которые делают наше тестирование нужным, важным и полезным.

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

Тестер за работойКоротко:
  • Покрытие кода unit-tests
  • Selenium
  • Автоматическое тестирование
  • Подробное декларирование каждой ошибки
  • Еженедельный анализ и оценка обнаруженных багов
  • Синхронизация с Acunote


Читать дальше →
Всего голосов 27: ↑20 и ↓7 +13
Просмотры 9.8K
Комментарии 11

Изолирование кода во время тестирования с помощью Microsoft Fakes (Shims)

Тестирование IT-систем *.NET *
Перевод
Впервые я встретился с юнит тестированием на Java и был рад возможности делать моки на final классы, на статические члены. В это время на .Net нельзя было сделать ничего подобного. Только интерфейсы. Можно безгранично долго рассуждать о том, что если понадобилось делать что-то неестественное, то нужно переписывать реализацию, делать IOC и прочее. Но когда речь идет о наследованном коде, неприспособленном архитектурно к юнит тестированию – возможность менять вещи без переписывания выручает.
Я окончательно забросил Java и ушел в .Net и каждый раз при разговоре о юнит тестах вспоминал, что на Java возможностей больше.
И вот в 2012 студии добавили возможность делать мок любых объектов. Абсолютно любых, даже системных. Под катом перевод статьи из MSDN (переведено только по шимам, т.к. стабы особого интереса не представляют).
Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Просмотры 13K
Комментарии 9

Держим дизайн системы под контролем, используя изолированное юнит-тестирование

Блог компании Конференции Олега Бунина (Онтико) Анализ и проектирование систем *Проектирование и рефакторинг *Тестирование веб-сервисов *
Согласитесь, ситуация, когда мы хотим выкинуть кучу готового кода, сильно раздражает. В этой статье вместе с Андреем Коломенским попробуем разобраться, какие для этого могут быть причины, и как узнать, как должна выглядеть наша система в точке максимально высокой продуктивности. Разберем, какой подход затянет нас в замкнутый круг недостаточно тщательного проектирования, а какой позволит получить тестопригодную систему, что в конечном счете приводит к качественному дизайну системы и уменьшает риск возникновения дефектов.



Сегодня мы поговорим о том,

  • Как делать тестирование сложными зависимостями?
  • Как добиться большого тестового покрытия?
  • Как тесты влияют на дизайн?
  • Что делать, когда много логики в базе?
  • Как соблюсти компромисс между дизайном и «не дизайном».


Всего голосов 41: ↑40 и ↓1 +39
Просмотры 7.4K
Комментарии 114

Написание Unit тестов на Swift для проверки асинхронных задач

Xcode *Swift *
Tutorial
Сегодня хочу вам быстренько рассказать как тестировать асинхронный код.

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

    func testAscynFunction() {
        someAsyncFunction()
    }

    func someAsyncFunction() {
        let bg = DispatchQueue.global(qos: .background)
        bg.asyncAfter(deadline: .now() + 5) {
            XCTAssert(false, "Something went wrong")
        }
    }

Такой тест вернет нам положительный результат, так как метод не будет ждать всех наших асинхронных задач.

Для решения такой проблемы в тестах есть одна замечательная вещь:
Читать дальше →
Всего голосов 10: ↑9 и ↓1 +8
Просмотры 3.2K
Комментарии 0

Zen of Unit Testing

Тестирование IT-систем *C# *
Tutorial


Ability to write good unit tests is an important feature of any developer. But how to understand that your unit tests are correct? Good unit test is like a good chess game. In our case chessmen are the approaches which we are going to discuss in this post. There is no best chessman in a chess game because everything depends on the positions (and a player). Likewise, in unit testing you don't have to distinguish only one approach. In other words, you should use all approaches together to get the best result. So, if you want to win this game, then welcome under the cut.

Read more →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 2.4K
Комментарии 0

Тестируем SQL Server код с tSQLt

Блог компании Arcadia Тестирование IT-систем *SQL *Microsoft SQL Server *Тестирование веб-сервисов *
FYI: эта статья представляет собой дополненную версию моего доклада на SQA Days #25.

Опираясь на свой опыт общения с коллегами, могу утверждать: тестирование кода в БД не является распространённой практикой. Это может нести в себе потенциальную опасность. Логику в БД пишут такие же люди, какие пишут «обычный» код. Следовательно, там так же могут присутствовать ошибки, и они так же могут повлечь за собой негативные последствия для продукта, бизнеса и потребителей. Неважно, идёт ли речь о хранимых процедурах, помогающих бэкенду, или о ETL, преобразующих данные в хранилище — риск есть, и тестирование может его существенно снизить. О том, что такое tSQLt и как оно помогает нам в тестировании кода в SQL Server, я и хочу вам рассказать.


Читать дальше →
Всего голосов 16: ↑16 и ↓0 +16
Просмотры 9.3K
Комментарии 4

Testing SQL Server code with tSQLt

Блог компании Arcadia Тестирование IT-систем *SQL *Microsoft SQL Server *Тестирование веб-сервисов *
FYI: this article is an expanded version of my talk at SQA Days #25.

Based on my experience with colleagues, I can state: DB code testing is not a widely spread practice. This can be potentially dangerous. DB logic is written by human beings just like all other «usual» code. So, there can be failures which can cause negative consequences for a product, business or users. Whether these are stored procedures helping backend or it is ETL modifying data in a warehouse — there is always a risk and testing helps to decrease it. I want to tell you what tSQLt is and how it helps us to test DB code.

Read more →
Всего голосов 8: ↑7 и ↓1 +6
Просмотры 1.7K
Комментарии 1

Как не править Python тесты

Python *TDD *Тестирование веб-сервисов *
Tutorial

И вынести тестируемые результаты вне кода. Это статья об автоматизации и увеличения удобства тестирования на Python.


image


Вводная


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


Регрессионное тестирование было одним из шагов для более уверенной разработки. Его суть в сравнении вычисленных данных с последним канонизированным результатом работы программы. 


Результаты выполнения можно проверять в python коде тестов. Это близко к контексту выполнения и зачастую удобно.


Но это также может быть неудобно когда:

Читать дальше →
Всего голосов 6: ↑6 и ↓0 +6
Просмотры 3.3K
Комментарии 2

Aiohttp + Dependency Injector — руководство по применению dependency injection

Python *Проектирование и рефакторинг *
Tutorial
Привет,

Я создатель Dependency Injector. Это dependency injection фреймворк для Python.

Продолжаю серию руководств по применению Dependency Injector для построения приложений.

В этом руководстве хочу показать как применять Dependency Injector для разработки aiohttp приложений.

Руководство состоит из таких частей:
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 4.4K
Комментарии 0

Мониторинг демон на Asyncio + Dependency Injector — руководство по применению dependency injection

Python *Проектирование и рефакторинг *
Tutorial
Привет,

Я создатель Dependency Injector. Это dependency injection фреймворк для Python.

Это еще одно руководство по построению приложений с помощью Dependency Injector.

Сегодня хочу показать как можно построить асинхронный демон на базе модуля asyncio.

Руководство состоит из таких частей:
Читать дальше →
Всего голосов 3: ↑3 и ↓0 +3
Просмотры 3.8K
Комментарии 16

CLI приложение + Dependency Injector — руководство по применению dependency injection + Вопросы / ответы

Python *Проектирование и рефакторинг *
Tutorial
Привет,

Я создатель Dependency Injector. Это dependency injection фреймворк для Python.

Это завершающее руководство по построению приложений с помощью Dependency Injector. Прошлые руководства рассказывают как построить веб-приложение на Flask, REST API на Aiohttp и мониторинг демона на Asyncio применяя принцип dependency injection.

Сегодня хочу показать как можно построить консольное (CLI) приложение.

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

Руководство состоит из таких частей:
Читать дальше →
Всего голосов 7: ↑6 и ↓1 +5
Просмотры 4.1K
Комментарии 8

Прагматичные Unit тесты на Golang

Тестирование IT-систем *Программирование *Go *Тестирование веб-сервисов *
Из песочницы

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

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

Читать далее
Всего голосов 18: ↑15 и ↓3 +12
Просмотры 5.2K
Комментарии 3