涼の成長記録

自らの人生に主導権を持つべく、独立を目指して2014年3月31日を持ってITエンジニアを退職。そんな23歳♂の成長記録。

エビデンス作成という謎の時間

大手さん相手に、ソフトウェアを納品する時、「ちゃんとテストしたよ!僕たち頑張ってテストしたよ!」では許されなかったりします。いわゆる「エビデンス」というやつを求められます。「これ、意味あるのかよ」という、誰でも思うであろうお話でございます。


ちなみにエビデンスとは、「証拠」という意味です。つまり、ちゃんとテストした「証拠」を求められるということですね。Wikipedia大先生はこう語ります。

情報技術 (IT) の専門用語としては、システムの開発分野において、作成したプログラム、サブシステムが想定どおりに動く(動いた)ことを示す証拠や検証結果を指す。このエビデンスに基づいて、1763年に発表されたベイズの定理を用いてプログラム、サブシステムを改変する前に、その改変が必要なものであるかを確立的なデータに基づいて結果を推測する方法で注目されている。

エビデンス - Wikipedia


GUI系のアプリケーションであれば、テストに関する操作や、状態変化ごとに、毎回毎回スクリーンショットを撮って、本当にそういう操作をしたのか、本当に期待の状態変化をしたのか、という証拠を記録していきます。グラフィカルに分からないところであれば、ログファイルから証明したりします。ログファイルをエディタで開いて、そのスクリーンショットを撮るわけです。


そのスクリーンショット達は、Excelに張り付けられて、ドキュメントとして発行されるわけなのですが、絶対意味ないと思うんですよ。どれぐらい意味がないかって言うと、私が昨晩、暗闇の中でiPhoneの懐中電灯機能を使いながら、iPhoneを探していた時間ぐらい意味ないと思います。いや、それよりは意味があると思います。


こんな数百ページもある資料を提出したところで。役に立つとすれば、何か障害が発生した時に、「このパターンは確かにテストしている/していない」と確認できることぐらいしか、私は思い付きません。納品時に、このExcel数百ページの資料とテスト仕様書を比べながら、「うんうん、できてるできてる」ってお客さんがチェックしている姿も、少し想像しがたい部分があります。


私が個人的に不満なのは、エビデンス資料作成中は、そのソフトウェアの品質に、何の影響も及ぼさないということです。エビデンスの作成って、テストの3倍ぐらいの工数がかかるのですが、3倍時間をかけてテスト設計したり、多くのテストケース通したりした方が、最終的に皆ハッピーになれる気がするのですよね。


というかですね、スクリーンショットもログファイルも、平気で改ざんできるのですよ。そのスクリーンショットやログが信用できるのであれば、「ちゃんとテストしたよ!僕たち頑張ってテストしたよ!」も信じてほしいなー、とか思ってしまいます。そして、いざ障害が起きた時も、テスト仕様書のチェックから「このパターンは大丈夫」って素直に調査してほしいです。


でも、もし私が発注する側で、相手が全く知らない会社だったり、オフショアだったりすると、やっぱりエビデンスあると嬉しいかなーとか思ってしまいます。人間弱いところがあって、工期がないと似たテストケースをパスしてチェック付けたりしてしまうものですしね。うーむ。。難しいですね。ある程度スキルのある人であれば、テストもエビデンス作成も自動化したプログラミングができるのかもしれません。今の私には、テスト駆動開発すらまともにできません。


まあ、私の最善策に対する結論としては、ビデオ撮影して、ビデオカメラをそのまま客先に送り付けることですかね。冗談ですが。(半分本気)
エビデンス作成に休日を潰され、徹夜する羽目になったヘボプログラマーの戯言でした。
ではでは。