テスト/品質系エンジニアが身に付けておくと得をする7つの技術

Software Test & Quality Advent Calendar 2011」の初日エントリーとして、書きます!


テスト/品質系のエンジニアも、今や、テストや品質のことだけを知っているだけでは、幸せにはなれない時代となってきています。

プログラムは書けなくても、身に付けておくと良いと思っている技術をまとめてみました。

※注
今回記述した内容は、以下のような私のドメインに偏ったモノになっています。

  • ミッションクリティカル/エンタープライズ系
  • Java/.NET

他のドメインでは異なる部分や他の標準的なツールがあれば、コメントを頂ければと思います。

バージョン管理/課題管理

今や、必須のスキルと言えるでしょう。
バージョン管理(SCM/VCS/DVCS)としては、

などが有名ですね。

分散型の場合は、各エンジニアが自分のリポジトリで作業可能ですが、最終的にはバージョン管理のマスター的な存在が必要になるので、開発者以外でブランチ/マージもできる人がいると、心強いですね。


また、課題管理(ITS)も、バージョン管理とセットで利用できるとうれしい。
TracRedmineあたりが有名ですが、基本的な概念に大きな差はないので、

  • バージョン管理との連携
  • チケットのカスタマイズ
  • チケットのレポーティング

などができると良い。

ビルド

Javaでは、AntMaven、.NETでは、NAntMSBuildを良く使います。
テスト/品質系の方では、自分が思っているよりも、上記ツールのビルドスクリプトの作成方法を知らない方が多いのですが、ビルドぐらいはできないと、テストやリリースの効率が悪いです。

「ビルド=コンパイル」ではなく、アプリケーションを動作させるためのパッケージングまで、自動ビルドできるようにしておくことが重要。

CI(継続的インテグレーション

上記、バージョン管理/課題管理+ビルドができれば、CIの世界は目の前。
ビルド、メトリクスの取得、xUnitテストなどが自動で行えるようになります。
これまでいろいろ経験した中で思うことは、実は、上記に挙げた部分は、自動化しておかないと続かず、問題が発生しても放置されてしまいます。

だから、CIが重要。
ツールとしては、Jenkinsが素晴らしく使いやすい。
最近、「Jenkins実践入門」も出版されたので、これから始める人も良い機会ではないでしょうか。

スクリプト言語

プログラムは書けなくても、とは言いましたが、スクリプト言語は使えるようになっておくと、仕事も効率的になります。

Windowsバッチ/WSHPowerShellUNIXシェルといったプリミティブなモノから、アプリまで開発できるようなGroovy/RubyPythonなどの高機能なモノまであります。
何かひとつでも使えるようになっておくと、仕事の効率が大分上がります。

自動試験

世の中、まだまだ人海戦術でテストを行っている状況が多々ありますが、自動化できるところを増やして、より創造的な仕事をしたいですね。
私のおすすめは以下。

  • Selenium(Webアプリの機能試験の自動化)
  • UWCSGUI系の操作を伴う試験の自動化)
  • JMeter(負荷試験)

これだけでも使い方を知っていれば、自動化で対応できる範囲が広がります。

仮想化・クラウド

テスト環境を構築するって、大変ですよね?
最近のシステムは、構成も複雑になっているので、テスト環境を構築するだけで、かなりの工数がかかることがあります。

仮想化として、VMWare vSphereMirosoft Hyper-VOracle VirtualBoxなどを知っておくと、環境の複製やバックアップ、切り戻しなどが簡単に行えるようになります。

私の場合、基本的にテスト環境は仮想化で構築するようにしています(もちろん、実機としての評価が必要な場合は、その限りではないですけど)。

また、仮想化だけでなく、場合によってはクラウドのサービスをを利用するのも手です。
サーバをレンタルするよりも、クラウドのサービスを利用した方が、手間もコストも減るケースもあると思います。
分散拠点でテストを実施する場合も、利用効果は高いと思います。

Excel

最後は、なんだかんだ言ってもExcelは必須だと思います。
(といっても、バグなどの管理は課題管理のツール使ってくださいね)

COUNTIF、SUMIF、VLOOKUPなどの集計関数や、ピボットテーブルは、当たり前。
SUMPRODUCT、INDEX、OFFSET関数、配列数式あたりまで使える人は強者。

さらに、マクロなどで、データの取り込み・加工から、集計・グラフ化まで行える人は最強ですね。

最後に

思っていたより長くなってしまいました。
「QC7つ道具」を意識して、「7つの技術」を挙げたのが間違いだったか...

と、ここまで書いてみて「Software Test & Quality Advent Calendar 2011」と言いつつも、直接テストに関係していない内容になっているかもw

テーマは自由、ということで、この後続く方のエントリーもお楽しみに!

#まだまだ参加人数少なく、これでは12/25までもたないので、
#このエントリー見てくださった方も、一緒に Advent Calendar やりませんか?