zlacker

[parent] [thread] 9 comments
1. humean+(OP)[view] [source] 2023-07-02 00:58:01
> The people at Twitter who understood the system and could predict the side effects were all fired or left

And never created sufficient testing.

replies(3): >>bandya+t2 >>whatev+13 >>greent+B8
2. bandya+t2[view] [source] 2023-07-02 01:17:36
>>humean+(OP)
Yes, because Elon Musk would never scrap existing pre-release testing procedures.
3. whatev+13[view] [source] 2023-07-02 01:22:03
>>humean+(OP)
There is never sufficient testing. If there is, then you have a formal proof for your algorithm.
replies(1): >>kybern+dU
4. greent+B8[view] [source] 2023-07-02 02:26:05
>>humean+(OP)
You can't write tests for the changes someone might make in the future.
replies(1): >>onion2+8m
◧◩
5. onion2+8m[view] [source] [discussion] 2023-07-02 05:08:32
>>greent+B8
That's exactly why you write tests. You want to be sure future changes don't break present functionality, especially if the future changes are being done by someone who doesn't understand your part of the system.
replies(2): >>Sketch+fe1 >>greent+aU2
◧◩
6. kybern+dU[view] [source] [discussion] 2023-07-02 11:45:54
>>whatev+13
Beware of bugs in the above code; I have only proved it correct, not tried it. – Donald Knuth

It's not just hypothetical either. There was a bug in a sorting algorithm a few years back that had been 'proved' correct. I think it was to do with numbers wrapping, and that hadn't been considered in the mathematical proof.

replies(1): >>Regic+MI1
◧◩◪
7. Sketch+fe1[view] [source] [discussion] 2023-07-02 14:24:42
>>onion2+8m
But if you need to make an update to a core system that'll necessitate updating the tests and you're back to flying blind.
replies(1): >>onion2+pw1
◧◩◪◨
8. onion2+pw1[view] [source] [discussion] 2023-07-02 16:18:48
>>Sketch+fe1
It shouldn't require updating the tests, so long as you're testing the functionality rather than the implementation.
◧◩◪
9. Regic+MI1[view] [source] [discussion] 2023-07-02 17:41:46
>>kybern+dU
WPA2 also had an exploit (KRACK) while the handshake algorithm itself was "proven to be secure". Formal verification is a powerful tool but it does not guarantee bug-free code: it merely guarantees that the particular bugs you checked for are not possible.
◧◩◪
10. greent+aU2[view] [source] [discussion] 2023-07-03 02:57:21
>>onion2+8m
You write tests for your code as it exists to make sure it functions. You cannot write tests for every conceivable change that someone else might make in the future that either mis-uses your code or adds new code inbetween that didn't previously exist. You need the people who add that new code to write new tests. Something that it seems the remaining engineers at Twitter do not have time for.
[go to top]