SlideShare a Scribd company logo
提案:QAももっと
実装に踏み込んでみよう
藤沢 耕助
本発表の趣旨
• より実装レベルに近い品質保証に関する話を、
実体験ベースでします
2
問題提起
• システムリプレースの中〜⼤規模SIプロジェク
トのシステムテストレベルで、単体テストレベ
ルの不具合が摘出される
• ⽴場:プロジェクトのQAチーム担当者
error
3
摘出される不具合の例
• アプリのロジックの考慮漏れ
• 業務の詳細な場合分け、例外ケースが漏れる
• (システムリプレースの場合)現⾏システムと
の不整合
• 現⾏システムの動作と異なる動作をする(考
慮漏れ)
4
摘出される不具合の例
• 条件分岐、ループ条件誤り
• 分岐処理やループ処理の条件式に誤りがある
• ログ出⼒などの処理抜け
• 必要な箇所に処理が記述されていない
• 処理の記述の有無が不統⼀
5
摘出される不具合の例
• メッセージIDなどのコード誤り
• 現⾏システムのコード体系をそのまま引き継
いだ結果、不整合となってしまうこともある
6
これらの不具合を摘出する
⼯程
• 実装(コードレビュー)
• 単体テスト
• 今回は特に「コードレビュー」でどう取り組む
かについて発表します
7
コードレビューではなくテストで
摘出してしまうことによるデメリット
• 不具合の摘出でテストが⽌まる
• たび重なる修正による確認範囲の増加
• コードレビューで単体テスト前に摘出した⽅が良い
のではないか?
8
QAが第三者的に
コードレビューを⾏うことについて
• 客観的なレビューができる
• ソースコードレベルからの品質保証が⾏える
• 全量が無理なら、サンプリングで確認する
9
閑話休題
• QAはコードを⾒ない?
• コードを「書く」役割ではないが、「読む」
役割は必要ではないか
• 参考:「tohoku again by seki at ruby.org」
• https://speakerdeck.com/m_seki/
tohoku-again
10
QAがコードレビューを
しない理由
• コードレビューがQAの役割と認識していない/されてい
ない
• コードを読めない
• コードレビューの観点に⾃信がない
• 開発者と(⼼理的に)距離がある
• 実際にどう実装しているか、内部のロジックに興味がな
さそうだと思われている
11
コードレビューをするために
• 「QAがコードレビューをする」という認識を作る
• コードレビューをします、と宣⾔する
• 使⽤されている⾔語を理解できることをアピール
する
• 最低限、プロジェクトで使われている⾔語は読
めるように学習する
12
コードレビューをするために
• コーディング規約に沿ったチェックを⾏う
• コーディング規約に基づくチェックなら、実装に
関する知識がなくても可能
• レビューよりもさらに前に、コーディング規約を
⾒ながら実装するようになるとさらに良い
• 「コーディング規約ではどうなってる?」→コー
ディング規約を⾒る癖をつける
13
コードレビューをするために
• 静的解析ツールの導⼊⽀援から始める
• コードレビューよりは「QAの仕事」と認知さ
れやすい
• コーディング規約の⾃動チェックは⽐較的導
⼊しやすい
• チェック内容は開発者とのすり合わせを⾏う
14
コードレビューをするために
• 開発者と仲良くなる
• 物理的、⼼理的距離は重要
• ソースコードの修正確認など、コードを参照で
きる機会を有効活⽤する
• ソースコードを⾒ながら質問し、内部のロジッ
クについても理解する
15
コードレビューの観点例
• レビューの観点は不具合の傾向分析の結果を反映する
• 業務的に正しい処理になっているか
• 現⾏システムとの整合性が取れているか
• ループ処理や分岐処理における条件式誤りがないか
• ログ出⼒など、必要な処理が抜けていないか
• 出⼒するメッセージIDなどのコードに誤りがないか
16
その他気をつけること
• コードレビューとはいえ、はじめに取り掛かる
ことはそこまで技術的なレベルではない
• 観点を設定して客観的にチェックを⾏えば摘出
できるレベルのものも多い
• 必要なレビューアを揃える、出た指摘を横展開
するなどのポイントは他のレビューと同様
17
その他気をつけること
• レビュー全般に⾔えることだが、議事録を残す
のが重要
• 他の⼈がどんな指摘を受けているか知る
• 「あの⼈のコードはわかりやすい」という話を
する
18
まとめ
• ⼀般に開発プロセスの早期に不具合を摘出した⽅
が修正コストを抑制できることは知られている
• もっとコードレビューなど実装レベルに近い検証
を⾏えるようにすることで、QAとしての活躍の
幅が広がるのではないか
• コードを読むスキルは、そのまま設計書の読み解
き(テスト分析)のスキルにつながる
19
ご意⾒募集
• それは違うと思う、そこはこうした⽅がいいな
ど忌憚ないご意⾒をお寄せください
20
参考⽂献
• 【改訂版】組込みソフトウェア開発向け コーディ
ング作法ガイド[C⾔語版]Ver.2.0
• リファクタリング プログラミングの体質改善
テクニック
• 俺のコードのどこが悪い? コードレビューを
攻略する40のルール
21

More Related Content

PPTX
ISO/IEC DIS 20246 についての(ごく簡単な)説明
PDF
Jstqb test analyst-chap1
PPTX
Software Test Basic
PDF
テストを分類してみよう!
PDF
アジャイル×テスト開発を考える
PDF
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
PPTX
WebサービスのソフトウェアQAと自動テスト戦略
PDF
ISO/IEC DIS 20246 についての(ごく簡単な)説明
Jstqb test analyst-chap1
Software Test Basic
テストを分類してみよう!
アジャイル×テスト開発を考える
アジャイルテスト -高品質を追求するアジャイルチームにおけるテストの視点-
WebサービスのソフトウェアQAと自動テスト戦略

What's hot (15)

PDF
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
PDF
ソフトウェア開発工程とテスト入門
PPTX
JaSST16tokyo tm_koyama
PDF
Automationtestssf beta
PDF
【Agile Conference tokyo 2011】 継続的フィードバック
PPTX
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
PDF
テストアプローチにデータ分析を使おう
PDF
テスト自動化入門@Graat勉強会
PDF
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
PDF
SGT2013 技術トークス「アジャイルテスティング」
PDF
Automationtestssf beta2 architectureskill
PPTX
SQuBOK読破会活動紹介とSQuBOKにおける派生開発
PDF
レビューとは何か
PDF
アジャイルテストを、壮絶に、考える。
PDF
GDC2014_QA
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
ソフトウェア開発工程とテスト入門
JaSST16tokyo tm_koyama
Automationtestssf beta
【Agile Conference tokyo 2011】 継続的フィードバック
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
テストアプローチにデータ分析を使おう
テスト自動化入門@Graat勉強会
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
SGT2013 技術トークス「アジャイルテスティング」
Automationtestssf beta2 architectureskill
SQuBOK読破会活動紹介とSQuBOKにおける派生開発
レビューとは何か
アジャイルテストを、壮絶に、考える。
GDC2014_QA
Ad

Similar to 提案:Qaも実装に踏み込んでみよう (20)

PPTX
はじめよう!レビューのいろは
PDF
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
PDF
レビュー方法を勉強してみよう
PDF
Agile Inspection Workshop
PDF
SS2016レビュー要求分析・設計・実装試行でわかったこと
PDF
Metrix team 20190524
PPT
Dev Love Lt 20090622(佐々木)
PPTX
DeNA QA Night#2 Game QA part
PDF
デブサミ2014【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
PDF
QA4AI JaSST Tokyo 2019
PDF
Paradigm shifts in QA for AI products
PDF
20110909 品質シンポジウム2011発表資料
PDF
LINE Developer Meetup in Tokyo #39 Presentation (modified)
PDF
ソフトウェアレビュー品質向上の7つのポイント ver.2
PDF
ソフトウェアレビュー品質向上の7つのポイント
PDF
DeNA QA Night #1 DeNA part
PDF
LINE Developer Meetup in Tokyo #39 Presentation
PDF
アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ
PPT
Testing processqualifylevel 2009
PDF
QA Team Initiatives to Improve Quality of LINE Family Services
はじめよう!レビューのいろは
【18-B-4】ソースコード品質、大丈夫ですか? ~静的検証のススメ~
レビュー方法を勉強してみよう
Agile Inspection Workshop
SS2016レビュー要求分析・設計・実装試行でわかったこと
Metrix team 20190524
Dev Love Lt 20090622(佐々木)
DeNA QA Night#2 Game QA part
デブサミ2014【13-B-L】テスト自動化を見直そう!自動化への投資が開発チームをクリエイティブにする(安竹由起夫〔コベリティジャパン〕)
QA4AI JaSST Tokyo 2019
Paradigm shifts in QA for AI products
20110909 品質シンポジウム2011発表資料
LINE Developer Meetup in Tokyo #39 Presentation (modified)
ソフトウェアレビュー品質向上の7つのポイント ver.2
ソフトウェアレビュー品質向上の7つのポイント
DeNA QA Night #1 DeNA part
LINE Developer Meetup in Tokyo #39 Presentation
アジャイルソフトウェア開発における テスティングの課題およびその解決アプローチ
Testing processqualifylevel 2009
QA Team Initiatives to Improve Quality of LINE Family Services
Ad

More from Kosuke Fujisawa (20)

PDF
SQuBOK読破会_まとめスライド
PPTX
勝手にHayst法勉強会 リリカルver
PDF
テスト分析・設計について、釈然としないところ
PDF
ソフトウェアテストことはじめ2016年ver
PDF
Qaアーキテクチャの話
PDF
私の考えるテスト分析 Lt
PDF
テストマネージャ試験対策勉強会
PDF
テスト酒場のご紹介
PDF
第6回マインドマップ勉強会 テスト報告
PDF
ドメイン分析勉強会
PDF
第5回マインドマップ勉強会 テスト実行
PDF
Wacate2015冬_参加報告
PDF
テストプロセスについて
PDF
Jstqb test analyst-chap7
PDF
Jstqb test analyst-chap6
PDF
Jstqb test analyst-chap5
PDF
Jstqb test analyst-chap4
PDF
Jstqb test analyst-chap3
PDF
Jstqb test analyst-chap2
PPTX
「マインドマップから始めるソフトウェアテスト」まとめ
SQuBOK読破会_まとめスライド
勝手にHayst法勉強会 リリカルver
テスト分析・設計について、釈然としないところ
ソフトウェアテストことはじめ2016年ver
Qaアーキテクチャの話
私の考えるテスト分析 Lt
テストマネージャ試験対策勉強会
テスト酒場のご紹介
第6回マインドマップ勉強会 テスト報告
ドメイン分析勉強会
第5回マインドマップ勉強会 テスト実行
Wacate2015冬_参加報告
テストプロセスについて
Jstqb test analyst-chap7
Jstqb test analyst-chap6
Jstqb test analyst-chap5
Jstqb test analyst-chap4
Jstqb test analyst-chap3
Jstqb test analyst-chap2
「マインドマップから始めるソフトウェアテスト」まとめ

提案:Qaも実装に踏み込んでみよう