09/07/26 18:10:16 F499QACg
>>754
LKML読んでて、テストコードでなんとかなりそうな問題って少ないんだが、具体的にはどうよう状況を想定してる?
例をあげる。
定期的にregressionする問題児機能として、cpu-hotplug, memory-hotplugがあるが、これは明らかに
開発者がテストできないのが問題。
かつ、CPUやメモリを挿抜できるマシンを見たこと無いと何に気をつけないといけないか、普通は一生知る機会がない。
カーネル内に普通にif 文入ってりゃカーネル勉強してれば自然と身につくけど、速度の兼ね合いで巧妙に if文が
入らないようにしてあるケースが多いので、コードを読んでいてもまず理解できん。
個人的な経験でいうと、ユニットテストが有効なのはアプリケーションレイヤだよ。テストってのは自分のもってる仮定が真か
否かを確認する作業なので、よく分からないハードの互換性のための機能とか、よく分からないアプリの互換性のための
機能とかは、テストできない。
それに加えて、性能のために、無理矢理ロックレスにしてる部分ってユニットテストすると、failureするよね。
でも人間は気づかないのでOK理論でまかり通ってる。
この「人間は気づかないはず」ってのはかなり曖昧な根拠なので、すごく予想外のワークロードで破綻したりする。
テスト不足が原因じゃなくて設計時の分析不足が根本なので、テストじゃ品質は上がらない
ちょっと、違う河岸の人の意見が聞きたくなったので、燃料投下ですよ