BLOG.tass.io

あなたが「ソフトウェアテストのプロフェッショナル」為り得ない10の理由

2014-11-14

「10 reasons why You are NOT a Professional Tester!」という記事があったので、私なりの解釈で、簡単に書き出してみました。 以前の職場で部署横断のテスト専門チームに所属していたのですが、テスターは開発者の言われた通りに、黙々と手作業でテストを行っていたイメージがありました。 この記事で、「テストのプロフェッショナル」ってなんだろうと考えなおすきっかけになりました。 大いに意訳しちゃってますので、英語が大丈夫な方はぜひ原典にあたってください(ノω・)

原典

10 reasons why You are NOT a Professional Tester! — Part 1

http://qablog.practitest.com/2011/11/10-reasons-why-you-are-not-a-professional-tester-part-1/

10 reasons why You are NOT a Professional Tester! — Part 2

http://qablog.practitest.com/2011/12/10-reasons-why-you-are-not-a-professional-tester-part-2/

1.テスティングは技術的な職業ではないと考えており、ソースコードを理解しようとしない

開発中のプロジェクトを分析し、修正がどのように影響し、追加のバグを引き起こす可能性を考慮するためには、コードを読める必要があります。 「ホワイトボックステスト vs ブラックボックステスト」の議論を隠れ蓑に、コードから逃げる時代は終わりました。 あなたがコードから逃げ続ける限り、テストプロセスにとって非情に重要なインプットを得ることができません。

2.「テストしていいよ」と言われるまで、開発プロセスに関わることがない

あなたはどのタイミングから開発に関わり始めますか? セオリーでは、要件の収集と分析フェイズから関わり始めるべきと言われます。 しかし現実は、「さあテストが出来る段階になったぞ!」と声がかけられるまで、プロジェクトからのインプットがほとんどない事もあります。 「テスターではない別の誰か」によって作業の開始時期は計画され、開発プロセスの最終盤に仕事が集中し、厳しい納期の中でテストに追われます。 テスターはテスター自身で、タイムマネジメントできていますか?

3.あなたが顧客と直接係るのは、「不具合の再現テストをしてくれ」と言われた時くらいである

あなたの仕事は、「製品がリリースされ、現場で使われた時に重大なバグが発生しないようにテストする」ことです。 あなたは顧客の現場でどのように製品が使われるか知っていますか?顧客と直接あって話したこともないのに、使用する状況や顧客のニーズ、使用上の制限などを知ることができるでしょうか? 開発チームの中で、顧客の代理人となるべきです。 その上で、あなたはテストに必要な環境を準備し、ニーズと制約に基づいて機能的フィードバックを提供することが期待されています。

4.テスターとして範疇だけで、リスクマネジメントを行っている

みなさんお分かりだと思いますが、「余すこと無く全てをテストする時間はない」ことは自明です。 つまり、テスターとはプロジェクトにとって何がリスクであるのかを把握した上で、優先順位をつけて、必要なところに必要なリソースをかけてテストを行う必要があります。 プロジェクトにとってのリスクとは、「計画外の問題が発生する」ことです。 それらを把握して問題を早期発見し、問題の芽を摘み取ることがテスターに求められています。

5.テスティングの価値を向上させるための長期的な計画を持っていない

テストの専門職というのは、多くの点で未知の領域が多い職務です。 あなたがテスターとして、これからより専門性を高め、価値の高いテスティングを提供していくために何が必要なのか、その方法はあなた自身が真剣に考える必要があります。 テスターとしてどのような強み・弱みがあるのかを客観的に分析し、どのようなスキルをいつまでに身につけていくのか。 プロフェッショナル・テスターであるためには、長期的に自分自身を成長させる計画を持っている必要があります。

6.自分の仕事は「事前に検討されたユーザーシナリオ」を元に、テストスクリプトを書いて実行することだと思っている

近年テスト自動化が進んで、テストスクリプトを書くことがテスターのニーズとして高まっている状況があります。 ですが、設計段階で詰められたシナリオを元に、自動テストのスクリプトを書いて実行するだけがテスターの仕事ではありません。 テスターの観点から設計にも関わり、プロジェクトのリスク分析を行い、自動化フレームワークを整えて製品の安定性を継続して維持すること等、多くのことが求められています。 テストの合否を通知するだけが仕事ではありません!

7.自動化やスクリプト化は先端技術であって、余裕があるときに勉強する程度でいいと思っている

6.とは逆に、全く自動化が進んでいないプロジェクトもあります。 「自動化は、ツールベンダーが製品を売り込むための嘘であり、全ての問題を解決する魔法の薬ではない」と考えている人もいます。 ある意味は正しく、自動化は銀の弾丸ではなく、全ての問題を解決してくれるわけではありません。しかし、それを言い訳にして、自動化から逃げていませんか? テスト自動化や日常作業のスクリプト化は、確実にあなたの仕事を効率化し、時間を節約することができます。 あなたが自動化に取り組まない事は、ライターがある時代に、あえて火打ち石やマッチを使い続けるようなものです…。

8.上から目線でテストを行っている

「全く、開発者はこんな安易なバグを出しやがって、ちゃんと仕事やれよ、、、」なんて思ってませんか? 良いテスターは、謙虚なテスターです。開発者とテスターで正しいコミュニケーションがとれず、ギスギスした雰囲気になることもあります。 プロフェッショナル・テスターは、ミスが発生した原因を冷静に分析し、正しく開発者にフィードバックする方法を知っています。 逆に開発者から指摘があったときも、真摯に受け止めて改善するマインドを持つ必要があります。

9.テスターの専門スキルとして何が必要か、ニーズやトレンドを追い続けていない

ソフトウェアテストは、疑いもなく「職人技」です。 現状持っているスキルと、こんなスキルがあればより仕事の質を向上できるというギャップを、常に意識する必要があります。 これら短期的な向上の視点は、5.の長期計画にも反映されていくことでしょう。

10.テスターのキャリアパスは「マネージャに昇格する」か「別のキャリアに移動する」しかないと思っている

これは特に、日本だと難しい課題だと思います。 実際、新人プログラマはテストを任せられて、テスターを卒業してからプログラマとして独り立ちさせる企業もあります。 テスター=下働きのような偏見もありますが、実は、真の意味でプロジェクトを舵取りするのはテスターの役割です。 日本ではまだまだ価値を認められていませんが、テスティングについてより深い理解をもち、リスク管理もできるプレイングマネージャーこそ、プロフェッショナル・テスターです。


Michael Kuroneko

Written by Michael Kuroneko. Follow me on twitter, github.