Ottawa Linux Symposium:1日目Linuxの最新動向リポート(3/4 ページ)

» 2006年07月27日 08時00分 公開
[David-Graham,Open Tech Press]
SourceForge.JP Magazine

完全に自動化されたテスト

 この日の後半は、Googleのマーチン・ブライ氏による「テスト作業の完全自動化」という講演に出席した。ブライ氏の話は、なぜテストを完全に自動化するのか、という問いかけで始まった。自動化されたテストが必要な理由は、テストは退屈な作業だから、というほど単純なものではない。2.6のカーネルツリーの新たな開発サイクルの場合、Linuxカーネルの変更比率は恐るべき数値になっている。今やLinuxは非常に広い範囲で使われ、バグリポートのための古い手法はもはや十分に機能していない。

 かつてはLinuxカーネルがそれほど普及していなかったので、カーネル開発者はユーザーからのフィードバックに十分対応できたのだが、そういう時代はもう終わった。人件費に比べてコンピュータの価格が下がっているため、自動テスト装置が姿を消すことはないだろう、とブライ氏は述べる。では、テストの自動化によって世界の平和と食糧不足は解決されるだろうか。もちろんそんなことはないが、カーネルのバグに対する部分的な解決策にはなる、とブライ氏は語っている。バグテストの自動化には、これまでよりもプログラマーと回帰テストの数を増やす必要がある。

 自動テストは上流で行われるため、リリース後ではなくてリリース前に行うことができるという。バグにさらされるユーザーが減るほど、厄介な問題が起こることも少なくなる。カーネルの新しいコードに依存するほかの機能が存在しないうちにバグが見つかった場合、さらなる問題を起こすことなく修正されるまで、そのコードはカーネルツリーから除かれる。バグの発見は早いほど良いのだ、とブライ氏は説明する。

 1日に2回、大がかりな自動テストがLinuxカーネルに対して行われている、とブライ氏は述べている。このテストシステムはPythonで書かれているが、彼はPythonが選ばれた理由を詳細に語った。テストシステムの出力結果が出席者に示され、ほかのプログラミング言語がなぜ適切でないかについても説明が行われた。

 プログラミング言語としてのPythonがこのシステムの要件を満たす理由として、変更および管理が簡単、ライトオンリーではない、例外処理がある、必ずしも高速ではないが強力、習得が容易、多岐に渡るモジュールが利用できる、といった点をブライ氏は挙げている。

 Perlはライトオンリーな言語であり、そのシェルを使えば素晴らしいことができるが、自動テストの実装にはふさわしくない、というのがPerlに対するブライ氏の説明だった。彼は笑みを浮かべて、Perlシェルを使って可能なことは大いに尊重しているが、最初からシェルで自動テストを行う必要はない、と述べていた。

 また、Pythonについては、特にインデンテーションの使い方が気に入っている、と語っていた。ほかの言語とは違って、コンピュータはPythonを人が読むのと同じ方法で解釈するため、結果としてバグが少なくなるという。

 test.kernel.orgは以前よりも優れたものになっているが、そこで実現されていることは可能性の面から言えばまだごく一部に過ぎない、とブライ氏は語っている。また、カーネルのテストは、テスト内容を共有するためのオープンでプラグイン可能なクライアントによって、さらに改善されるだろう、とも述べている。さらに彼は、もっと上流でのテストを求めており、企業にもテストへの参加を要請している。

 バグによる影響を被る前に、企業が自らコードをデバッグしたり、バグ修正を行うコミュニティーのためにバグの追跡に協力する方がコストを抑えられるのではないだろうか、とブライ氏は問いかけた。彼は、テストの自動化に対する活動の現状を氷山の一角に例え、テストツールのダウンロードとWikiサイトの閲覧から始めることで、この取り組みにかかわってもらえるように出席者たちに勧めていた。

Copyright © 2010 OSDN Corporation, All Rights Reserved.

注目のテーマ