10 years of open source test case management
This is a modal window.
The media could not be loaded, either because the server or network failed or because the format is not supported.
Formal Metadata
Title |
| |
Subtitle |
| |
Title of Series | ||
Number of Parts | 561 | |
Author | ||
License | CC Attribution 2.0 Belgium: You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal purpose as long as the work is attributed to the author in the manner specified by the author or licensor. | |
Identifiers | 10.5446/44112 (DOI) | |
Publisher | ||
Release Date | ||
Language |
Content Metadata
Subject Area | ||
Genre | ||
Abstract |
|
FOSDEM 2019216 / 561
1
9
10
15
18
19
23
24
27
29
31
33
34
35
38
39
40
43
47
49
52
53
54
55
58
59
60
63
65
67
69
70
78
80
82
87
93
95
97
102
103
104
107
110
111
114
116
118
120
122
123
126
127
131
133
136
137
139
141
142
148
153
155
157
159
163
164
168
169
170
171
172
173
174
181
183
185
187
188
193
196
197
198
199
200
201
205
207
208
209
211
213
214
218
221
223
224
226
230
232
234
235
236
244
248
250
251
252
253
255
256
257
262
263
264
268
269
271
274
275
276
278
280
281
283
284
288
289
290
293
294
296
297
300
301
304
309
311
312
313
314
315
317
318
321
322
327
332
333
334
335
336
337
338
339
340
343
345
346
352
353
355
356
357
359
360
362
369
370
373
374
375
376
377
378
383
384
387
388
389
390
391
393
394
395
396
406
408
409
412
413
414
415
419
420
425
426
431
432
433
434
435
436
438
439
440
441
445
446
447
448
453
455
457
459
466
467
471
473
474
475
476
479
480
484
485
486
489
491
492
496
499
500
502
505
507
508
512
515
517
518
529
531
533
534
535
536
539
540
546
550
551
552
553
554
555
557
558
559
560
561
00:00
Open sourceInformation managementStatistical hypothesis testingPhysical systemPay televisionComputer-generated imageryGoodness of fitMedical imagingProjective planePhysical systemLink (knot theory)Axiom of choiceBitRepository (publishing)Computer configurationFunctional (mathematics)Revision controlCodeOpen sourceMultiplication signLine (geometry)Software developerMyspaceDirection (geometry)Exception handlingGroup actionSoftware testingTouch typingStatistical hypothesis testingDecision theoryStatement (computer science)Type theorySoftware bugPlug-in (computing)INTEGRALWeb 2.0TrailStatistical hypothesis testing1 (number)Information managementInformationResultantOcean currentData managementCASE <Informatik>State of matterComputer fileSuite (music)Source codeModule (mathematics)Graph coloringCanadian Mathematical SocietyInformation securityIntegrated development environmentSoftwareDebuggerEntire functionComputer animation
07:08
Lattice (order)Event horizonLevel (video gaming)BuildingStatistical hypothesis testingProcess (computing)Singuläres IntegralRootMaxima and minimaData managementOpen sourceProjective planeUser interfaceWebsitePhysical systemMedical imagingTranslation (relic)Information managementFeedbackMaschinelle ÜbersetzungForm (programming)Self-organizationMultiplication signField (computer science)BitSoftware developerOpen sourceGroup actionMultilaterationError messageWordIntegrated development environmentInsertion lossStatistical hypothesis testingFormal languageFront and back endsPresentation of a groupSoftware testingDomain nameStatistical hypothesis testingWeb pageSpacetimeProof theoryLibrary (computing)Direction (geometry)Theory of relativityOnline helpFlow separationArithmetic progressionInformationCore dumpMereologyState of matterSource codeComputer configurationResultantLevel (video gaming)Traffic reportingComputer animation
14:08
Computer animation
Transcript: English(auto-generated)
00:05
Okay, hello, how are you? Good. My name is Alex and I have been coming to Fochstäm for the past 10 years every single year and This is my first time doing a lightning talk This is also my first time when I'm traveling together with a team so far
00:21
I've been alone and this is also the first time our team is having a Project stand here at the conference and all this is pretty cool And I want to tell you the colorful history of kivyTCMS and what we do what we stand for and I want to tell you that we are turning 10 years old this week. We are celebrating here at Fochstäm. So it's all good
00:43
So, but first what is test case management? When you do software testing quality assurance, you need to keep a lot of information around you need information about Which version of your software was tested On what kind of environment which build what kind of test cases were executed to which ones were not executed
01:03
What was this testing result and at the end? All of this information boils down to should I ship this version to the customer or no? If you are a test manager, maybe a test lead you will go to the system Take a look at the test results figure out how happy you are with the current state of affairs in testing and
01:22
Make the decision ship or don't ship So in the commercial world, there are quite a few options for such systems. They are relatively popular There are some that look very nice others that look rather ugly. There are plugins for Jira
01:40
There are standalone system desktop systems and web systems and so on in the open source world. We don't have a lot of options Initially there was test link It's very old projects. Many of you may have heard it It is still a little bit active. They released about one version a year or something like that
02:00
Then after test link came to stop ya another project from Mozilla again open source working in the same to myspace They lasted for a couple of years And it kind of disappears. Unfortunately Mozilla doesn't use to stop you anymore. They don't support it Although there are some commits made to the repository so not really active and in 2009
02:24
I was working at Red Hat was starting my careers software tester and they decided well You know, we don't like the current systems that are available in the open source world. So let's build another one And this is how it was born. This is the first version that was released 10 years ago
02:40
And this is how our history starts So this thing continues development for a while privately and as we know everything Red Hat touches becomes open source So this is no exception in late November 2014 The source code was pushed to GitHub This is a nice thing by itself. Unfortunately, the way this was done was kind of indicating the direction where upstream was going
03:05
We have one single commit no prior history a bunch of files put together. We have no idea What they are how they work turns out there is a lot of source code, which was not used There were a lot of functions which were not used There were duplicate function copied around different modules which were not in use the test suite wasn't
03:26
Working so all of that in the initial commit So anyway, the GitHub history tells you that development continues for a while from what I can tell mostly from people who were on the original team of the upstream system and Then slowly in the next year in 2015 kind of dies
03:42
Away, so at that time I was consulting for a small startup company and we wanted to use such systems So the obvious choice is whatever is open source that is available on GitHub. Let's take it Make a deployment internally figured out if it doesn't work We'll fix it. So this is what we do and we immediately start running into problems
04:04
So first upstream is using a very very old version of Django that is full with security problems with bugs We want to upgrade immediately that's not possible because you cannot just jump from jungle 1.6 to 2.0 So you have to go through every single minor version and fix a lot of stuff that is failing in between
04:25
To actually be able to upgrade Upstream is using my SQL. We are using Postgres and you will say well, it's an orem based system But it's not it's orem based and we had a lot of hard-coded SQL statements in the source code
04:41
Which work only on my SQL. They didn't work on Postgres. So we had to fix Upstream was using vagrant for deployment. We were using Docker. So we had to build our own Docker images as well So fix fix fix and we started sending pull requests upstream. Some of them got merged but most of them didn't and
05:00
The funny thing is my first ever pull request to the upstream repository It was made almost three years ago and it is still open to this day That is about changing the book tracker system In this tooling so upstream integrates they have hard-coded bugzilla.redhat.com as their book tracking system and you cannot use anything else That's still open
05:22
So what we do we do a lot of internal development we do fixes we start Deploying internally and You know, we kind of start liking the system And at the same time I left the startup company and I decided I will continue to work on this alone because I like it
05:40
And I think you know, it can be a nice project. It can be revived So the obvious thing of choice to do when upstream is that is to create a fork and this is what I did So I took the fork which we had internally in the startup company. It was in a private repository So I took it externally to my personal github account Continued development and during the time I was able to fix the entire test suite
06:06
Clean all the deprecation warnings remove tons of stuff that we don't need we have removed just for reference about 20,000 lines of code and The system continues to work pretty much with the same functionality in the same way that it used to do before
06:21
So you have you have a function that works with your data and then you have another function that is called from the front From the front end via Ajax and it does the same thing. It just copies the code It doesn't use the other function and then you have the same action somewhere else in the system It just copies the same thing and over and over again, so we fix all these things
06:45
We started building Docker images and started pushing them Publicly for everybody on Docker Hub and surprise surprise people actually started to download them and to use them They started reporting books and started contributing and so on And I was starting to realize that all of this to handle is too much for a single person
07:03
So I asked my friend Yanis from Mozilla Yanis Tell me what what should I do if I want this to continue and he tells me well if you want this project to have any like a Chance of surviving and becoming a little bit more popular. It needs to be independent from yourself You have to create a separate GitHub organization
07:21
It needs to have a website so people can follow the progress if they're interested and so on and so forth And most importantly you need to have a team that will help you with all of these things So I decided to follow the advice of my friend And started building the website and the option was build it myself or ask somebody else to do it for me
07:43
And I chose the second option So I found three young developers, and I told them listen. I want this simple website to be built I will tell you how to do it. I will teach you all the technical skills that you need to have But you need to commit on GitHub you need to help me and if you like it you can continue further to work on the project and
08:03
They built the website they learned a lot of stuff From the three of them only one was left on the team. This is Ivo this guy here He is very young and the reason he's not here today is because he cannot travel abroad. He's too young So after that he decided to like stay around in the project learn Python learn jungle
08:26
Started fixing a lot of piling errors and until now he's fixed more than 3,000 piling errors that we had in the source code alone Which is quite impressive for somebody who didn't know anything less than one year ago Then we had Anton who joined a little bit later, and he's a little bit more experienced developer
08:45
But again he learned Python he learned jungle started working on the back-end stuff with me now He's working on a lot of the front-end stuff Changing how all the pages look and feel in the system. We're migrating to another
09:02
library for the user interface, which is like more modern Nicer to use and this is mostly done by himself alone So I just give some directions And I I do the initial like proof of concept for some page and then leave everything to them to do And during all this time
09:22
I've been trying to make the project more popular. I've been trying to Recruit other people to help us Be part of a core team and we hit a snack with a lot of them So we've got people who wanted to join the team and then Didn't feel motivated enough to stay around and to contribute we had people who?
09:41
Who didn't want to learn all the skills that they were missing although we provide all the information for them So we had to kick them out unfortunately And Right around this time. I started to realize that is it is too much for me to to handle both the people side and the technical side and that is why we have any who is our team coach and
10:05
These two guys they are over here so applause for them. Thank you very much for helping me So we've got a team and we need a community and the way to build the community is to let it form itself So we we enable the community to form around the project
10:22
People ask for translations. We find a suitable translation system for them document how to use this they start contributing and we've got French Slovenian and German translations 100% contributed by the community we don't speak these languages Next we document how to set up your development environment how to deploy the docker images how to
10:48
Turns out a lot of people are not familiar with jungle insert for them once you document all of these steps and make it easy For them they start contributing And last but not least you have to like travel and you try to spread the world the words and tell people about your
11:04
project and We've we've done quite a lot of traveling last year to be honest way too much Traveling and the nice thing is we meet other people who work in the same domain space, so we are not alone Two of these guys are Daniel from Germany and Dimitri from Belarus and
11:22
They both work on related open source projects So they work on system test portal and report portal and the three of us together today and tomorrow Are hosting the open source test management stand here at FOSTA So come and say hi learn something that may you maybe you don't know about testing how it's done
11:41
How you can collect all the results in these various systems what they can do and so on and Last year has been very successful for us We have we started with pretty much zero external contributors and by the end of the year. We have had contributions from
12:01
some relatively big companies and organizations a small contributor contributions from big names We have also had bigger contributions towards the end of the year from somewhere from Brazil. I don't really know where that is Some state which I haven't heard before there were the good contribution From a person he didn't ask any questions just send the pull request. It was perfect. We could merge it immediately
12:25
And we have decided okay the community starts to form around the project So let's set up like a bigger goal for the project. We want to be the best in this field and we want To To reorganize to change how testing is done in an organization
12:42
We have posted a lot of requests for comments on github a lot of ideas some screenshots What can be done? What is possible technically what is possible on the organization level? There are a lot of people who gave us feedback If you do software testing quality assurance Feel free to give us feedback to tell us that we are not doing something Right or that we are idiots or maybe that you like it. Hopefully
13:06
And the last thing is we celebrate 10 years if you can figure out what this thing means Do the actions and come by at the open source test management stand. We have a present for you. Thank you very much
13:25
I think we have only one minute for questions Two minutes. Okay, cool. Yeah, it's a puzzle. Yeah, if you can solve it
13:46
Yeah, but if they tell everybody Well, there's a mother Puzzle, okay. No, you have to you have to think about it. So thank you very much for listening to me