Рубрики
Без рубрики

Aprendendo sobre тестирует их Java com как принцесс да Диснея

“Было когда-то, молодой человек, Случайные, который считал, что существует слишком много контента законом тестирования, но… С тегом тестирование, бразильский разработчик, java.

“Было когда-то, молодой человек, Случайные, который считал, что существует слишком много контента законом тестирования, но решил добавить свои два цента. Остальную часть истории вы увидите ниже…”

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

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

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

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

Как и все в жизни dev ответ: зависит от . Это зависит от времени, ресурсов, размер команды, знаний и важность вашего проекта. В в моем случае , я предпочитаю проверить, основной поток (также называемый путь счастливый), автоматизированного тестирования и некоторые потоки, которые я думаю, могут возникнуть ошибки.

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

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

Существует очень тонкая грань между тем, как вы проверить свои приложения и тестирования фреймворков, которые вы используете. В идеале проверить только наш код. И доверять предположить, что механизмы хорошо проверены и застрахованы.

Чтобы проиллюстрировать это, давайте представим метод, который получает принцесса, проверяет, если имя имеет значение “null” и сохраняется в базе.

public void salvarPrincesa(Princesa princesa) {
  if(princesa.getNome() == null) {
      throw new RuntimeException("Princesa com nome nulo");
  }
  princesaDao.salvar(princesa);
}

Глядя на этот метод, вы бы сказали, что тест должен проверить, что принцесса была помещена в банк?

Ответ НЕ . Этот метод не имеет никакого отношения к базе данных. Он имеет дело с абстракцией ( DAO ). Вскоре, тест должен проверить, что DAO называли. Если DAO будет на самом деле сохранить в базе, поставит в памяти или будет дать отравленное яблоко, чтобы принцесса спать вечно, это не проблема наше правило и бизнеса. Наше правило проверяет только имя, значение null и идет вперед.

Если необходимо сделать тест, который проверяет, что метод save на самом деле сохраняется в базе или нет, то этот тест должен быть сделан в верхней части класса PrincesaDao.

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

Автоматизировать

В этих испытаниях, весь процесс анализа, тестирования и создания отчетов сделан или несколько разных сценариев. Это позволяет тот же тест может быть повторен несколько и несколько раз.

Ручной

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

Функциональные тесты

Эти тесты стремятся гарантировать, что система делает то, что он намерен делать. Есть несколько способов, как делать эти тесты и функциональные тесты разделены согласно детализации. Отдел, который я представляю, это немного отличается от того, что видел в litaratura. Как правило, тесты mockeados находятся в какой-то подвешенном состоянии между модульного тестирования и интеграции.

Модульное тестирование

Эти тесты очень приятно сделать, потому что они быстрые, легкие и позволяют вам удается охватывать много различных ситуации. Однако, они две шутки. A) Слишком много кода, что вы делаете, не могут быть проверены форме унитарного предприятия. Потому что он, в конечном итоге, зависимости от внешних объектов. Б) Есть вещи, которые невозможно проверить с модульного тестирования.

Тест mockeado

Выход, чтобы справиться с внешними объектами, – это создание /мок . Объекта вид , который будет реагировать, как мы хотим, и давая отдачу, что мы ожидаем. Как das principais bibliotecas de mas que nos vemos é a Макита еа Блок питания .

Тестирование интеграции

Вместо того, чтобы использовать mock для моделирования объектов и помещений, почему бы не использовать что-то, правда? После линии из 12 факторов для разработки программного обеспечения, , сред devsenvolvimento и производство должны быть похожи. Поэтому, если приложение будет работать с базой данных: “правда, мы будем тестировать с использованием базы данных, на самом деле.

Тест-наконечник-наконечник

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

Тестирования черного ящика

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

Тестирование белого ящика

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

Тест производительности

Эти тесты стремятся выяснить, как производительности системы в различных сценариях.

Испытание нагрузки

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

Стресс-тест

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

Регрессионного тестирования

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

Тест безопасности

Также известный с тестирование . Как правило, это делается по какой-то зарубежной компании и стремится найти недостатки безопасности, как в коде, так и в процессах, выполняемых приложением компании.

Юзабилити-тестирование

Больше ориентирован на приложения, которые имеют экраны, такого рода испытания состоит в том, просматривать экраны сделаны (или, по идеи, экраны), чтобы проверить, если они удовлетворяют пользователей.

Приемо-сдаточные испытания

Сон, потребление всего программного обеспечения. Приемо-сдаточные испытания будут говорить, если программное обеспечение, готова или не принимать принятых от клиента.

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

Если вы являетесь Аврора Золушка”, у вас есть крестная фея, которая даст вам руку для того, чтобы решить проблемы. В случае, если вы нет, то вы должны помочь.

Отделить некоторые советы, чтобы работать и в инструменты, которые могут помочь вам сделать красивый этом выпускного тестирования.

Сделайте тесты работают быстро

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

Введите код, который облегчает тестирование

Если ваш код не думал, для тестирования, когда вы будете писать их, вы, вероятно, будете иметь трудности. Трудное время для проверки, вы перестанете испытывать. Остановка тестирования, вещи начинают давать плохо…

Избегайте использования статических

Статические методы, такие как LocalDate.now() или Objects.isNull() не может быть mockeados легко. Так что, если вам нужно проверить, с какой-то определенное поведение, становится сложнее.

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

Узнайте, почему тест должен быть там

Часто мы делаем вещи, не зная, хорошо, что мы делаем, или почему вещи. С тем, мы можем проверить, что в 10 раз одну и ту же логику и перестать испытывать что-то важное. Поэтому, прежде чем написать что-либо создать какой-то “план”, где вы определяете, что вы хотите протестировать, и причины этого теста.

Используйте инструменты для проверки охвата тестирования

Если мы не можем измерить, мы не можем сказать, если мы делаем хорошую работу (возможно, плохо). JaCoCo это отличный инструмент, чтобы рассказать, как наши покрытия. То, что мы забываем, и что мы можем улучшить.

Но не задерживайте слишком много об этом

Очень важно иметь хорошее тестовое покрытие. В частности, я думаю, что 80% зрелый проект, это хорошее количество. Есть вещи, которые просто ребята слишком много, чтобы быть проверены, или просто нет оснований для проверки. Кроме того, в нем 100% может дать ложное чувство, что вы должны всех возможных случаев, сопоставлены и которые никогда не произойдет ошибка. Спойлер: если ваше имя Мулан и вы, сражаясь против Гуннов, вы будете ошибаться.

Эта запись была более теоретической. В ближайшие давайте посмотрим, как делать модульное тестирование, mockeados и интеграции. Все это, работая с Quarkus. Подождите продолжение//

Оригинал: “https://dev.to/lucasscharf/aprendendo-sobre-testes-em-java-com-as-princesas-da-disney-1jk5”