本日、テスト支援をさせてもらっているお客様との打合せがありました。
総合テストを実施する前に、単体テストの状況を確認してみると、担当者によって品質の差異にバラつきがあることがわかりました。とりあえず、未だ何とかなりそうなマイルストーンなので、ポイントを絞って単体レベルでの見直しを早急に行うことで会議は終了。

で、何となく昔感じた事を思い出しました。
優秀なプログラマーほど、アドリブでの単体テストが非常に上手なことです。
単体テスト+αといいますか、とにかく確認の仕方が絶妙に上手な印象があります。

コードを書いた後、ご自身で何等かの確認(単体テスト)はしておられると思います。
しかし、何故かバグが多い方、少ない方が出てくるわけです。
皆さん、ちゃんと確認をされているのに…

差異の原因は色々考えられると思います。
・時間に追われている中でどうしても、『ま、ここまではいいか~』と少しだけ悪魔のささやきに負けてしまう
・無意識のうちに確認すべき項目を失念してしまう
・そもそも確認テスト自体されない方…
だったら、予めテスト仕様書を書いておき、機械的に確認すれば(させれば)よい。
確かに、これは非常に重要かつ王道だと思います。
でも、これって、時間が無い、人が無いなど、無いないづくしだと厳しいですよね。『やりたいこと』と、『できること』は違うわけですから。

では、どうやって単体テストで品質をあげていけば良いのか…
ちょっと極端ですが、テストにおいてアドリブが効くかどうかによるところが大きいのではと感じています。
私は、これを『アドリブテスト++』と呼んでいます。(本来のアドリブテストと意味が違うので)
単体としての確認と決して踏み込み過ぎない(上手に手抜きした)周辺の確認テストができるかどうかだと思います。
上手な手抜きって、常に目配りができていることが大事だと思います。
目配りができていると、実装時に留意事項が意識できており、不具合の未然防止にもつながると思います。

3つの配慮『目配り・気配り・心配り』が大事と何かで読んだことがあります。
開発しているシステムに対する向き合い方も、このような配慮は重要かと。もちろん、生き物ではないので本来の配慮とは異なりますが。

最近、業務改善の流れで、簡単な自動化ツールをコーディングする機会が出てきました。
コーディング作業って、本当に久しぶりです。
久しぶりにやってみると、案外楽しいと感じています。(少しだけならですが)
昔を思い出しながら、コーディングする前もした後も目配りを心がけています。
なんか抽象的な内容でスミマセン。