|
|
Subscribe / Log in / New account

Testing in the Yocto Project

Testing in the Yocto Project

Posted May 20, 2019 23:16 UTC (Mon) by roc (subscriber, #30627)
In reply to: Testing in the Yocto Project by rweikusat2
Parent article: Testing in the Yocto Project

Various different downstream organizations have had to set up their own automated test farms, manage them, screen out intermittent failures, diagnose and report failures, etc. This is entails a lot of duplicated work. This is what I mean by "terribly inefficient", i.e. "very inefficient". Obviously whether that's "terrible" depends on your point of view. As a downstream project maintainer running automated tests that sometimes catch kernel regressions, I'm not happy about it.

Imagine if Firefox and Chrome didn't do their own testing, and instead Linux distros, device vendors and Web developers felt obliged to set up independent browser-testing projects with duplicated but not always identical tests, their own triage and false-positive screening, various different channels for reporting test failures upstream (many of which are ignored), etc. It would obviously be insane. Yet the kernel does this and everyone seems to accept it.


to post comments

Testing in the Yocto Project

Posted May 20, 2019 23:30 UTC (Mon) by corbet (editor, #1) [Link] (6 responses)

Kernel testing needs to improve a lot — and has moved significantly in that direction. But I do wonder how you might envision this working; what organization, in particular, would do the testing that you are looking for? Who should pay for it?

The problem with the kernel is that so many of the problems people run into are workload and hardware dependent. Developers increasingly test for the things they can test, but they can never test all of the available hardware, and they can never test that your workload, in particular will not regress. So, while the project still very much needs to improve its act in this regard, I'm not sure I see an alternative to a lot of downstream testing anytime soon.

(And yes, a better answer to bug tracking is sorely needed, but there are many ghetto areas in kernel development that nobody wants to pay for, and that is one of them).

Testing in the Yocto Project

Posted May 21, 2019 0:06 UTC (Tue) by Cyberax (✭ supporter ✭, #52523) [Link]

Ideally this would be an independent lab funded by the Linux Foundation (or any other trade group). A large warehouse stuffed with various hardware that runs realistic workloads.÷

Testing in the Yocto Project

Posted May 21, 2019 0:20 UTC (Tue) by roc (subscriber, #30627) [Link]

> But I do wonder how you might envision this working; what organization, in particular, would do the testing that you are looking for? Who should pay for it?

The Linux Foundation seems to have taken on the role of trying to ensure that organizations that profit from Linux put money back into it. I'm not privy to the workings of LF so I don't know whether they can take this on. Still, if there was a consensus in the kernel community that central testing infrastructure is needed and we just have to figure out how to pay for it, that would be a big step forward.

One thing that might help: the kernel community could try to normalize the expectation that writing tests, building better test frameworks, and investigating failed tests is something every kernel developer needs to do (including the expectation that every bug fix and every new feature comes with automated tests). This is normal for a lot of other projects, from tiny no-money projects to large big-money projects. Then the companies paying people to do kernel development would effectively be taxed to support the testing effort.

> The problem with the kernel is that so many of the problems people run into are workload and hardware dependent.

The kernel workload is highly variable. Then again, for browsers your workload is *every Web page in the world*, from gigantic static pages to GMail to twitchy 3D shooters and everything in between. Mostly written in obfuscated code by tens of millions of developers with ... a range of skill levels ... whom you mostly can't talk to. Browsers are sensitive to hardware variation too, though less so than the kernel, sure. But desktop applications have their own special challenges: myriad combinations of software that your software depends on and interacts with, including ultra-invasive stuff like antivirus and malware that patches your code, all changing underneath you day to day, almost entirely closed-source and often controlled by your competitors. Mobile has similar issues.

I talk a lot about browsers because that's what I know. I don't think kernels and browsers are uniquely difficult.

I get that testing the kernel is hard. That's why greater cooperation and more efficient use of testing resources is so important.

> I'm not sure I see an alternative to a lot of downstream testing anytime soon.

Sure but so far I don't even see that the kernel community sees lack of upstream testing as a problem that needs to be solved.

Look at it this way: kernel people emphasize how important it is for people to upstream their code --- "upstream first", etc. That reduces duplication of effort, ensures things stay in sync, etc. But for some reason* they don't apply the same logic to tests. Tests, test harnesses, and test infrastructure should be upstream-first too for exactly the same reasons. Yes, there will always be stuff that is hard to upstream.

* Come on, we all know what the real reason is. Testing is less fun that coding features or fixing bugs. Figuring out test failures is even less fun (though I'm working on that).

Testing in the Yocto Project

Posted May 21, 2019 0:26 UTC (Tue) by roc (subscriber, #30627) [Link] (3 responses)

> (And yes, a better answer to bug tracking is sorely needed, but there are many ghetto areas in kernel development that nobody wants to pay for, and that is one of them).

You're paying for poor bug tracking already, the cost is just smeared out as people waste time finding and diagnosing bugs people have already found and diagnosed.

I assume the actual hardware/software running costs would be insignificant, so is the problematic cost what you'd have to pay people to do triage or what? I always assumed the barrier to better bug tracking was the difficulty of coming up with a single system and getting people to pay attention to it.

Testing in the Yocto Project

Posted May 21, 2019 0:31 UTC (Tue) by roc (subscriber, #30627) [Link] (2 responses)

One easy thing that might make a real difference is to get some people from somewhere that understands testing (e.g. Google) who also have cachet in the kernel community to give a talk or talks at a kernel event about what serious testing looks like at scale. And listen to them.

Testing in the Yocto Project

Posted May 23, 2019 4:25 UTC (Thu) by tbird20d (subscriber, #1901) [Link] (1 responses)

Please come to the Automated Testing Summit in Lyon, France, in October. It's a new event, where I hope we can talk about (and listen to testing experts on) exactly the issues you raise. The CFP should be available shortly, and personally I'd love to hear from you and other testers about your experiences. I'll announce the CFP on the automated testing e-mail list when it's ready (which should be within a few weeks).

Testing in the Yocto Project

Posted May 23, 2019 21:42 UTC (Thu) by roc (subscriber, #30627) [Link]

I live on the other side of the world and don't have money to travel that far. (Remember the part where unpaid project maintainers are being asked to assume the testing burden for paid kernel developers.) Besides, I'm not actually a testing expert, just one of many many developers who have worked on a bug project that takes upstream testing seriously.

Testing in the Yocto Project

Posted May 20, 2019 23:47 UTC (Mon) by Cyberax (✭ supporter ✭, #52523) [Link] (2 responses)

And it's not really excusable at this point, the kernel has more than enough powerful backing to get funds for a full testing lab. With a variety of different hardware and software.

Even in this case some duplication will still inevitably take place, but at least it can be greatly minimized.

Testing in the Yocto Project

Posted May 21, 2019 9:04 UTC (Tue) by metan (subscriber, #74107) [Link] (1 responses)

At least people from various kernel QA departments started to talk to each other in a last year or so. I suppose that there is enough funding already but the real problem is that every company works more or less in isolation. Maybe we can solve that with standard interfaces and components so that each company can plug in a hardware they care for into a virtual kernel testing lab, at least that seem to be a way things started to move slowly on. The problem now is that the problem is complex and as far as I can tell there is no significant manpower behind it.

Testing in the Yocto Project

Posted May 23, 2019 4:33 UTC (Thu) by tbird20d (subscriber, #1901) [Link]

Indeed. A group started to get together last year, and made some progress at least articulating some of the issues involved.
See https://elinux.org/Automated_Testing_Summit_2018 and https://lwn.net/Articles/771782/

I'm aware of 3 different get-togethers to continue working on pushing stuff forward: A testing microconference at Plumbers, a kernel testing summit immediately after Plumbers, and the 2019 Automated Testing Summit after OSSEU/ELCE in France. Some of these have not gotten much visibility yet, but hopefully that will change shortly.

Testing in the Yocto Project

Posted May 25, 2019 17:14 UTC (Sat) by flussence (guest, #85566) [Link] (1 responses)

>Imagine if Firefox and Chrome didn't do their own testing, and instead Linux distros, device vendors and Web developers felt obliged to set up independent browser-testing projects with duplicated but not always identical tests, their own triage and false-positive screening, various different channels for reporting test failures upstream (many of which are ignored), etc. It would obviously be insane. Yet the kernel does this and everyone seems to accept it.

That insanity is already old news. Are you completely unaware of the long tail of blogs posting cargo-culted tweaks to get things like basic GPU acceleration and sound to work in browsers?

“This web browser best viewed with Nvidia on Windows 10” is not a good look, but everyone seems to accept it.

Testing in the Yocto Project

Posted May 27, 2019 23:11 UTC (Mon) by roc (subscriber, #30627) [Link]

> Are you completely unaware of the long tail of blogs posting cargo-culted tweaks to get things like basic GPU acceleration and sound to work in browsers?

I'm aware that real-world combinations of software and hardware vastly exceed anything you can test in any reasonable test farm. Firefox's upstream tests aren't perfect, and can't ever be, so tweaks to Firefox's configuration in unusual situations remain necessary. (Keep in mind, though, that many of those "cargo-culted tweaks" aren't addressing Firefox bugs but are choosing different points in a tradeoff, e.g. choosing performance over stability by using GPU drivers with known bugs.)

That doesn't affect what I wrote, though. It is still true that, unlike the kernel, Firefox and Chrome upstreams do massive testing in a way that's tightly integrated with the development process, and take responsibility for detecting, diagnosing and fixing regressions.


Copyright © 2025, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds