УДК 004

Мировые тенденции развития тестирования на Python

Шумилин Сергей Сергеевич – аспирант Омского государственного технического университета.

Аннотация: Данная статья посвящена языку программирования Python и возможностям его использования в условиях мирового рынка. Будут рассмотрены вопросы по улучшению и продвижению тестирования на Python.

Ключевые слова: язык программирования Python, тестирование, мировой рынок, мировые тенденции развития.

Реальность такова, что сетевые технологии находятся в состоянии постоянного развития, почти каждая область жизни человека так или иначе связана с глобальной сетью Internet. Так как количество пользователей интернетом непрерывно растет, то это привело к тому, что сначала появились, а теперь постоянно совершенствуются технологии разработки и внедрения web-приложений. «Python» один из таких языков программирования, который применяется на среде PyCharm.

PyCharm – интегрированная среда разработки, самай интеллектуальная программа при этом Python IDE, для среды характерно наличие полного набора языковых средств разработки программ с использованием языка Python. Язык программирования в среде web-разработки довольно не молод, первые предпосылки его возникновения возникли еще в 1980м году, но реализовать его стало возможным уже в 90х. Создатель языка программирования Python Гвидо ван Россум своей целью ставил развитие и доработку языка «ABC», первоначально его использовали для обучения, но он был несовершенен и имел ряд недоработок.

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

Код, который написан на языке Python читается очень легко, он имеет последовательный четкий синтаксис, отличительные черты языка – масштабируемость и продуманная модульность. Читаемость – это основа языка программирования и чем она лучше, тем более распространен язык на примере разного рода web-разработок. Здесь следует отметить, что на популярность кода оказывает влияние не мощность кода, а его высокий уровень продуктивности разработчиков, которые его создали и совершенствуют в том числе и сегодня.

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

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

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

В 2020 году состоялась конференция под лозунгом Russian Python Week, где был обсужден целый ряд вопрос, связанный с Python от которых так или иначе зависит будущее проекта, возможности его развития на мировом уровне. Ключевые фигуры этой конференции – это коммерческий директор от Google – Дастин Инграм и исполнительный директор – Кэрол Виллинг [1]. Эти люди определяют ключевые тенденции развития и совершенствования Python, именно они определяют, что еще необходимо языку для совершенствования, на что следует обратить внимание, например оговаривались вопросы, связанные с PSF, так как немногие пользователи представляют, что это такое.

Python Software Foundation или кратко (PSF) – это организация некоммерческая филиалы которой есть на территории всего мира и ключевая задача этой американской компании заключается в том, чтобы продвигать и развивать Python. Преимущества PSF заключаются в том, что все права интеллектуальной собственности Python принадлежат именно ей, так же именно эта организация выделяет средства для разработки новых контентов и занимается финансированием проектов, сопутствующих им. Язык Python особенный именно потому, что его исходный код открыт, а значит есть масса возможностей его использования на практике и внедрения в программировании, в том числе тестирование программ на базе данного языка программирования.

В Python есть одна спорная концепция, которая если и поддается объяснению, то довольно проблематично, это концепция сопоставления с образцом. Ответ на вопрос как правильно ее использовать на практике остается открытым и даже специалисты с широким опытом функционального программирования не знают на него ответа. По сути это не одна проблема, а комплекс проблем, так как процесс сопоставления использует не только базовые элементы, но и элементы факультатива, что находит отражение в телекоммуникационной индустрии на примере почти всех функциональных языков, таких как Erlang, Elixir, Scala. Специалисты в этой области отмечают, что вероятно проблема несколько глубже и сложность заключена не в сопоставлении с образцом, а противоречии с PEP.

В настоящее время существует концепция Global Interpreter Lock, эта концепция совершенно новая и есть мнение, что вскоре она сможет заменить Python. В первую очередь отметим, что уже на протяжении 30 лет существует Python, а значит именно к его объектной модели относятся некоторые решения, сделавшие в свое время язык успешным, гибким и при этом простым.

Четкий синтаксис отличал Python от ряда иных языков, таких как C, C++ или Java, даже визуально он над ними преобладал, в настоящее время для того, чтобы ускорить ряд операций на платформе Python в настощее время применяют Cython, как один из вариантов.

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

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

Выпуск Python 4.0 пока находится в состоянии отдаленного проекта в то время, как Python 3.10, 3.11, 3.13 и другие его варианты будут появляться регулярно, это связано с тем, что нет проектов настолько масштабных, которые бы потребовали бы выпуска версии 4.0, а значит главная задача разработчиков сегодня - стабильность Python[4].

Есть вероятность, что новые временно будут приостановлены, о чем сообщили владельцы программы, так как оновления, которые выходят каждый год - полтора сбивают с толку позователей тем, что существенно меняют особенности использованияPython и заставляют приспосабливаться к новым реалиям. То есть по прогноза и заявлениям заинтересованных лиц, только к 2100 году можно ожидать появление Python 4.0 .

Теперь обратимся непосредственно к тестированию, его видам и особенностям использования на базе Python, перспективам развития этого направления. Итак, следует сказать что значимость тестирования велика и последствия отказа от тестирования могут быть фатальны, например существует программа THERAC 25, которая занимается расчетом терапевтических дох при оказании помощи онкологическим больным, имеется ввиду расчет доз для лучевой терапии, программа неудобна по своей сути и заставляла копировать цифры из историй болезни, что приводило к ошибкам и часто смерти пациента или сокращению продолжительности его жизни по причине отсутствия тестирования.

Тестирование при использовании Python предпочтительно в сравнении с другими программами по той причине, что он имеет широкий выбор библиотек, например такие как unittest и pytest – эти библиотеки применяются на практике для того, чтобы писать тесты по той или иной задаче, в то время как библиотека mock относится к вспомогательным, а модуль под названием doctest занимается тестированием непосредственно документации.

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

Автоматизацию процесса тестирования на Python продвигает API для чего применяется такая автоматизация, как Selenium WebDriver. Для автоматизация процесса тестирования на Python есть большое количество фреймворков, для примера это: PyTest, Behavior, Robot, Lettuce, Node 2 и Testify.

1

Рисунок 1. Классификация библиотек Python и их ключевые характеристики.

Мировое признание получил PyTest, его по праву считают лучшим среди фреймворков, что позволяет автоматизировать тестирование в целом930. Его особенность в том, что он мможет быть использован, помимо автоматического тестирования, для сквозного, модульного и интеграционного. Фикстуры, свойственные для PyTest дают возможность выполнять тестирования при разного рода сочетаниях платформ и браузеров, а значит входные значения для него могут быть различными и позволяют с легкостью выполнять тесты на различных сочетаниях браузеров и платформ. [6]

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

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

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

Аналитики из iDataLabs больше двух лет собирали данные о том, сколько компаний используют Python. В результате они установили, что на этом языке пишут в 75 тыс. компаний по всему миру. [7] И хотя, по их данным, Python имеет не самую большую долю рынка, его популярность стабильно увеличивается.

В 2020 году Python занимал пятое место в рейтинге TIOBE. Это индекс, оценивающий популярность ЯП, на основе количества поисковых запросов на платформах Google, Wikipedia, YouTube, Amazon и др. В 2019 году популярность языка увеличилась до 6% (почти на 3% c 2017 года), и теперь он занимает четвертое место в рейтинге. [8]

Среди крупных организаций, которые начали использовать Python именно из-за его простоты и популярности, можно выделить Instagram. [11] Как отметили представители компании, они перешли на Python 3 и фреймворк Django из-за того, что этот ЯП «дружелюбен» к разработчикам и позволяет им сконцентрироваться на создании важных для пользователей функций. [9]

Плюс широкая распространенность языка и глобальное комьюнити (по данным SO, на нем пишет 39% разработчиков, а 68% – называет Python любимым ЯП) позволяют быстрее нанимать новых членов команды. [10]

Другой кейс – компания SurveyMonkey, занимающаяся разработкой облачного программного обеспечения для онлайн-опросов. [11] Ежедневно организация обрабатывает порядка миллионов ответов респондентов. Изначально веб-приложение SurveyMonkey было написано на C# с помощью платформы .NET. Приложение работало без сбоев, однако показывало не лучшую производительность во время тестирования и развертки новых фич.

В SurveyMonkey решили переписать приложение на Python и разбить основные функции на несколько сервисов, каждый из которых «общался» с остальными через API. Это уменьшило кодовую базу, с которой приходилось работать при тестировании функций, и упростило процесс их реализации.

Помимо простоты, среди преимуществ Python, разработчики из SurveyMonkey отмечают удобные инструменты для тестирования и развертывания приложений и большое количество библиотек. [12]

На Python пишут в Google [13], Facebook, Netflix, Quora, Reddit и многих других крупных компаниях. [14] При этом Python используют не только разработчики, но и специалисты по обработке и анализу данных.

Согласно июльскому опросу от Burtch Works [15], где занимаются подбором специалистов по анализу данных, Python вместе с R находятся на втором месте по популярности: их использует треть из 1200 опрошенных специалистов. При этом от лидера опроса – SAS – Python «отстал» всего на один процент. А по информации аналитической платформы Kdnuggets, за последний год 66% из 2300 опрошенных data scientist’ов использовали Python в рабочих проектах. Причем популярность языка выросла на 14% в период с 2016 по 2018 год. [16]

Несмотря на то, что выбор лучшего языка программирования для автоматизации тестирования с Selenium весьма субъективен, Python на сегодняшний день является лучшим скриптовым языком для автоматизации тестирования. Легко начать автоматизировать тесты с Python, поскольку широкий спектр его фреймворков можно использовать для модульного, кросс-браузерного тестирования и других его видов. [2]

Именно поэтому у Python есть масса возможностей для развития на мировом уровне, он прост, удобен, имеет широкую библиотеку в стандартной комплектации, разработчики постоянно совершенствуют его в целом и отдельные составные части. Работать с Python предпочитают как профессионалы, так и новички, этот язык программирования выделяют такие корпорации, как Googl, Facebook, Booking.com.

Список литературы

  1. PyCharm – интеллектуальная Python IDE [Электронный ресурс]. – URL: https://jetbrains.ru/products/pycharm/ (дата обращения: 03.09.2021).
  2. Шет Химаншу Автоматизация тестирования Python Электронный - ресурс: https://habr.com/ru/company/otus/blog/563098/ (Дата обращения 04.09.2021)
  3. Морозов Н. М. Влияние международных индексов цитирования на становление педагога высшей школы //Международный журнал гуманитарных и естественных наук № 7 (58). – С. 52.
  4. Мировые компании используют Python Электронный - ресурс https://pythonist.ru/8-kompanij-mirovogo-masshtaba-kotorye-ispolzuyut-python/ (дата обращения 04.09.2021)
  5. «Python выходит в лидеры»: кто и почему его использует электронный ресурс: https://habr.com/ru/company/cloud_mts/blog/418909/ (дата обращения 04.09.2021).
  6. Himanshu Sheth End-To-End Tutorial For Pytest Fixtures With Examples [Электронный ресурс]. – URL: https://www.lambdatest.com/blog/end-to-end-tutorial-for-pytest-fixtures-with-examples.
  7. Companies using Python [Электронный ресурс]. – URL: https://enlyft.com/tech/products/python.
  8. TIOBE Index for August 2021 [Электронный ресурс]. – URL: https://www.tiobe.com/tiobe-index.
  9. Instagram Makes a Smooth Move to Python 3 [Электронный ресурс]. – URL: https://thenewstack.io/instagram-makes-smooth-move-python-3.
  10. Developer Survey Results 2018 [Электронный ресурс]. – URL: https://insights.stackoverflow.com/survey/2018.
  11. Kuprenko Vitaly 5 Huge Tech Companies That Use Python: Does It Fit Your Project? [Электронный ресурс]. – URL: https://www.cleveroad.com/blog/discover-5-leading-companies-that-use-python-and-learn-does-it-fit-your-project.
  12. PythonTestingToolsTaxonomy [Электронный ресурс]. – URL: https://wiki.python.org/moin/PythonTestingToolsTaxonomy.
  13. Jason Reynolds 8 World-Class Software Companies That Use Python [Электронный ресурс]. – URL: https://realpython.com/world-class-companies-using-python.
  14. Which companies are using the Python language? [Электронный ресурс]. – URL: https://www.quora.com/Which-companies-are-using-the-Python-language.
  15. 2018 SAS, R, or Python Survey Results: Which do Data Scientists & Analytics Pros Prefer? [Электронный ресурс]. – URL: https://www.burtchworks.com/2018/07/16/2018-sas-r-or-python-survey-results-which-do-data-scientists-analytics-pros-prefer.
  16. Gregory Piatetsky Python eats away at R: Top Software for Analytics, Data Science, Machine Learning in 2018: Trends and Analysis [Электронный ресурс]. – URL: https://www.kdnuggets.com/2018/05/poll-tools-analytics-data-science-machine-learning-results.html/2.