プログラミングを勉強している中でバグ修正に苦しむことは多々あります。

特に駆け出しエンジニアの頃は知識や経験も無いため、解消するまでに多くの時間を必要とします。

未経験からエンジニアになった経験から、どうやったらバグを平和に解消できるのか本記事で解説します。

目次

前置き : バグは成長のチャンスと捉える

先日このようなツイートをしました。

バグを修正するというのは実に手間も時間がかかることなんです。

教材のように答えが決まっておらず、自力で問題を解決していく必要があります。

しかし、バグを修正することは多くの成長のチャンスを秘めています。

開発現場におけるバグ修正とは

Tranquilpeak
実はバグを修正するという行為には下記のようにいくつかの工程が必要となります。

ポイント

  • バージョン確認
  • バグの再現性確認
  • バグ発生箇所の原因調査
  • バグの修正
  • バグ修正後の再テスト

プログラミング学習初期の頃は特にエラーが出たらググってコピペして終わり、のような場合が多いかと思います。

しかし、これは実際の開発現場では通用しません。

まずはそれぞれの工程について順番に解説します。

開発現場におけるバグ修正その1 : バージョン確認

まずはハグが発生したアプリやWebサービスのバージョンを確認します。

バージョンとは各リリースごとにつける管理番号のようなものです。

この管理番号を元に例えば下記のような流れでバグの原因調査を進めることができます。

1
2
3
4
5
前のバージョン(1.0.1)ではこのバグは起きなかった
↓
今のバージョン(1.0.2)でこのバグが起きるようになった
↓
つまり昔からあるバグではなく、今のバージョンの機能実装でバグが発生した

開発現場におけるバグ修正その2 : バグの再現性確認

続いて端末の確認です。

端末と単に言っても確認することはたくさんあります。

ポイント

  • どのプラットフォーム(iOS/Android/Web)で起きるのか(もしくは全てか)
  • 端末のOSのバージョンは何か
  • 端末のハードウェアはどの世代のものか

実際の開発ではバグが発生した場合、自分の手元でもバグを再現することが必要になります(これを再現性確認と言います)。

バグを自分の手元で発生できないと原因特定が難しくなり結果修正も難しくなってしまいます。

そのため、バグが起きた端末の詳細な情報を把握することも重要となります。

特にAndroidは端末の種類が沢山あり、端末起因のエラー等もあるので注意が必要です。

開発現場におけるバグ修正その3 : バグ発生箇所の原因調査

続いてバグの原因調査に進みます。

実際の開発現場ではこのような観点から原因調査を行います。

ポイント

  • どの処理で発生しているのか
  • どの範囲まで影響があるものなのか
  • どれほどそのバグは深刻なのか

バグと言っても軽微なものからアプリが落ちるといった重大なものまで様々です。

原因調査をして影響度、優先度を確認しバグの分類(UI関連か、もしくは機能関連か)を行います。

そしてバグの影響度が大きいものであれば、優先して対応を行います。

開発現場におけるバグ修正その4 : バグの修正

原因調査、影響調査が終わるとようやくコードの修正を始めます。

コードを修正する際に気をつけることはデグレーション(デグレ)です。

デグレとは修正対象のバグを直したことにより、別のバグが発生することを指します。

よくあるのは直したコードが実は他の処理でも使われていたりするパターンです。

(影響調査が大事なのはそのためです。影響調査を適当にすると想定外のデグレが起こりやすくなります。)

開発現場におけるバグ修正その5 : バグ修正後の再テスト

バグを修正したら、動作確認をします。

修正後の動作確認をする場合は直した箇所のみではなく、関連処理についても同時に確認するようにしましょう。

理由は前述した通り、他の箇所でデグレが起こっていないか確認するためです。

後から以前の箇所を修正することになると精神衛生上もよくはありません。

そのため、デグレの確認は入念に行うように心がけましょう。

プログラミング力を爆速で成長させる方法:バグ修正をすること

Tranquilpeak
バグ修正とは実はプログラミング学習の上でもっとも実力がつく工程です。

なぜならバグ修正では処理を完全に理解しないといけないからです。

ソースコードへの読解力もつき、かつ処理を理解するために必要とされる論理的思考力も鍛えられます。

さいごに

最後までご覧いただきありがとうございました。

同じ教材を何周もするよりも、様々なバグにぶつかり修正していくことが一番プログラマとして成長できると思います。

僕のブログサイト「kzy.tech〜日本脱出のための教科書〜」どのようなサービスで作られているかが気になる方は以下別記事にてご説明していますので、ご覧いただけますと小躍りして喜びます💃

【コピペOK】HUGOでアフィリエイト用ブログサイトを作ろう

手間暇かけずにサクッとアフィリエイト用のブログサイトを作りたいという方向け。

ある程度自由にカスタマイズできる、かつコマンド一つで 記事の自動生成ができる静的サイトジェネレータ「HUGO」についてまとめました。

また、海外移住の 英語とプログラミングを習得することを推奨しています。
これは私の経験則から言えることですが、上記二つのスキルがあれば海外移住は絶対に実現できます

以下に僕が実際に使って効率よくプログラミング学習ができるおすすめサービスを載せます😌

速習!おすすめプログラミング勉強法【Udemy】

いくつかプログラミング学習サービスを利用しましたが、一番効率よく勉強できると感じたのはUdemyでした。

Udemyでは動画での説明や解説等もあり親切で、学習教材も豊富にあることから プログラミング初学者の方が短期間でエンジニアを目指したいのであれば、非常に良い教材だと思います。

ちなみに私は文系卒で社会人になってから独学でudemyを使ってプログラミングの勉強をして、実際にエンジニアとして採用されました

Udemyのコースは1つ1,000円ほどなので、ITの参考本を一冊(3,000円)を買うよりもUdemyのコースを購入する方が安い上により効率的にプログラミングを勉強できると思います。
世界最大級のオンライン学習サイトUdemy

また、別記事にてダナンでの生活やIT関連についても記事を書いていますのでクリックいただけると嬉しくて踊ります💃

【Udemy】未経験から始める格安プログラミング講座4選

未経験だけどプログラミングを学んでエンジニアになりたい、社会人だから時間もそれほど多く無いので効率よく勉強したい。 私もその内の一人でした。今回の記事で最短でエンジニアになるためのおすすめUdemy講座4選をご紹介したいと思います。

【IT資格は無意味】未経験エンジニアがIT資格の勉強をおすすめしない4つの理由とは?

プログラミングを勉強し始めてIT資格を取ろうか悩んでいる方向け。 プログラミング未経験の方が資格勉強をされることは僕の経験上おすすめしません。 なぜ資格の勉強がプログラミング学習において、エンジニアの就活においてNGかこの記事で解説します。

【個人開発】副業でアプリを作りたいならサーバーは契約しない方がいい理由

個人で副業のためにアプリ開発をしてみたいと考えている方向け。 iOS/Androidの個人アプリ開発の場合データのやりとりを行うため、サーバを契約する人が多いです。 しかし、考えなしにサーバを契約するのは非常に大きなデメリットがあるため、私はあまりオススメしません。 ではどの様にしてお金をかけずにアプリ作りができるか、なぜFirebaseを使うべきなのかこの記事で解説していきます。

【Kotlin】RecyclerView+Fragmentで画面遷移を実装する際に気をつけるべき点

Kotlin+RecyclerView+FragmentでAndroid用アプリを開発している方向け。 どうやってrecyclerViewで画面遷移を実装すれば良いのか分からない人の役に立てば幸いです。

【ダナンの物価】ダナン在住者が伝える2020年ベトナム最新状況!

最近観光地として人気が高まっているダナンですが、近年物価の変動が大きくなっていっているように感じます。 2019年〜2020年でのダナンの物価はどのようなものなのか、ダナン在住者として現地の声をお届けできればと思います

【残業大国】日本の異常な労働環境をベトナムで働いてみて実感した件

日本ってやっぱり「働く」ことに関しては異常ですよ。 「お客様は神様」精神、残業を美徳とする文化、過労死という言葉を作り出してしまう労働環境。 今回は日本の異常な労働環境をベトナムの労働環境と比較しながら説明したいと思います😱

【海外移住】ベトナムに移住したら日本の8億倍住みやすかった件

海外移住を始めて2年ほどが経過しました、日本に住んでいた時と今ベトナムに移住してからとでどのように生活が変わったのかをこちらの記事にまとめていこうと思います。

【ダナンの家賃】日本相場の半額以下!?ベトナム家賃相場調査!

ベトナム・ダナンへ移住を考えている方向け。 海外移住をする上で家賃相場を事前に知っておくことは生活費がどれくらいかかるのか計算ができるので非常に重要です。 こちらの記事で家賃相場、賃貸契約の流れ、賃貸契約時のトラブルについて解説していきます。

【おすすめ】Udemy講座でAWS ソリューションアーキテクト アソシエイトを一発合格できた件

AWS ソリューションアーキテクトの勉強をしている方向け。
Udemyでのおすすめ講座、一発合格のための勉強方法から受験の手順まで本記事でまとめました。
認定試験の受験を考えている方には必見です。

【python】文字認識で画像からテキストを出力するやり方をわかりやすく【Tesseract&PyOCR】

こんにちはkzyです。 今回は文字認識ライブラリのPyOCRとTesseractを使って画像からテキストを抽出したいと思います。 環境構築含めpythonでの文字認識のやり方を簡潔に説明できればと思います。

【コピペOK】flutterのSizedBoxとExpandedの違いをわかりやすく

flutterでオブジェクトのサイズ調整の理解が曖昧な方向け。 flutterでアプリ開発を行う際に頻出する項目の一つのため、この記事でなるべくわかりやすく解説します。

【python】文字認識したテキストをエクセルに出力するやり方をわかりやすく【PyOCR + XlsxWriter】

こんにちはkzyです。 今回はPyOCRで文字認識したテキストをエクセルに出力する方法を解説します。 具体的にはXlsxWriterというライブラリを使用してPythonスクリプトからエクセル操作を行います。