• Data Driven Tests & SpecFlow

    • Tutorial
    SpecFlow позволяет использовать встроенные таблицы для Data Driven сценариев. В своей практике я столкнулся с двумя проблемами при таком подходе:
    1. Иногда хочется, наоборот, получить авто-документацию из теста (например, тестирование API)
    2. Когда количество данных велико, лучше хранить их где-то отдельно (часто для Acceptance Test Case'ов используют Excel)

    Покопавшись в Gesigner Generated коде я смог решить обе проблемы.

    Читать дальше →
    • +5
    • 10,2k
    • 4
  • Программисты-оптимисты


      Мы, программисты, — оптимисты. Это проявляется во всем цикле разработки ПО от оценки сроков до написания кода и внедрения. Как показывает моя практика, в разработке ПО законы Мерфи работают в 100% случаев. Несмотря на это, я раз за разом сталкиваюсь с «программистами-оптимистами».

      Топ «оптимистичных» допущений:
      Читать дальше →
    • Автоматизация тестирования Web-приложений

      • Tutorial


      Автоматизация тестирования – место встречи двух дисциплин: разработки и тестирования. Наверное поэтому, я отношу эту практику к сложным, но интересным.

      Путем проб и ошибок мы пришли к следующему технологическому стеку:
      1. SpecFlow (опционально): DSL
      2. NUnit: тестовый фреймворк
      3. PageObject + PageElements: UI-абстракиця
      4. Контекст тестирования (информация о целевом окружении, пользователях системы)
      5. Selenium.WebDriver

      Для запуска тестов по расписанию мы используем TFS 2012 и TeamCity.
      В статье я опишу, как мы к этому пришли, типовые ошибки и пути их решения.
      Читать дальше →
    • Юнит-тестирование для чайников

      • Tutorial
      Даже если вы никогда в жизни не думали, что занимаетесь тестированием, вы это делаете. Вы собираете свое приложение, нажимаете кнопку и проверяете, соответствует ли полученный результат вашим ожиданиям. Достаточно часто в приложении можно встретить формочки с кнопкой “Test it” или классы с названием TestController или MyServiceTestClient.



      То что вы делаете, называется интеграционным тестированием. Современные приложения достаточно сложны и содержат множество зависимостей. Интеграционное тестирование проверяет, что несколько компонентов системы работают вместе правильно.

      Оно выполняет свою задачу, но сложно для автоматизации. Как правило, тесты требуют, чтобы вся или почти вся система была развернута и сконфигурирована на машине, на которой они выполняются. Предположим, что вы разрабатываете web-приложение с UI и веб-сервисами. Минимальная комплектация, которая вам потребуется: браузер, веб-сервер, правильно настроенные веб-сервисы и база данных. На практике все еще сложнее. Разворачивать всё это на билд-сервере и всех машинах разработчиков?

      We need to go deeper
    • Specification By Example – BDD для прагматиков


        На Хабре довольно много упоминаний о BDD. К сожалению, статьи, которые я читал, так и не дали мне ответа на вопрос «а зачем мне все это нужно?» Ответ пришел с неожиданной стороны. Когда я всерьез занялся вопросом автоматизации приемочного тестирования, мне под руку попалась книга Gojko Adzic (не уверен в транскрипции, поэтому не стал переводить имя автора) Specification By Example.
        Читая ее, я не уставал удивляться: каждая новая глава описывала шишки, которые я набивал на своем личном опыте, и предлагала решения аналогичные или лучшие, чем те, к которым я приходил сам методом проб и ошибок.

        Эта статья – первая в цикле «BDD для прагматиков». В ней описаны ключевые элементы наиболее эффективного, на мой взгляд, процесса разработки коммерческого ПО в современных условиях. Два продолжения будут посвящены работе со SpecFlow и автоматизации приемочного тестирования.
        Часть первая - живая документация