.log

miscellaneous memorandum

システムのテスト

September 1, 2012

ちょっと縁があって、ある会社のシステムテスト業務のお手伝いをしてきました。

ちょっと家から通うのが難しい距離だったので、わざわざ近くに1ヶ月ちょっと旅館で寝泊まりをして、週末だけ家に帰るという生活でした。もう半年ちょっとぐーたら生活をしていたので、フルタイムで働くのはなかなか大変でしたが、やはり外に出ると色々刺激があり、色々得る物が多かったお仕事でした。

テストしたのは、新しく開発されるWebシステムで、はじまる前はテスト仕様書に沿ったテストで対応するのも10人ぐらい、かつみんな開発業務は未経験という前提でしたので、心の中の半分ぐらいは淡々と作業を進められるのかなと思っておりました。1ヶ月強という期間と10人という人数でテスト専門のプロジェクトをくむわけですから、それなりにしっかり準備されているのかなと。ただ、残りの半分は、 「未経験ばっかり10人でほんとにテストが進められるのか?」といった状況で、いわゆる半信半疑状態でした。

で、ふたを開けてみて、かなりびっくり。ちょっと予想の斜め上をいく状況でした。

まず、開発を担当している会社(私が手伝っている会社は発注した側の会社)から人が来て、最初の何日かで業務のレクチャーをすると言うことになっていたのですが、その準備がほとんどできておらず、現場はばたばた。作業手順もはっきりせず、スケジュールもおおざっぱ、進捗もどう管理するのか分からない、と言う状況で、スタート1時間で「これはいよいよ大変になってきた」感がひしひしと……

でもなんか乗りかかった船だし、こういう状況見ると放っておけない気質な物で、何とか業務がうまくスタートするために(半分キレかかりながら)作業手順を整えたり、どういうスケジュールにするかをヒアリングしながら固めていきました。

2日目には、実際のシステムと仕様書を元に業務をやってみるということになり、かなりあれこれ苦労しながら進めていくと、テスターの皆さんは未経験ながらも以外と吸収が速く、どうにかこうにか形になるかなぁという見込みが立ち、ほんとにテスト業務をスタートしてみることにしました。

が……肝心のシステムがどうもおかしい。

表面的には出来ているっぽいんですが、動かしてみるとなんかすごい粗が目立つ状況で、「もしかして未完成ですか?」ぐらいの出来にしかなっておりません。もう、しょっぱなからバグチケットがでるわでるわ、いやまあ実際半製品状態で、作業品質も悪いもんですから、何一つテスト仕様書の通り動かない。 そのテスト仕様書も、システムの仕様の変更にあわせて更新されておらず、併せて確認することになっている詳細仕様書も同様に更新されていない……とにかく品質が悪く、プログラマの動作確認やSEの作業チェックも全く存在していないかのよう。 結局、何が本来あるべき状態なのかを確認する手段が、「書類と違うんですけどいいんですか?」と開発に問い合わせることしかない。

もー、この時点でほんとにめんどくさいことに巻き込まれたと思ってしまいましたね。 でもまあ、まだはじまったばかりで期間も1ヶ月ちょっとあるので、なんとかしてみようと開発側にも色々働きかけをしておりましたが、なんか歯切れが良くない……(ちなみに開発は拠点が違うので、直接作業状況は見えません)

こんな半製品、かつ書類も同期が取れていない、という状況で外部のテストチーム(しかも開発経験なし)がテストするのは無謀以外のなにものでもないですね。だってもう、書類と動きが違った時点で、それをよしとするのか、明らかにシステムとしてバグってる(もしくは出来てない)のか判断することが出来ないわけですから、製造側をシメて、まともなものにするのが先決ですよね。

でも、そもそもこのシステム、開発スタート段階から超突貫工事状態の上、どうやら開発側も経験やスキルが決定的に不足していて、そういうコントロールが出来る状況ではなかったんですね。 もう、とにかくテスト工程に持って行って上がって来た粗を順番に潰す、という泥沼まっしぐらの泥縄路線、タヌキさん泥舟に乗っちゃいました的な状況でございました。

さあどうするか……って、もうテストチームが出来るのは、とにかくがんがん動かしてシステムと仕様書の粗を報告し続ける、という、システムのテスト業務をやっているのか開発作業の確認業務をやっているのかわからない、モグラ叩き状態に突入するしかないんですね。 ただ、かなり救われたのは、テストチームのメンバーの習熟が速く、ほんとに淡々と着々と作業を進めてくれたことですか。開発業務の経験がなかったことが逆に良かったかもしれません。経験があったら、もう2,3クリックした時点で、「出来てねーじゃん、ちゃんと作ってからここにもってこいよ」って絶対怒るレベルですから。

もう、2,3日で積み上がる積み上がる不具合報告の山。それを片っ端から処理していく開発チーム……

でもね……そもそも作業品質が悪いので、修正されたはずがちゃんと動かない、修正したところに新たなバグが出る、仕様書と違う結果になる……という、3歩進んで2歩下がるを地でいくような毎日が繰り返されましたよ。もう、ほんとに悲しい毎日。 ああ、もし手の届くところに開発チームがいたら僕は空でも飛べるのに、って感じでした。 事実、開発チームは日本と中国にまたがっており、その役割分担はよくあるオフショア失敗パターンでしたよ、ええ。ほんとに空飛べないと蹴っ飛ばすことも出来ない状況でしたよ、ええ、ええ。

まあ、そんなことを繰り返しつつ、1ヶ月ちょっとのお勤めを終えて来たというわけです。 結果ですか? いや、一応一通り用意されたテスト+αはこなして来ましたよ。 まあ、投入したりソースに見合った品質向上になったかどうかはちょっとわかりませんが、少なくともさあこれからテスト工程だ、っていうぐらいの品質にはなりました、っていうかこの状況ではそこまでしか無理。

もうなんかほんとに残念ですよねぇ、崖に向かってじりじり進んでて落ちていくのが分かってるのに、とにかく叫んで注意喚起するしかなく、しかもその声も届かない、という感じです。 切ないプロジェクトでしたが、個人的には色々得る物がありました。 Redmineの使い方とか、Subversionはじめバージョン管理の大事さとか、どのようにシステムをテストするかとか、なんか久しぶりに色々調べた感じです。やっぱり生きた事例で知見を広げるというのは気持ちのいいもんです。せっかく再燃したので、来週からもうちょっと色々調べてみようかと思います。

そのプロジェクトも何とかどこかで持ち直して、ちゃんとリリースされることを願うばかりです。