Hacker News new | ask | show | jobs
by jessriedel 848 days ago
Tbc, based on the comment that looks to be driven almost completely by the fact that they are making a tiny number of incredibly expensive bespoke machines, so they can't just keep extra machines lying around to do unit tests with (both because each machine is expensive, and because the results wouldn't necessarily generalize to other machines). So it sounds like a constraint of the field, not bad choices.
3 comments

Why do you need the actual production machine for unit tests? Why can't you build a SW simulator for them and run unit tests on them?

I used to work in automotive and all unit tests didn't require the finished car, just the SW.

Nasa doesn't hava another Voyager probe in their lab floating around in zero gravity to run unit tests on before sending the SW patches, they use simulators.

For calibration you do need the final production HW, but unit tests shouldn't, so maybe there's a confusion here about the type of tests ran.

> Nasa doesn't hava another Voyager probe in their lab floating around in zero gravity to run unit tests on before sending the SW patches, they use simulators.

JPL keeps a working duplicate of their Mars rovers on Earth and tests software updates there. So if the Voyager zero-gee environment prevents a useful duplicate, that means testing software in simulation is considered inferior to using a (massively expensive) physical duplicate like for the Mars robers.

https://mars.nasa.gov/news/8749/nasa-readies-perseverance-ma...

to do finite element analysis on the (nanometer) scale of processes/manufacturing they do - heh.
You're close. Asml doesn't test on one machine only.
Why do you need machines for unit test? Unit test just test code logic.
I don't work on the machines but I can provide you an example on why this wouldn't even work for simple machines like CNC machines. You could tell the machine for instance to move the drill out of boundaries, too hard, run it into a wall... All things that you can't catch with a software only unit test because the machine you're sending commands to doesn't really have any idea what else is going on in the space within it. So you can give it commands which are fine software wise but once they reach the real world, they can break stuffm
Many other machine builders in the area have large parts of the hardware replicated as a software simulator so they can test the code as much as they wish. It’s not uncommon to begin load testing the software (incl lots of error scenarios, simulate a robot arm getting stuck etc) before the first prototype of a machine got put together.

It’s really unique for such a competent machine builder to not have this, and it’s 100% due to their excellence being in physics and mechanical engineering, a culture of treating software as an afterthought for too long. Note, I don't think ASML still treats software as an afterthought, but they did for a long enough to make it really hard to catch up.

The build taking 8 hours doesn't seem to be consequence of the field they are operating
That sounds right, although I'd want to know a lot more before judging