お役立ち情報

ソースコード診断とは|動的診断との役割と発注前の確認事項

依
依田尚人

著者・監修 ・ YDAIコンサルティング株式会社 代表

10分
目次

ソースコード診断を検討すると、「コードを渡せばシステム全体を確認できる」と考えやすくなります。しかし、対象モジュール、依存関係、設定、確認目的を決めないまま依頼すると、何を確認したかと何を対象外にしたかを説明しにくくなります。

結論から言うと、ソースコード診断は、対象モジュール・確認目的・提供条件を決めてから比較します。稼働中の挙動を確認する動的診断とは、確認できる観点と成果物が異なるため、どちらを使うか、併用するかを目的から整理します。

発注準備では、提供できる範囲、閲覧権限、報告書の記載粒度、修正後の確認を先に確認します。コードの取扱いと診断の対象を一つの表で整理すると、開発・運用・調達の担当が同じ前提で判断できます。

本記事で分かること

  • ソースコード診断で対象にする範囲
  • 動的診断との役割の違い
  • コード提供時に確認する条件
  • 報告後の修正と再確認の進め方

結論:対象モジュールと確認目的を先に決める(早見表)

ソースコード診断では、リポジトリ全体か一部かを曖昧にせず、対象モジュール・確認目的・提供条件を一つの表にします。対象外にする範囲と理由も残しておくと、報告書の読み方や追加確認の判断がしやすくなります。

項目内容確認時点注意点
対象モジュール確認する機能や構成要素見積依頼の前名称だけでなく業務上の役割を記録する
依存関係と設定関連するライブラリや設定情報提供範囲を決めるとき提供可否と管理者を確認する
除外範囲今回確認しない部分と理由対象を確定するとき後の変更時に見直せる形で残す
提供条件閲覧権限、提供方法、連絡先契約前秘密情報の取扱いを別途確認する
対象モジュール・依存関係・除外範囲・提供条件を整理する早見表
対象モジュール・依存関係・除外範囲・提供条件を整理する早見表

ソースコード診断で確認する範囲

リポジトリ全体か一部かを曖昧にしません。対象となる機能、関連する設定、確認から除外する範囲を分け、依頼先がどの範囲を確認する前提かを見積書で照合します。

範囲の軸整理する内容対象表に残す内容
対象モジュール業務機能、画面、連携に関わる構成要素名称、役割、管理者
依存関係と設定外部ライブラリ、設定ファイル、関連サービス提供可否、確認先
除外範囲別管理の領域、今回対象にしない機能除外理由、見直す条件
変更予定改修中の箇所、公開予定の変更版、変更担当、共有方法
対象モジュールと依存関係・除外範囲を分けて棚卸しする図
対象モジュールと依存関係・除外範囲を分けて棚卸しする図

対象モジュール

対象モジュールは、開発上の名称だけでなく、どの業務機能や利用者の操作に関係するかを記録します。たとえば申込み、管理、外部連携などの役割が分かれば、開発担当以外の関係者も対象の位置付けを確認できます。対象に含める理由と、管理する担当を対応付けます。

対象を決める際は、現時点のコード構成だけでなく、診断中に大きな変更が予定されているかを確認します。改修途中の部分を含めるか、別の版で確認するかを発注前に決め、見積の前提に記載します。名称が近いモジュールを一括にせず、確認したい目的に沿って分けます。

依存関係と設定

関連するライブラリや設定は、対象モジュールの説明に関わる情報です。すべてを同じ方法で提供するのではなく、確認に必要な範囲、提供できる方法、確認の窓口を整理します。設定に関する情報は、誰が管理し、どの環境に関係するかも記録します。

外部サービスや別のチームが管理する要素がある場合は、自社だけで提供範囲を決めません。管理者、契約上の窓口、閲覧できる条件を確認します。提供できない情報がある場合は、対象外として扱うのか、別の確認方法を検討するのかを発注前に関係者で判断します。

除外範囲

除外範囲は、今回確認しない部分を明確にするための情報です。別のリポジトリ、外部サービス、管理者の承諾が確認できない部分などを列挙し、除外した理由を残します。除外したことを隠すのではなく、対象範囲の前提として報告書と見積書で確認できる形にします。

将来の変更で除外範囲を見直す場合に備え、見直すきっかけも記録します。たとえば機能の統合、管理者の変更、外部連携の追加があったときに、対象表を更新する担当を決めます。除外範囲を先に整理しておくと、診断後に未確認の領域が判明した際にも対応を検討しやすくなります。

動的診断との役割を分ける

コードの確認と稼働中の挙動確認は、目的と成果物が異なります。どちらか一方を自動的に代替とせず、何を確認したいのか、どの対象を説明したいのかから役割を分けます。

比較する軸ソースコード診断動的診断
主な対象合意したモジュールや設定に関する情報稼働する画面、機能、連携の経路
準備資料対象モジュール、提供条件、閲覧権限対象一覧、テスト用情報、実施制約
成果物対象範囲で確認した内容の報告対象環境・機能で確認した内容の報告
併用時対象と目的を対応付けて結果を照合する同じ対象表で差分を確認する
ソースコード診断と動的診断の対象・準備・成果物を分ける図
ソースコード診断と動的診断の対象・準備・成果物を分ける図

確認できる観点

ソースコード診断は、合意した対象モジュールや関連情報を確認するための方法です。動的診断は、稼働する画面や機能、利用者が触れる経路を確認するための方法です。どちらが広いかを一般化するより、今回の目的と対象に対して何を確認したいかを一文で定義します。

手動診断とツール診断の違いも参照し、確認方法の名称だけで依頼内容を決めないようにします。依頼先へは、対象、確認したい観点、成果物に記載してほしい内容を伝え、見積書の条件と一致しているかを確認します。

併用時の依頼順

コードの確認と稼働中の挙動確認を併用する場合は、どの対象をどちらで確認するかを先に整理します。二つの依頼を別々に進める場合も、対象モジュールと画面・機能の対応関係を残し、結果を照合する担当を決めます。重複する範囲と、片方だけで確認する範囲を明確にします。

依頼の順番は、開発の状況、公開予定、対象の安定度、修正の担当に合わせて決めます。実施日だけを先に決めるのではなく、対象を確定する時点、報告を受ける時点、修正を確認する時点を予定に入れます。変更が起きた場合は、どの診断の対象表を更新するかを共有します。

結果の照合方法

報告書を受け取ったら、対象モジュールと対象画面・機能の対応を確認します。結果を同じ一覧に貼り付けるのではなく、どの対象で確認した内容か、対象外だった内容かを分けます。修正担当が複数いる場合は、担当と確認する範囲を対応付けます。

セキュリティ診断の発注ガイドを参考に、対象、成果物、再確認の条件を同じ仕様表にまとめます。二つの結果に差があった場合は、どの対象と条件の違いによるものかを整理し、追加確認が必要かを関係者で判断します。

提供・報告・修正の条件

秘密情報の取扱いと修正確認の範囲を契約前に確認します。コードを提供する方法、閲覧権限、報告書の記載粒度、修正後の確認を、対象表とは別に条件表へ整理します。

条件確認する内容担当
提供方法提供する範囲、方法、利用期間開発責任者、情報システム
閲覧権限閲覧できる人、管理方法、連絡先情報システム、契約担当
報告書対象、対象外、記載の粒度、共有先発注担当、開発責任者
修正後確認確認する対象、版、結果の受け方開発担当、発注担当
コード提供・閲覧権限・報告書・修正後確認をそろえる図
コード提供・閲覧権限・報告書・修正後確認をそろえる図

提供方法と閲覧権限

コードを提供する場合は、対象モジュールごとに、誰が提供を承認し、どの方法で閲覧できるようにするかを確認します。利用できる期間、通常の質問窓口、判断が必要な場合の連絡先も整理します。提供する情報と提供しない情報を分け、管理者の確認を経てから準備します。

秘密情報や個人情報を含む可能性がある場合は、社内の取扱いルールと契約上の確認事項に沿って進めます。依頼先に渡す情報を増やすことが目的ではなく、合意した対象を確認するために必要な範囲を決めることが重要です。未確認の提供条件は、見積の前提として確定させません。

報告書の記載粒度

報告書には、どのモジュール、関連情報、除外範囲を対象にしたかが分かる形で記載されるかを確認します。開発担当が対応するために必要な情報と、管理・調達の担当が説明に使う情報では、必要な粒度が異なる場合があります。受け取る担当と共有先を先に決めます。

対象外にした理由や、確認に使った版が報告書で追えると、後で変更があった場合に見直す範囲を判断できます。内容を受け取ったら、発注時の対象表と照合し、対象の認識が違っていないかを確認します。追加の質問は、対象と目的に結び付けて整理します。

修正後の確認

修正後の確認では、どの指摘に関係するモジュールを確認するか、どの版を対象にするか、結果をどのように受け取るかを決めます。修正担当と確認担当が異なる場合は、完了の連絡を誰が受けるかも整理します。追加の変更があれば、当初の対象との違いを残します。

Webアプリ診断の対象範囲を参照し、コードの変更が画面・機能・認証後の範囲にどう関係するかを確認します。修正後の確認を発注時の条件に含めると、報告から次の作業へつなげやすくなります。

対象モジュールから報告・修正後確認へつなげる要点図
対象モジュールから報告・修正後確認へつなげる要点図

まとめ

ソースコード診断では、対象モジュール、確認目的、提供条件、除外範囲を先に整理します。動的診断と併用する場合も、対象と成果物を分け、報告書・修正・再確認の担当を対応付けることが重要です。

ソースコード診断に関する整理は、手動診断とツール診断の違いと、お役立ち記事一覧から確認できます。

よくある質問

Q. 全コードが必要か
全コードが必要かは、確認目的と対象モジュールによって決めます。リポジトリ全体を前提にせず、確認したい機能、関連する設定、除外する範囲を整理します。必要な提供範囲、閲覧権限、管理者の承諾を確認し、提供できない部分がある場合は対象外として記録します。
Q. 動的診断の代わりになるか
ソースコード診断と動的診断は、対象と確認する観点が異なります。どちらか一方が常にもう一方の代わりになるとは決めず、確認したい対象、利用者が触れる機能、成果物に求める説明を整理します。併用する場合は、対象モジュールと画面・機能の対応を残して結果を照合します。
Q. 外部ライブラリも対象か
外部ライブラリや関連サービスを対象に含めるかは、確認目的、提供できる情報、管理者、契約上の条件を確認して決めます。名称だけで一括に含めず、対象モジュールとの関係と、確認できる範囲を記録します。別の管理者がいる領域は、自社だけで提供や確認の条件を決めません。
Q. 修正確認は必要か
修正確認が必要かは、指摘の対象、変更した版、取引先や社内への説明に必要な内容を踏まえて決めます。発注前に、どの対象を確認するか、修正担当と確認担当を誰にするか、結果をどのように受け取るかを整理します。修正予定が変わった場合は対象表と条件表を更新します。

出典

本記事の出典は に内容を確認しています。

  1. 1.