SlideShare uma empresa Scribd logo
1 de 19
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

Mais conteúdo relacionado

Mais procurados

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

Mais procurados (20)

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

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

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

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

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

Mais de Masaki Nakagawa

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

Mais de Masaki Nakagawa (12)

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