Upgrade to Pro — share decks privately, control downloads, hide ads and more …

コード品質を確保するための試み

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest. →

 コード品質を確保するための試み

JaSST'22 Kyushu での Lightning Talk の資料です。

Avatar for SUZUKI, Shogo

SUZUKI, Shogo

November 05, 2022

Other Decks in Technology

Transcript

  1. 背景  コードを見てみると、適切ではない(と思われる)コード記述が散見される。  テストで検出された不具合を確認すると、コーディングの質に起因する不具合が検出されるときがある。  検出/再テストを実行などの影響で必要になり、この影響でテスト工数が嵩んできている。  テスト実行前に不具合を推定/検出できるようになれば、テスト工数も削減でき、品質向上も図れるのではないか? 

    開発工程、特にコーディング工程、については、開発者個人とその周辺に閉じていて、「コードの品質」については、十分共有されて いない。  共有されるのは、開発規模、テストで検出された不具合件数 などが限られた指標や内容が中心。  「コードの品質」について、より詳細なメトリクスや情報を確認し、シフトレフトを加速させる必要があるのではないか。 4
  2. どうだった?  テストを実行する前に、欠陥(と疑わしい箇所)検出が可能。  指摘内容を確認し、対応要否を検討できるようになる。  ソフトウェアのセキュリティに関わる脆弱性をテスト前に検知できる。  コードを細かく調べなくても、ある程度「コード品質」を定量的にリスクがあるコード部分をテスト前に推定/検知できる。 

    バグ指摘が集中しているプログラムファイル  コードが複雑でテストがしにくくなっている(条件式が複雑など)部分  コードの流れが理解しにくく、プログラム保守が難しくなっている部分  各プログラムのテストのバレッジがどれくらいあるか →(リスクある部分のコードレビューを手厚く(コストを費やす(人・時間をかける)、優先順位を高とする)などテスト前に手が打てそう 13 コード品質を確保する上で有効(そう?)
  3. 気になること  静的解析実行結果と、現実の感覚の際の評価が必要。  コードをある程度理解したり、ソフトウェアをビルドできる知識やスキル、環境が必要。  非ソフトウェア開発者には厳しいときもありそう。  開発者と協力して推進する必要がある(→開発者との信頼が重要)。 

    ツール(SonarQube)を使いこなすために、学習コストがそれなりに必要になりそう。  自分たちのルールを実装するためにも、ツールの学習にはコストがそれなりにかかりそう。  開発標準などのルールの整備が必要。  ルールの背景が分からないため、実装すべきルールなのか整理や判断が必要。  ソフトウェア内で使われる言語は英語が中心。  英語アレルギーな人には、ちょい敷居が高いかも。 14