2024-07-21

"Beautiful Testing" Tim Riley & Adam Goucher 編

テストにビューティフルとは、なんとも馴染みにくい形容である。開発工程において、最も泥臭く地道で根気のいる仕事。テストケース、おいらの周りでは検証リストと呼んでいるが、この膨大なリストと睨めっこしながら、実際にテストを実行していくのは思いっきり辛い!ちまちました項目を挙げていく眼力は、まるで姑チェック!おまけに、それで完全に網羅できたなんて、どこにも保証がないときた。
とはいえ、テスト環境、おいらの周りでは検証環境と呼んでいるが、これを構築するのは結構楽しい。プログラミング言語、ハードウェア記述言語、数値演算言語、グラフィックツール、画像フォーマットなどを組み合わせ、スクリプト言語で全体を制御する。こうした統合環境を構築していると、システムを支配した気分になる。自動化して手懐けちまえば、ちょっぴり美しくも見え、何よりも愛着がわく。手のかかる子ほど可愛い... と言うが、その類い。
ならば、自動化に至る作業までも自動化してくれなくっちゃ... AI 君、よろしく!人間よりも人間臭い AI の出現を願いつつ...
尚、大西建児監訳、児島修訳版(オライリー・ジャパン)を手に取る。

「ソフトウェアテスティングは常に挑戦です。どれほど真剣に取り組んだとしても、プログラムが完全に安全で、バグフリーであることを証明できません。アルゴリズムの完璧さを証明出来たとしても、その確信が正しいかどうかは、現実世界によって検証されるのです。」

美しい... というのは、あくまでも主観的な審美眼。美しさが何であるかを完璧に知る者は、いないだろう。芸術家ですら、美的感覚は個性によるもの。それでも、美しさ、単純さ、真理といったものには、なにがしら関連性がありそうだ。
自然界には数学に看取られた美がある。例えば、黄金比がそれだ。構造化プログラミングにも、オブジェクト指向にも、設計手法にも、そのような感覚を覚えることがある。
では、テストはどうであろう。自動化や効率性といったものに、それを見い出すことはできそうか...

「何かを指して『美しい、素晴らしい』と言うとき、そこには大きな『喜び』か『満足』のどちらかが存在します。」

本書は、テスター、プロセス、ツールという三部で構成され、23 もの体験談が掲載される。ビューティフルテスティングとは、「ビューティフルなテスターによる、ビューティフルなプロセスのための、ビューティフルなツールの活用」であると。
テスターの心理やオープンソースに見るコミュニティから、ファジングやテスト駆動型開発(TDD)といった技法、あるいは、ミューテーションテストや Web オートメーションなど、門外漢でも興味を引く。

テスティングは、リリースの合否を判定する最後の砦。
ちなみに、極度に困難でストレスに満ち、重苦しい雰囲気の中で仕事をしている医療スタッフは、少々ブラックで、ゾッとするようなユーモアのセンスを身につけてしまうそうな。それは必要なことなのだろう。あまりに真面目で、緊張し過ぎの医者による手術は、勘弁願いたい。
テスターにも似たようなところがあるらしい。彼らは問題を発見し、それを報告し、リスクの存在を知らしめる。深刻なエラーもあれば、リリース後のアップデートでカバーできるバグもある。システムがますます複雑化していく昨今、完全にバグを消し去るなんて不可能だ。
本書は、テストの観点から少しばかり肩の力を抜いてくれる。アダム・グーチャーは、「楽しさ、やりがい、魅力、経験を積んでいるという実感、知的さ、意義」これらを言い換えると、すべて美しいことだという...

ところで、テスターとは、どんな人種であろう。どんな人が向いているのであろう。
テスターは質問魔!設計者にインタビューし、設計思想や設計構造を聞き出しては実質的な設計を理解し、テストすべき要所を見抜く。適切な質問で言葉の行間を読み、現象の背後にあるものを推測する。好奇心旺盛で実験好き、分析的で、新たな知識をすばやく吸収。バグを見つけるのは、まるで宝探し。その姑チェックぶりは、なかなか手ごわい。
一方で、政治的な振る舞いには無関心で、目上の人間にもお構いなし。開発部と品質管理部はよく衝突するものだが、適度な緊張感は必要だ。中には開発メンバーを教育してやろうと考える人もいるが、人の欠点ばかり探してるってのもどうだろう。
優れたプロジェクトチームは、テストチームの知識と直感をうまく活用するという。テスターとの距離感と、そこに信頼関係を築くのも、プロマネの本領というわけか...

「言ってみれば、僕は現実の境界線をテストしていたんだ。ただ、何が起こるのか見てみたかった。好奇心... それだけさ。」
... ジム・モリソン

0 コメント:

コメントを投稿