経験や学位無しでソフトウェアテスターに​​なる:実践的な提案

最近、私はソフトウェア・テスティングが、コンピューターと共に暮らす人々、言い換えると、IT業界に入りたい人にとって、とても人気の高い選択肢となっているのに気づきました。胸が痛いのは、多くのテスターが力の質を放棄し、経験と知識で開発者になるということです。私の意見では、良いQAまたは良い従業員は、明確な目標を持ち、選んだ専門分野で花を咲させるために努力しています。もし品質を保証する事があなたの人生で成したい事なら、この記事はあなたの参考になります。現状の「QAの取り合い」の良い側面は、市場に多くの価値あるコースが現れてくることです。学校は、開発やWebセキュリティ関連のものだけではなく、ソフトウェアテスティングの専門分野を提供しています。これは品質保証(QA)エンジニアの質にプラスとなるはずです。 この記事では、テスティングへどのように入り、ジュニアレベルのIT職につけるかに焦点を当てます。

最初に来たのは、テスターかバグか?

テスティングは非常に興味深いものです。なぜならソフトウェア開発のように退職まで一つの事にこだわるのではなく、色々な事を試せるからです。 バックエンド開発者は、永遠にJavaを使い続けます。それは退屈ではありませんか?テスターと看護師、そして開発者と医者を比較をしてみましょう。一方はうまく機能している職場で他者なしでは存在できず、両者が、患者がテーブルで死ぬのを避けるために緊密に協力しなければならないのです。また長年働いている看護師が、常に医師の陰となっているにもかかわらず、医師と同じかそれ以上の知識を持っている場合もあります。それがテストエンジニアの信念です。それはとても謙虚な業務であることを知らなければいけません。テスターはいつも 評価されるわけではない上に、多くの状況で責任を問われる立場です。これは、テスターがリリース前の製品に触れる最後の人(デプロイメント担当者は例外で、それは別の種類になります)だからなのです。前もって手を打つべき事を理解すれば、良いテスターになれるでしょう。陰の部分があっても、それを覆うことは悪いことではありません。それはポジティブな事で、結果的に問題回避に役立つ直感が得られ、責任を持てるようになります。もちろんテスターはターミネーターではないので、 間違いだってあります。我々は、検出されたもの全てを確認しなければならず、ステークホルダーはそれを知っています。彼らはソフトウェアの品質保証で、我々が行なった事を知る必要があるのです。それは全ての反復を完了し、テスター全員がそれを理解すべきプロセスであるを意味します。私にとって、ソフトウェアテスティングの仕事は2つあります:テスティングとテスティングの組織化(管理は全く別の話で、これら2つの中のどこかです)です。ここではそれについては書きませんが、組織化はおそらくジュニアQAの仕事ではないものの、ジュニアからレギュラーレベルになれる最善の道です。

追いかけましょう。ソフトウェアテスターが日々している事は何でしょうか?

グラフのパーセント値は空から取られたものでも、単に時間消費量を表すものでもなく、要求される仕事の重要性と量です。これは私自身の経験に基づいていて、各チャートの説明は次のとおりです。

手動と自動のテスティング ― これは、その仕事そのものなので、双方ともトップにあげています。手動でするか自動でするか、その両方を日常業務でするかです。チームの構造と戦略によって変わります。

・構造- チームが自動化のスペシャリストで構成されているなら、自動化に時間を費やして、手動の方は別のチームに任せるのです。又、手動テスターのみのチームなら、1日の予定に自動化は用いません。混合のチームなら、自動と手動の両方が可能です。私はそういうチームに所属しており、上手くいっています。このチームは非常に良いカバレッジを持っています。

・戦略- どちらのテスティング方法も重要 ― 自動は手動の完全な置き換えにはなりません。それはプロジェクトの種類によって違います。時にはソフトウェアはとても簡単で、多くのデータや入力無しで、100のテストケースが完全にカバーしてくれます。必要のない所で自動化にするのは、自動化を全く考慮しないのと同じほど問題です。これは労力とコストの問題 ― 自動化には多くのメンテナンス作業で時間がかかり、手作業でシステムをテストするようなものです。アプローチは、取りかかる前に十分考えなければなりません ― 私は全てを自動化するのは無駄があると思っています。なぜなら、誰もがそれはやり過ぎだし、全てのプロジェクトに通用するわけではないと言っているからです。人々は自動化が将来の為だと言っていても、私の意見は変わりません ― どうなるかはまだ見ていませんが、まあ、これはただの私の意見ですから。

・テストケースの作成  ― もう1つの基本的なソフトウェアテスティング作業です。水のない暮らしも、テストケースのないテスティングもあり得ないのです。アドホックと呼ばれる構造化されていないテスト方法がありますが、私の意見では、ベテランであっても、テストケースは書くべきです。テストケースでは、方法やテストするものを教えてくれるだけでなく、詳細なソフトウェアドキュメントとしても機能するのです。― 多くの場合(又は毎回?)、各製品の機能がどのように動作するかを記述したwiki等はありません。チームメンバーは時間がかかると、何らかの基準を忘れてしまいがちな為、はっきりしない部分を散らしてしまいます。テストケースは明らかに最新の状態をキープしているべきで、もしプロジェクトの変更が頻繁で、尚且つ人手が限られるなら、一人の作業を増やすことも考えなければいけないのです。

・管理の問題 ― テスターとしては、毎日のreddit feedを読むように、プロジェクトボードを読む必要があります。公けにされている問題、作業中の問題、又、既に検証済みで終了している問題等を知っておくべきです。あるケースでは、ひとりで仕事をリードします。しかしながら、なるべく早く日常業務に取り入れるのがベストなのです。重複した報告を避ければ、プロジェクトをより良く知ることができます。私はあなたの問題だけでなく、全ての管理問題について話しています。

・環境処理 ― あらゆるソフトウェアは、作動する環境がすっきりとして最新のものでなければなりません。それが、この仕事です。

・ジェンキンスの維持 ― 上記に関連して、ソフトウェアの自動配備は大いに役立ち、ジェンキンスのような継続的な統合ツールは、あなたのリストに載せると良いでしょう。遅かれ早かれ、これは要求されます(開発があまりに忙しいので…)。

・計画 ― ソフトウェア開発の一部です。テスターと開発者はこれに参加し、両方の視点から、作業を完了するのに要する時間を見積もります。

・会議と連絡 ― 必要悪です。

このIT分野での開発経路は何でしょうか?通常は:

手動テスター → ツールを書けるテクニカルテスターと、自動化スクリプト → 管理者

どう進めたいかはあなた次第で、誰もがマネージャーや自動化エキスパートになりたいわけではありませんが、これは知っておいて下さい:誰にでも多くのバグは付きものです。あなたは自然体で、ただ最高のテスターになる事に集中しましょう。あなたがJiraで何かを報告すると聞いたら、開発者は恐怖を感じます;)

ドアに足を入れる

履歴書に戦争経験がない場合、面接は簡単ではなく、カバーレターはモチベーションを反映せず、知識は難関を乗りきるのには弱すぎます。ですから私の経験に基づいた、あなたの助けになり得る6つの提案をここに載せました。

提案1- 見つけた求人広告に全て応答する

最近、私のプロジェクトにジュニアテスターが必要だったで、候補者の選考と面接を担当しました。再検討すべき履歴書は3つでした:

表からすると、おそらく候補者3を雇ったと思うでしょう。違います。驚いたことに、私たちは候補者2を選びました。理由は、ジュニアを探してレギュラーレベルに育てたかったからです。まず初めに、QAに雇うのは、単に履歴書やカバーレターに基づいたことではなく、雇用者のニーズに合っていたことに気付いて下さい。ですから私の最初のアドバイスが、見つけられる全ての求人広告に対応して、というのはこういう由縁からなのです。

提案2- インターンシップ

私がいる会社には、テスターと開発者のたインターンシップ・プログラムがあります。これは無料で働くことになりますが、面接に呼ばれるか否かにかかわらず、堅実な履歴となり得るのです。無料で働く事はあなたの期待ではないでしょうが、このプログラムには、午後に予定される会議が含まれています。もしテスターを受けることに決めたら、プログラムにサインし、仕事の後で会議に参加します。完全な開発サイクルがあるので、実際にどのようにやっていくのかを学ぶことができます。もう一つの利点は、プログラムが終了した後に、新しい人脈や仕事のオファーがくる可能性があるという点です。この会社は通常は、やる気のある人や最大の可能性を秘めている人を雇用します。

提案3- ISTQBまたは理論を身につける為のオンラインコース

新たな旅の初めには、理論について部外者であってはいけません。私の経験から、このポジションの面接は殆ど理論を中心にします。私の仕事にコンセプトを使ったことがないので、面接者が何を尋ねるのか分かりませんでしたが、テスティングに関する本にもあります。驚かれるのを避けるために、下記をお勧めします:

・テスティングに関する評判の良いオンラインコースを受ける(全ての大きなeラーニングサイトにある)―

これは履歴書に書け、面接者の目にはあなたがより大きく映るものの、最も重要なのは、知識を増やして面接に受かる事です。

・ISTQB試験に合格する―

これはソフトウェアテスターが得られる最も有名な証明書です。カリキュラムは、テスティング概念全てではないにしても、実生活で使われているものと、そうでないもの等、少なくとも知識は十分で、面接の際に適用できます。また、ISTQB証明書は、ジュニアは殆ど持っていない為、あなたの履歴は目立つでしょう。基礎レベルで十分です。多少の費用はかかりますが、この分野で仕事につくと決めたなら、投資になります。

この両方のオプションは有料なので、仕事を得るのに投資するかどうかを決断しなければなりません。私の見解では、有料モバイルゲームのアドオンと比較することができます。スキルをだけでレベルを上げることも、お金で追加ポイントを買うこともできますね。最終目標はどちらの方法でも達成可能で、有料オプションは経路をより簡単にするだけです。 もし私なら、オンラインコースを取るでしょう。それはビデオ、プレゼンテーション、テストがあり、ただの暗記するテキストの壁でないからです。

提案4- オープンソースへ参加

github(ギットハブ)を聞いた事がありますか?

ないですか?オープンソースプロジェクトと呼ばれるウェブサイトです。人々は何でもできるソフトウェアを作り出し、小さなライブラリからフレームワークを完成させ、誰もが関心を持つギットハブにソースを置きます。それはただ製品を表示してダウンロードするだけではありません。コミュニティに参加し、開発に参加することもできるのです。

開発者はプロジェクトに参加して新しい機能を作成することができます。テスターは、問題の発見、報告、検証を行ないます。これはプロジェクトを学び助ける素晴らしいチャンスでもあります。ギットハブを拾い読みして好きなプロジェクトを選択し、必要ならオーナーに尋ねることもできます。又、選んだプロジェクトを配備してテストし、ギットハブでトラッカーの問題を報告して下さい。それであなたはレーダーに乗るでしょう。直前にプロジェクトのreadmeとガイドラインをよく読んでおいて下さい。バグの報告方法と場所に関する情報がありますから。これを省いてメンテナーをがっかりさせないよう、詳細に注意しましょう。

ギットハブのプロジェクトは、主だって使用されるプログラミング言語と星でフィルタリングできます。星は丁度facebookと同じ目的- より多くの星は、より多くの人気を表わします。

プロジェクトを選択する時の、ひとつのアドバイスとして、Redditのような何年も存在するものや、Googleのような大企業で作られたものには行かないでください。それらには数多くの問題が報告されており、メッセージの多すぎ、コミュニティの大きすぎで、あなたが望むようなものではないかもしれません。私はむしろ軽度な人気のアプリケーション(星は 200個より多く1500個より少ない)や、フレームワークに行くでしょう。ギットハブの「トレンド」セクションに行き、検索してみて下さい。時間範囲を 「今月」に変更し、PHPを使用することをお勧めします。この言語で書かれたプロジェクトは、展開がとても簡単で、ウェブベースなのです。勿論、あなたが興味ある言語を自由に選ぶもできます。 トレンドページは次のとおりです。

ある程度星を持っているので、おそらく実際に人々が使用しており、会社によって開発され、複数の寄稿者があり、テストの観点から興味や旨みがあることを意味します。つまり、多くのサブページと入力コントロールがあり、問題検出の可能性も高いということです。確かに悪い選択ではありません。

ところで、それをただ無料の仕事だと思わずに、履歴とコミュニティを愛する為と思って行なってください。あるプロジェクトは個人によって、又あるものは企業によって開発されています。企業はコミュニティを気にし、ビジネスモデルとしてオープンソース化しています。例えばオープンソース製品を無料で提供しても、アドオン、プレミアムバージョン、サポートのためにお金は稼いでいるのです。もしあなたが背後の会社のオープンソース製品に価値を与えるなら、あなたは彼らに知られて雇われるのでは?その可能性は常にあるのです。

とにかく、オープンソースに参加することは、履歴書により良く、あなたが報告した問題の数や、チームで修正した問題の数などの情報を追加すれば、更に良いです。

提案5 -  技術に精通する

既にあなたのレコードの為にはなっているはずなので、大手出版社から少なくともブラウザ4つ、多くの人が使用する主要なモバイルオペレーティングシステム2つに、ネーミングされる事に慣れておいて下さい。それがスタートです。求人広告では通常、携帯端末やウェブテスターを募集していますが、そのどちらかに限定するべきではありません。私が思うに、ブラウザとモバイルデバイスを快適に使用できる事は、今日では欠かせないものであり、多くのWeb製品がモバイル版やアプリを持っている、又は計画しているからです。ブラウザーとモバイルOSシステムで、あなたが答えられるようにすべき質問は?

・JavaScriptを聞いたことがありますか?

・JavaScriptのエラーや警告を読む方法が分かりますか?

・アンドロイドをエミュレートできますか?

・iosをエミュレートできますか?

・これらのエミュレーター機能は何ですか?gpsエミュレーションやローテーションエミュレーションのサポート等

・他のapiは何ですか?

・主なブラウザでcacheとCookieをクリアするやり方は?

・cacheとCookieをクリアする理由は?

・アンドロイドの拡張機能アプリは何ですか?

・iosの拡張機能アプリは何ですか?

又、オペレーティングシステム面で、おそらくあなたは使った事があると思いますが、WindowsとMac OSの基本知識は必須で、プロジェクトが特定のもの(例えば、Windowsデスクトップアプリケーションのテスト)を要求されなければ、心配いりません。

Linuxは基本的なレベル(ディレクトリツリーの操作、テキストファイルの表示と変更、作成のようなファイルシステム操作、コピー、削除、移動、解凍、wget経由のファイルダウンロード)を常に知っている事― Webサーバーは殆どLinux上にあり、製品のテスティングを展開することができると、面接者に知ってもらいます。

テスティングはさまざまなツール無しではできないものの、知るべきツールのレシピはありません。全てのプロジェクトには独自のツールセットがあり、オンボーディングプロセス中に知ることができるものです。でもあまり心配しないで下さい。もし募集者にどんなツールを知っているか尋ねられ、否定的な返答になっても恥ずかしがる事はありません。誰もツール全部を知っているわけではないですが、技術に精通した者として直ぐに学び取れる、これが有効な返答として受け入れられるのです。

提案6 - キラーカバーレターを書く

私はソフトウェア開発者として今までに、.netコードを書いていました。開発者として働いていても(私がジュニアだった時も)、心の中では大きな火は灯らなかったし、引退を迎えるもっと早くに嫌になるだろうと感じていました。ある時点で、私はフリーランスとしてX社のソフトウェアをやることになったのです。ソフトウェアが完成した後、私は会社の人と共にそれをテストしました。私は本当にそのプロセスが楽しく(発見した問題を修正しなければならなかった)、プログラミングではなく、これをやっていこうと決めたのです。それは私が一点突破した瞬間でした。私は地元のビデオゲームを制作する会社に、とても正直なカバーレターを書き、雇われることになりました。それから私は5年間の幸せなQAをしています。

私は、カバーレターが私のアプリケーションを魅力的にさせ、自分自身の認識にも影響を与えたと感じます。雇用後の初日、私は品質保証を使命とする人として紹介されました。これは正直なモチベーションが見てとれる堅実なカバーレターが、魔法を発動した良い例です。これを考慮すると、デフォルトのテンプレートでオンラインツールによって作成されたもので、誰が面接に呼ばれるチャンスが多くなるでしょうか?あなたの履歴がさほど強くなくても、募集者はあなたの手紙を読み、面接に招待する可能性は高いです。これはチャンスです。

最後に

最後まで読んでくれてありがとうございます。

私の意見では、経験や学位無しにソフトウェアテスティングの仕事をするのは可能ですが、確かな準備は必要です。雇用主に、あなたがとても意欲的な候補者であることを証明しなければなりません。それは既にテスティング理論の学習に多くの時間とエネルギーを費やし、経験があれば、より有利です。このような履歴書と非常に強力なカバーレターを持って面接に望み、それがしっかりできれば、あなたの最初のQAの仕事がきます。なぜなら、あなたはしっかりやるでしょう?幸運を。