Some Days You Get the Bear

IT系エンジニアの、日々の気づきや考えたこと。

「完全なテスト」がありえない時代になった

embeddedsoftwaremanufactory.blogspot.com
面白い考え方だな、と思う。
もちろん、面白おかしいわけではなく、重大なこととして捉えなければならないこと。
 

脆弱性は(中略)、検証や妥当性確認によって発見,除去できないものもある。
(中略)
仕様通りに作った設計通りのソフトウェアであっても,悪意をもったハッカーにより「脆弱性」にされてしまうことがある。
(中略)
ようするに,IoT機器のソフトウェアは,市販前に完成度の高いソフトウェアを作ってリリースしたら終わりではないのだ。

このことは,「ソフトウェア製品はリリース時に完成しない」時代になったということではないか。リリース時にバグはないかもしれないが,潜在的脆弱性や未来に脆弱性となってしまうソフトウェアが含まれている状態で出荷せざるを得ないのだ。

ようするに,製品のリリース時点では,バグもサイバーセキュリティの脆弱性あるという前提で市販後の対応をする必要があり,商品のリリース時には,対ユーザーリスクをできるだけ小さくすることを考えることが必要になったのである。

これはソフトウェアのテストについても同じことが言える。仕様通りに作っても脆弱性となってしまうケースがある以上,製品リリース時に完全なテストは実施できないことになる。完全なテストを行うことを目指すのではなく,ユーザーリスクが最小になるようなテスト,検証,バリデーションを設計しないといけない。

でもやっぱり、脆弱性がはじめからわからない以上、
やっぱり完全なテストを目指そうとするのだろうけどね。

今後は「ハッキングされたときのリスク」について、
テストだけでなく、機能面でどこまで事前に対策がとれるのか、
そういう議論がもっとされるようになるのだと思う。