著者
片山 徹朗 高橋 寿一
出版者
情報処理学会
雑誌
情報処理 (ISSN:04478053)
巻号頁・発行日
vol.49, no.2, pp.154-161, 2008-02-15

近年,エンジニアの言う「タイミング依存のバグ」が現場では多くなっているのではないか.昨今の大きなシステム障害を見ると,「あるまれなタイミングと,あるまれなタイミングが同時に起こると障害が発生する」という記事をよく見かける.また,その障害に対する記者会見では「単独製品としては起こりえない」,もしくは,「弊社製品単独の機能としては問題ないのだが,他社製品と統合した場合に問題が発生する」という言葉をよく聞く.現代のソフトウェアやシステムは,単独機能として大きな問題を起こすことは少なくなってきている.それは各社の品質保証システムや部門が成熟した成果であろう.しかし,そのソフトウェアやシステムの堅牢性を維持するために多重化したり,あるいは,高速な処理性能を求めるために並列化することによる起こるバグについては,逆に増える傾向がある.本稿では,前述したような並列に処理されるプログラムやシステムについて,テストの難しさの原因とテスト手法について述べる.また,並列プログラムの特性と誤りの分類について述べ,その中から特に,デッドロックの検出手法と競合状態のテスト手法について述べる.