JavaRush /Java блог /Random /Кофе-брейк #9: Как непрерывное тестирование ускоряет проц...

Кофе-брейк #9: Как непрерывное тестирование ускоряет процесс разработки и какие языки программирования должен знать Java-разработчик

Статья из группы Random

Как непрерывное тестирование ускоряет процесс разработки

Источник: TechBeacon Кофе-брейк #9: Как непрерывное тестирование ускоряет процесс разработки и какие языки программирования должен знать Java-разработчик - 1Программист совершает ошибку, если делает автоматические тесты только при завершении цикла разработки. Это грозит серьезными проблемами, способными привести не только к потере рабочего времени, но и к финансовым убыткам. Избежать этого можно, взяв за правило проводить тестирование на всех этапах. Что такое непрерывное тестирование? По сути, оно означает проведение тестов от утверждения первоначальной концепции до выпуска готового продукта. Более того: тестирование продолжается даже после того, как приложение появилось на рынке.

Очевидные преимущества непрерывного тестирования

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

Внедрение непрерывного тестирования на практике

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

Сделайте непрерывное тестирование частью вашей стратегии обеспечения качества

Несмотря на то, что во многих командах всегда есть разработчики, которые уверены в непогрешимости своего кода, тестировщики должны проверять каждый этап их работы. Ценность непрерывного тестирования состоит в том, что оно уменьшает количество критических проблем. Углубившись в процесс разработки и создав эффективную стратегию непрерывного тестирования, вы сократите расходы на устранение ошибок, если они были бы обнаружены на более позднем этапе. Известно, что 62% пользователей сразу удаляют мобильное приложение, если обнаружат ошибку в его функциональности. Выпуская на рынок приложение без багов, вы защищаете свою компанию от потери доходов. Соответственно, растет ваша эффективность, как разработчика. Добиться такого результата вы можете лишь благодаря внедрению непрерывного тестирования. Что почитать еще: Все о Unit-testing. Методики, понятия, практика

Какие языки программирования должен знать Java-разработчик?

Источник: Codeburst Кофе-брейк #9: Как непрерывное тестирование ускоряет процесс разработки и какие языки программирования должен знать Java-разработчик - 2Если вы Java-разработчик и подумываете над тем, чтобы изучить еще какой-нибудь язык для расширения списка навыков, тогда в первую очередь вам стоит обратить внимание на один из трех JVM-языков. Зная несколько языков программирования, вы добавляете себе баллы на собеседованиях. Изучая разные языки, вы также расширяете свой кругозор, поскольку у каждого из них есть особый функционал, который позволяет намного проще выполнять те или иные действия. Обучение новому языку программирования дает вам дополнительный опыт, который позволяет сравнить преимущества и недостатки каждого из изученных языков.

1. Scala

Со времени своего создания в 2013 году язык Scala рекламировали как лучшую альтернативу для Java. Однако заменить язык Java ему так и не удалось, особенно после выхода Java 8 с набором новых фич (лямбда-выражения, потоки и т.д.). Тем не менее, Scala остается отличным языком для Java-разработчиков. За последние несколько лет Scala заметно подрос, его все чаще стали использовать в своей работе такие компаний, как Uber, Sony, Amazon, Autodesk и другие. Популярные фреймворки Scala (Play, Akka и Spark) применяются для веб-разработки и проектов Big Data. Из всего этого следует, что на знание языка есть спрос. Если вы хотите изучить ЯП в дополнение к Java, тогда Scala должен стать вашим первым выбором.

2. Kotlin

Язык Kotlin создали в 2011 году в стенах компании JetBrains, которая разработала IntelliJ IDEA, PyCharm и другие известные IDE. Долгое время программисты не обращали особого внимания на Kotlin, пока в 2017 году Google не назвала его официальным языком для Android-разработки. Как и Scala, Kotlin запускается на JVM и компилируется в байт-код Java. Вы можете начать применять Kotlin в уже существующем проекте на Java, и все будет отлично работать. Если вы заинтересованы в глубоком изучении Android, хотите защитить ваше приложение от NullPointerException, научиться писать функции чище и более качественно, тогда вам несомненно стоит изучить язык Kotlin.

3. Groovy

Я заметил Groovy и поверхностно исследовал его в 2017 году. Исходя из своего опыта, могу сказать, что выучить язык Groovy должен каждый Java-разработчик. Почему? Потому что он дополняет Java своим кратким синтаксисом и мощным функционалом (коллекции литералов, def для определения чего угодно и multi-line строки). По сравнению с Java, Groovy значительно уменьшает количество строчек кода, необходимого для осуществления каких-то действий. В моем случае одной из причин для изучения Groovy был Spock — фреймворк модульного тестирования. Он упрощает модульное тестирование в Java и расширяет возможности Junit.
Пожалуй, это все языки, которые я мог бы рекомендовать для изучения. Если вы хотите сделать упор на функциональном программировании, лучше выбрать Scala. Если же вы решили углубить свои знания в разработке мобильных игр и приложений, тогда вам поможет Kotlin. Ну а если вас интересуют скрипты, обратите внимание на Groovy. Он прекрасно подходит для модульного тестирования и автоматизации. Groovy компилируется в Java, поэтому хорошо дополняет этот язык.
Комментарии (3)
ЧТОБЫ ПОСМОТРЕТЬ ВСЕ КОММЕНТАРИИ ИЛИ ОСТАВИТЬ КОММЕНТАРИЙ,
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
endorfin Уровень 25
31 января 2020
Привет, ребята. Нашел в своей библиотеке книги, Вот делюсь ссылками По Scala: https://oxy.st/d/ERCb - Прокопец Александр - Конкурентное программирование на Scala - 2018.pdf По Kotlin: 1. https://oxy.st/d/EwEb - Kotlin. Программирование для профессионалов - Джош Скин, Дэвид Гринхол - 2020.pdf 2. https://oxy.st/d/FwEb - Kotlin в действии - Жемеров Дитрий, Исакова Светлана - 2018.pdf По Groovy: https://oxy.st/d/HwEb - Grails. Гибкость Groovy и надежность Java - Смит Глен, Ледбрук Питер - 2010
Николай Уровень 11
31 января 2020
Groovy компилируется в Java, поэтому хорошо дополняет этот язык. Как это понять ? т.е. строчки кода на Groovy можно чередовать в одном проекте с Java ? p.s. я только 8й уровень прохожу )