デバッグ作業とは、ソフトウェアの誤り(バグ)を見つけ修正する職業です。
コンピュータのソフトウェアの誤り(バグ)を見つけ修正する。 仕事には幅があり、バグを見つけることだけを行う人もいれば、バグの原因を検討し、見つかったバグの修正まで行う人もいる。コンピュータ・ゲーム開発では、ゲームテスターとしてもっぱらバグを見つけ、修正までは行わないことが多い。仕事の流れとしては、ソフトウェアの確認方針を決定し、確認項目一覧を作成し、所要日数や所要人数を検討してチームを作り、手分けして、確認を行う。バグは想定外のところにもあるので、人海戦術でしらみつぶしに確認する。
コンピュータのソフトウェアを開発する場合、基本設計、詳細設計に沿ってプログラミングが行われるが、ソフトウェアができるとこの設計のとおり稼働しているか確認し、デバッグ(バグの修正)が行われる。大規模なソフトウェアの場合、出来上がった部分から確認を行い(単体テスト)、デバッグを行う。出来上がった部分を接続しまとめていくが、この段階でも動作確認(結合テスト)、デバッグが行われる。全体が完成すると全体を通しての動作確認(総合テスト)、デバッグを行う。大規模かつ複雑で、新規に開発された部分が大きいソフトウェアの場合、バグを見つけ修正、そして検証を繰り返し、これに何か月も何年も要することがある。最初に述べたように、バグを見つけることだけを行う場合と、バグの原因を検討し、修正まで行う場合がある。バグの発見だけを行う場合は、このような条件でこのような誤った動きになるとレポートとしてまとめ、ソフトウェア作成者に連絡する。
開発から独立した第三者の立場で、正常に動くか、問題が発生しないか等々、テストを繰り返し、ソフトウェアの品質保証をすることをQA(Quality Assurance)といい、この部分をもっぱら行う場合、QAテスター、QAエンジニアと呼ばれる。
現在では既に多くのソフトウェアが稼働しており、オペレーティングシステム(OS)のアップデートに対応するために、既存のソフトウェアの修正が必要になったり、より良いシステムにするために、ソフトウェアを修正する必要が生じたりする。また、ソフトウェアが関係する機器が新しくなり、そのためにソフトウェアの修正が必要になる場合もある。この場合でもソフトウェアの修正で新たにバグが生じていないか、確認が必要となり、デバッグが行われる。最近では様々な機器にコンピュータが組み込まれ、機器の制御がソフトウェアで行われているが、見つかったバグを修正するため機器のハードウェアまで手直しする人もいる。
コンピュータ・ゲームの誤りを見つけることだけを行っている場合、ゲームテスター等と呼ばれる。最近のコンピュータ・ゲームはスマートフォン用が多いが、パーソナル・コンピュータ、ゲーム専用機のゲームもある。最近のコンピュータ・ゲームは複雑になり、開発の後半はもっぱら、ゲームの展開やタイミングの調整と、動作確認、デバッグであり、この部分に半年から年単位でかかる場合もある。スマートフォンは多くの機種が発売されていることから、一般に利用されている機種全てで、問題がないか確認する必要がある(iPhone、Android、合わせて数十機種となる)。最近のコンピュータ・ゲームのデバッグは大がかりな作業であり、数十名、数百名がチームで行う。コンピュータ・ゲームのデバッグはゲームが好きな若者にとっては願ってもない仕事であり、高校生、大学生がアルバイトとして参加していることも多い。この場合、発売前にゲーム内容が漏れることが無いよう、守秘義務の厳守が徹底される。
◇ よく使う道具、機材、情報技術等
パーソナル・コンピュータ、スマートフォン(様々な機種)、ワープロソフト(Word等)、表計算ソフト(Excel等)、プログラミング言語(Java、C++、Visual Basic等)、ソフトウェア開発環境
入職にあたって必要とされる特定の学歴や資格はないが、ソフトウェア開発でのデバッグでは、それまでシステム開発等を行ってきたベテランが行うことが多い。バグの原因は様々なので、いろいろなシステム開発を経験し、いろいろな状況をイメージできる中高年が行うことが多く、シニアも活躍している。
一方でコンピュータ・ゲームの場合、ゲームが好きな高校生、大学生がテストセンター(ゲームのデバッグを専門に行う施設)に集められ、ゲームを行い、バグをみつけていく。このような中から正社員として、テストを行う会社やゲーム開発会社に就職するのも、一つの典型的なルートとなっている。会社に就職し正社員になると、テストを行うチームをまとめる役割を担うことになる。
バグの修正まで自分で行う場合は、プログラミング言語、オペレーティングシステム等の知識も必要となる。ハードウェアの手直しまで行うのであれば、ハードウェアの知識も必要となる。コンピュータ・ゲームのテストであれば、長年、様々なコンピュータ・ゲームをしてきた経験がバグの発見に役立つ。
最近のコンピュータ・ゲームは海外でも販売されており、様々な言語で開発される。このため英語、中国語等に堪能な人が求められることもある。文化や法律の違いも意識する必要があり、発売予定の現地で採用される人もいる。
バグによるシステムのトラブルを避けるため、細かな作業を繰り返し、繰り返し、丹念に行う根気強さが求められる。顧客のシステムであったり、発売前のゲームであったりと機密性の高い情報に接することから、守秘義務を遵守することも必要である。デバッグはチームで行い、開発担当者との連携が必要なこともあるため、コミュニケーション能力も求められる。
勤務先はソフトウェア開発会社、メーカー、また、デバッグを専門に行う会社である。このような会社は大都市に多いが、地方都市にもある。また、リモート環境が広く整備されてきたことによって、大都市の会社のデバッグを地方都市で行うこともある。
ただし、機密性が高い情報を扱うため、自宅で作業することはなく、会社内やテストセンターで行う。
開発の中でデバッグ作業を行う者もいることから、開発を行うエンジニアとの境目がなく、就業者数の確定は難しいが、ソフトウェア制作には常に必要な作業であり、今日、ソフトウェアが大規模になっていることから、デバッグにも人数が必要であり、かなりの人が従事していると考えられる。ゲームテストだけに関しても正確な統計はないが、各地にテストセンターがあり、常時、数百人規模の人が働いていることから、全体では数千人はいることになり、ゲームのテストでは時間を区切って交代で作業を行うことから、その何倍も従事していることになる。
現状では就業者は男性の割合が多い。ソフトウェア作成、システム開発のデバッグでは40代から50代が多い。ゲームテスターは高校生、大学生のアルバイトなどの若年者が多く、女性も増えている。
雇用形態としては、ソフトウェア作成、システム開発で行われるデバッグでは正社員、または協力会社の正社員が大半である。賃金は社内規定による月給制が多い。通常の朝から夕方までの勤務であり、週休2日制となっている。開発の山場や問題点が見つかった場合など、残業が多くなることもある。
今日、各方面での情報化が進んでおり、デジタル化、DX(デジタルトランスフォーメイション)が進められている。情報化の進展のためにはデバッグは必須であり、様々な開発とデバッグは表裏一体となっている。単体のプログラム作成ではテストが一部自動化されているものもあるが、最後は人が逐一確認していくことになり、完全な自動化は難しく、今後も需要のある仕事と言える。
業界をまたいで、AI 影響度が同水準の代表職業(規模順)。