©2021 HumanCrest Co.,Ltd.
事例からわかる!
テスト自動化導入パターン
浅黄友隆 山口真央
JaSST’21 Tokyo
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
自己紹介
2
❖ 名前 :浅黄 友隆
❖ 主な業務 :テスト自動化、サービス開発
❖ 経歴 :開発エンジニア 10年
テストエンジニア 10年
❖ 名前 :山口 真央
❖ 主な業務 :テスト自動化、サービス開発、マーケティング
❖ 経歴 :テストエンジニア 7年
©2021 HumanCrest Co.,Ltd. 3
株式会社ヒューマンクレスト
設立: 2002/12/16
本社: ランドマークタワー
社員数: 156名
認証資格: ISO27001
ISTQBパートナーシップ: Platinum
株式会社ヒューマンネクスト
(関内)
JapanQuality Co.,Ltd
(ベトナム ダナン)
©2021 HumanCrest Co.,Ltd. 4
©2021 HumanCrest Co.,Ltd. 5
テスト自動化は普通になった
©2021 HumanCrest Co.,Ltd. 6
導入できない
維持できない
©2021 HumanCrest Co.,Ltd. 7
Unit Test
Integration Test
UI
Test この辺の話
©2021 HumanCrest Co.,Ltd. 8
Unit Test
Integration Test
この辺の話
UI
Test
©2021 HumanCrest Co.,Ltd. 9
Unit Test
Integration Test
UI
Test この辺の話
©2021 HumanCrest Co.,Ltd. 10
テスト自動化で重要なことは?
©2021 HumanCrest Co.,Ltd. 11
実行
リソース チーム
文化
スキルセット
目的
©2021 HumanCrest Co.,Ltd. 12
リソース チーム
文化
スキルセット
目的
自動テストのコア
©2021 HumanCrest Co.,Ltd. 13
リソース チーム
文化
スキルセット
目的
自動テストのコア
自動テストの概念層
©2021 HumanCrest Co.,Ltd. 14
リソース チーム
文化
スキルセット
目的
自動テストのコア
自動テストの概念層
自動テストの中間層
©2021 HumanCrest Co.,Ltd. 15
リソース チーム
文化
スキルセット
目的
自動テストのコア
自動テストの概念層
自動テストの中間層
自動テストの表層
©2021 HumanCrest Co.,Ltd. 16
リソース チーム
文化
スキルセット
目的
自動テストのコア
自動テストの概念層
自動テストの中間層
自動テストの表層
自動テストのベース
©2021 HumanCrest Co.,Ltd. 17
テスト自動化導入パターンは
:
:
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
18
ユーザの価値を重視 テストスピード重視
繰り返し重視 インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
19
ユーザの価値を重視 テストスピード重視
繰り返し重視 インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd. 20
目的
主要な機能/要件が
正常に動作することを確認する
©2021 HumanCrest Co.,Ltd. 21
手動テストを自動化
ユーザに提供する価値を
テスト
©2021 HumanCrest Co.,Ltd. 22
ピラミッドの頂上
少ない
Unit Test
Integration
Test
UI Tests
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:ユーザの価値を重視
23
ECサイトの場合
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:ユーザの価値を重視
24
【グループウェアの場合】2014〜
・ユーザの価値:予定作成、メール送信
・テストタイプ:ユースケーステスト
image: Designed by Freepik and distributed by Flaticon
【ECサイトの場合】2015〜
・ユーザの価値:新規会員登録、ログイン、検索、購入、退会
・テストタイプ:シナリオテスト
【グルメサイトの場合】2017〜
・ユーザの価値:店舗検索、予約
・テストタイプ:シナリオテスト
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
25
ユーザの価値を重視 テストスピード重視
繰り返し重視 インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd. 26
目的
繰り返しテスト
(環境やデータ)
を自動化によって効率化する
©2021 HumanCrest Co.,Ltd. 27
繰り返しを自動化
©2021 HumanCrest Co.,Ltd. 28
テストケースを繰り返す
ブラウザ
OS
デバイス
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:テストケースを繰り返す
29
【グループウェアの場合】2014〜
・ユーザの価値:予定作成、メール送信
・テストタイプ:ユースケーステスト
・ブラウザ:
image: Designed by Freepik and distributed by Flaticon
【ECサイトの場合】2015〜
・ユーザの価値:新規会員登録、ログイン、検索、購入、退会
・テストタイプ:シナリオテスト
・ブラウザ:
【グルメサイトの場合】2017〜
・ユーザの価値:店舗検索、予約
・テストタイプ:シナリオテスト
・ブラウザ:
8 9 10 11
beta
win mac
©2021 HumanCrest Co.,Ltd. 30
データを繰り返す
IN/OUTデータの
組み合わせ
パターン網羅
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:データを繰り返す
31
【事例A】2020
・目的:数値計算の正確性確認(保険)
・制約:入力→出力はブラウザで確認が必須
・方法:Seleniumを利用したデータ駆動テスト。ケース数は数万件。
入力パターンによって画面遷移も変わる為、キーワード駆動の考えを取り入れ、
パターン毎に画面遷移フローを自動生成するところから開発。
【事例B】2017
・目的:超高速開発ツールで作成したシステムの設定ミスを検知
・制約:ツールの性質上、単体テストは書けない
・方法:Seleniumを利用したデータ駆動テスト
画面からの入力値に対するエラーメッセージのパターンを確認
©2021 HumanCrest Co.,Ltd. 32
テスト自動化の変化
©2021 HumanCrest Co.,Ltd. 33
様々な開発・環境の変化
©2021 HumanCrest Co.,Ltd. 34
インフラ
デバイス
アーキテクチャ
プロセス
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
開発技術とテストの変化
35
オンプレ クラウド
WF開発 アジャイル開発
モノリシック マイクロサービス
CI/CD
フロントエンド
バックエンド
リリースサイクル
インフラ環境の変化
開発プロセスの変化
アーキテクチャの変化
イテレーション
モバイル
Web
デバイスの変化
DevOps
テストスピード
テストスコープ
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
36
ユーザの価値を重視 テストスピード重視
繰り返し重視 インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd. 37
テスト自動化のスコープ
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テストスコープ
38
ロジック
リクエスト
レスポンス
UI
テスト
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テストスコープ
39
ロジック
リクエスト
レスポンス
テスト
©2021 HumanCrest Co.,Ltd. 40
目的
バックエンドの動作を確認
API(サービス)の動作を確認
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd. 41
Unit Tests
UI Tests
自動テストが砂時計型
©2021 HumanCrest Co.,Ltd. 42
インターフェースのテスト
UIのテスト
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:パターン④インターフェース重視
43
【事例A】
・目的:APIのリクエスト・レスポンス等が正しいことを確認
・制約:ステータスコードが特殊
・方針:API毎のパラメータパターンをテストケースとする
ステータスコードではなく、レスポンスの内容でテスト
APIの順序性、アクセストークン等の受け渡しも考慮する
【バックエンドシステム】
・目的:サービス仕様書の記述を元にインプットデータの
パラメータパターンで機能を有している事を確認
・方針:APIのリクエスト/レスポンスだけでなく、
DBやログまで確認を実施する
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
44
ユーザの価値を重視 テストスピード重視
繰り返し重視 インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd. 45
テストスピードを改善
©2021 HumanCrest Co.,Ltd. 46
目的
イテレーション
リリースサイクル
の中でテストする
©2021 HumanCrest Co.,Ltd. 47
開発スピードの変化
テスト実施後の
フィードバックが重要
©2021 HumanCrest Co.,Ltd. 48
開発環境の変化
いつでもテスト実行可能
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd. 49
アジャイルテストの4 象限
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd. 50
テストピラミッド
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:テストスピードを改善
51
【ロジスティクスの場合】
・リリースサイクル:週1回
・テスト対象:本番環境、ステージング環境
・テスト機能:受付、人員管理等の主要機能
・自動テストの使われ方:ステージングリリース後、
自動テストが全て通るか確認
問題がなければ、その後本番環境へリリース
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:簡易アーキテクチャ図
52
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:テストスピードを改善
53
【CMSの場合】
・リリースサイクル:月1回
・スプリント :1週間
・アジャイルチーム:朝会、振り返り会に参加
・テスト機能:すべての画面に遷移可能であること
主要機能、外部結合に問題がないこと
・テスト対象環境:自動テスト専用環境が3環境
・自動テストの使われ方:日次ビルドでテストが実行される
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:簡易アーキテクチャ図
54
オンプレ
AWS
テスト対象 AWS
Win sv
ubuntu sv
master
Win 10
for chrome
for firefox
for Edge
slave
library
Java
Junit/maven
selenium
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
各パターンの組み合わせ
55
目的によって導入の仕方が変わり、パターンを組み合わせることもある!
例
❖ テストスピード重視 × 繰り返し重視
❖ テストスピード重視 × インターフェース重視
❖ 繰り返し重視 × インターフェース重視
❖ ユーザの価値を重視 × テストスピード重視 × 手動テスト
❖ ユーザの価値を重視 × 繰り返し重視 × インターフェース重視
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:ユーザの価値を重視 ✕ テストスピード重視 ✕ 手動テスト
56
イテレーション中 手動テスト 新機能テスト
+
セッションベースドテスト
ビルド時 リグレッションテスト 各機能のテスト
スピード重視
リリース時 シナリオテスト 要件網羅のテスト
ユーザの価値を重視
アジャイルテストの台頭
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:ユーザの価値を重視 ✕ 繰り返し重視 ✕ インターフェース重視
57
ロジック
UI リクエスト
レスポンス
・テスト内容:ユーザの基本操作を自動化
対象は正常系のみ
繰り返し行うテストを自動化
・対象:SDKが組み込まれたサンプルアプリ
・デバイス:iOS、Android、Java、Windows
・テスト使用タイミング:リリース前、受け入れ時
・テスト内容:サーバーの設定確認
入力/出力のパターン網羅
・対象:REST API
・テスト使用タイミング:開発中、リリース前
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
事例:簡易アーキテクチャ
58
image: Designed by Freepik and distributed by Flaticon
PC(Mac)
VM
(Windows)
WindowsApp
API Test
JavaApp
Jenkins
Jenkins
Slave
GitLab
テスト
対象
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
59
①ユーザの価値を重視 ②テストスピード重視
③繰り返し重視 ④インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd. 60
①ユーザの価値重視 ②スピード重視 ③繰り返し重視 ④インターフェース重視
目的
ユーザが使用する主要機能/要件が
正常に動作することを確認する
イテレーション/リリースサイクル
の中でテストする
繰り返しテスト(データ、マルチ環
境)を自動化し、効率化する
インターフェースレベルでの入力/
出力パターンが仕様書通りであり、
機能が動作していることを確認する
特徴
・UIテスト(ハッピーパスから)
・本番環境に対してのテスト
・外部のテストエンジニアでも対応
可能
・基本機能のテスト
・テスト専用環境がある
・パラレル実行する
・同一操作を何度も実施する必要が
あるテスト
・APIテスト
・正常系だけでなく異常系のパター
ンまで確認することが多い
メリット
・自動テストの動きが想像しやすく、
作りやすい
・リリースの判断基準にできる
・1つのテストが短いため、開発者
へのフィードバックが早い
・開発者に効果を実感してもらいや
すい
・CI/CDに組み込みやすい
・1個スクリプトで様々なパターン
のテストができる
・人が実施するよりもミスが防げる
・ROIが高い
・UIを通さずにテストできるため、
自動テストがはやい
デメリット
・1つのテストケースが長くなるた
め、自動テストが不安定となりやす
い
・自動テストの変更頻度が高い
・[データ]正確な入力値と期待値の
組み合わせがないとテストできない
・[マルチ環境]複数環境の準備、メ
ンテナンスが大変
-
注意点
・全てを自動化しない
・変更箇所が少ないところからテス
トを作成する
・主要機能を自動化するため、バグ
を発見しにくい
・開発者やプロジェクトメンバーと
の協力が重要
-
・開発者やプロジェクトメンバーと
の協力が重要
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化を阻害する要因
61
1. リソース
2. 優先順位
3. ツールと環境
4. テストに対する文化
5. スキルセット
6. プロセス
©2021 HumanCrest Co.,Ltd. 62
リソース チーム
文化
スキルセット
目的
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン
63
①ユーザの価値を重視 ②テストスピード重視
③繰り返し重視 ④インターフェース重視
image: Designed by Freepik and distributed by Flaticon
©2021 HumanCrest Co.,Ltd.
©2021 HumanCrest Co.,Ltd.
テスト自動化 パターン(HCでは...)
64
①ユーザの価値を重視 ②テストスピード重視
③繰り返し重視 ④インターフェース重視
©2021 HumanCrest Co.,Ltd. 65
仲間 募集してます
・企業理念、ミッション、行動指針に共感してくれる方
・ISTQB / JSTQB 取得者
・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎!
©2021 HumanCrest Co.,Ltd. 66
仲間 募集してます
・企業理念、ミッション、行動指針に共感してくれる方
・ISTQB / JSTQB 取得者
・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎!
See the world not as is, but as it should be.
あるがままでなく、あるべき世界を見ろ
©2021 HumanCrest Co.,Ltd. 67
仲間 募集してます
・企業理念、ミッション、行動指針に共感してくれる方
・ISTQB / JSTQB 取得者
・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎!
See the world not as is, but as it should be.
あるがままでなく、あるべき世界を見ろ
①誰もまねできない品質やサービスを組み合わせて提供する
「オペレーショナル・エクセレンス」
② 顧客を深耕することで、その関係性を強化する「顧客との親密度」
③ 未知の発見を新サービスにする「サービス・リーダーシップ」
©2021 HumanCrest Co.,Ltd. 68
仲間 募集してます
・企業理念、ミッション、行動指針に共感してくれる方
・ISTQB / JSTQB 取得者
・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎!
See the world not as is, but as it should be.
あるがままでなく、あるべき世界を見ろ
①誰もまねできない品質やサービスを組み合わせて提供する
「オペレーショナル・エクセレンス」
② 顧客を深耕することで、その関係性を強化する「顧客との親密度」
③ 未知の発見を新サービスにする「サービス・リーダーシップ」
変革と研鑽
©2021 HumanCrest Co.,Ltd. 69
ご清聴ありがとうございました!
ご質問・ご意見 等は
バーチャルブースにて!

事例からわかる!テスト自動化導入パターン

  • 1.
  • 2.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 自己紹介 2 ❖ 名前 :浅黄 友隆 ❖ 主な業務 :テスト自動化、サービス開発 ❖ 経歴 :開発エンジニア 10年 テストエンジニア 10年 ❖ 名前 :山口 真央 ❖ 主な業務 :テスト自動化、サービス開発、マーケティング ❖ 経歴 :テストエンジニア 7年
  • 3.
    ©2021 HumanCrest Co.,Ltd.3 株式会社ヒューマンクレスト 設立: 2002/12/16 本社: ランドマークタワー 社員数: 156名 認証資格: ISO27001 ISTQBパートナーシップ: Platinum 株式会社ヒューマンネクスト (関内) JapanQuality Co.,Ltd (ベトナム ダナン)
  • 4.
  • 5.
    ©2021 HumanCrest Co.,Ltd.5 テスト自動化は普通になった
  • 6.
    ©2021 HumanCrest Co.,Ltd.6 導入できない 維持できない
  • 7.
    ©2021 HumanCrest Co.,Ltd.7 Unit Test Integration Test UI Test この辺の話
  • 8.
    ©2021 HumanCrest Co.,Ltd.8 Unit Test Integration Test この辺の話 UI Test
  • 9.
    ©2021 HumanCrest Co.,Ltd.9 Unit Test Integration Test UI Test この辺の話
  • 10.
    ©2021 HumanCrest Co.,Ltd.10 テスト自動化で重要なことは?
  • 11.
    ©2021 HumanCrest Co.,Ltd.11 実行 リソース チーム 文化 スキルセット 目的
  • 12.
    ©2021 HumanCrest Co.,Ltd.12 リソース チーム 文化 スキルセット 目的 自動テストのコア
  • 13.
    ©2021 HumanCrest Co.,Ltd.13 リソース チーム 文化 スキルセット 目的 自動テストのコア 自動テストの概念層
  • 14.
    ©2021 HumanCrest Co.,Ltd.14 リソース チーム 文化 スキルセット 目的 自動テストのコア 自動テストの概念層 自動テストの中間層
  • 15.
    ©2021 HumanCrest Co.,Ltd.15 リソース チーム 文化 スキルセット 目的 自動テストのコア 自動テストの概念層 自動テストの中間層 自動テストの表層
  • 16.
    ©2021 HumanCrest Co.,Ltd.16 リソース チーム 文化 スキルセット 目的 自動テストのコア 自動テストの概念層 自動テストの中間層 自動テストの表層 自動テストのベース
  • 17.
    ©2021 HumanCrest Co.,Ltd.17 テスト自動化導入パターンは : :
  • 18.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 18 ユーザの価値を重視 テストスピード重視 繰り返し重視 インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 19.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 19 ユーザの価値を重視 テストスピード重視 繰り返し重視 インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 20.
    ©2021 HumanCrest Co.,Ltd.20 目的 主要な機能/要件が 正常に動作することを確認する
  • 21.
    ©2021 HumanCrest Co.,Ltd.21 手動テストを自動化 ユーザに提供する価値を テスト
  • 22.
    ©2021 HumanCrest Co.,Ltd.22 ピラミッドの頂上 少ない Unit Test Integration Test UI Tests
  • 23.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:ユーザの価値を重視 23 ECサイトの場合
  • 24.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:ユーザの価値を重視 24 【グループウェアの場合】2014〜 ・ユーザの価値:予定作成、メール送信 ・テストタイプ:ユースケーステスト image: Designed by Freepik and distributed by Flaticon 【ECサイトの場合】2015〜 ・ユーザの価値:新規会員登録、ログイン、検索、購入、退会 ・テストタイプ:シナリオテスト 【グルメサイトの場合】2017〜 ・ユーザの価値:店舗検索、予約 ・テストタイプ:シナリオテスト
  • 25.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 25 ユーザの価値を重視 テストスピード重視 繰り返し重視 インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 26.
    ©2021 HumanCrest Co.,Ltd.26 目的 繰り返しテスト (環境やデータ) を自動化によって効率化する
  • 27.
    ©2021 HumanCrest Co.,Ltd.27 繰り返しを自動化
  • 28.
    ©2021 HumanCrest Co.,Ltd.28 テストケースを繰り返す ブラウザ OS デバイス
  • 29.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:テストケースを繰り返す 29 【グループウェアの場合】2014〜 ・ユーザの価値:予定作成、メール送信 ・テストタイプ:ユースケーステスト ・ブラウザ: image: Designed by Freepik and distributed by Flaticon 【ECサイトの場合】2015〜 ・ユーザの価値:新規会員登録、ログイン、検索、購入、退会 ・テストタイプ:シナリオテスト ・ブラウザ: 【グルメサイトの場合】2017〜 ・ユーザの価値:店舗検索、予約 ・テストタイプ:シナリオテスト ・ブラウザ: 8 9 10 11 beta win mac
  • 30.
    ©2021 HumanCrest Co.,Ltd.30 データを繰り返す IN/OUTデータの 組み合わせ パターン網羅
  • 31.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:データを繰り返す 31 【事例A】2020 ・目的:数値計算の正確性確認(保険) ・制約:入力→出力はブラウザで確認が必須 ・方法:Seleniumを利用したデータ駆動テスト。ケース数は数万件。 入力パターンによって画面遷移も変わる為、キーワード駆動の考えを取り入れ、 パターン毎に画面遷移フローを自動生成するところから開発。 【事例B】2017 ・目的:超高速開発ツールで作成したシステムの設定ミスを検知 ・制約:ツールの性質上、単体テストは書けない ・方法:Seleniumを利用したデータ駆動テスト 画面からの入力値に対するエラーメッセージのパターンを確認
  • 32.
    ©2021 HumanCrest Co.,Ltd.32 テスト自動化の変化
  • 33.
    ©2021 HumanCrest Co.,Ltd.33 様々な開発・環境の変化
  • 34.
    ©2021 HumanCrest Co.,Ltd.34 インフラ デバイス アーキテクチャ プロセス
  • 35.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 開発技術とテストの変化 35 オンプレ クラウド WF開発 アジャイル開発 モノリシック マイクロサービス CI/CD フロントエンド バックエンド リリースサイクル インフラ環境の変化 開発プロセスの変化 アーキテクチャの変化 イテレーション モバイル Web デバイスの変化 DevOps テストスピード テストスコープ
  • 36.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 36 ユーザの価値を重視 テストスピード重視 繰り返し重視 インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 37.
    ©2021 HumanCrest Co.,Ltd.37 テスト自動化のスコープ
  • 38.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テストスコープ 38 ロジック リクエスト レスポンス UI テスト
  • 39.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テストスコープ 39 ロジック リクエスト レスポンス テスト
  • 40.
    ©2021 HumanCrest Co.,Ltd.40 目的 バックエンドの動作を確認 API(サービス)の動作を確認
  • 41.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 41 Unit Tests UI Tests 自動テストが砂時計型
  • 42.
    ©2021 HumanCrest Co.,Ltd.42 インターフェースのテスト UIのテスト
  • 43.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:パターン④インターフェース重視 43 【事例A】 ・目的:APIのリクエスト・レスポンス等が正しいことを確認 ・制約:ステータスコードが特殊 ・方針:API毎のパラメータパターンをテストケースとする ステータスコードではなく、レスポンスの内容でテスト APIの順序性、アクセストークン等の受け渡しも考慮する 【バックエンドシステム】 ・目的:サービス仕様書の記述を元にインプットデータの パラメータパターンで機能を有している事を確認 ・方針:APIのリクエスト/レスポンスだけでなく、 DBやログまで確認を実施する image: Designed by Freepik and distributed by Flaticon
  • 44.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 44 ユーザの価値を重視 テストスピード重視 繰り返し重視 インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 45.
    ©2021 HumanCrest Co.,Ltd.45 テストスピードを改善
  • 46.
    ©2021 HumanCrest Co.,Ltd.46 目的 イテレーション リリースサイクル の中でテストする
  • 47.
    ©2021 HumanCrest Co.,Ltd.47 開発スピードの変化 テスト実施後の フィードバックが重要
  • 48.
    ©2021 HumanCrest Co.,Ltd.48 開発環境の変化 いつでもテスト実行可能
  • 49.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 49 アジャイルテストの4 象限
  • 50.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 50 テストピラミッド
  • 51.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:テストスピードを改善 51 【ロジスティクスの場合】 ・リリースサイクル:週1回 ・テスト対象:本番環境、ステージング環境 ・テスト機能:受付、人員管理等の主要機能 ・自動テストの使われ方:ステージングリリース後、 自動テストが全て通るか確認 問題がなければ、その後本番環境へリリース
  • 52.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:簡易アーキテクチャ図 52 image: Designed by Freepik and distributed by Flaticon
  • 53.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:テストスピードを改善 53 【CMSの場合】 ・リリースサイクル:月1回 ・スプリント :1週間 ・アジャイルチーム:朝会、振り返り会に参加 ・テスト機能:すべての画面に遷移可能であること 主要機能、外部結合に問題がないこと ・テスト対象環境:自動テスト専用環境が3環境 ・自動テストの使われ方:日次ビルドでテストが実行される image: Designed by Freepik and distributed by Flaticon
  • 54.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:簡易アーキテクチャ図 54 オンプレ AWS テスト対象 AWS Win sv ubuntu sv master Win 10 for chrome for firefox for Edge slave library Java Junit/maven selenium
  • 55.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 各パターンの組み合わせ 55 目的によって導入の仕方が変わり、パターンを組み合わせることもある! 例 ❖ テストスピード重視 × 繰り返し重視 ❖ テストスピード重視 × インターフェース重視 ❖ 繰り返し重視 × インターフェース重視 ❖ ユーザの価値を重視 × テストスピード重視 × 手動テスト ❖ ユーザの価値を重視 × 繰り返し重視 × インターフェース重視
  • 56.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:ユーザの価値を重視 ✕ テストスピード重視 ✕ 手動テスト 56 イテレーション中 手動テスト 新機能テスト + セッションベースドテスト ビルド時 リグレッションテスト 各機能のテスト スピード重視 リリース時 シナリオテスト 要件網羅のテスト ユーザの価値を重視 アジャイルテストの台頭
  • 57.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:ユーザの価値を重視 ✕ 繰り返し重視 ✕ インターフェース重視 57 ロジック UI リクエスト レスポンス ・テスト内容:ユーザの基本操作を自動化 対象は正常系のみ 繰り返し行うテストを自動化 ・対象:SDKが組み込まれたサンプルアプリ ・デバイス:iOS、Android、Java、Windows ・テスト使用タイミング:リリース前、受け入れ時 ・テスト内容:サーバーの設定確認 入力/出力のパターン網羅 ・対象:REST API ・テスト使用タイミング:開発中、リリース前 image: Designed by Freepik and distributed by Flaticon
  • 58.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. 事例:簡易アーキテクチャ 58 image: Designed by Freepik and distributed by Flaticon PC(Mac) VM (Windows) WindowsApp API Test JavaApp Jenkins Jenkins Slave GitLab テスト 対象
  • 59.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 59 ①ユーザの価値を重視 ②テストスピード重視 ③繰り返し重視 ④インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 60.
    ©2021 HumanCrest Co.,Ltd.60 ①ユーザの価値重視 ②スピード重視 ③繰り返し重視 ④インターフェース重視 目的 ユーザが使用する主要機能/要件が 正常に動作することを確認する イテレーション/リリースサイクル の中でテストする 繰り返しテスト(データ、マルチ環 境)を自動化し、効率化する インターフェースレベルでの入力/ 出力パターンが仕様書通りであり、 機能が動作していることを確認する 特徴 ・UIテスト(ハッピーパスから) ・本番環境に対してのテスト ・外部のテストエンジニアでも対応 可能 ・基本機能のテスト ・テスト専用環境がある ・パラレル実行する ・同一操作を何度も実施する必要が あるテスト ・APIテスト ・正常系だけでなく異常系のパター ンまで確認することが多い メリット ・自動テストの動きが想像しやすく、 作りやすい ・リリースの判断基準にできる ・1つのテストが短いため、開発者 へのフィードバックが早い ・開発者に効果を実感してもらいや すい ・CI/CDに組み込みやすい ・1個スクリプトで様々なパターン のテストができる ・人が実施するよりもミスが防げる ・ROIが高い ・UIを通さずにテストできるため、 自動テストがはやい デメリット ・1つのテストケースが長くなるた め、自動テストが不安定となりやす い ・自動テストの変更頻度が高い ・[データ]正確な入力値と期待値の 組み合わせがないとテストできない ・[マルチ環境]複数環境の準備、メ ンテナンスが大変 - 注意点 ・全てを自動化しない ・変更箇所が少ないところからテス トを作成する ・主要機能を自動化するため、バグ を発見しにくい ・開発者やプロジェクトメンバーと の協力が重要 - ・開発者やプロジェクトメンバーと の協力が重要
  • 61.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化を阻害する要因 61 1. リソース 2. 優先順位 3. ツールと環境 4. テストに対する文化 5. スキルセット 6. プロセス
  • 62.
    ©2021 HumanCrest Co.,Ltd.62 リソース チーム 文化 スキルセット 目的
  • 63.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン 63 ①ユーザの価値を重視 ②テストスピード重視 ③繰り返し重視 ④インターフェース重視 image: Designed by Freepik and distributed by Flaticon
  • 64.
    ©2021 HumanCrest Co.,Ltd. ©2021HumanCrest Co.,Ltd. テスト自動化 パターン(HCでは...) 64 ①ユーザの価値を重視 ②テストスピード重視 ③繰り返し重視 ④インターフェース重視
  • 65.
    ©2021 HumanCrest Co.,Ltd.65 仲間 募集してます ・企業理念、ミッション、行動指針に共感してくれる方 ・ISTQB / JSTQB 取得者 ・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎!
  • 66.
    ©2021 HumanCrest Co.,Ltd.66 仲間 募集してます ・企業理念、ミッション、行動指針に共感してくれる方 ・ISTQB / JSTQB 取得者 ・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎! See the world not as is, but as it should be. あるがままでなく、あるべき世界を見ろ
  • 67.
    ©2021 HumanCrest Co.,Ltd.67 仲間 募集してます ・企業理念、ミッション、行動指針に共感してくれる方 ・ISTQB / JSTQB 取得者 ・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎! See the world not as is, but as it should be. あるがままでなく、あるべき世界を見ろ ①誰もまねできない品質やサービスを組み合わせて提供する 「オペレーショナル・エクセレンス」 ② 顧客を深耕することで、その関係性を強化する「顧客との親密度」 ③ 未知の発見を新サービスにする「サービス・リーダーシップ」
  • 68.
    ©2021 HumanCrest Co.,Ltd.68 仲間 募集してます ・企業理念、ミッション、行動指針に共感してくれる方 ・ISTQB / JSTQB 取得者 ・(特に)ISTQB / JSTQB Advanced Level 取得者 大歓迎! See the world not as is, but as it should be. あるがままでなく、あるべき世界を見ろ ①誰もまねできない品質やサービスを組み合わせて提供する 「オペレーショナル・エクセレンス」 ② 顧客を深耕することで、その関係性を強化する「顧客との親密度」 ③ 未知の発見を新サービスにする「サービス・リーダーシップ」 変革と研鑽
  • 69.
    ©2021 HumanCrest Co.,Ltd.69 ご清聴ありがとうございました! ご質問・ご意見 等は バーチャルブースにて!