Вступление

Большинство из нас стремятся быть более эффективными, целеустремленными и, самое главное, производительными в тестировании. И мы делаем все необходимое для этого. Лучший способ показать это — это автоматизировать повторяющиеся регрессионные тесты, дабы исключить человеческий фактор при монотонном труде. В свою очередь, мы хотели бы знать все современные тенденции в мире автоматизации. Только так мы можем быть на вершине нашей профессии. И в сегодняшней статье мы поговорим о том, какие же библиотеки будут популярны в 2023 году для самого наиболее часто используемого языка программирования Java.

Фреймворки

Лучший способ стать самым быстрым тестировщиком — писать меньше кода. И мы можем использовать различные встроенные инструменты автоматизации. На мой взгляд, в 2023 году будут доминировать два самых больших фреймворка: Maven и Gradle.

Maven — это инструмент управления и понимания программных проектов. Он основан на концепции объектной модели проекта (POM). Maven может гибко управлять зависимостями, а именно загружать сторонние библиотеки в свой локальный репозиторий, выбирать нужную версию пакета и обрабатывать транзитивные зависимости. Maven не зависит от операционной системы, так как игнорирует специфику работы в командной строке платформы. Плюс у Maven есть несколько репозиториев: локальный, центральный и удаленный.

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

Библиотеки

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

Selenium

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

Сегодняшняя экосистема Selenium состоит из трех основных частей:

  • Первым и наиболее важным является Selenium WebDriver, который помогает создавать автоматические наборы тестов и тестовые наборы для масштабирования в различных средах тестирования.

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

  • Последним является Selenium Grid, сервер, который позволяет управлять тестами в разных средах из одного центрального репозитория, упрощая запуск и обслуживание.

Selenide

Selenide — интеллектуальное дополнение к Selenium WebDriver, использующее все его преимущества и позволяющее минимизировать объем кода за счет повторного использования повторяющегося кода в отдельных классах. К дополнительным преимуществам можно отнести поддержку Ajax для стабилизации автотестов, а также мощные селекторы, позволяющие безошибочно находить нужный элемент даже в очень сложном проекте с разветвленной и динамически меняющейся архитектурой DOM (Document Object Model). Кроме того, Selenide имеет относительно простую конфигурацию, что упрощает и ускоряет написание автоматических тестов для начинающих и профессионалов.

Selenoid

Selenoid — это сервер, который позволяет запускать десятки тестов одновременно в браузерах в докер-контейнерах. Selenoid имеет очень высокую производительность, которая превосходит Selenium Grid. Простота установки и развертывания — еще одно преимущество Selenoid. Он также быстро масштабируется и обновляется. Благодаря работе в докер-контейнерах каждый браузер запускается чистым и изолированным от основной системы и потребляет не более 20 мегабайт ОЗУ (оперативной памяти) в состоянии ожидания.

TestNG

TestNG — это среда тестирования, основанная на JUnit (Java) и NUnit (C#); он уже давно популярен среди тестировщиков Java. В 2023 году он также будет пользоваться широким спросом из-за его использования для модульного, функционального, интеграционного и end-to-end тестирования. Одним из основных факторов дальнейшего использования этого фреймворка является то, что многие проекты уже написаны с его использованием. Множественные аннотации и возможность использовать параметризацию автотестов делают его более гибким и легко адаптируемым под любые нужды тестировщика.

Cucumber

Следующий фреймворк, который также будет популярен в 2023 году, — Cucumber. Его популярность обусловлена тем, что тесты написаны на обычном языке, понятном автотестировщикам и людям, далеким от разработки и тестирования, например, аналитикам и руководителям проектов. Cucumber использует подход BDD (Behavior-Driven Development); он позволяет сторонним людям создавать собственные скрипты, что повышает качество и охват автотестов.

JUnit

JUnit предназначен для модульного тестирования и будет очень популярен в 2023 году из-за растущего числа проектов на микросервисной архитектуре. Техника TDD (Test-Driven Development) позволяет ему занять лидирующие позиции, снижая риск ошибок на самом раннем этапе, когда кода еще нет. С выходом новой версии JUnit 5, которая вводит параметры и ассерты, создание автотестов выходит на совершенно новый уровень, позволяя проводить проверки в тех случаях, где раньше это было невозможно.

Lombok

Библиотека Lombok уменьшает объем кода, который вы пишете, улучшая его читабельность. Добавить его в проект не составит труда, и сделать это нужно всего один раз. Также Lombok генерирует код на этапе компиляции, ускоряя процесс прохождения автотестов и повышая их стабильность.

Заключение

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

Ну и в завершение приглашаю вас на бесплатное занятие, где мы разберемся с технологией docker-compose. Так же рассмотрим инфраструктуру CI/CD на основе Jenkins и поднимем Jenkins как docker-compose сервис. Разберем как подключить Jenkins сборщики в docker контейнерах и в чем их преимущество перед сборщиками запущенными как Java процессы. Ну и конечно же возьмем написанные функциональные API тесты, подключим к ним allure reporter и напишем шаблон сборки для jenkins и pipeline на groovy, где определим этапы сборки и запуска API тестов и напишем нотификацию в telegram через HTTP клиент.

Комментарии (17)


  1. EreminD
    00.00.0000 00:00
    +12

    Коротко: библиотеки такие же, как и в 2022, 2021, 2020...


    1. poxvuibr
      00.00.0000 00:00
      +4

      Если коротко, то человек не мог написать вот такое.

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

      Текст чем-то сгенерировали и даже не вычитали.


    1. SergeiShaikin Автор
      00.00.0000 00:00

      Точно. ????


    1. SergeiShaikin Автор
      00.00.0000 00:00

      Одна надежда на 2024-ый


  1. Revenant20
    00.00.0000 00:00
    +6

    ChatGPT похоже пишет ????


    1. SergeiShaikin Автор
      00.00.0000 00:00

      Вам виднее


      1. poxvuibr
        00.00.0000 00:00
        +3

        Вам виднее

        Да, нам виднее.

        Хотя на самом деле в случае этой конкретной статьи есть несколько вариантов.

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

        Поэтому возможно статью сгенерировал ИИ, но автор не может её поправить, потому что не понимает предметной области статьи.

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

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

        Может быть это такой социальный эксперимент?

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

        Но, автор, если вы действительно написали эту статью, то расскажите, что случилось!

        Почему она такая? Почему вы не внесли правки?

        Что выхотели сказать, когда назвали Maven фреймворком, а Selenium c Selenide библиотеками?

        Как в список Java библиотек попал Selenoid, написанный на Go?

        Какое значение вы хотели вложить в отрывок про библиотеки, процитированный мной в предыдущем коментарии?

        Если это не социальный эксперимент, то как это могло случиться?


        1. SergeiShaikin Автор
          00.00.0000 00:00

          Сорри. Поправлю обязательно.


          1. poxvuibr
            00.00.0000 00:00
            +1

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


            1. SergeiShaikin Автор
              00.00.0000 00:00

              Поправлю обязательно. Сейчас просто завал на работе и дома. Сорри.


  1. splix
    00.00.0000 00:00
    +1

    А у вас есть данные по популярности Cucumber vs Spock Framework для BDD? Может быть я не прав, но мне кажется что Spock более популярен, но вы упомянули лишь Cucumber


    1. SergeiShaikin Автор
      00.00.0000 00:00

      У меня пока нет таких данных. Но спасибо за идею. Разберусь с этим вопросом и опубликую.


  1. aPiks
    00.00.0000 00:00
    +1

    Это chatGPT написал?

    Люди такое не могли написать:

    Большинство из нас стремятся быть более эффективными, целеустремленными и, самое главное, производительными в тестировании

    Maven — это инструмент управления и понимания программных проектов

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

    Также, не совсем понятно как Junit связан с микросервисной архитектурой?

    JUnit предназначен для модульного тестирования и будет очень популярен в
    2023 году из-за растущего числа проектов на микросервисной архитектуре.

    А также, к чему тут Lombok(гори он в аду), и тесты.

    Я надеюсь, эту статью засунут куда-то далеко и надолго.


    1. SergeiShaikin Автор
      00.00.0000 00:00

      Ломбок страшная вещь. Согласен


      1. SimSonic
        00.00.0000 00:00
        +1

        Ломбок прекрасная вещь :)


    1. LeonidIvanov123
      00.00.0000 00:00
      +1

      Судя по всему отвечает на комментарии всё тот же chatGPT :D


      1. SergeiShaikin Автор
        00.00.0000 00:00

        chatGPT сейчас пока в топе. Вопрос, надолго ли