JavaRush /Java Blog /Random EN /Coffee break #9: How continuous testing speeds up the dev...

Coffee break #9: How continuous testing speeds up the development process and what programming languages a Java developer should know

Published in the Random EN group

How continuous testing speeds up the development process

Source: TechBeacon Coffee break #9: How continuous testing speeds up the development process and what programming languages ​​a Java developer should know - 1 A programmer makes a mistake if he runs automated tests only at the end of the development cycle. This threatens with serious problems that can lead not only to loss of working time, but also to financial losses. You can avoid this by making it a rule to conduct testing at all stages. What is continuous testing? Essentially, it means conducting tests from the initial concept approval to the release of the finished product. Moreover: testing continues even after the application has appeared on the market.

The obvious benefits of continuous testing

Research shows that more than 85% of errors occur during the design and assembly phases. Often even at a time when the developers have not yet written a single line of code. If a bug is discovered after a product is released to market, it can cost tens of thousands of dollars or more to fix. If the developers found and fixed the error at an early stage, the company's costs or the amount of programmer time lost will be much less. It follows that the sooner you identify the problem and begin to solve it, the less money you will lose.

Putting continuous testing into practice

Testing should be carried out at every stage of the development process, from planning to coding and releasing the finished product. The concept of creating the code must also be tested. How should this happen? To begin with, the team will have to create a development pipeline, detailing each stage: from the first code commit to deployment in the production environment. Once this process is agreed upon, the team must select the most appropriate type of testing for each development phase. For example, immediately after merging code branches, each of which was the responsibility of a separate developer, you need to check that no one accidentally introduced errors into the code base. By analyzing testing methods, you will determine which test is most effective for checking the quality of a product at a certain stage of work. Your team will then implement only those testing methods that meet the requirements. Instead of using one method just before deployment, you'll test each step thoroughly. Ultimately, this will shorten the iteration cycle and reduce the number of critical issues.

Make continuous testing part of your quality strategy

Despite the fact that many teams always have developers who are confident that their code is infallible, testers must check every step of their work. The value of continuous testing is that it reduces the number of critical problems. By going deeper into the development process and creating an effective continuous testing strategy, you will reduce the cost of fixing bugs if they were discovered at a later stage. It is known that 62% of users immediately delete a mobile application if they discover an error in its functionality. By releasing a bug-free application to the market, you protect your company from loss of revenue. Accordingly, your effectiveness as a developer increases. You can achieve this result only through the implementation of continuous testing. What else to read: All about Unit-testing. Methods, concepts, practice

What programming languages ​​should a Java developer know?

Source: Codeburst Coffee break #9: How continuous testing speeds up the development process and what programming languages ​​a Java developer should know - 2 If you are a Java developer and are thinking about learning another language to expand your skill set, then you should first pay attention to one of the three JVM languages. Knowing several programming languages ​​will give you points in interviews. By learning different languages, you also broaden your horizons, since each of them has special functionality that makes it much easier to perform certain actions. Learning a new programming language gives you additional experience that allows you to compare the advantages and disadvantages of each language you learn.

1. Scala

Since its inception in 2013, Scala has been touted as a better alternative to Java. However, it failed to replace the Java language, especially after the release of Java 8 with a set of new features (lambda expressions, streams, etc.). However, Scala remains a great language for Java developers. Over the past few years, Scala has grown noticeably; companies such as Uber, Sony, Amazon, Autodesk and others are increasingly using it in their work. Popular Scala frameworks (Play, Akka and Spark) are used for web development and Big Data projects. From all this it follows that there is a demand for knowledge of the language. If you want to learn a language in addition to Java, then Scala should be your first choice.


The Kotlin language was created in 2011 within the walls of JetBrains, which developed IntelliJ IDEA, PyCharm and other well-known IDEs. For a long time, programmers did not pay much attention to Kotlin, until Google named it the official language for Android development in 2017. Like Scala, Kotlin runs on the JVM and compiles to Java bytecode. You can start using Kotlin in an existing Java project and everything will work great. If you are interested in learning Android in depth, want to protect your application from NullPointerException, and learn how to write cleaner and better functions, then you should definitely learn the Kotlin language.


I noticed Groovy and did some research into it in 2017. Based on my experience, I can say that every Java developer should learn the Groovy language. Why? Because it complements Java with its concise syntax and powerful functionality (collections of literals, def to define anything, and multi-line strings). Compared to Java, Groovy significantly reduces the number of lines of code required to perform certain actions. In my case, one of the reasons for learning Groovy was Spock, a unit testing framework. It simplifies unit testing in Java and extends the capabilities of Junit.
Perhaps these are all the languages ​​that I could recommend for learning. If you want to focus on functional programming, Scala is a better choice. If you decide to deepen your knowledge in developing mobile games and applications, then Kotlin will help you. Well, if you are interested in scripts, pay attention to Groovy. It is great for unit testing and automation. Groovy compiles to Java, so it complements that language well.