Welcome to Software Testing Unleashed, the podcast for testers, developers and software makers who live quality as an attitude. Get fresh ideas and sharp insights to grow your mindset, to learn new methods and to drive real change in how we build software. software and better teams for a better world. Hi I'm Richie, software quality coach, keynote speaker and author. My guest today is Dmitrij Nikolajev.
He has spent his career in test automation, requirements engineering and IT project management. He's the head of business unit at InSoft, where he supports testing teams and ensures the delivery of high-quality IT services. At the same time, he lectures on software testing at Vilnius University in Lithuania, preparing students with both academic knowledge and real-world skills. He's one of those people who connects industry and education.
In this episode, we talked about what it takes to teach software testing to the next generation. Why does he teach performance testing and automation before he even talks about test plans? What happens when students use AI tools like ChatGPT to write code? And is it really a bad thing? And how do you get 120 students to care about software quality at 9 o'clock in the morning? Mitri shared now how he redesigned a university course to be more hands-on, more relevant, and even more engaging.
He talked about blending theory with tools like Selenium and Postman, running practical labs with real test cases, and building motivation step by step. We also explored how to make testing meaningful for the test students, for the teams and for the future of our industry. So now enjoy the episode. Hello Dmitrij, nice to have you on the show here. Hello Richie, I'm happy to be here. Yeah, it's a great pleasure for me that you are joining the podcast here.
We met last time in Dubai at the ISTQB GA and now we are here online in this podcast. And we just had in the preparation of this podcast, you have so many topics we can talk about, so we have to decide what we are talking about. But I think it's good to focus on your work, which has a milestone. Yesterday, what you said, it's your work at the university. So just tell us, what are you doing that and how does this belong to software quality and testing? Well, I will make a little step back.
As I like to joke, I have a work that feeds me and I work for a private company. I have a lot of community work, which is related to association of software testers in Lithuania. We have a local chapter for ISTQB, so that's community work. And university, I would rate it somewhere in the middle. It is something that you get a compensation for, but not something that would allow you to survive. So it's something in the middle, like giving back to the community.
And actually, formally, it's a paid work. So yeah, the university, I've been teaching software testing for three years. My kind of story how I got there, actually by accident, one of my colleagues from the partner company reached out. He's also teaching at the university and he said that the university has a big issue to find a testing lecturer. And they were even considering to take out the course. When I heard this, I thought, "Oh, oh my God, it cannot happen. I will not allow it." You know,
it needs to keep going. And that's the course, quite big and popular. It's called Software Engineering Course at the oldest university, Vilnius University, Faculty of Mathematics and informatics. So I've stepped in to basically save it and now doing it for three years. I'm lucky because I have to do it only for the spring semester. Otherwise it would take too much time and I wouldn't probably be able to
afford it. But since it's just five months I can cope with it. And yeah, this This year it was also a lot of hard work. The testing world is changing. You have to keep the course up to date all the time, update it based on the feedback, update it based on the updates in the software testing world, different software we're using for testing. And this year, that was the record group, 120 students. >> Oh, great. >> Yeah, it's a big audience. Well, at least I feel like it's a big one.
(laughing) - And what are the components of the software testing processes and all the stuff like test planning and the test levels and test types? Five months is not a long time. So how do you composite it? - Well, my opinion, ideally, I would love to see one day, let's say, a full bachelor program on software testing, because you can study it for four years if there is a curriculum defined particularly for software testing.
Plus, as a software tester, I think you have to know everything in between and nearby, like requirements engineering, architecture, development, All these things really complement the software testing activities for testers to be really universal, all-rounders. But I have only the luxury to teach it for five months. And when I joined the university, I had to actually modify the course quite a lot.
Indeed, it had a lot of soft stuff, like, you know, students had to practice, write test cases, test plans. I've realized that, you know, there are some students who are actually software testers already. They, you know, that's a third year students.
The stats vary, but one third or one half of them already have some sort of IT jobs, time, full time, and some of them are software testers, but majority are still moving toward the programmer's careers, maybe some different IT roles, but they are software engineers mainly. And I had to adjust specifically to catch their interest. If I would ask them, go ahead and start writing test plans. I mean, I cannot ask a junior to write the test plan. Well, what would be the added value?
What I tell them is, here are the standards that define what's the test plan and provide examples. And if you would find yourself as a junior in a situation where you would have to come up with one, well, you can try to reuse something that standards offer. But still, it's going to be context dependent, right? So I've adjusted the course trying to really balance between the theory and practical application.
So from the practice, I'm a big fan of automation, as you already saw my presentation on Alliance for Quality Conference. So we've-- actually, I have a team there, not just solo. I have some teammates and one person from other companies. It's teamwork that we came up with this course. So we have automation classes where people need to test, students need to write automation scripts. And that's how they got introduced to what is a test case. And you would have to automate it.
Well, once I presented on the slides, that's just a theory, but you have to get hands on, get your hands dirty, right? So they are presented with test cases and they try to automate it. And they are challenged with different situations. They need to set up an orchestration for it. So we follow quite, quite sophisticated things for juniors to get acquainted. Then we go with performance testing. This is something I love in particular.
from my, you know, that's kind of, you know, the break the things mentality. But again, you need to plan it. You have to have operational profiles. You have to have monitoring, not just, you know, break the stuff and what does it tell us? Right. We need to find the weakest links, et cetera. So that's, that's a second part of the practical aspect. The third one is APIs, testing APIs. and what's more than frameworks are using. So we're testing REST APIs a lot.
Plus we're doing some security testing. I would say limited, but there is all of us WebGoat project and we play around with this practically. So to kind of summarize it, before I've started teaching software testing, I've worked as a tester for a long time, but I was also, I had a hobby. I had a dog, unfortunately already tell it in the past, but I had a dog and I was deeply involved in obedience training.
And I've learned the thing that you have to reward the dog and really how to say reward for Good actions to kind of positive confirmation And I apply the same principles in my teaching because the complexity of exercises increases gradually And when the students go to the first lab exercises, they really score this
Part portion of of the points really easy and they like oh really I already get some points. I said yes Next time they come, they already made a few steps forward, then they build on top and that becomes complex. And some might even give up, they don't want to go for the highest score. But that's the idea I'm applying. Yeah, I think it's a very interesting approach that you go via the perspective of such a pragmatic, practical way with test automation and
all the non-functional stuff. Because when I often look in universities, this all the theory about more functionality, how to test it, how to write the test plan and so on. And not really if not about non-functional requirements or in any case or just the tooling stuff. And so, so I can really imagine that young people who get into university like it because this is very practical and very state of the art to do some API testing or do some performance testing. And so, yeah.
And I don't want to undervalue the importance of theory. It's the way I try to pitch it so that it goes along with the practice, that they see the value, they see how stuff works. And as we move on, I explain what it is and what it does and what's the part in the whole quality assurance testing process. This theory catches on, but it's not just sole theory. And I was looking at it, first of all, students need to be interested in it.
And there needs to be engagement, otherwise it will not be interesting to me. And second thing, what I was trying to achieve, I was trying to make them actually take away from that course as much as possible so that they would be quality aware, not just, you know, sleeping during the lectures. I mean, come on, these guys are 21. Literally, it's hard to keep their attention for two academic hours. it's one and a half hours. They just lose the focus after an hour, usually.
Well, you can just sense it. You just look in their eyes. And if you just go ahead, like, okay, I'll do my theory. That doesn't work. I play games with them, honestly. I mean, if I see that they're losing engagement, I can stop and I say, okay, let's solve the puzzle. I'm challenging you. And I give them the puzzle to solve. And sometimes it can be a physical puzzle. It can be just a puzzle on a slide, and we try to play around with it to keep their engagement and focus. That's great.
And you said you use a lot of tools and frameworks for the practical stuff you have to. So if you do API testing or some performance testing or test automation, which tools are you using? Which frameworks are typical for you? For API testing, we're using Postman, and we've been using Google services. That's the typical environment for automation. We've decided to go ahead with good, old, classical, and nevertheless still very popular Selenium, Selenium WebDriver.
at the same time, we do not, well, we kind of say that let's use Selenium. What we cannot force students to do that. But the background of the team that I'm working with is from that stack. And we say that you can actually do it with any stack you want, but we would be able to help you more while you progress and face some unusual situations, if you use the stack that we prefer because we have more expertise
with it. And we typically advise, again, based on our background, go ahead with Selenium and Java, but you can, you know, well, we try to still deviate towards Selenium, but they can use Java, they can use.NET, they can use Python, Ruby, and some of them actually do that. They select IDE of of their choice, Visual Studio, IntelliJ, Eclipse, we can use free Eclipse, it's a free tool, we're fine with that. But eventually they have flexibility to choose the tooling in some cases.
- Okay, and how do you deal, when there's so young people there and students, they nearly have their whole university time another tool with them like GVT and all the AI stuff, which they are used to have since two, three years now. How do you get that involved or do you strict say, no, this is not the way because coding is easy with all this stuff now. So how do you deal with that with your students? I have talked about that or do you discard it, just block it?
Richard, that's an excellent question. You know, well, first of all, as I mentioned, I'm teaching for three years. And you've mentioned for the past two years. So my first year, students were not using any chart GPTs or deep seek or any tools like that. We're not available to the public yet. And well, they were Googling, right? They were progressing with their speed. And the next year, there was chat GPT booming. I don't remember which version it was back then.
And what I have noticed, that the students are progressing through exercises much quicker. And well, there were funny stories. Sometimes they did just copy-paste. But I mean, as I make jokes, that's the main principle of programming even these days, just copy paste some snippets, but they are progressing much quicker. And I don't think it makes sense to really combat it. I think this is a new reality we have to face. And I tell the students, I even encourage them to use it.
They're okay to use it, but just don't blindly copy it. Really check what it does, but that's a tool they need to learn how to use. There are even few students who do not use it on purpose. There are even people who think like that. So three years ago, my first group, they did not use chat GPT. They were just after the COVID. That's a separate story. But later on, they're all using chat GPT.
And then we just increased the complexity accordingly so that the load actually matches what they are capable. - Okay, I understand. So when I think of a young student who is going to programming and all this stuff, and then Dimitri stands there and says, "Okay, now you have to test this and that "with test automation and API testing. And how do you get the "why" to the students? Why should they test? Why should they learn to test? What are your arguments for them that they are interested in?
Well, I do an introduction. Actually, the course starts, and what I really like, I have taken a lot of brilliant thoughts and ideas from IST could be syllabus and the principles of testing. And all these principles of testing are reinforced with the examples. Examples are coming from my personal experience. It's soon going to be almost 20 years in IT and software testing. Plus students also do their reports. They can earn one point toward the
exam if they do reports in groups. And I have reports, you know, like I come across some interesting tool or interesting concept, I add it as a topic, students can also propose their own topic from their experience, but typically it's like a little research. And I always include topics, you know, some easy topics. I have
the ratings, complexity ratings for the topics. But these are topics like, you know, do a fun report about the biggest failures in software industry or biggest failures that cost, you know, strategies or aircraft engineering software failures or space flights, etc. Or financial sector, you know, or stories from Lithuania and they just search, they present, and that really gives, how to say, important component of the awareness why software testing is important because there were so many failures
that cost a lot of money, a lot of lives, and a lot of things can go wrong. That's why you need to test. I think that it's just, you know, in a simple human manner to explain by storytelling, by examples. Yeah, and they are researching for their own this example, so they have a much more relation to it than just when you say it.
Yeah, and it can be even, you know, they dig in into some technical work, technical aspects, like what was exactly the cause of the failure, like a floating point number or some conversion between formats, and that's why the rocket went sideways and exploded because they forgot that in the US and Europe they have different units, right? That type of errors can cause a lot. And I tell the students, "You're doing these reports, presentations, not for me. You're doing these presentations
for your classmates." And that is actually a good thing that they set the bar high themselves. They want to do a better presentation, they want to perform better than the previous teams. And there's kind of healthy competition taking place. And I enjoy these presentations a lot because I learn from it myself. Yeah, that was my next question. Do you have new insights if the students present some research of them about software testing and quality? Oh yeah, absolutely. Absolutely.
A lot of insights. I wouldn't be able to research all of the things myself. There are topics I'm interested in myself in particular, things like self-healing and test automation, or for instance, in codeless versus code-based approaches. In my presentation on the last slide, I had this thought put out that there are many codeless tools.
And there are some tools that are expensive, but they are extremely user-friendly, to the point that you need to do some complex step and you need to add a custom component, and you would have to write a JavaScript code to make that custom component do some magic.
And I'm not mentioning the tool on purpose, since I don't want to get into any trouble with the big companies, but you know, there is a button like "use AI assistant to write the code" and the students, they are technical students, they are coders themselves, majority, and they say "well, we enjoy to be in control, we enjoy to write the code ourselves, but to think about this situation, we have a codeless tool that isn't really codeless, because to solve complex situations,
we still need to write code. Isn't it like the same thing if I'm writing the code using Selenium, Cypress, Playwright? I mean, I can use chat GPT and it writes the code for me, so that's also codeless. And I thought, wow, that's a brilliant idea. Because generative AI it's actually turned the tables. You don't need to be a super coder anymore, at least, well, you probably have to be if you're a top level automator, but things have changed.
Yeah, yeah. But you have to be aware of the things you see there. So it's good to learn the coding stuff so that you can evaluate what's the JNI is bringing up there on code base. Yeah. Yeah. Great, Dimitri. This was very interesting, I think, to see how you put this practical stuff into this learning environment in your university context. So if I would be a young boy, I would go to your course and learn and study there, but I'm an old man, so I'm out now.
Thank you very much that you have been here on the show. I think we have to do the whole other stuff in later episodes, And I think we will because we will meet in Copenhagen, I think, next time in October. And I will see there and I think we will do another episode there too. And for the people who are hearing and seeing this episode, and if you want to contact Dimitri, all the contact details will be in the show notes available.
So you can contact him and ask him the deep questions you want to know. So thank you very much, Dimitri, to have you here. Thank you. And have a good time. Thank you. You too. Bye bye. (orchestral music)
