Skip to content

Latest commit

 

History

History
74 lines (49 loc) · 7.39 KB

spec.md

File metadata and controls

74 lines (49 loc) · 7.39 KB

Вопросы по тестированию приложений с собеседований

  1. Для чего нужны тесты?

    Ответ Тесты позволяют сократить время на проверку написанного кода.
  2. Что такое TDD и BDD?

    Ответ
    • TDD — Разработка через тестирование, Test Driven Development. Сначала пишем тест, затем реализуем его в коде.

    • BDD — Разработка через поведение, Behavior-driven development. Расширение подхода TDD к разработке и тестированию, при котором особое внимание уделяется поведению системы/модуля в терминах бизнеса(заказчика). Как правило, такие тесты иллюстрируют и тестируют различные сценарии, которые интересны непосредственно клиенту системы. В связи с этим при составлении таких тестов часто используется фреймворки, обладающие синтаксисом, обеспечивающим читаемость тестов не только программистом, но и представителями заказчика.

    • DDD - Предметно-ориентированное проектирование, Domain-driven design. Набор принципов и схем, направленных на создание оптимальных систем объектов. Процесс разработки сводится к созданию программных абстракций, которые называются моделями предметных областей.

    https://medium.com/daily-coding/p-fb4441d5179c

  3. Что такое спеки, фабрики, моки, стабы, musta_matchers?

    Ответ
    • Спеки — спецификация, утвержденный документ, являющийся основой для разработки компьютерной программы и для ее тестирования. Либо это исполняемый файл для проверки теста.
    • Фабрики — Это набор данных, которые определены нами заранее и которые будут вызываться в тестах. К примеру мы можем создать фабрику people с набором имен, возраста, цвета кожи и все это рандомно, с проверкой и тестированием модели people.
    • Моки это поддельные методы с заранее запрограммированным поведением и соглашениями.
    • Стабы похожи на шпионов, но они заменяют целевую функцию (заглушки). Вы можете использовать стабы для управления поведением метода, чтобы форсировать какие-то события в коде (например, выброс ошибки).
    • Musta_matchers — Маста матчер позволяет проводить проверку до прогона теста. То есть before_action и before_filter. Матчеры позволяют запускать к примеру создание нового юзера с помощью колбека before.

    http://matchers.shoulda.io/

  4. Что такое юнит тесты, интеграционные тесты, функциональные тесты?

    Ответ

    Модульное тестирование (юнит-тесты) — предназначены для тестирования отдельных модулей/классов. Суть их в том, что мы тестируем поведение только одного класса за раз. Если класс ссылается на инстансы других классов — мы их мокаем. То есть подсовываем им фэйковый класс, который имеет тот же интерфейс, но внутри не реализация методов, а проверка, вызывали ли метод, с каким аргументами, сколько раз вызывали и т.д.

    Функциональное тестирование — это тестирования всего приложения в сборе. Если это REST API, то у нас через curl дергаются реальные методы, отправляются более менее реальные запросы и валидируются ответы. Если web-страничка, то это UI тесты с силениумом/phantom.js/zombi.js или, если нам не нужно еще и js тестить, просто curl + какой виртуальный браузер на том же php. Вообще по хорошему функциональные тесты не допускают никаких моков и т.д. но опять же если очень хочется то можно (опять же обращение к сторонним сервисам, контроля за которыми у нас нету).

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

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

  5. Какие гемы для тестирования вы знаете?

    Ответ
  6. Какие книги по тестированию читали?

    Ответ Книги по тестированию:

    https://www.amazon.com/s/ref=nb_sb_noss?url=search—alias%3Dstripbooks&field—keywords=rspec+rails