0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

バグの原因となったソースコードの変更を追うためのVSCodeの使い方

Last updated at Posted at 2024-12-23

QAエンジニアをやっていると、不具合の根本原因となっているコードを探すことがちょいちょいあります。
エラーログから当たりをつけてすぐに見つかることもあれば、ロジック上の問題の場合、愚直にコードを追っていってようやく見つかるという場合もあります。

そんな作業でもすごく役に立っているのがVSCodeの拡張機能 GitLens です。

どのようにログを追えばよいか、今回は radix-uiのリポジトリを仮に使って説明していきます。

ログを見て直接原因を探る

まずはログを見ます。Railsの場合は logs/error.log あたりにあるか、あるいは自社のログ基盤でErrorで検索すれば引っかかると思います。NodeやNext.jsだとSentryあたりでしょうか。ここは環境によりけりだと思います。

ログにはエラーがおきた直接的な原因のコード行が表示されているはずなので、そこのコードを参照します。

例えば以下の41行目が問題の箇所だとします。

image.png

見えづらいかもですがカーソルをフォーカスすると、コードの隣にコミットした日付とコミットしたユーザー名画表示されているのがわかるかと思います。

ここの処理自体は「3 years ago」なのでおそらく根本原因ではないことがわかりますね。

ソースコードから処理の流れをひたすら追う

次に直接の問題となった処理の含まれるメソッドあるいはクラスの名前で検索します。
先程の例だと DialogTriggerProps が怪しいので単語をダブルクリックすると、色が変わります。

image.png

すぐ上にあるのでハイライトする必要もないのですね。また、Macなら Cmdを押しながら単語をクリック(タップ)すると定義ジャンプすることができま。こちらも活用すると良いでしょう。

gitlensを使ってコードの変更を見る

定義ジャンプ、コードジャンプ、検索でようやく 2days ago なCommitを見つけたとします。最近の変更なので、おそらくこの修正が影響しているでしょう。

コードの右側に表示されているGitのコミットメッセージにカーソルを合わせると以下のような画面が出てきます。

image.png

さらに詳しくコミット内容を見たい場合、地球儀マークにカーソルを合わせます。(Open Commit on Github」と表示される)そしてクリックします。

image.png

Githubで当該コードの修正を含むコミットを閲覧することができます。
大抵の場合はこのコミットが根本原因なので、コミットメッセージと他のコード変更をみて内容を把握します。
できない場合は実装したエンジニアのユーザー名がわかっているので、直接確認しにいくと良いでしょう。

GithubのPull Requestを確認する

コミットだけだとまれに「fix」とか「修正」だけのコミットの場合もあり、結局何を修正したのかわからないということもあります。そういうときは当該コミットが含まれているPull Requestを参照します。
この作業はGithub側で実施します。

開いたコミットのコミット番号をコピーします。以下の場合だと 06de2d4 です。
image.png

これをGithub右上の検索欄に貼り付けて検索します。

image.png

そうすると左側に「Pull requests」と表示されるのでこれをクリックします。

image.png

これで該当するPull Requestをあぶり出すことができます。

image.png

まとめ

不具合調査は時に地道で根気が必要な作業ですが、適切なツールを使うことで効率を大幅に向上させることができます。GitLensは、コードの変更履歴や開発の意図を把握する上で非常に便利な拡張機能です。

今後の調査作業でも引き続き活用して、より迅速かつ正確に問題を解決していきたいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?