プロローグ ~ある新人配属当日の光景~
新人研修も終わり、晴れて配属となったA君。不安と期待を胸に職場のドアを開けました。
- A君「Aです!はじめまして!」
- M先輩「私が君の教育担当となるMだ、頑張ってな。」
- A君「はい!」
- M先輩「じゃぁ早速だけれど簡単な仕事をやってもらおうかな?」
(うわー、早速プログラムを作れるんだ!)
A君は期待に胸を膨らませながら先輩の次の一言を待ちました。
- M先輩「仕事に取りかかる前に、プロジェクトについて説明しよう。このプロジェクトは○×社様向けのソフトウェアを作っているんだ。ちょうど先週からテスト工程に入ったところだ。Aさんにもテストをやってもらおうと思っている」
- A君「え、プログラム作るんじゃないんですか?」
- M先輩「まぁ配属されたばかりだし、ちょうど人手が足りなくてね。ここにテスト手順書があるから、このとおりにテストやってくれれば大丈夫だから。この部署の雰囲気になれるためにも、ひとつよろしく頼むよ」
(新人研修でテストなんかやっていないよ!)
A君の不安をよそに、先輩は自席に戻りソフトウェア仕様書と書かれた何枚かの紙を持ってきました。
- M先輩「これが仕様書ね。テストはこのマシンを使って。」
- M先輩「じゃぁ、俺は自席で仕事してるから、テストが終わったら声をかけてよ。」
期待に胸を膨らませて職場に来たA君は途方にくれてしまいました。なぜなら、A君はプログラミングは学校で勉強したものの、テストは勉強したことがありません。新人研修でも詳しくやることはありませんでした。
- A君「先輩は簡単だって言ったけれど、テストってどうやればいいんだろう…」
A君は立ち尽くすしかありませんでした。
さて、A君はいきなり途方にくれてしまいましたが、同じような経験をした読者の方もいるのではないでしょうか?
国内の開発現場においては、新人の現場配属時の最初の仕事として、テストのお手伝いを指示されることが多いようです。プログラムが書けると思って期待していたらテストの手伝いだったため、勝手が違ってしまい仕事のミスをしてしまう人もいます。この最初の仕事で大きなミスをしてしまうと職場からの印象が悪くなってしまい、将来やりたかった仕事にまで影響してしまうかもしれません。
そんなことにならないように、第1回は、新人がおろそかにしがちな準備・確認事項・心構えについて、最低限押さえなければならないポイントを解説していきます。
テスト実施前に確認すべきこと
テストは作業、つまり仕事です。
テストを仕事として捉えたときに、最低限確認しなければならないことを押さえる必要があります。また、当然のことながらテストについて確認しなければならないこともあります。これらについて、ポイントをいくつか挙げてみましょう。
仕事について
仕事にかかわる人を確認する
仕事の中の作業を行うときは一人かもしれませんが、仕事は報告や相談など他の人と協力や協調して行わなければなりません。この時期は、仕事の経験がない新人にとってはまだまだ知らないことばかりです。誰かに質問や相談することが非常に多いですし、頻繁な作業報告を求められることもあります。
つまり、適切な「報・連・相」(報告・連絡・相談)を行うために、自分を取り巻く指揮命令系統を知る必要があります。
プロジェクトにはたいてい組織図や体制表といったものがあります。それを見せてもらい、自分がどのような人と仕事をしているのかを確認しておくことが重要です。要は、組織における自分の立ち位置を確認するということです。
まずは最低限、この2つを押さえておきましょう。
それから、報・連・相はエンジニアとしての基本動作でもあります。職場に慣れておらず、話しかけるのを遠慮してしまいそうな人は、とくに意識をしておく必要があります。
与えられたテストという作業の狙いをつかむ
新人の最初の仕事としてテストが与えられる場合、おもなものとして次の3つのケースが考えられます。
- テストは新人でもできる仕事だから、人でも足りないし手伝わせよう
- 開発しているソフトウェアを知らないのに、いきなりプログラムが書けるわけがない。テストを手伝ってもらうことで、ソフトウェアを勉強してもらおう
- プログラミングしたものは必ずテストされる必要がある。学校での勉強が足りないテストを担当させることで、テストのスキルを上げ、開発作業に活かしてもらおう
先輩がやれといったからやるのではなく、どのような意図を持っているのかを確認する必要があります。仕事の指示を出した人が何を期待しているのかを知らなくては、よい仕事はできません。この仕事にとんな意味があって、自分はどういった結果を出さなくてはならないのかをしっかりと認識しましょう。不安なうちは、早め早めに相談して、目的や意図を見失わないように心がけることが大切です。
なれないうちは、A4の紙に「目的(意図)・手段・結果」を大きく書いて自分の近くに張っておくのもよいでしょう。
さて、この中で1番目の意図の場合は注意する必要があります。なにぶん先輩がテストという仕事を軽んじていますから、新人が期待しているような支援はあまり得られないかもしれません。このようなときは、テスト技術を自由に学べる良い機会が与えられたと前向きに考えるとよいでしょう。テスト技術については、この連載記事の中でおいおい紹介していきます。
テストについて
自分のテストについての知識を確認する
テストに取り組もうと思っても、自分に知識や経験がなかった場合、当然ながらうまく対応できるわけがありません。まず最初に、自分のテストについての知識と経験を棚卸しましょう(知識とは仕事を行うための武器、そして経験とはその武器の熟練度と思ってもらうといいでしょう)。
さて、いきなり細かく棚卸をするのは新人さんには大変難しいことです。ここでは以下の問いを自分に投げかけてみましょう。
- テストという言葉を説明できますか?
- テスト技法をどれだけ知っていますか?
- テストの書籍をどれだけ読んだことがありますか?
この時点ですべてが×という人は、状況としては良くないですが、良くないことを認識できたので一歩前進と考えてください。他のことにもいえますが「できないことを、できないと理解する」ことは非常に大切なことです。
よく「頑張ります!なんとかします!」と掛け声だけは元気がいい人がいますが、「できないことは、頑張ってもできないし、なんとかもならない」のが現実です。しかし、客観的にできないことを理解する、つまり自分の弱点を理解することで、対策を打つことはできます。
おそらくこの時点では、ほとんどの方が全ての項目に×や△がつくと思いますが、この「知識がない」ことを解決するためにはどうしたらよいでしょうか?
答えは簡単です、新人向けと銘打たれたテストの書籍を1冊買って読むことです。新人時代にテストの作業をうまく行えないのは「知識・経験がないにもかかわらず、気合という根拠のないアプローチだけで解決」しようとしているからです。知識がないなら、他から仕入れればいいわけです。
なお、知識の応用には経験が必要ですが、新人には経験がほとんどありませんので困難なことです。まずはよりどころとなる書籍に書かれたことを実践すると良いでしょう。無理して背伸びしないことも重要なことです。
それから、経験は実践すれば積むことができますが、知識は自然発生しませんから、継続的に入手する必要があります。書籍を1冊読んだからといって満足せずに、さらに別の本を読むなど、知識入手の努力を行いましょう。
また、自分の知識を確認することで、できること、できないことが明確になりますから、プロジェクトチームに対して、自分が貢献できることを検討しやすくなります。
プロジェクトとテストの目的をつかむ
- そのプロジェクトが開発しているソフトはどのようなものなのか?
- テストの目的は何なのか?
今からテストしようとしているソフトウェアがどのようなものなのか、押さえる必要があります。
ソフトウェアの例ではありませんが、ブランコを例にとって考えてみましょう。もしあなたが「ブランコを開発している」と説明されたとします。あなたは、無意識にブランコを想像するでしょう。しかしこのブランコは、人によって想像するものが違います。ある人は一人乗りと想像するかもしれませんし、別のある人は二人乗りを想像するかもしれません。さらに、鉄製かもしれないし、木製かもしれません。一人乗りで木製のブランコについて、二人乗りで鉄製のブランコを想定したテストを行っても無駄です。
- ※参考
- Typical Project Life
イメージは曖昧なものです。曖昧なイメージを具体的なイメージとすることで、テストを考えるのが楽になりますし、的外れなテストを行わずにすみます。
また、開発するソフトウェアや、開発そのものの戦略によってテストの目的は大きく変わります。とにかくバグがない、つまり品質が高くなるようにテストするのか、それとも正常系の稼働確認だけでよいのか、ソフトウェアの機能だけをテストすればよいのか、それとも性能や信頼性などの非機能要件までテストするのかなど、目的によってテストのやり方が変わってきます。
作業指示されただけでは、テストの目的はわからないかもしれません。先輩に聞いても答えてくれないかもしれません。そのような時こそ、テストの目的を考えてください。自分の頭で考えることだけで、すぐにはわからないと思いますが、必ず仕事の質が変わってきます。
テストは品質の最後の砦であることを意識する
テストが終了したソフトウェアは、お客様の手に届くことになります。このテストを手抜きでやってしまうと、不具合だらけのソフトウェアがお客様の手に届くことになり、大変なご迷惑をおかけしてしまうことになります。
つまり「新人の仕事であろうと、テストをちゃんとやらないとお客様に迷惑がかかる」ということを意識してください。目の前の作業をこなすことで精一杯になってしまうことは仕方がないのかもしれませんが、その仕事はお客様につながっています。先輩のために仕事をするのではなく、お客様のために仕事を行っていることを意識しましょう。
そして、自分が今から取り組むテストを適当にやってしまうと、お客さんに品質の面でご迷惑をおかけしてしまうことを強く意識を持ち、プロとしてのプライドを持って取り組んでください。
「マインドマップから始めるソフトウェアテスト」では、ソフトウェアテストを行う意義を次のように定義しました。
ソフトウェアテストを行う意義
ソフトウェアテストを行うと、ソフトウェアが作られていく過程で入り込んでしまう“バグ”を発見することができ、そのバグを開発者が修正することによって、ソフトウェアを利用者が安心して利用することができるようになる。
また、出荷後にバグが出ないことで、ソフトウェアの回収と修正に必要なコストを削減し、企業のイメージ低下、ひいては倒産を防ぐことができる。
今からあなたが取り組むテストは「単なる動作確認ではない」ことを理解しましょう。
最後に
今回は、全部で5つの項目について挙げました、まずは最低限こういったところを把握することから始めましょう。
最初からすべての仕事をキチンとこなすことは難しいですし、新人は失敗するものだということは先輩達も理解しています。ただ、最低限のポイントを押さえることで、仕事の質が上がりますし、先輩たちも安心することでしょう。
- 常にポイントを確認しながら進めること
- 目的や意義を意識して作業すること
- 指差し確認
これらを意識しましょう。
では、これらをふまえた上で、次回からテストそのものについてのポイントを説明していきます。