Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
コード品質を確保するための試み
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
SUZUKI, Shogo
November 05, 2022
Technology
81
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
コード品質を確保するための試み
JaSST'22 Kyushu での Lightning Talk の資料です。
SUZUKI, Shogo
November 05, 2022
Other Decks in Technology
See All in Technology
スプシの手作業からの解脱 ~更新はClaude Codeに、見せ方と使い方はGASアプリに任せる~
kentarofujii
0
150
QA4AI 2026-Oct 生成AI時代の品質保証
tokuty
1
860
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
470
継続的なAIコスト最適化
bgpat
1
340
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
130
⾮構造化データを価値に変える AI エージェント基盤とその組織
ivry_presentationmaterials
0
190
JAWS-UGグッズ職人仕事の流儀
kentapapa
0
100
Tofu-Controller lightning talk @ Containerday 2026
gionn
0
110
Gemini Intelligence 入門 ― AppFunctions と Gemini Nano
takuroabe
0
250
USB PDを使ってスマホを労わりたい
raspython3
0
180
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
ブラウザとサーバーから考えるAI時代のフロントエンド監視
shogo4131
3
940
Featured
See All Featured
Sam Torres - BigQuery for SEOs
techseoconnect
PRO
0
580
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
120
120k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
20k
SEO in 2025: How to Prepare for the Future of Search
ipullrank
3
3.9k
Odyssey Design
rkendrick25
PRO
2
870
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
270
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
1
440
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
6.1k
How GitHub (no longer) Works
holman
316
150k
The Cost Of JavaScript in 2023
addyosmani
55
10k
Crafting Experiences
bethany
1
380
Transcript
コード品質を確保するための試み すずき しょうご JaSST'22 Kyushu Lightning Talk
本 Lightning Talks の目的 静的解析ツール(SonarQube)を利用して、コード品質を確保しようとしている試みの紹介になります。 同じようなことをやっている方がいましたら、コメントとかアドバイスをいただきたい。 こんな活動しているコミュニティとかありましたら情報をおしえていただけるとうれしいです。
2 2022/11/05
自己紹介 すずき しょうご 某メーカ系会社の品質保証部門に所属。システム開発業務を経て、品質保証部門に異動。 以降開発側とは、独立したポジション(ロールとか権限とかとか)で、プロダクト/サービス開発にかかわる。 主に、エンプラ・業務系システムのQA業務に従事。 (QA業務=外部設計レビュー、リリース可否判定(出荷検査)、プロセス改善などなど) 近年は、レビューの改善(ISO/IEC
20246 をベースとしたプロセスの見直し)や テストの改善(ユースケーステストの検討、キーワード駆動テストの試行)などを実施。 JSTQB Advanced Level Test Manager / Test Analyst ソフトウェア品質技術者(JCSQE) 初級 / 中級 3 Twitter : @rin2_
背景 コードを見てみると、適切ではない(と思われる)コード記述が散見される。 テストで検出された不具合を確認すると、コーディングの質に起因する不具合が検出されるときがある。 検出/再テストを実行などの影響で必要になり、この影響でテスト工数が嵩んできている。 テスト実行前に不具合を推定/検出できるようになれば、テスト工数も削減でき、品質向上も図れるのではないか?
開発工程、特にコーディング工程、については、開発者個人とその周辺に閉じていて、「コードの品質」については、十分共有されて いない。 共有されるのは、開発規模、テストで検出された不具合件数 などが限られた指標や内容が中心。 「コードの品質」について、より詳細なメトリクスや情報を確認し、シフトレフトを加速させる必要があるのではないか。 4
手段 コードメトリクスを利用することでコード品質を評価しよう。 → SonarQube を利用して、コード品質を定性的/定量的に可視化する。 5
やってみた!(環境構築) ひとまず、小さいところからはじめる、ということで、WindowsローカルPCに環境を構築。 環境構築をスピーディに行うため、オフィシャルの Docker コンテナを使って、SonarQube 実行環境を構築。 詳細は、以下メモ書き(?)
に記載 「改訂版 コードメトリクスからコード品質を確保する話(0.9版)」 6
やってみた!(コード解析) プロジェクト一覧から、コードの品質状況が可視化されてる。 7 GitHub で公開されているコードに 対して静的解析を実行
やってみた!(コード解析) 選択されたプロジェクトのコードの品質状 況が可視化されてる。 バグ指摘数 セキュリティの脆弱性箇所指摘数 コード記述があまりよろしくない個所数と修
正にかかるおおよその時間 テストカバレッジ 8
やってみた!(コード解析) 不具合指摘箇所とその内容、深刻度などが分かる。 9
やってみた!(コード解析) セキュリティの脆弱性指摘 指摘内容と深刻度 指摘に該当するコード部分 10
やってみた!(コード解析) テストカバレッジと技術的負債を可視化 11
やってみた!(コード解析) 12
どうだった? テストを実行する前に、欠陥(と疑わしい箇所)検出が可能。 指摘内容を確認し、対応要否を検討できるようになる。 ソフトウェアのセキュリティに関わる脆弱性をテスト前に検知できる。 コードを細かく調べなくても、ある程度「コード品質」を定量的にリスクがあるコード部分をテスト前に推定/検知できる。
バグ指摘が集中しているプログラムファイル コードが複雑でテストがしにくくなっている(条件式が複雑など)部分 コードの流れが理解しにくく、プログラム保守が難しくなっている部分 各プログラムのテストのバレッジがどれくらいあるか →(リスクある部分のコードレビューを手厚く(コストを費やす(人・時間をかける)、優先順位を高とする)などテスト前に手が打てそう 13 コード品質を確保する上で有効(そう?)
気になること 静的解析実行結果と、現実の感覚の際の評価が必要。 コードをある程度理解したり、ソフトウェアをビルドできる知識やスキル、環境が必要。 非ソフトウェア開発者には厳しいときもありそう。 開発者と協力して推進する必要がある(→開発者との信頼が重要)。
ツール(SonarQube)を使いこなすために、学習コストがそれなりに必要になりそう。 自分たちのルールを実装するためにも、ツールの学習にはコストがそれなりにかかりそう。 開発標準などのルールの整備が必要。 ルールの背景が分からないため、実装すべきルールなのか整理や判断が必要。 ソフトウェア内で使われる言語は英語が中心。 英語アレルギーな人には、ちょい敷居が高いかも。 14
今後のチャレンジ 自組織のコーディングに関するルールや知識をツールに実装する。 CI/CD のツールチェーンに組み込む。 コーディング時に不具合や技術的負債を作り込まないようにする 統合開発環境(IDE)に、SonarLint
などを利用する。 15
まとめ コード品質の確保したい背景 コードを定量的/定性的に視るツールの試行結果 コード品質を確認するための課題 16
最後に いろいろな組織のQA部門やQAのお仕事に興味があります!お話しさせていただけるとうれしいです。 17
参考文献 ソフトウェア品質を高める開発者テスト 改訂版 アジャイル時代の実践的・効率的でスムーズなテストのやり方(翔泳社) ゲームプログラマのためのコーディング技術 (技術評論社) クリーンなコードへのSonarQube即効活用術
(リックテレコム) 18