Really curious here: I’m coming from the Web development side of the world, and generally I wouldn’t or aren’t allowed to commit any new code without test cases for over decade now.
Investigate any code change from a small application to desktop-environments up to to big company kernel drivers and there’s just noooothing. Raw code. Hope it works! There’s always Debian and the LTS kernel! Good luck!
What’s up with that? Why? What’s the cultural attitude or hard, technical restriction I’m missing here?
Hitting all these regressions on every new x.0 release is really frustrating.
There is a significant difference between web development and hardware drivers.
How do you create valid test cases for every permutation of every piece hardware ever created?
Thanks for your answer. I don’t know. Web development famously isn’t a walk in the park either, thought it got somewhat easier over the last years with decreasing diversity.
On the other hand just have something. There are usually no tests whatsoever.
We have a regression in this filesystem. Here’s the patch. No tests. - We have a regression in our scheduler. Here’s the patch. No tests. - We have the patch for this bug in the network stack. No tests.
Not everything is a n*m hardware driver situation and even then, just provide at least something!
I’m just trying to understand why it’s the accepted habbit to provide nothing, not why it isn’t covering everything.
IMHO of the two environments… web dev is MUCH simpler.
Fair enough. So the answer is that from the simplest gnome/plasma calculator-app up to the kernel is that it’s to complicated. Only web apps are able to implement automated tests?
PS: I don’t want to be snarky. This isn’t an argument which domain is easier to conquer. I really want to understand why there’s usually nothing when it comes to core Linux/OSS app development. Obviously many people much smarter than me are working on those projects, so there must be a rational reason I’m not grasping.
I don’t know what you’re looking for but if you are a programmer you know you’re talking about 2 different development environments. And testing scenarios are different.
In the desktop Linux world, there is testing everything is tested before release but no tester or test environment or development environment covers everything and releases a complete bug-free system.
Even in the world of web development, some bugs get through even how serious you test the system. No system or program is bug-free, it gets fixed and then patches get released. There might be issues with some user systems because the system was programmed targetting another but to be compatible with the older system, which sometimes doesn’t work and will be fixed once reported.
Even with web development, this is true there is are big systems that get updated or released with system-breaking bugs or issues. No matter how much we test there will be issues because these programs are written by people.
For a programmer, you should know this. Or you’re just trolling.
If we are talking about userspace apps, I think that is different than the kernel. Some projects do have test cases, many don’t.
I suspect this is, at least partially, because most of those applications are created by individuals in their spare time for the fun of it. Configuring test cases and setting up continuous integration isn’t fun. In a corporate environment, it is a requirement and you are getting paid so you do it.
I can tell you that none of my personal projects or the projects I contribute to have test cases.
LIAR!!! We already know @dalto project itself is an advanced AI, @Kresimir have outed you