Stim cat este de important pentru tine sa iti mentii un avantaj competitiv in acest domeniu, fie prin dezvoltarea de abilitati noi sau imbunatatindu-le pe cele actuale. Din acest motiv dezvoltam si imbunatatim constant cursurile noastre. In acest articol poti sa vezi cele mai recente training-uri pe care le-am adaugat.

Fie ca vorbim de programare, testare software, analiza de business, Agile, project management sau orice alta arie asociata cu industria IT&C, viteza cu care lucrurile se schimba este intr-o continua crestere.

Stim cat este de important pentru tine sa iti mentii un avantaj competitiv in acest domeniu, fie prin dezvoltarea…


Once upon a time, in 1997, Brian Marick wrote an article entitled “Classic Testing Mistakes.” In his article he classified testing mistakes into several groups which are listed below. In 2009, I analyzed the then current state of those mistakes and the tendency seemed encouraging. Now, 11 years later, I decided to conduct a new analysis of those mistakes and share my opinion, evaluations, and doubts.

Once upon a time, a very long time ago now, about last Friday, Winnie-the-Pooh lived in a forest all by himself under the name of Sanders. “What does ‘under the name’ mean?” asked Christopher…


Ultimul articol din seria noastra despre Test Driven Development cu JUnit 5.

In acest ultim articol mergem mai departe cu implementarea clasei PremiumFlight. Vom crea PremiumFlight ca o subclasa a Flight si trecem peste metodele addPassenger si removePassenger, dar acestea vor actiona ca stubs — nu fac nimic, ci pur si simplu returneaza fals. Comportamentul lor va fi extins mai tarziu. Stilul TDD se bazeaza mai intai pe crearea de teste si apoi business logic.

public class PremiumFlight extends Flight { #1

public PremiumFlight(String id) { #2

super(id); #2

} #2

@Override

public boolean addPassenger(Passenger passenger) { #3

return false…


The fifth part of our article on Behavior Driven Development with JUnit 5. Happy reading.

We’ll now create a new Java class in the test/java folder, in the com.luxoft.bddjunit5.airport package. This class will be named PassengerPolicy and, at first, will contain the test skeleton. The execution of such a test follows the scenarios described in the passenger_policy.feature file. For example, when executing the step

Given there is an economy flight

the program will execute the method annotated with

@Given(“^there is an economy flight$”)

public class PassengerPolicy {

@Given(“^there is an economy flight$”) #1

public void there_is_an_economy_flight() throws Throwable { #2


This series of articles will focus on the author’s experience in the development and implementation of a smart home system in a two-room apartment. It will present our approach to designing and developing a smart home system and demonstrate a solution that has been operating for 4 years already.

What is Smart Home?

We try to avoid formal definitions and look at it from the consumer’s point of view. When I first shared his idea of smart home with a friend, the latter said, “Can’t you get to the switch and turn on the light yourself?”. He was right in a way — I…


The fourth part of our article on Behavior Driven Development with JUnit 5. Happy reading.

The keywords Feature, Scenario, Given, When, Then, and And are highlighted. Right-clicking this feature file shows the option to run it directly (figure 2).

Figure 2 Directly running the passengers_policy.feature file by right-clicking the file

This is possible only if two requirements are fulfilled. First, the appropriate plugins must be activated. To do this in IntelliJ, go to File > Settings > Plugins and install the Cucumber for Java and Gherkin plugins (figures 3 and 4).


Cel de-al cincilea articol din seria noastra despre test driven development cu JUnit 5. De data aceasta ne uitam la cum putem introduce functionalitati noi folosind TDD.

5. Introducerea de noi functionalitati folosind TDD

Primele functionalitati noi pe care le vom implementa sunt un nou tip de zbor — premium — si politicile legate de acest tip de zbor. Exista o politica pentru a adauga un pasager: daca pasagerul este VIP, pasagerul ar trebui adaugat la zborul premium; altfel, cererea trebuie respinsa. …


The third part of our article on Behavior Driven Development with JUnit 5. Happy reading.

4. Working BDD style with Cucumber and JUnit 5

In our previous article, we worked TDD style to develop the flight-management application to a stage where it can work with three types of flights: economy, business, and premium. In addition, we implemented the requirement that a passenger can be added only once to a flight.

We have already introduced, in a discrete way, a first taste of the BDD way of working. We can easily read how the application works by following the tests using the Given, When, and Then keywords. …


Cel de-al patrulea articol din cadrul seriei noastre despre Test Driven Development cu JUnit 5. In acest articol vom continua procesul de refactoring al aplicatiei noastre de flight-management application.

4. Refactoring al aplicatiei de flight-management

Vrem sa facem refactoring si sa inlocuim conditional statements cu polymorphism. Elementul cheie in procesul de refactoring este sa orientam designul spre polymorphism in loc de procedural-style conditional code. Cu polymorphism (abilitatea unui obiect de a trece cu bine mai mult de un test IS-A), metoda pe care o apelam nu este determinata de compile-time, ci la runtime, in functie de object type.

Principiul pe baza caruia actionam se numeste open/closed…


The second part of our article on Behavior Driven Development with JUnit 5.

From requirements analysis to acceptance criteria

For the company using the flight-management application, one business goal that we can formulate is “Increase sales by providing higher quality overall flight services.” This is a very general goal, and it can be detailed through requirements:

  • Provide an interactive application to choose flights.
  • Provide an interactive application to change flights.
  • Provide an interactive application to calculate the shortest route between source and destination.

To make the customer happy, the features generated by the requirements analysis need to achieve the customer business goals or deliver business value…

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store