←back to thread

449 points bertman | 10 comments | | HN request time: 0.813s | source | bottom
Show context
bertman ◴[] No.29702169[source]
The repos: https://github.com/widevinedump?tab=repositories
replies(1): >>29702805 #
sovietmudkipz ◴[] No.29702805[source]
I don’t know why but for some reason I was hopeful to see unit tests in any of the repos. Searching “test” for that user doesn’t reveal any tests. :(

Even the digital property liberators/internet pirates don’t test their software. I feel like I’m on an island with a small population of test enthusiasts.

replies(4): >>29703006 #>>29703066 #>>29703153 #>>29703226 #
1. unbanned ◴[] No.29703066[source]
>Even the digital property liberators/internet pirates don’t test their software. I feel like I’m on an island with a small population of test enthusiasts.

Ultimately, what's the point. The tool either works, or it doesn't. Then you patch what doesn't work so it does work.

Heck even the Linux kernel isn't tested.

Unit tests are so management can have a good metric to sell code quality. I don't know any time unit testing has actually benefited shipping faster (which really is the only bottom line those above you care about)

replies(7): >>29703319 #>>29703455 #>>29703460 #>>29703579 #>>29703591 #>>29703662 #>>29703696 #
2. danuker ◴[] No.29703319[source]
My experience: running a unit test is much faster than a manual test.

While developing a feature or fixing a bug, it speeds you up overall, in spite of the initial investment in writing the test.

As a bonus, you can keep them running permanently, to prevent new bugs or regressions.

replies(1): >>29703877 #
3. caillougris ◴[] No.29703455[source]
> I don't know any time unit testing has actually benefited shipping faster

It's of huge benefits to me when I have to make a small tweak (fix a bug, or add a new specific corner case) into an existing codebase that I didn't write and don't know very well. Being able to make a small change and being confident that it will not send everything burning in hell.

replies(1): >>29703632 #
4. gentleman11 ◴[] No.29703460[source]
Why isn’t the kernel tested? Too close to the hardware to be practical?
5. shakna ◴[] No.29703579[source]
> Heck even the Linux kernel isn't tested.

Apart from the Linux Test Project [0], run by all the big Linux names, who regularly issue very detailed bug reports and usually patches as well, you mean?

[0] https://linux-test-project.github.io/

6. develop7 ◴[] No.29703591[source]
but linux kernel is covered by tests. Not 100%, not all the subsystems, but there are automated tests nevertheless (introduced by Greg K-H, AFAIR)
7. datavirtue ◴[] No.29703632[source]
This, and any code base of significant size is unknowable and starts to produce bugs naturally. Requiring tests and verifying minimum coverage are a few things you can do to control the death spiral.

I have worked on large systems devoid of tests. Not recommended. I literally witnessed multi-million dollar losses that would have been prevented by requiring tests.

8. everybodyknows ◴[] No.29703662[source]
> Heck even the Linux kernel isn't tested.

Linux kernel self-tests:

https://kselftest.wiki.kernel.org/

Kselftest is run everyday on several Linux kernel trees on the 0-Day and Linaro Test Farm and other Linux kernel integration test rings.

Most recent update to the source code was yesterday 2021-12-26:

https://patchwork.kernel.org/project/linux-kselftest/list/

9. ohthehugemanate ◴[] No.29703696[source]
> I don't know any time unit testing has actually benefited shipping faster

There's a lot of empirical research about this. A. Lot. Starting in the 80's, even. It's as close as it gets to empirically proven that software testing greatly reduces bugs and regressions, and accelerates delivery over the long term. It's not as clear if the acceleration is entirely freed up resources that would otherwise be spent fixing bugs, or if it also makes people develop faster. Also, it's pretty clear that Automated testing doesn't accelerate short or short term projects.

10. horsawlarway ◴[] No.29703877[source]
And the test covers much less surface area than most manual tests.

For code that's expected to be stable for a LONG time - sure, write lots of good tests.

For code that breaks at someone else's whim, which has a small shelf life, or which has a large surface area, think really, really hard about whether the test is actually going to be worth it.