プログラマーにとってのテストの重要性

2010年2月10日

優れたエンジニアはテストコードをとても重視している、という話を本人たちから直接聞く機会が最近ありました。

オープンソース会の重鎮として知られる楽天のよしおかひろたかさんは「下手なドキュメントを書くくらいだったらテストコードを書くべきだ」「ソフトウェアはテストコードと本体のコードの両方が必要。テストコードがないのは未完成品」と、テストコードの重要性を話してくれました。「全部書き直したいような(他人の)ソースコードを見たときでも、テストを書いていると心が落ち着いてくる(笑)」(吉岡氏)。

JavaのフレームワークSeaserの開発者などで知られるひがやすを氏は、コードレビューのときに「テストコードを見る」ことがほとんどなのだそうです。「テストコードがちゃんと書けていればOK」(ひが氏)。

これは1月30日に行われた「Source Code Reading Workshop Japan 2010」で聞いたお話。レポート記事は@IT情報マネジメントの記事「ソースコードリーディングワークショップ2010を開催 すぐに使えるソースコードの読み方を指南」で読めます。

その数日前には、ソフトウェアテストシンポジウム(JaSST)が主催したイベント「JaSSTソフトウェアテストシンポジウム-JaSST'10 Tokyo」も行われており、1月末はソフトウェアテスト関連が盛り上がった時期でした。

テストエンジニアが開発現場をポジティブに回す

Why testers? - Joel on Software

ちょうどその1月の終わり頃、海の向こうでは著名なプログラマーとして知られるジョエル・スポルスキー(Joel Spolsky)氏がブログ「Joel on Software」で「Why testers?」というエントリをポストしていました。

スポルスキー氏はテストエンジニアの重要性について次のように書いています。

For programmers, getting better at what you do requires quick feedback, positive and negative, on what you've just done. The faster you get the feedback, the faster you'll learn.

プログラマーにとって、作業したことに対してポジティブであれネガティブであれ素早いフィードバックを求めることが向上につながる。フィードバックがすぐに得られれば、それだけすぐに学べるからだ。

だからスポルスキー氏は社内にテストエンジニアを置くのだそうです。

A great tester gives programmers immediate feedback on what they did right and what they did wrong. Believe it or not, one of the most valuable features of a tester is providing positive reinforcement.

優れたテスターはプログラマーの作業に対してそれが正しいことだったか間違ったことだったのかを即座にフィードバックする。信じてくれないかもしれないが、テスターの大きな価値の1つはポジティブな応援をしてくれることなのだ。

テスターはバグ出し要因としてプログラマーからは嫌われがちなポジションですが、スポルスキー氏は開発現場をポジティブにする役回りとしてのテストエンジニアの働きを評価していることが分かります。

しかし残念ながら米国でもテストエンジニアとしてのキャリアはあまりよく知られていない、ともスポルスキー氏は書いています。そこでどのような人がテストエンジニアに向いているのか、スポルスキー氏は以下の要素を挙げています。

  • 科学的
  • パズル好きで、解き方を一日中でも考えているような人
  • 方法論(Methodology)を考えるのが好きな人
  • ソフトウェアやコンピュータの仕事を好む人

優れたエンジニアたちがテストコードやテストエンジニアを重視していることは、日本でも米国でも変わりがありません。そして前述のイベントなどに参加してみると、多くのエンジニアのあいだで、こうした認識をもっと共有しようという機運が盛り上がっているように感じました。

あわせて読みたい

ソフトウェアテスト・品質 プログラミング言語




タグクラウド

クラウド
AWS / Azure / Google Cloud
クラウドネイティブ / サーバレス
クラウドのシェア / クラウドの障害

コンテナ型仮想化

プログラミング言語
JavaScript / Java / .NET
WebAssembly / Web標準
開発ツール / テスト・品質

アジャイル開発 / スクラム / DevOps

データベース / 機械学習・AI
RDB / NoSQL

ネットワーク / セキュリティ
HTTP / QUIC

OS / Windows / Linux / 仮想化
サーバ / ストレージ / ハードウェア

ITエンジニアの給与・年収 / 働き方

殿堂入り / おもしろ / 編集後記

全てのタグを見る

Blogger in Chief

photo of jniino

Junichi Niino(jniino)
IT系の雑誌編集者、オンラインメディア発行人を経て独立。2009年にPublickeyを開始しました。
詳しいプロフィール

Publickeyの新着情報をチェックしませんか?
Twitterで : @Publickey
Facebookで : Publickeyのページ
RSSリーダーで : Feed

最新記事10本