SlideShare a Scribd company logo
Web Service QA Meeting Vol.1
Webサービスの
ソフトウェアQAと
自動テスト戦略
〜15分版〜
2015/07/13
Masaki Nakagawa
SWET Gr.
Quality Management Dept.
DeNA Co., Ltd.
Web Service QA Meeting Vol.1
自己紹介
 #1
⁃ 中川 勝樹
⁃ 株式会社ディー・エヌ・エー
⁃ SWET (Software Engineer in Test)
⁃ SELECKの取材記事
⁃ デブサミ発表資料
⁃ mobage developers blog
 #2
⁃ @ikasam_a
⁃ github.com/masaki
⁃ CPAN Author (metacpan.org/author/MASAKI)
⁃ Testing Casual Talks (#1, #2)
2
Web Service QA Meeting Vol.1
3
Web Service QA Meeting Vol.1
4
Web Service QA Meeting Vol.1
ソフトウェアエンジニアです。
5
Web Service QA Meeting Vol.1
SWET (Software Engineer in Test)
 Google の SET とほぼ同じことをしています
⁃ “How Google Tests Software” 参照
⁃ 邦題「テストから見えてくるグーグルのソフトウェア開発」
 やっていること
⁃ 自動テストコード作成
⁃ テスト基盤環境構築
⁃ 自動化技術の応用・実用化
⁃ 品質や開発生産性の向上に関する様々なコンサルや導入支援
 https://career.dena.jp/job.phtml?job_code=476
⁃ SWET という役割に興味のある方は是非!
6
Web Service QA Meeting Vol.1
今日話したいこと
 WebサービスのQAとは
⁃ ソフトウェア中心の世界
⁃ Webサービス「じゃない」領域のQAとは
⁃ 違いとは
 WebサービスのQAと自動化戦略
⁃ ソフトウェア中心だからできること
⁃ 逆にできないこと
⁃ エンジニアだからできるQA
⁃ 最適なアプローチ
⁃ やることとやらないこと
7
Web Service QA Meeting Vol.1
WebサービスのQAを考える
 Web以外の分野のQAとは
⁃ (例) 従来の工業製品のQA
 ハードウェア出荷製品とQAの関係性
⁃ 何か問題が起こると人命に関わる可能性がある
• (例) 出火、爆発、…
• 人命に関わる問題を起こすわけにはいかない
• 少しでも発生確率があればQAで取り除く必要がある
⁃ 出荷後に全ての製品をアップデートするのはほぼ不可能
• 全国・全世界のすべての製品流通を突き止めることは困難
• 突き止めても全台回収することは非現実的
• リコール
• 出荷前にQAで極力問題を取り除いておきたい
8
Web Service QA Meeting Vol.1
WebサービスのQAを考える
 製品の出荷ではなくサービス運用で成立する世界
⁃ リリース後でもサービスアップデートで対応可能
⁃ 多少の問題は後からでもリカバリ可能
⁃ とはいえ絶対に問題を起こしてはいけない部分ももちろんある
 多種多様なユーザが色んな場所から同時利用する世界
⁃ 様々なユーザに使ってもらって初めて分かる事実がある
⁃ そのためにも価値提供のスピードを落としたくない
 WebサービスのQAでやりたいこと
⁃ 如何に事業展開のスピードをQAで落とさずにリリースさせるか
⁃ 且つユーザに使ってもらうために必要なものは揃っているか
⁃ その上で最低限守らないといけない部分を守り切るか
9
Web Service QA Meeting Vol.1
WebサービスのQAを考える
 ソフトウェアで構成される世界
⁃ ソフトウェアテスト
 ソフトウェアテストとは
⁃ コンピュータのプログラムを実行し、以下を確認する作業
• 正しく動作するか、
• 目標とした品質に到達しているか、
• 意図しない動作をしないかどうか
⁃ (from: ja.wikipedia.org/wiki/ソフトウェアテスト)
10
Web Service QA Meeting Vol.1
ソフトウェアテストの分類
Who Which
How What
11
テストレベル
テスト技法 テストタイプ
Web Service QA Meeting Vol.1
ソフトウェアテストの分類
 Who
⁃ Developer Testing
⁃ Acceptance Testing
 Which
⁃ Unit Testing
⁃ Integration Testing
 How
⁃ Black Box Testing
⁃ White Box Testing
⁃ Gray Box Testing
 What
⁃ Functional Testing
⁃ Non-Functional Testing (Performance, Stress, Usability, …)
12
Web Service QA Meeting Vol.1
Webサービスの一般的な構成
13
View
Controller
Model
data
data
data
Web Service QA Meeting Vol.1
Webサービスの一般的な構成とテスト戦略
14
View
Controller
Model
data
data
data
Acceptance
Integration
Black Box, Gray Box
Functional, Usability, Stress
Developer
Unit
White Box, Black Box
Functional
Developer
Integration
Gray Box
Web Service QA Meeting Vol.1
Webサービスの一般的な構成とテスト戦略
15
View
Controller
Model
data
data
data
Acceptance
Integration
Black Box, Gray Box
Functional, Usability, Stress
Developer
Unit
White Box, Black Box
Functional
Developer
Integration
Gray Box
開発者がしっかり
単体テストする
自動化できる部分と
できない部分がある
View/Model 境界
重複しがち
Web Service QA Meeting Vol.1
Model のテスト
 開発時にしっかり単体テストをする
⁃ ビジネスロジックごとにテストする
 単体テストできるように設計する
⁃ ビジネスロジックを適切に分割する
⁃ 外部依存を切り離せるようにする
• テストダブル、フィクスチャ
⁃ テスタビリティの高い設計にする
16
Web Service QA Meeting Vol.1
View のテスト
 ユーザシナリオに沿ってエンドツーエンドテストをする
⁃ シナリオテスト・機能テストに相当する部分は自動化可能
 自動化できない・しない部分こそ、マニュアルでしっかりやる
⁃ 表示・レイアウトの確認
⁃ ユーザビリティテスト
⁃ スクリーンショットなど効率化できる部分は半自動化
17
Web Service QA Meeting Vol.1
Controller のテスト
 いっそのこと重複する部分はやらない
⁃ Model と重複する部分はビジネスロジックのテストとして実施
⁃ View と重複する部分はエンドツーエンドテストとして実施
⁃ 上 (View) と下 (Model) からトータルでしっかり抑える
 重複・スキップするための設計
⁃ Model と View の設計・実装範囲が適切であること
⁃ テスタビリティの高い設計(ry
 (参考) プログラマの三大美徳
⁃ 怠惰(Laziness)
⁃ 短気(Impatience)
⁃ 傲慢(Hubris)
18
Web Service QA Meeting Vol.1
まとめ
 WebサービスのQAとは、
⁃ 如何にスピード感を持ってリリース「させる」かが重要で、
⁃ そのために、必要なことは揃っている状態であって、
⁃ 且つ、守るべきものがしっかり守れているか。
 Webサービスのテスト戦略とは
⁃ 上 (View) と下 (Model) からトータルでしっかり抑えこむ
⁃ そのためにもテスタビリティの高い設計にする
⁃ 自動化できる部分は自動化して効率化する
⁃ 手動テストは見るべきところに注力する
19

More Related Content

PDF
テスト自動化入門@Graat勉強会
PDF
SEA関西プロセス分科会講演資料「TestLinkのベストプラクティス~日本の品質管理技術を見直そう」
PDF
ETWest2009講演資料「TestLinkでアジャイルにテストする」
PDF
テストマネジメントツールSquash TMを利用した継続的テスト改善
PDF
KDDI Business ID におけるアジャイル開発と検証フロー
PDF
テストファースト、自動テストを導入するという事について(@社内勉強会)
PDF
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
PPTX
【STAC2017】テスト自動化システム 成長記
テスト自動化入門@Graat勉強会
SEA関西プロセス分科会講演資料「TestLinkのベストプラクティス~日本の品質管理技術を見直そう」
ETWest2009講演資料「TestLinkでアジャイルにテストする」
テストマネジメントツールSquash TMを利用した継続的テスト改善
KDDI Business ID におけるアジャイル開発と検証フロー
テストファースト、自動テストを導入するという事について(@社内勉強会)
快適・簡単・安心なアプリE2Eテストの実行環境 #stac2017
【STAC2017】テスト自動化システム 成長記

What's hot (20)

PDF
超簡単!!なTestLinkの使い方
PDF
#STAC2014 システムテスト自動化ハンズオン
PDF
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
PPTX
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
PPTX
ISO/IEC DIS 20246 についての(ごく簡単な)説明
KEY
テスト初心者Androiderのためのソフトウェアテスト入門
PDF
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
PDF
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
PPTX
「トピックモデル」を使った「バグチケットの自動タグ付け」
PDF
PDF
Gui自動テストツール基本
PDF
ぼくのかんがえた iOSテスト戦略
PPTX
【SQiP2016】楽天のアジャイル開発とメトリクス事例
PPTX
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
PDF
自動テストの誤解とアンチパターン in 楽天 Tech Talk
PDF
ザ・ジェネラリスト #5000dai
PPTX
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
PDF
詳解!自動結合テスト #jasst
PPTX
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
PDF
テストとリファクタリングに関する深い方法論 #wewlc_jp
超簡単!!なTestLinkの使い方
#STAC2014 システムテスト自動化ハンズオン
【JaSST'14 Tokyo】システムテストの自動化による 大規模分散検索プラットフォームの 開発工程改善 #JaSST
【楽天テックカンファ前夜祭2014】誰がテスト自動化をするべきか #rakutentech
ISO/IEC DIS 20246 についての(ごく簡単な)説明
テスト初心者Androiderのためのソフトウェアテスト入門
【SQiP 2014】継続的システムテストについての理解を深めるための 開発とバグのメトリクスの分析 #SQiP #SQuBOK
【DevLOVE現場甲子園2013】Software Engineer in Test @ 楽天の検索基盤の現場
「トピックモデル」を使った「バグチケットの自動タグ付け」
Gui自動テストツール基本
ぼくのかんがえた iOSテスト戦略
【SQiP2016】楽天のアジャイル開発とメトリクス事例
【システムテスト自動化カンファレンス2015】 楽天の品質改善を加速する継続的システムテストパターン #stac2015
自動テストの誤解とアンチパターン in 楽天 Tech Talk
ザ・ジェネラリスト #5000dai
【JaSST'18 Tokai】アジャイルとテスト自動化導入の勘所
詳解!自動結合テスト #jasst
サーバーフレームワークに潜んでる脆弱性検知ツール紹介
テストとリファクタリングに関する深い方法論 #wewlc_jp
Ad

Similar to WebサービスのソフトウェアQAと自動テスト戦略 (20)

PDF
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
PPTX
5minQues - SWET近況報告
PDF
アジャイル×テスト開発を考える
PPTX
JaSST Niigata'20
PDF
【JaSST'11 Tokyo】 テスト イノベーション
PDF
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
PDF
Agile japan2010 rakuten様プレゼン資料
PDF
Enterprise TEST Forum 2012
PDF
でぶさみ夏2013 キーノート オレンジレンジャーの資料
PDF
ワンクリックデプロイ101 #ocdeploy
PDF
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
PDF
Qc astah 連携について012
PDF
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
PPTX
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
PDF
GDC2014_QA
PDF
Infrastrucure as a CodeにおけるJenkinsの役割
PDF
Awsで実現するseleniumテスト高速術
PDF
ssmjp 20200221 Automation
PPTX
テスト自動化の現場で困ること SI-Toolkitが解決すること
PDF
19-B-4 開発品質向上のための、ASQ/ALMソリューション
Team Foundation Server ~ 今を生きるエンジニアのための開発基盤とは 【BPStudy #63】
5minQues - SWET近況報告
アジャイル×テスト開発を考える
JaSST Niigata'20
【JaSST'11 Tokyo】 テスト イノベーション
デブサミ2013【14-E-2】パフォーマンス・チューニングに革命をもたらす最新テクノロジー - トランザクショントレース
Agile japan2010 rakuten様プレゼン資料
Enterprise TEST Forum 2012
でぶさみ夏2013 キーノート オレンジレンジャーの資料
ワンクリックデプロイ101 #ocdeploy
[TL09] 突撃! 隣の Visual Studio Team Services / Team Foundation Server ~利用者からのベスト...
Qc astah 連携について012
【17-B-6】RIAの性能テストとアプリケーション品質向上のための管理手法
開発ビギナーだけじゃない!インフラエンジニア & マネージャー にも知ってほしいテスト自動化と品質管理
GDC2014_QA
Infrastrucure as a CodeにおけるJenkinsの役割
Awsで実現するseleniumテスト高速術
ssmjp 20200221 Automation
テスト自動化の現場で困ること SI-Toolkitが解決すること
19-B-4 開発品質向上のための、ASQ/ALMソリューション
Ad

More from Masaki Nakagawa (12)

PDF
YAPCと俺 (吉祥寺.pm #17)
PPTX
10年モノ熟成Perlとの付き合い方
PPTX
レシピブログのサービス設計と今後の展望
PPTX
DeNAが取り組む Software Engineer in Test
PDF
2014-04-22 Ques #4 Automation Testing of Mobage Platform
PDF
Test Engineering on Mobage
PDF
Integration Testing Practice using Perl
PDF
Software Engineer in Test at DeNA
PDF
Carton について何か話す
PDF
As an Test Engineer
PDF
PDF
Perl Testing Consideration (seen from other languages)
YAPCと俺 (吉祥寺.pm #17)
10年モノ熟成Perlとの付き合い方
レシピブログのサービス設計と今後の展望
DeNAが取り組む Software Engineer in Test
2014-04-22 Ques #4 Automation Testing of Mobage Platform
Test Engineering on Mobage
Integration Testing Practice using Perl
Software Engineer in Test at DeNA
Carton について何か話す
As an Test Engineer
Perl Testing Consideration (seen from other languages)

WebサービスのソフトウェアQAと自動テスト戦略

  • 1. Web Service QA Meeting Vol.1 Webサービスの ソフトウェアQAと 自動テスト戦略 〜15分版〜 2015/07/13 Masaki Nakagawa SWET Gr. Quality Management Dept. DeNA Co., Ltd.
  • 2. Web Service QA Meeting Vol.1 自己紹介  #1 ⁃ 中川 勝樹 ⁃ 株式会社ディー・エヌ・エー ⁃ SWET (Software Engineer in Test) ⁃ SELECKの取材記事 ⁃ デブサミ発表資料 ⁃ mobage developers blog  #2 ⁃ @ikasam_a ⁃ github.com/masaki ⁃ CPAN Author (metacpan.org/author/MASAKI) ⁃ Testing Casual Talks (#1, #2) 2
  • 3. Web Service QA Meeting Vol.1 3
  • 4. Web Service QA Meeting Vol.1 4
  • 5. Web Service QA Meeting Vol.1 ソフトウェアエンジニアです。 5
  • 6. Web Service QA Meeting Vol.1 SWET (Software Engineer in Test)  Google の SET とほぼ同じことをしています ⁃ “How Google Tests Software” 参照 ⁃ 邦題「テストから見えてくるグーグルのソフトウェア開発」  やっていること ⁃ 自動テストコード作成 ⁃ テスト基盤環境構築 ⁃ 自動化技術の応用・実用化 ⁃ 品質や開発生産性の向上に関する様々なコンサルや導入支援  https://career.dena.jp/job.phtml?job_code=476 ⁃ SWET という役割に興味のある方は是非! 6
  • 7. Web Service QA Meeting Vol.1 今日話したいこと  WebサービスのQAとは ⁃ ソフトウェア中心の世界 ⁃ Webサービス「じゃない」領域のQAとは ⁃ 違いとは  WebサービスのQAと自動化戦略 ⁃ ソフトウェア中心だからできること ⁃ 逆にできないこと ⁃ エンジニアだからできるQA ⁃ 最適なアプローチ ⁃ やることとやらないこと 7
  • 8. Web Service QA Meeting Vol.1 WebサービスのQAを考える  Web以外の分野のQAとは ⁃ (例) 従来の工業製品のQA  ハードウェア出荷製品とQAの関係性 ⁃ 何か問題が起こると人命に関わる可能性がある • (例) 出火、爆発、… • 人命に関わる問題を起こすわけにはいかない • 少しでも発生確率があればQAで取り除く必要がある ⁃ 出荷後に全ての製品をアップデートするのはほぼ不可能 • 全国・全世界のすべての製品流通を突き止めることは困難 • 突き止めても全台回収することは非現実的 • リコール • 出荷前にQAで極力問題を取り除いておきたい 8
  • 9. Web Service QA Meeting Vol.1 WebサービスのQAを考える  製品の出荷ではなくサービス運用で成立する世界 ⁃ リリース後でもサービスアップデートで対応可能 ⁃ 多少の問題は後からでもリカバリ可能 ⁃ とはいえ絶対に問題を起こしてはいけない部分ももちろんある  多種多様なユーザが色んな場所から同時利用する世界 ⁃ 様々なユーザに使ってもらって初めて分かる事実がある ⁃ そのためにも価値提供のスピードを落としたくない  WebサービスのQAでやりたいこと ⁃ 如何に事業展開のスピードをQAで落とさずにリリースさせるか ⁃ 且つユーザに使ってもらうために必要なものは揃っているか ⁃ その上で最低限守らないといけない部分を守り切るか 9
  • 10. Web Service QA Meeting Vol.1 WebサービスのQAを考える  ソフトウェアで構成される世界 ⁃ ソフトウェアテスト  ソフトウェアテストとは ⁃ コンピュータのプログラムを実行し、以下を確認する作業 • 正しく動作するか、 • 目標とした品質に到達しているか、 • 意図しない動作をしないかどうか ⁃ (from: ja.wikipedia.org/wiki/ソフトウェアテスト) 10
  • 11. Web Service QA Meeting Vol.1 ソフトウェアテストの分類 Who Which How What 11 テストレベル テスト技法 テストタイプ
  • 12. Web Service QA Meeting Vol.1 ソフトウェアテストの分類  Who ⁃ Developer Testing ⁃ Acceptance Testing  Which ⁃ Unit Testing ⁃ Integration Testing  How ⁃ Black Box Testing ⁃ White Box Testing ⁃ Gray Box Testing  What ⁃ Functional Testing ⁃ Non-Functional Testing (Performance, Stress, Usability, …) 12
  • 13. Web Service QA Meeting Vol.1 Webサービスの一般的な構成 13 View Controller Model data data data
  • 14. Web Service QA Meeting Vol.1 Webサービスの一般的な構成とテスト戦略 14 View Controller Model data data data Acceptance Integration Black Box, Gray Box Functional, Usability, Stress Developer Unit White Box, Black Box Functional Developer Integration Gray Box
  • 15. Web Service QA Meeting Vol.1 Webサービスの一般的な構成とテスト戦略 15 View Controller Model data data data Acceptance Integration Black Box, Gray Box Functional, Usability, Stress Developer Unit White Box, Black Box Functional Developer Integration Gray Box 開発者がしっかり 単体テストする 自動化できる部分と できない部分がある View/Model 境界 重複しがち
  • 16. Web Service QA Meeting Vol.1 Model のテスト  開発時にしっかり単体テストをする ⁃ ビジネスロジックごとにテストする  単体テストできるように設計する ⁃ ビジネスロジックを適切に分割する ⁃ 外部依存を切り離せるようにする • テストダブル、フィクスチャ ⁃ テスタビリティの高い設計にする 16
  • 17. Web Service QA Meeting Vol.1 View のテスト  ユーザシナリオに沿ってエンドツーエンドテストをする ⁃ シナリオテスト・機能テストに相当する部分は自動化可能  自動化できない・しない部分こそ、マニュアルでしっかりやる ⁃ 表示・レイアウトの確認 ⁃ ユーザビリティテスト ⁃ スクリーンショットなど効率化できる部分は半自動化 17
  • 18. Web Service QA Meeting Vol.1 Controller のテスト  いっそのこと重複する部分はやらない ⁃ Model と重複する部分はビジネスロジックのテストとして実施 ⁃ View と重複する部分はエンドツーエンドテストとして実施 ⁃ 上 (View) と下 (Model) からトータルでしっかり抑える  重複・スキップするための設計 ⁃ Model と View の設計・実装範囲が適切であること ⁃ テスタビリティの高い設計(ry  (参考) プログラマの三大美徳 ⁃ 怠惰(Laziness) ⁃ 短気(Impatience) ⁃ 傲慢(Hubris) 18
  • 19. Web Service QA Meeting Vol.1 まとめ  WebサービスのQAとは、 ⁃ 如何にスピード感を持ってリリース「させる」かが重要で、 ⁃ そのために、必要なことは揃っている状態であって、 ⁃ 且つ、守るべきものがしっかり守れているか。  Webサービスのテスト戦略とは ⁃ 上 (View) と下 (Model) からトータルでしっかり抑えこむ ⁃ そのためにもテスタビリティの高い設計にする ⁃ 自動化できる部分は自動化して効率化する ⁃ 手動テストは見るべきところに注力する 19