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

19
Web Service QA Meeting Vol.1 Web サササササ ササササササ QA サ サササササササ サ 15 サササ 2015/07/13 Masaki Nakagawa SWET Gr. Quality Management Dept. DeNA Co., Ltd.

Upload: masaki-nakagawa

Post on 15-Aug-2015

584 views

Category:

Internet


1 download

TRANSCRIPT

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

Web Service QA Meeting Vol.1

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

〜 15 分版〜

2015/07/13

Masaki NakagawaSWET Gr.Quality Management Dept.DeNA Co., Ltd.

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

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

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

Web Service QA Meeting Vol.1

3

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

Web Service QA Meeting Vol.1

4

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

Web Service QA Meeting Vol.1

ソフトウェアエンジニアです。

5

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

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

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

Web Service QA Meeting Vol.1

今日話したいこと

Web サービスの QA とは⁃ ソフトウェア中心の世界⁃ Web サービス「じゃない」領域の QA とは⁃ 違いとは

Web サービスの QA と自動化戦略⁃ ソフトウェア中心だからできること⁃ 逆にできないこと⁃ エンジニアだからできる QA

⁃ 最適なアプローチ⁃ やることとやらないこと

7

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

Web Service QA Meeting Vol.1

Web サービスの QA を考える

Web 以外の分野の QA とは⁃ ( 例 ) 従来の工業製品の QA

ハードウェア出荷製品と QA の関係性⁃ 何か問題が起こると人命に関わる可能性がある• ( 例 ) 出火、爆発、…

• 人命に関わる問題を起こすわけにはいかない

• 少しでも発生確率があれば QA で取り除く必要がある

⁃ 出荷後に全ての製品をアップデートするのはほぼ不可能• 全国・全世界のすべての製品流通を突き止めることは困難

• 突き止めても全台回収することは非現実的

• リコール

• 出荷前に QA で極力問題を取り除いておきたい

8

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

Web Service QA Meeting Vol.1

Web サービスの QA を考える

製品の出荷ではなくサービス運用で成立する世界⁃ リリース後でもサービスアップデートで対応可能⁃ 多少の問題は後からでもリカバリ可能⁃ とはいえ絶対に問題を起こしてはいけない部分ももちろんある

多種多様なユーザが色んな場所から同時利用する世界⁃ 様々なユーザに使ってもらって初めて分かる事実がある⁃ そのためにも価値提供のスピードを落としたくない

Web サービスの QA でやりたいこと⁃ 如何に事業展開のスピードを QA で落とさずにリリースさせるか⁃ 且つユーザに使ってもらうために必要なものは揃っているか⁃ その上で最低限守らないといけない部分を守り切るか

9

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

Web Service QA Meeting Vol.1

Web サービスの QA を考える

ソフトウェアで構成される世界⁃ ソフトウェアテスト

ソフトウェアテストとは⁃ コンピュータのプログラムを実行し、以下を確認する作業• 正しく動作するか、

• 目標とした品質に到達しているか、

• 意図しない動作をしないかどうか

⁃ (from: ja.wikipedia.org/wiki/ソフトウェアテスト)

10

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

Web Service QA Meeting Vol.1

ソフトウェアテストの分類

Who Which

How What

11

テストレベル

テスト技法 テストタイプ

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

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

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

Web Service QA Meeting Vol.1

Web サービスの一般的な構成

13

View

Controller

Model

datadatadata

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

Web Service QA Meeting Vol.1

Web サービスの一般的な構成とテスト戦略

14

View

Controller

Model

datadatadata

AcceptanceIntegrationBlack Box, Gray BoxFunctional, Usability, Stress

DeveloperUnitWhite Box, Black BoxFunctional

DeveloperIntegrationGray Box

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

Web Service QA Meeting Vol.1

Web サービスの一般的な構成とテスト戦略

15

View

Controller

Model

datadatadata

AcceptanceIntegrationBlack Box, Gray BoxFunctional, Usability, Stress

DeveloperUnitWhite Box, Black BoxFunctional

DeveloperIntegrationGray Box

開発者がしっかり単体テストする

自動化できる部分とできない部分がある

View/Model 境界重複しがち

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

Web Service QA Meeting Vol.1

Model のテスト

開発時にしっかり単体テストをする⁃ ビジネスロジックごとにテストする

単体テストできるように設計する⁃ ビジネスロジックを適切に分割する⁃ 外部依存を切り離せるようにする• テストダブル、フィクスチャ

⁃ テスタビリティの高い設計にする

16

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

Web Service QA Meeting Vol.1

View のテスト

ユーザシナリオに沿ってエンドツーエンドテストをする⁃ シナリオテスト・機能テストに相当する部分は自動化可能

自動化できない・しない部分こそ、マニュアルでしっかりやる⁃ 表示・レイアウトの確認⁃ ユーザビリティテスト⁃ スクリーンショットなど効率化できる部分は半自動化

17

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

Web Service QA Meeting Vol.1

Controller のテスト

いっそのこと重複する部分はやらない⁃ Model と重複する部分はビジネスロジックのテストとして実施⁃ View と重複する部分はエンドツーエンドテストとして実施⁃ 上 (View) と下 (Model) からトータルでしっかり抑える

重複・スキップするための設計⁃ Model と View の設計・実装範囲が適切であること⁃ テスタビリティの高い設計(ry

( 参考 ) プログラマの三大美徳⁃ 怠惰( Laziness)⁃ 短気( Impatience)⁃ 傲慢( Hubris)

18

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

Web Service QA Meeting Vol.1

まとめ

Web サービスの QA とは、⁃ 如何にスピード感を持ってリリース「させる」かが重要で、⁃ そのために、必要なことは揃っている状態であって、⁃ 且つ、守るべきものがしっかり守れているか。

Web サービスのテスト戦略とは⁃ 上 (View) と下 (Model) からトータルでしっかり抑えこむ⁃ そのためにもテスタビリティの高い設計にする⁃ 自動化できる部分は自動化して効率化する⁃ 手動テストは見るべきところに注力する

19