IT Labs Entered Into a Collaboration with the School of Electrical Engineering at the University of Belgrade

IT Labs Entered Into a Collaboration with the School of Electrical Engineering at the University of Belgrade


March, 2022

IT Labs and the School of Electrical Engineering (SEE) at the University of Belgrade have signed an agreement for collaboration, with the purpose of joining forces in innovation, development, and introduction of new technologies, with IT Labs becoming a Grand Partner of SEE (School of Electrical Engineering).

IT Labs’ General Manager, Kostandina Zafirovska, and Ilija Mishov, Co-founder at IT Labs, paid a visit to the University last week to sign the collaboration and lay the foundations of the cooperation, meeting with Ass. Professor Mileta Zarkovic, PhD, Professor Bosko Nikolic, PhD, and Professor Milos Cvetanovic.

Primarily, this collaboration consists of defining and setting up topics for projects, BSc and master’s theses, as well as going deeper in modernizing and improving the curricula and syllabi, and practical training and potential employment for students from various degrees programs.

Closer collaboration and cooperation among IT Companies and academic institutions will help in providing better education to younger people, helping them secure their future, and spur innovation and invention.

Collaborations like this one is the first step towards ensuring our academic institutions are not just cradles of knowledge, but also innovation.”

– Kostandina Zafirovska
General Manager at It Labs

“By collaborating, we can help young people enter the labor market more prepared and enable them a hands-on experience with modern technology, which in turn makes them better equipped to succeed.”

– Ass. Professor Mileta Žarković, PhD
School of Electrical Engineering at the University of Belgrade


Marking the International Women's Day 2022

Marking the International Women's Day 2022

The role of women in society has changed over the years, but has their position changed? Has there been progress? Questions like these and many others were asked, debated, and answered yesterday, March 7th, during the discussion of our IT Lab women with Ljupka Trajanovska, an experienced activist with a demonstrated history of working in the civic and social organization industry. The topic of the discussion was “Women’s Role in Society: 2022” at which a brief overview of the history of women’s movements was covered, together with how the movement has changed over the years, and how women have gone lengths in their search for equal treatment. 

And March 8th – the International Women’s Day – is the day on which we raise awareness to all the obstacles women have pushed through, the barriers they have torn down, and the things they have achieved that contributed to making the world a better place. 

Women’s Roles and Standing in Society – an Overview: 

With all the effort already put into improving the position of women in society, there is still much to be done, as some of the stats in North Macedonia show that: 

  • less than half of all the women of age are employed 
  • less than 30% of all real-estate owners are women 
  • on average, they earn about 15-20% less than men 
  • over 220,000 women that are counted on as housewives are not considered to be workers, and are not compensated for their efforts 

This imbalance is a clear sign that not all women have the same opportunities nor the same support when it comes to their professional lives, and more often than not, they end up depending on their partners. 

What Can be Done 

From that first march for Women’s Rights back 1910, many will say that that’s history – but it’s history that we’re living right now, and there’s lot of work still to be done. So here and now, what can we all do? How do we ensure that women get to the position in society, in business, in tech – that they deserve? 

At IT Labs, 50% of our workforce consists of women, and this extends to management and executive positions as well, and we’ve achieved this by empowering women and giving them the same opportunities that men enjoy and providing them with a platform to grow and develop. 

We are guided by the concept of meritocracy, a concept which has proved, time and again, that given the opportunity, women will reach the same heights as men – and some will even go above it! 

Happy International Women’s Day!
 


Month of Giving Back

Month of Giving Back

This past month came and went almost in an instant, mainly because we all had a lot of things to do, and a lot of things to cherish and enjoy, like the forthcoming holiday season for example. But one cannot simply enjoy the festive season knowing the local and community’s challenges ahead. Think about the less fortunate, the ones who struggle to make ends meet – now more than ever, they need all the help they can get.

We, at IT Labs, have decided that November will be our Month of Giving Back, a month in which we focus on helping out the ones in need and spread solidarity and generosity.

Some of our colleagues decided to make the days of others better by sharing their heart-warming stories of when they helped someone in need. Others focused on the present and bought coffee or chocolate for colleagues and shared motivational and inspiring quotes to shine some light into their days.

And then there are those who used their cooking skills to cook something for the less fortunate. Meals cooked with love and compassion, with the hope that it will help someone have a tasty and nutritional meal. And on top of that? We donated some extra food supplies and clothes!

At the end of the day, we all played our role in making the world a bit better, a bit brighter, and a bit warmer. And what did it take? Just a few hours, a couple of ingredients and multiple warm hearts.


Caring For Employees Through a Screen

Caring For Employees Through a Screen with Frosina Zafirovska

How To Provide Proper Care in Extraordinary Times and Circumstances


As a psychologist and a People & Talent officer, I’ve spent many hours trying to figure out ways in which I can make the life of the employees within IT Labs easier, more fun, and get them to be the best version of themselves – learning, creating, and becoming better every day. There are all kinds of scenarios in my head that I prepared for, but a global pandemic was definitely not one.  

This last month, we had our second health month at IT Labs, and it provided the People & Talent Department with much needed insight into what works and what doesn’t in these extraordinary circumstances – which is why I felt compelled to write this piece.  

Activities, Activities, Activities 

How do you develop an activity that will be beneficial to your employees – but through a screen? How do you even approach that?  

Rethinking activities is the first thing that comes to mind, and why not? Contrasting times, different approaches, right? Well, the truth is, drastic changes are not needed, but moving on from some of the events and activities developed in the 90s – some of which are still present today – is one of them. When an activity doesn’t produce any engagement, and interest in your employees, scrap it, ASAP, otherwise you risk undermining all your efforts – once bad or bland things starts rolling out of the People & Talent departments, employees will lose interest in anything you have to offer them, and this will lead to alienation, distancing, and sooner rather than later people will not want to stay with your company anymore.  

The solution? Don’t complicate things – in these times of isolation, do the things that will get people to feel connected with the world. Organize activities that will engage them with the world, and show them that they’re doing something worthy. Something that will make a change. At IT Labs, for example, we’re focused on projects and charities that make a difference in communities.  

The reason why this kind of activities works is because it unites the whole bunch under one common cause – and a sense of unity creates a sense of belonging which goes a long way in countering the devastating effect the pandemic has on the everyday lives of your employees. No need for crazy, out-of-the-box ideas that might work – stick to the ones that will show your workers that their efforts inside the company can have a strong, positive effect on the world outside.  

Old School Does The Trick Sometimes  

Working remote comes with its own set of benefits, but also drawbacks – and as more people choose to work out of office, HR departments around the world will need to adjust their strategies. Does this mean throwing old plans in the bin and starting all over? Of course not, but a slight tweak and going back to basics might do the trick.  

The core of the issue lies in the drawbacks that come with working remote: lack of community and team spirit, more distractions, lack of motivation, risk of burnout.  

So how can we help ease these and ensure employees are at their best? By giving them the main thing that’s missing in their work – a human moment. Yes, as leaders of People & Talent departments it’s our duty to stay in touch with everyone and check in on them every now and then, but how do we make it in a way that makes a difference? By having an open, heart to heart conversation with every single person. Poke and prod, spend 15-20 minutes to talk about all matters work and life related, show interest in their life, and of course, provide support and assure them that you are here for them to talk about any subject and matter that bothers them – a pure human moment can do a world of good for anyone struggling with alienation, isolation, and the ‘new normal’. 

The point is, we have an obligation to keep things professional, but that doesn’t mean we can’t lend a hand to anyone in need, especially in our work environment – it’s not our job, it’s our duty.  

The Future of Employee Care & Satisfaction  

About the future, there seem to be two opinions that circle – some say that the future is extremely near, and we would do well to prepare for it now, while others say that the future is now, and that what we do right now is the thing that matters.  

Both are true, but in their own, unique way – yes, today is the tomorrow we didn’t expect for another 5 or 10 years, but at the same time it’s as if there’s more to what can be done, so we look ahead. Hybrid models of working will become the new normal, and with that, leaders of people departments will need to find a way to keep employees happy, fulfilled, satisfied, and secure. And in the end, whichever system you have deployed and available to your employees, keep the following in mind – you can invent new activities and ways to satisfy your employees, you can try the craziest, adrenaline-fueled stunts, but nothing will have the same long-lasting, deep effect as a pure human connection.  

Conclusion 

Circumstances can and will change, environments will change, people will change – but the one thing that shouldn’t change is our desire to be the best versions of ourselves, by enabling and motivating others to be the best themselves. 


Frosina Zafirovska


Chief People and Talent Officer


Jack of All Trades Or Specialists? The Future of IT Through The Lens of A BA

Jack of All Trades Or Specialists? The Future of IT Through The Lens of A BA 

Erin Traeger


Business Analyst

There’s new tech, new ways of doing stuff, new platforms, new toys – but the debate regarding specializing or sticking to a jack-of-all-trades style is still ongoing. Now, before anyone gets excited, I’m not here to put it to bed – I’m here to add more oil to the fire. 

Just kidding – I simply believe that the perspective is way too simplistic than the reality. Of course, there’s the need for both, and yes, sometimes techies, leaders, and tech leaders can do both, depending on the project. There is no such thing as one-size-fits-all in the world of technology.  

As I’ve been in this line of work as a BA for more than a decade now, I also have experience as a Product and Project Manager, and I think it’s time I shared my two cents on the matter. I will not preach, nor give you a recipe for success – I’ll just write about what I’ve learned in the world of tech, regarding that title above.  

No more, no less. 

Delegating Responsibilities

Point for jacks. Delegating responsibilities is something that’s easier if you know what you’re getting yourself into as a team leader or a project manager. No, I’m not talking about just having some idea of how the project will go, with estimates and everything. I’m talking about having a good grasp on how much of an effort your team will need to put in to get the project over the line. 

Specializing in a few technologies or programming languages is all fine, and yes, that experience and knowledge will surely help, but imagine a team leader who knows the core problems of a project and is able to assess them better. 

As a BA, you don’t really have a lot of delegation to do, you’re in a way just running point, but as a product and project manager, it’s crucial.  

Knowing How to Approach Problems

Approaching IT problems is all about perspectives, and the more diverse your skill set, the easier it will be to see the pain points of a project. This isn’t just about planning and execution; this is also about setting up the project in which your team can be not just effective, but also learn and connect. 

I’ve learned things I never thought I’d have the chance to use, but you’d be amazed how something you consider irrelevant or impractical can actually be your rescue when facing complex problems. 

Furthermore, this helps add another dimension to the way you’re leading teams, and helps with delegating! Sure, knowing the core of the matter and having a sense of it is always nice, but why not use this knowledge and put it to something like nurturing. You can measure out your approach – go with passive listening and guide your team with questions, or you can engage and guide by doing. The correct way? Take a look at your team, and you’ll know – what they need and how they work will give you the answer right away. 

Working as a BA, product manager, and sometimes project manager, this can be achieved if one is ready to walk that thin line between having a front-row view of the project, and looking at it from the side – a mix of objectivity and subjectivity. 

Leading By Example

Autonomy in teams is something that’s desired, of course, but teams have leaders for a reason, as sometimes they have to step in and guide when someone hits a snag.
There isn’t one way to do this, and the key to figuring out the core of the problem is balance – being decisive, but not dismissive. 

Having your own MO is always nice – you know how things go, how they should be done, and you feel in control, right? But think of this – leading by example is not just about showing the best way something can be done, it’s about stirring debates, enabling team members to share ideas and engage in processes – which all can contribute to better product development and deployment.
Blindly following established processes can really spell doom for a project, and can actually hurt team dynamics and relationships.
See what works, don’t just decide before you listened and tried – adapt, improvise, overcome!

Flexibility

I know, I know, it’s something that’s talked about a lot. But I’m here to talk about the flexibility towards clients. Agile is a methodology that is applied to teams working on the project, but can it be applied to clients? Yes, and to a great extent. 

Sometimes, behind a project you have one client, and sometimes there are multiple stakeholders. All this can present a challenge, as there are multiple ideas about how to conceptualize and execute the development process, and sometimes these can be conflicting. For this, specializing comes to the rescue. 

Having something as a specialty can help you not just with understanding the project and envisaging it, but also help you convey your messages and recommendations to the client. Simple, short explanations that will help the client understand what you’re trying to achieve, and visualize your proposed changes and additions. 

And at the core of this lies the relationship you form with your clients – sometimes you might click, at other times you’ll need to engage: ask questions, ask explanations – whatever it takes for you to get a better understanding where the client is coming from. 

Mutual understanding lies at the heart of client satisfaction. 

Conclusion

We have this idea that methods, concepts, and MOs should become simpler, more concrete, and more fixed in a way – and it’s time we worked on changing that and accepting the looming reality: flexibility in methods and approach is what will drive efficiency, innovation, and success in the world of technology. 

My advice to all the BAs, project and product managers out there, and the ones aspiring to be that one day: stick to what you know, but don’t forget the following – anyone you meet knows something you don’t, and sometimes that knowledge can be the thing that makes a breakthrough in your projects! 

Erin Traeger


Business Analyst


Innovation has its bread and butter in one concept – an idea

Innovation has its bread and butter in one concept – an idea.

Blagoj Kjupev


CIO at IT Labs

Before the car was a car or the iPhone was an iPhone, it was an idea. So, everything manmade comes from the idea, which is based on a need or improvement, but yes – the idea is the foundation for anything related to innovation. But, the word idea to a lot of people sounds intimidating. Not in the sense that they cannot come up with one, but because of the socially applied pressure that only good ideas need to be heard – thus instantly placing their idea on hold. And the objective truth is that every idea is good at some point in time, the real question is if the time for that idea has come. 

On ideas and all things related, we sat down with Blagoj Kjupev, our Chief Innovation Officer, and talked about ideas, how to spot a good one, how to unearth them, and why engaging your teams to voice ideas is important. 

ITL: IT Labs has been in the tech industry since 2005. Where were you then – and where are you now as a company? Where is IT Labs positioned at the moment in the world of software development?

Blagoj: Since IT Labs’ beginning 15 years ago, we’ve been cooperating with companies and businesses from various industries, located around the world. We started off with smaller projects and smaller teams, but over time, we developed our portfolio in several sectors and areas, and this allowed us to grow and expand as a company. As we rose through the ranks, we quickly became the main driver in the digital transformation of our partners. Now, we offer wide-spectrum products and services: from advising and consulting on business strategies, all the way to managing a full software-development process and cycle, including maintenance and support.

After opening our first dev hub and establishing and got a foothold in the market, we proceeded with expanding in the Americas, Western and Eastern Europe, covering business centers in the USA, UK, and the Netherlands. We have just opened an office in Serbia, since we identified that it has a strong IT capacity and a very developed business culture that will help us diversify, grow, and develop as a company.

 

ITL: What kind of clients do you work with? What kind of services do you offer them?

Blagoj: We offer a wide array of services, from deploying business agility to defining business strategies. Specifically, services regarding business analysis, product architecture, development, testing, DevOps, and cloud strategy. These include security services, which come in handy for clients with partial or non-existent coverage in this area. Our experts analyze security systems and their structures, and develop client-specific strategies.

With tech development and changes in the market, the services we offer also diversified and expanded, so now, we also offer AI and data science-related services as well. We have a team of experts in data analysis, data science, and AI who can transform clients’ product revenues by optimizing data flows and data analysis. Thus, leading the client with data that serves their unique position in the market. What sets us apart from the competition is the fact that we don’t just offer technical services. We offer highly skilled and professional teams which have worked on big projects, their success was measurable and tangible, and have helped clients develop and grow. There’s no need for the client to waste time and energy in putting together and nurturing teams to carry out tasks in various departments. We do all this for them, and then some. Our teams of professionals are focused on exceeding the expectations of the client, and we achieve this by treating people as the most valuable asset. We can guarantee quality in delivery and efficiency for our clients.

ITL: What makes an idea a good one?  

Blagoj:  The person giving the idea and the people listening to that idea. That’s it, there must be a good match. An idea in itself cannot be good or bad. It’s the room that the idea is presented in, figuratively speaking of course. Somebody’s bad idea can be someone else’s spark into an amazing adventure ending with a very successful product or service. Think of anything produced and developed by humans. How much of that was a complete, producible idea in its inception? If I had to guess it’s in the 0.00 margins. This means that on each idea an additional work has to be conducted to have it fully developed and understood by investors and companions that will help in its development.   

Ideas are an amalgamation of all our experiences, references to things we’ve seen, read, watched, listened to... When a problem is presented, our mind unconsciously goes through all of that and finds an approach to help us solve the problem. So, we all have ideas, every day. It’s just that most stay silent and undeveloped due to different reasons. Our focus during the incoming period will be to help our colleagues feel comfortable expressing and develop their ideas.   

ITL: So, ideas need to be voiced more often. As the Chief Innovation Officer at IT Labs, how will you change that?  

Blagoj: : After many discussions with my colleagues from the marketing and other departments, my expectations were confirmed that we have the manpower, know-how, and creativity in our teams to take ideas and turn them into real-life projects and products. We’ll further increase the number of activities that are taking place, to include brainstorming and open discussion events in which we’ll speak about solving already identified problems, existing solutions, new technological breakthroughs, and develop ideas that might turn into something amazing.  

ITL: What is the potential of the engineers to generate ideas in areas where ITL is present?  

Blagoj: I’d like to redefine the question a bit: we are not focused on collaboration with engineers only, but the focus is to engage all the employees in ITL, as they’re all welcome to participate and share. Ideas can come from any person, no matter their background or field of work, so there’s no one excluded. Moreover, in the beginning, we’ll be focused on collaboration internally in our company and soon we’ll open the possibility to collaborate with idea authors from everywhere. The local idea capital in geographical regions where we are present, I believe is not utilized properly and the initial goal will be to scratch below the surface using new approaches and reveal potential gems.  

ITL: Okay, we all have ideas, right? How do you decide which ones are worthy of being considered? How do you separate the “hmmm, that might work” from the “that’s just crazy”?  

Blagoj: Via open discussions and for some areas by having a guest who is great in specific areas of expertise which is touching the idea. Sometimes from one idea, there will be more ideas emerging, sometimes we’ll together with the author decide that the time is not right for that idea. Only through open discussions and brainstorming we can reach a common understanding of the real value of any idea and agree on next steps.  


Blagoj Kjupev


CIO at IT Labs


Achieving work-life balance: A Project Manager's Journey

Achieving work-life balance: A Project Manager's Journey

Zorica Redzic


Project Manager at IT Labs

With everyone around the world struggling to cope with the pandemic in the last year and a half, the talk about work-life balance – already a hot topic – turned from something we talked about, to a pressing issue.

The reason? Well, the lives we loved living were no longer an option. We had to adapt to the new normal, and in it, achieving work-life balance is something that can be the difference between living life to the best of our abilities and settling for something that is way below what we’re capable and deserve.

Like most, I’ve spent many hours figuring things out and finding my way around in these extraordinary circumstances, but something along the way just “clicked”. I was where I needed to be, and I was comfortable – work was getting done, and life was lived.

Just to put it out there – this is NOT a self-help article. I won’t tell you what to do, nor how to do it, as achieving work-life balance is different for everyone. This is just my two cents and my experience – a brief outlook on what has worked for me, Zorica Redzic, as a person and a project manager.

Let’s go.

On Reassessing Priorities

Dreaded, foreseeable, yet paramount – reassessing and resetting priorities. I, for one, dove head-first into this by pulling all the aces I had up my sleeves. Improvising left and right in all aspects of my work – from managing people to getting things done. 

Did it work? Yes. 

Was it the best way? Read the answer to the previous question.

While winging it has been a success for me, it doesn’t mean that it will be for anyone, nor should it be considered as a long-term solution. That’s why I set about reassessing priorities but from a laxer perspective. I started out by rooting them in general concepts, all captured in one simple personal motto that gave me both the freedom and energy to keep going – “there’s always work to be done, but don’t get stuck doing something that doesn’t fulfill you”.

I know, I know – it’s a cliche. But it works. I didn’t reevaluate my job position or the company I worked for – I did it with my tasks and day-to-day tasks. I simply focused more on the things I wanted to do, and treated it as a reward and an energy booster to do the things that were both time and energy-consuming.

This balance between the wants and the needs is the core of what I as a project manager found to be the golden ratio in my endeavors. In the bigger picture, this helps you establish a reward system – by you, for you – which can be a never-ending source of motivation.

The reason I talked about all this? The same thing applies to real-life situations. And this is not only something we need to do, it imposes itself as something we should definitely strive for, as focusing too much on the work part means leaving out the life part – and that’s a recipe for disaster. Rinse-repeat the same thing, and voila – a step closer to balance.

Finding Opportunities to Grow

The invisible pink elephant in the room – with the world at a standstill, how do I keep growing? How do I find the pockets of space, time, and energy to maintain my learning curve?

I didn’t just drown into all the material available on the web. Because learning opportunities don’t just come in the shape of courses, meetings, feedback sessions, webinars, and workshops – it’s about making the space for it.

Making the time and space to learn and develop as a project manager sounds impossible, right? But it isn’t. I set about delegating tasks and responsibilities to willing team members with the goal of enabling them to grow into their roles. I was then left with pockets of time and space in which I was free to do develop.

This was somewhat unexpected, but then it hit me – ‘you need to give in order to receive’ – an adage as old as time itself resonating in extraordinary times. This all led me to a simple conclusion – the circumstances have changed, but our values and principles need not. We still need to do what we’ve always been doing. It’s just the shape and this uncomfortable feeling around it all that somehow paints it all black.

Dear Project Managers, keep diving into your leadership and team-growing methods.

The Little Things That Make A Big Difference

As creatures of habit, any change to our everyday activities can be debilitating, and detrimental to our mental health and productivity. We all have our small morning or mid-day rituals, which whether we like it or not, play a big role in how we feel and how we go about our days.

I thought of my habits as being bound by certain processes and external circumstances, when in fact, I was bound by doing them. For example, getting up everyday and going through the whole work-prep was really important to me – washing up, working out, dressing up, breakfast, putting makeup, etc. – but is there a point to all these when you don’t go out and don’t have the chance to experience them in the same way as usual? 

The answer is yes.

As a project manager, I figured sticking to my habits and going through my morning plan kept me at my best, and not just in terms of productivity, but also in leading. As someone responsible for the well-being of his team, leading by example is the way to go. No, I’m not talking about pretending everything is fine and ignoring all the problems – I’m talking about showing your team that when the going gets tough, putting in the work to maintain your ways and can be incredibly liberating and comforting.

A morning person or not, we all do certain things that give us that sense of stability, a certain way in which we start and go about our day, a ritual of sorts – and while it’s something we rarely pay attention to, it can do wonders in helping us be at our best selves day in, day out.

Managing on Video

Even with all the tips and tricks, the structure, the awareness, the leading, things will go sideways from time to time. Your team(s) will suffer from dips in motivation and creativity, and sometimes will struggle – and the same can happen to you.

And then, there’s the worst-case scenario – you’re having a rough day, and a member of your team is going through something as well. When I first got in this kind of situation, I was literally at loss for words – and action! I was unable to even comprehend what was happening, and had no idea how to resolve this. I didn’t have the person in front of me, that direct, tete-a-tete moment was lacking, and I was unable to even get out of my own difficult situations.

After winging it a few times I realized that the thing that will work time and time again is to have a purely human moment. Listen, reflect, share, offer support, and make the necessary steps you believe need to be taken to come to a resolution. And of course, assurance. Don’t forget that this void of activity is affecting everyone, and that sometimes team members just need to know that it’s okay for them to take a break and reflect.

Showing understanding is one thing, acting on it is the hard part – that’s what will help you keep your team happy, and bring solidity in these times of uncertainty.

Final Words

For anyone jumping into this article with the hope of learning a groundbreaking idea – I’m sorry. The internet is just filled with hundreds of thousands of pieces on how to stay productive, how to keep teams productive, how to stay happy, etc. – and this piece is not that.

Yes, our professional and personal lives changed drastically – but does this mean we have to change our values and what we do? No – we just need to change the way on how we do it.

So Project Managers and not-project managers, there’s no need to reinvent the wheel, or our lives for that matter. We already know what sticks, so it might be best to stick to what we know.

Zorica Redzic


Project Manager at IT Labs


Every day at IT Labs is a shared and new adventure

Every day at IT Labs is a shared and new adventure

Kostandina Zafirovska

General Manager at IT Labs

ITL: IT Labs has been in the tech industry since 2005. Where were you then – and where are you now as a company? Where is IT Labs positioned at the moment in the world of software development?

Nina: Since IT Labs’ beginning 15 years ago, we’ve been cooperating with companies and businesses from various industries, located around the world. We started off with smaller projects and smaller teams, but over time, we developed our portfolio in several sectors and areas, and this allowed us to grow and expand as a company. As we rose through the ranks, we quickly became the main driver in the digital transformation of our partners. Now, we offer wide-spectrum products and services: from advising and consulting on business strategies, all the way to managing a full software-development process and cycle, including maintenance and support.

After opening our first dev hub and establishing and got a foothold in the market, we proceeded with expanding in the Americas, Western and Eastern Europe, covering business centers in the USA, UK, and the Netherlands. We have just opened an office in Serbia, since we identified that it has a strong IT capacity and a very developed business culture that will help us diversify, grow, and develop as a company.

ITL: What kind of clients do you work with? What kind of services do you offer them?

Nina: We offer a wide array of services, from deploying business agility to defining business strategies. Specifically, services regarding business analysis, product architecture, development, testing, DevOps, and cloud strategy. These include security services, which come in handy for clients with partial or non-existent coverage in this area. Our experts analyze security systems and their structures, and develop client-specific strategies.

With tech development and changes in the market, the services we offer also diversified and expanded, so now, we also offer AI and data science-related services as well. We have a team of experts in data analysis, data science, and AI who can transform clients’ product revenues by optimizing data flows and data analysis. Thus, leading the client with data that serves their unique position in the market. What sets us apart from the competition is the fact that we don’t just offer technical services. We offer highly skilled and professional teams which have worked on big projects, their success was measurable and tangible, and have helped clients develop and grow. There’s no need for the client to waste time and energy in putting together and nurturing teams to carry out tasks in various departments. We do all this for them, and then some. Our teams of professionals are focused on exceeding the expectations of the client, and we achieve this by treating people as the most valuable asset. We can guarantee quality in delivery and efficiency for our clients.

ITL: You said that you consider IT Labs as a value-driven company? Do you stick to those values, or are they really just for a good motivational poster at the office?

Nina: Integrity, excellence, proactivity, innovation, and people – these are our values. They are rooted deeply in how we work, they direct our perspective on business, help us innovate, and are the foundation of our strong team spirit. And of course, the cornerstone of every business decision we make.

We also use these values as the basis for our internal measurements – activities, individual and group performance – and it allows us to adjust our development plans and ensure our employees remain motivated and happy.  As I already said, we’re a company that it fulfilled its set goals, and we’re focused on providing quality service to our clients, but also creating desirable conditions for our employees, an environment in which they can develop but also be efficient at their work. Our employees like to act and work according to our values, and appreciate the results and benefits that come out from following them.

Me and everyone at IT Labs can clearly see how our values pave the way forward, and are part of what gives the company a unique face and position.

ITL: It’s in the nature of every business to grow and expand. Is that true for IT Labs?

Nina: We’ve been growing and expanding for a while now, with our next growth steps in Serbia. For us, it’s one of the main IT centers in the Balkans with a huge pool of skilled and experienced techies, and an excellent education system developing great IT engineers.

We’re extremely happy to be expanding there since it’s a country that has one of the biggest development hubs in the region. All the hubs in the region have many similarities and connections, so it will be a fun ride and a strong challenge for us.

ITL: Do you think that IT Labs can go head-to-head with a market such as the Serbian one? What does the company have to offer to the Serbian IT crowd?

Nina: Of course we can. We’ve done it before, and we’ve learned that the best way to approaching a new market does not differ in its essence from any other task you set out to do. Honesty and commitment are the best tools we have, and these will help us in networking with the local relevant entities, show support where needed, work with local startups and educational institutions, and just nest ourselves as best as we can.

We are confident that the Serbian IT crowd will recognize that we are a trustworthy partner, a great employer, and overall a benefit to the local IT community. IT Labs cares for each employee’s professional and personal goals, irrespective of the position or seniority, and I trust that approach will be highly appreciated by anyone who decides to become a part of our team.

ITL: How does one become a part of IT Labs? What does it take?

Nina: The recruitment process is very important for us as a company. We pay close attention to any candidate – regardless if it’s a someone fresh out of college, or a veteran in the IT world. Besides the technical part of the job interview, we also look for the core, personal values. With that in mind, our doors will always be open to candidates that share our values.

If a person is hired, depending on their previous experience, they will be taken through an onboarding process, and then in an adequate amount of time, they will get a taste of the IT Labs culture and MO. She or he will learn how we communicate and get to know the IT Labs way of working. After that, work on projects begins.

ITL: Is there room to grow in the company? Do employees get a chance to reach for their personal goals and achievements?

Nina: Growth is a natural process, right? It doesn’t make sense, nor is right, for the employees to not develop and grow parallel with the company. To us, the personal and professional growth of every individual is very important. It’s one of the key reasons why we encourage, stimulate, and enable this for every employee in every department.  We have an internal project called ‘The Happiness Strategy’, focused on finding the “needs & wants” of the people, and then engages in working towards them. Every person is unique in their needs and wants, and diversity in needs translates to diversity in quality, which in turn breeds innovation. It’s simple, really – give people support and the chance to express, and your teams will be better, stronger, and more efficient.

ITL: If you could name three things that answer the question “What differs IT Labs from other companies in the industry,” what would you say?

Nina: First of all, we’re unique in the way that we focus on solutions, not problems. We go that extra mile to find a new, creative way of dealing with various issues when working on a project. We find that little something that gives the client an edge in the market and helps his company in reaching its goals.

Second, we treat our people as our most valuable asset. This means that maintaining high morale and satisfaction among employees will always, and I mean always, translate in customer satisfaction. We go so far as to ensure our team members that the client gets 95% of their time. The other 5% are theirs to be used for personal growth.

And third, constant evolution, growth, and progress – we continuously share knowledge and have a quality mentorship program inside the company. Our “Ideas Lab” project enables employees inside the company to freely explore anything innovative, and exchange ideas and concepts. These are just some of the things we are proud to provide for our people, and call our own.

ITL: What do IT Labs bring to the IT community?

Nina: Valuable ideas, service, and an all-round contribution to growth. We draw strength through diversity, and it’s something we know various communities will benefit from. We’ve got quality people on our team, and we love to share their skills, experience, and wisdom with the community so we can all learn and grow together. The more differing opinions, ideas, and approaches, the better for all – inside or outside the company.

IT Labs’ people are continuously generating articles, comparisons on technologies, white papers, etc., most of which are published through our blog or web page, while we also do webinars, which are open to the public. Our IT Labs experts tackle pertinent issues and topics, and are up-to-date with all the goings in the tech world. This in turn helps us to try, test, implement, and work with new and existing tech. We’re also in close contact with educational institutions through our knowledge-sharing program. We also support non-profits and participate in a lot of community service-type activities as a team.

And finally, our flagship contribution to the tech community and great pride – ‘CTO Confessions with TC Gill’ – a podcast where well-known leaders from the industry all over the world share their experiences in the IT world, and their journey to the top.

ITL: You told us about the past and the present. Where do you see the company in the future?

Nina: Bigger. Better. Stronger. That’s what we strive for. Hard  work and dedication will be needed to get there, but considering how we’ve paved the way so far with the whole team, I know that in five years’ time, we’ll look back knowing we’ve achieved all our goals, and surpassed expectations. Bottom line is, we know what we need to do – keep developing and expanding this happy, diverse, innovation-driven bunch of people working here, and help them achieve their personal and professional goals in a friendly and radically-transparent environment!


Ability to create high-performing teams is our strongest suit

Ability to create
high-performing teams is our strongest suit

Branislav Gjorcevski

IT Labs CEO

ITL: What’s going on with IT Labs at the moment? You have some expansion news. Where’s that to this time?

Banne: We are expanding to Serbia as we speak. We’ve been planning this for a while, so we’re excited to take the next steps to grow as a company.

ITL: Why Serbia exactly?

Banne: Well, Serbia is known to have amazing talent, some of the best education in the region, and immense experience in the IT industry. These were the initial reasons why we landed on Serbia as the next logical step. Both the culture and language are similar to Macedonia, where our biggest development hub is right now. Also, Serbia has had its fair share of experience in the outsourcing field for some time. Putting all that aside, in our opinion, the most important thing about Serbia is that they have the right culture. Again, very similar to that of Macedonia, and it’s a factor that will help us expand quicker.

ITL: Does the Serbian IT community know of IT Labs? Why don’t you tell the companies story to those who are new to it?

Banne: Sure! The story of IT Labs started back in 2005 in Los Angeles in the heyday of web 2.0 with Myspace, Facebook, YouTube, etc. At the very beginning, we were working with many startups. It was a lot of fun, and we learned a lot. But then we decided to make a real company out of IT Labs. We were seen as a software company that was developing software. But as time went by, we started uncovering our true value and what makes us different in the market. It wasn’t that we did software, java, or angular; it was how we approach people and help them grow. We then started our internal educational academy and started training our own people, to a point where 60% of our workforce was trained internally. And that is an amazing thing. To be able to train and nurture your talent is the ultimate goal.

With this approach, we expanded faster. Offering a phenomenal service to our customers, primarily mid-market companies (described in the US as 200 to 5,000 employees) mostly owned by private equity firms or family offices.

ITL: Every success story has an angle. What’s yours? What is your strongest suit?

Banne: I think our strongest suit is the ability to create high-performing teams. People are our strongest suit. Even though we are a technology company, we’re not necessarily defined by a technology stack or a specific programming language. What we’ve achieved over the years is the ability to create a process and a mechanism that generates high-performing teams for clients. A team that can perform way over the estimated deliverable means that at the end of the cycle, we compare estimate versus actual at what was delivered. We are known to guarantee our deliverables, guaranteeing both time, budget, and quality.

ITL: A truly successful business is usually driven by values. Is IT Labs among them?

Banne: Yes, we are among them. We are very devoted to our values. We live them as guidelines when functioning as a team. Our core values being integrity, excellence, productivity, innovation, and of course, people. Values are not something that you can one day decide you’re going to have. Values are something that comes out of people. In each hierarchy, values get distributed from the top. If we have those values on the leadership side, then those values will then distribute to the project management and middle management, then the developers and the rest of the team. It shouldn’t be just talking about them, but living them and having them alive in the workplace while underlying every action that people take.

ITL: That’s a good answer, but do you “walk the walk”, or is it just “talk the talk”?

Banne: If by “walk the walk”, you mean do we implement our values – the answer is yes. Values are interwoven inside people’s actions around their peers, their clients, their projects, their leadership, etc. If you have a value that you don’t possess inside you, meaning you just talk about it, but you don’t do it, then it’s just artificial and doesn’t hold true to your nature. The thing is that every organization has values. Yeah. Every leadership group has some set of values. The question is, are they good for the people and organization as a whole. Sometimes. Sometimes they’re not.

I’ll tell you this. Our values are the core foundation for creating and maintaining high-performing teams. In building a team such as this, you must have a process that starts very early during the recruiting phase. To achieve a high-performing result, we need to have an entire strategy on how we get there. And it starts with hiring by values. The recruiting phase has assessments that tell us if those candidates are aligned with our standards. After that, people are taken through a process of training and onboarding, where they learn about our process to learn our culture and get embedded into a specific team. But it all starts with the values being implemented, right there with that first steps. Again, this is just one example of how driven we are by our values.

ITL: So, values play a major role in the hiring process. That’s a great place to ask the obvious question: What does it take to become an IT Lab’er?

Banne: The first thing in the hiring process is the alignment of the company’s values with the values of the individual. We look for proactive, innovative individuals that are honest and strive for fidelity, regardless of their experience or current knowledge in a certain tech stack. After that, if you are new to the industry or just starting out of college, you will be taken through an onboarding and training process. This consists of spending about six months to a year working on an internal project, working with a team, and a shadowing capacity that allows you to have a mentor while learning the process, embracing the culture, and attaining working experience. After three to six months of additional shadowing, you start as a junior developer on a project. An actual real project with a client. This gives a person enough time to really immerse themselves into the world of IT Labs, work with peers, work with their mentors and get going. If you are a senior or an intermediate, depending on your experience, you can get involved in a more substantial project much earlier.

ITL: You said the company was expanding and growing. What does that mean for the individual working at IT Labs? Do they get a chance to grow?

Banne: I’m proud to say that we have our “IT Labs Happiness Strategy”. A succession plan for each person within the company. Everybody has professional and personal goals, and those goals need to be understood and be put into a process to achieve them. Those goals need to be initiated by the individuals but aided by the project management leads and the organization’s leadership. We must craft a very powerful and successful succession planning strategy for everyone because that leads to their individual growth, which leads to self-fulfillment and ultimately brings that balance in life that we call happiness. We are fully aware that happiness means a lot of different things to a lot of different people. Still, the strategy is if we can allow people to grow personally and professionally within the organization, we’re going to make our clients happy as part of the partnership with IT Labs. We don’t start by making clients happy. We start by making our people happy, and then you get happier clients as a result.

ITL: What else do you bring to the table internally?

Banne: Aside from the happiness strategy that we talked about; we have an ongoing initiative that lets every individual define the type of training they want to advance in their professional career. We also have internal workshops and internal training for specific topics.

We also have an ongoing mentorship program, which is peer-to-peer coaching and mentorship so that people can get more experience and expertise from their more senior peers.

Finally, we have an innovation hub called “Idea Lab,” where people can explore anything innovative. Whether that’s in the areas such as AI/ML, blockchain, or solving a hard problem, we spark conversations followed by an enlightened debate to solve challenges or seek opportunities.

We also have certifications. Anybody can get certified in anything that they want to, and we guide them through it.

This whole process starts with the agreement that we as a company have with our customers. Where we dedicate our people to project work for 95% of their time. The other 5% is for their professional and personal growth. So, IT labs isn’t just a place where you work! It’s a place where you grow.

ITL: What can one expect as a potential client from IT Labs?

Banne: We have several different types of engagement with clients. We have a TaaS (Teams as a Service), which means that we provide high-performing teams to clients long-term. We also have project-based work where a client needs a product to be developed, or a project to be created, for X amount of time. For this, they need to have accurate estimates. They need to have the right expectations. They need to have innovation as part of that project.

Other focus areas for IT Labs include consultancy engagements for Business Agility, cloud services, DevOps services, and security services. In addition, we sprinkle in our expertise in data science and blockchain. All of this is about creating high-performing teams or building a specific project for a company.

ITL: A lot of companies provide these services. So, what’s the added value that is unique to IT Labs?

Banne: The real added value is the people. Or better yet, getting the right people for the job, having the right process for the job, managing the right expectations with the client that we work with and throughout the entire process, and make people happy by helping them grow, learn, and achieve their personal & professional goals. We guarantee the client gets all attention they need. We also guarantee our deliverables, time, money, and quality. The expertise that we provide as part of a team almost comes free because you get architects, infrastructure design, and even Business Agility advice. So, the client receives a lot of value, not just warm bodies.

ITL: That is a bold statement to make.

Banne: It is a bold statement, but it’s not magic. We have tweaked the agile scrum process to get to a point where expectations are very well defined. What that means is we are spending more time in the planning stage and more time in the QA stage than a typical agile scrum process. This goes to a point where we can achieve very well-defined expectations that have very small fault tolerance. We also bring our senior talent to projects, which brings the expertise to the table. The value to the client doesn’t happen by accident. It is a very methodical process that works.

ITL: You also do a lot of work in the tech community. What kind of things do you do out there? 

Banne: The best way to describe it is that we are extracting that value from our people, and we are bringing it to the surface. Meaning that we have people generating case studies, writing articles, white papers, comparisons on technologies, to name a few. We conduct webinars that we promote and present to the technology community. And then there’s our podcast called CTO Confessions, a podcast where technical leaders present their value to the tech leadership community. We bring on experienced technology leaders (CTOs, CIOs, VPs of engineering) internally and externally from large organizations to share their wisdom, best practices, lessons learned, and wisdom to the technology leadership community. So that’s our contribution and an ongoing relationship with the tech neighborhood out there. We also support non-profits and participate in a lot of community service-type activities as a team.

ITL: The unavoidable question, of course, is how did you handle the pandemic shake-up? Were there layoffs? Cutbacks?

Banne: A team that goes through problems together succeeds together. Last year, when COVID hit, we had a meeting with the company’s leadership and decided that we would switch to remote working overnight. We would come together to work a lot closer and overcome the challenges of this period. A lot of businesses decided not to spend money and froze their hiring process. That affected the entire industry. But we didn’t go down that path. Being in this industry for 15 years means you get to go thru a lot of troubled times. The great recession of 2008 was a big lesson that taught us that we must be active when everyone’s quiet. That’s what we did. Instead of backing away, we doubled down on marketing and sales. We doubled down on presenting the value that we have internally. We joined forces across the organization and created something new and innovative for our clients. Something that would help them navigate the COVID situation and make their lives easier and profitable.

ITL: What are the first things you’re going to do when you get to Serbia?

Banne: Well, the first thing we need to do is present ourselves. We need to present our value, who we are, what we stand for, and allow for the technical community in Serbia to see what we offer. We need to establish relationships with the local universities, start communication with the local communities. We need to be helpful. We need to present our strategies for growth, and we need to start building our team. In other words, we’re prepared to invest in Serbia, prepared to invest in the local talent, local universities, local communities, and to add Serbia to the IT Labs family.


E2E test examples with Cucumber and Nightwatch

Jovica Krstevski

Technical Lead

Aleksandra Angelovska

Quality Assurance Lead

In previous articles, we discussed “E2E development challenges and overview of the E2E testing frameworks” and “E2E Test Components”. The goal of this article is to simulate what a real user scenario looks like from start to finish and to provide E2E test examples with Cucumber and Nightwatch.

We will show real examples of our backyard project, how to set up the environment, and how to automate some of your tests.

The test includes three parts:

  • Feature file, which is a clear description for each step of your test using Gherkin syntax.
  • Step file, which is the script for matching the features and the Java code.
  • TestRun, which is the configuration setup for running your test.

Some important things need to be taken into consideration when you configure your test-runner.ts. You need to configure it for your needs:

  • Add environment option. Tests should be able to be easily rerun in any environment.
  • Plan which tests to be run
    • Smoke tests only?
    • Specified tagged test(s)?
    • Specified feature file(s)?
  • Plan where tests are to be run
    • Chrome in headless mode
    • Browserstag
    • Saucelabs
  • Plan to run tests in parallel (if this is what you need)
  • Set seleniumHost and seleniumPort

Writing nightwatch.conf.ts file

Take screenshots for the failed tests. This will help in debugging the failed tests.

Add option for your tests to be run on Saucelabs and Browserstack. This will help in browser compatibility testing.

Package.json

{

“name”: “api-e2e”,

“version”: “1.0.0”,

“scripts”: {

“report”: “node build/create-html-report.js”,

“prebuild”: “npm run clean”,

“build”: “tsc”,

“build:watch”: “npm run build — -w”,

“clean”: “node ./clean-up.js”,

“lint”: “tslint -c tslint.json   ./src/*ts  ./src/**/*ts”,

“debug”: “node –inspect-brk run-tests.js”,

“test:run”: “cucumber-js –require ./src/features/\\*\\*/*ts –require-module ts-node/register –require ./src/hooks/*.ts –format ./node_modules/cucumber-pretty ./src/features/”,

“test”: “./node_modules/.bin/ts-node src/test-runner.ts”,

“selenium:local-standalone”: “ts-node server.ts”,

“selenium:local-docker-hub”: “docker-compose up”,

“generate-report”: “ts-node ./src/create-report.ts”,

“e2e-test”: “npm test”

},

“keywords”: [ ],

“author”: “”,

“license”: “ISC”,

“devDependencies”: {

“@types/cheerio”: “^0.22.7”,

“@types/cucumber”: “^4.0.4”,

“@types/debug”: “^0.0.30″,

“@types/faker”: “^4.1.2″,

“@types/lodash”: “^4.14.115”,

“@types/node”: “^10.3.2”,

“fs-extra”: “^6.0.1”

},

“dependencies”: {

“bluebird”: “^3.5.2”,

“cheerio”: “^1.0.0-rc.2”,

“chromedriver”: “^2.40.0”,

“config”: “^1.30.0”,

“cucumber”: “^5.0.0”,

“cucumber-html-reporter”: “^4.0.1”,

“cucumber-junit”: “^1.7.1”,

“cucumber-pretty”: “^1.4.4”,

“debug”: “^3.1.0”,

“deepmerge”: “^2.1.1”,

“emailjs-imap-client”: “^3.0.7”,

“faker”: “^4.1.0”,

“fecha”: “^2.3.3”,

“geckodriver”: “^1.12.2”,

“jsonschema”: “^1.2.4”,

“lodash”: “^4.17.21”,

“nightwatch”: “^1.0.11”,

“nightwatch-api”: “^0.4.0”,

“npm-run-all”: “^4.1.5”,

“selenium-server”: “^3.12.0”,

“start-server-and-test”: “^1.7.1”,

“ts-node”: “^7.0.1”,

“typescript”: “^2.9.1”,

“wait-on”: “^3.0.1”,

“yargs”: “^11.0.0”

}

}

Create helpers for your tests

Create html report for the test results

Cucumber uses reporter plugins to produce reports that contain information about what scenarios have passed or failed. It produces pretty HTML reports that help in the visualization of failed and passed tests.

html-reports.ts

var reporter = require(“cucumber-html-reporter”);

 

export function generateReport( ) {

console.log(“generating report”);

var options = {

theme: “bootstrap“,

jsonFile: “reports/cucumber.json”,

output:

“reports/test_” +

new Date( )

.toJSON()

.split(“:”)

.join(“”)

.split(“-“)

.join(“”)

.split(“.”)

.join(“”) +

“.html”,

reportSuiteAsScenarios: true,

launchReport: true,

storeScreenShots: true

};

 

reporter.generate(options);

 

return new Promise(resolve => {

setTimeout(resolve, 0);

});

}

//more info on `metadata` is available in `options` section below.

 

//to generate consodilated report from multi-cucumber JSON files, please use `jsonDir` option instead of `jsonFile`. More info is available in `options` section below.

create-reports.ts

import { generateReport } from ‘./html-report’;

generateReport( );

Example of reports can be found here: https://github.com/IT-Labs/backyard/tree/master/doc

E2E test examples with Cucumber and Nightwatch

In this article, we are providing examples of how we can automate some testing scenarios.

We are going to show how we implemented the following scenarios:

  • User access tests
  • Search list item
  • Edit Item
  • Create item
  • Delete item
  • Test empty system

 

The following diagram is describing our application, where we wanted to simulate a complex application structure that depends on different services and components.

https://github.com/IT-Labs/backyard/blob/master/doc/Backyard%20arch.jpg

As we discussed in our previous articles, we are using dockers and volumes to run our test in repetitions. All commands are written in shell scripts for an easy start. For example, starting all applications for testing all scenarios you should only run the restart.sh file and system are ready for use, cleaning all resources you should use clean.sh.

Steps:

  • Download code from https://github.com/IT-Labs/backyard
  • Build the code with the script build.sh
  • Start the environment with a restart.sh ./path to your local back yard folder
  • Run tests with a test.sh

More details about the commands and environment you can find in the project readme file https://github.com/IT-Labs/backyard/blob/master/README.md.

Here is one example of how to run multiple tests with the previous steps:

https://raw.githubusercontent.com/IT-Labs/backyard/master/doc/TestRun.gif

User access rights

In this example system, we have two types of users: public and administrator users. For testing both scenarios we have two feature files, https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/home/home.feature  and  https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/home/home-public.feature .

Here is how gherkin is written:

Scenario Outline: Verify menu items from Home page when user is admin

    Then the menu <Link> should be <isVisible>

Examples:

| Link        | isVisible |

| Home        | true      |

| Admin       | true      |

| About       | true      |

| Hi Username | true      |

| Login       | false     |

| Logout      | true      |

 

Code:

Then(/^the menu (.*) should be (.*)$/, function (link:string,isVisible:boolean) {

return menu.checkLinkVisibility(link, isVisible);

});

Search list item

For this example, we prepare one scenario, where we are going to validate the search by name. For that purpose, our volume data has already populated data.

Code can be found here: https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/items/items.feature

https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/domain/items/itemsPage.ts

Scenario: Verify correctness by Search by Name

When I add SearchItem in items search name

Then I should get item with that SearchItem as a result

When I add Search in items search name

Then I should get 1 results that contain Search in the name

 

Example from the run https://raw.githubusercontent.com/IT-Labs/backyard/master/doc/SearchItem.gif

Delete item

In this example, we are presenting how we can test deletion of one item from out test environment. For that purpose, our volume data has already populated data. We must be aware that for each test run we must restore the volume from initial backup.

Code can be found here: https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/items/delete-items.feature

https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/domain/items/itemsPage.ts

Scenario: Verify delete item

When I click on Delete icon for item with name DeleteItem

Then I should see delete confirmation modal

When I click on OK on the modal

Then Item with name DeleteItem is not shown on items page

Example from the run: https://github.com/IT-Labs/backyard/blob/master/doc/DeleteItem.gif

Create item

In this example, we are presenting how we can test creating an item. For this test requirements are the item not exist in the system, and for that purpose our database before each run is restored from initial backup.

 

Scenario: Verify user can create item using all fields in Create item page

When I click on create button

Then I should see create item page

When I add Name SampleName

And I add Description SampleDescription

And I select Status

And I check Is Public checkbox

And click create item

Then Item should be created

And I should be redirected on list items page

Code can be found here:  https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/items/create-items.feature

https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/domain/items/itemFormPage.ts

Example from the run: https://github.com/IT-Labs/backyard/blob/master/doc/CreateItem.gif

Edit item

In this example, we are presenting how we can test deletion of one item from our test environment. For that purpose, our volume data has already populated data. We must be aware that for each test run, we must restore the volume from initial backup.

 

Code can be found here: https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/items/edit-items.feature

https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/domain/items/itemsPage.ts

 

Scenario: Verify user can edit item changing only mandatory fields

When I click to edit item with name EditItem

Then I should see edit item page

When I change the Name to TestEditedItemName

And click create item

Then I should be redirected on list items page

And  I add TestEditedItemName in items search name

And I should get item with that TestEditedItemName as a result

Example from the run: https://github.com/IT-Labs/backyard/blob/master/doc/EditItem.gif

Test Empty system

This is a scenario where we are verifying how the system will behave when there are no records. For that purpose, we have a separate environment where a database is without any record, and we start all service as separate instances.

Code can be found here: https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/home/home-public.feature

https://github.com/IT-Labs/backyard/blob/master/fe/e2e_tests/src/features/home/home-steps.ts

 

Scenario: Verify Home page main page when there are no public published items

Then I should see message in the middle of the screen: There are no items yet!

 

Example from the run: https://github.com/IT-Labs/backyard/blob/master/doc/emptySystem.gif

What not to do when writing E2E tests

  • Don’t Write Them Without Defining the Reason
    • Automated acceptance testing (an encapsulation of customer expectations)?
    • Automated regression testing (preventing regression errors)?
    • Automation of smoke test flow?
  • Don’t Duplicate Coverage
    • If the flow can be covered with unit test, don’t write E2E test for it
  • Don’t Use a Single-Layer Architecture
  • Don’t Use Breakable Selectors
  • Don’t Expect Your Suite to Be Maintenance-Free
  • Don’t Ignore Flaky Tests

Summary

It is so important to test your software from top to bottom. E2E testing is a great way to do it — you just need to follow some rules that will implement the process properly.

When you write the tests, add a descriptive test step. A descriptive test step is helpful when a test fails, it gives them a clean and readable description of test steps (for example why this test, how it is done, etc.). Also, descriptive tests simplify the process of automation test maintenance  in large projects. What’s more, having reports that will visualize and tell you which test failed and which test passed is will also help.

Since our approach implements feature files, you need to keep into consideration that the feature files can easily become very large and messy files. And running the tests — especially if they are part of some CI/CD process — can take considerable time, especially when you want to run your test in different browsers and you have large coverage.

On the other hand, large coverage is always good to have no matter the duration of the tests, because it creates greater confidence in your code.


Jovica Krstevski
Technical Lead at IT Labs

Aleksandra Angelovska
Quality Assurance Lead at IT Labs

June 2021