大規模かつ進化の早いソフトウェアに対するテスト …...• tdd(test-driven...
TRANSCRIPT
©2018 LogiGear Corporation
大規模かつ進化の早いソフトウェアに対するテストの自動化マルチプラットフォームそしてマルチリリースに対するテストの自動化
©2018 LogiGear Corporation
テスト自動化のチャレンジ
©2018 LogiGear Corporation
弊社テストツールの特徴(極めて個人的な意見)
• 値段が安い
– 100万を超えるようなテストツールがほとんどで、とても現場レベルでは変えない。年間20万以下に抑えた(固定資産にならない)価格を用意。業界最安値
• テストケースがムダにならない
– ある日突然テストケースのほとんどが動かなくなることがない(keyword driven)。オフショアにテストケース作成出しても安心
– あるOSでは「やっぱり動かない、もしくは動くのに時間がかかる」というふうにメーカに言われない
• カスタマイズが可能
– 他のテストツールメーカは絶対にカスタマイズしてくれない
アジャイルやCIはテスト工程に以下のものと求めている
• 上流工程で
• 素早く
• カンペキに
• 繰り返し
©2018 LogiGear Corporation
アジャイル・ 継続的開発(CI)サイクル
今なにをしなければならないのか?
初歩的なテスト自動化の失敗の理由
• テストケース作成に時間がかかる
• 失敗するテストケースのメンテナンスコストの増加
• 低いテストケースの再利用化率
• テスト管理の難しさ
• テストケースをチームでシェアする難しさ
©2018 LogiGear Corporation
AgileのContinuous Integration(CI)サイクル
しかし、かなりの確率で失敗する
テストの自動化をするにはプログラミングのスキルが必要、しかし
• 人材不足
• 開発者の単価の高さ
• そしてそのプロセスは面倒であり、そのコーディングのスピードは遅い
• 自動化の活動は品質保証活動に部分的にしか寄与せず、その品質分析もされない
キャプチャー・リプレイのテストツールでの自動化はプログラミングのスキルは必要でないが、しかし
• キャプチャー・リプレイのスクリプトを読むことが難しく、ましてや理解できない場合が多い
• プログラミングができない人がキャプチャーリプレイのスクリプトを作成するため、メインテナンス可能なスクリプトにならない。そのためすこし製品ソフトウェアの仕様を変えただけで、テストスクリプトを全てをかえなければならない場合がある
©2018 LogiGear Corporation
自動化テストケース作成上の問題
自動テストスクリプトが品質の本当の欲するところ実行しているかを理解できない
• 一体なんのテストを行っているかわからない場合がある、ただ単にシナリオを網羅している
• 他人の作ったテストスクリプトのメンテナンスは非常に困難
自動化のベストプラクティス(成功体験)が成立しにくい
• たいていのテストは細かすぎ、メインテナンスに多大な工数がかかる
• 製品のソフトウェアの変更にたいして、自動テストスクリプトがどれぐらい変更を余儀されるかが見積もることが困難
• 再利用の困難
• 網羅率の見える化の困難
• テストスクリプトの変更トレースが困難
テスト計画が立てにくくやその組織をうまく構成しにくい
©2018 LogiGear Corporation
自動化テストケースの生成の問題
チーム(開発者、テスター、プロジェクトリード、マネージャ)による開発では、各人が明確な責任範囲を持つことができない場合がある
• 各人へのオーナーのアサイン
• プロジェクト自体のマネージ
• 各人の生産性の測定
テスト設計やそのベストプラクティス構築の難しさ
• 自動化テストのプロジェクト計画の難しさ
• プロジェクトのマネージ
• プロジェクトの監査
• プロジェクトの進捗管理
©2018 LogiGear Corporation
チームによる自動テストの困難さ
テストケース管理の難しさ
• テストケースの重複
• 変更に対するトレーサビリティの担保の困難
• テストの網羅率が明白ではない
テスト実行管理の難しさ
• 異なったバージョンのテスト実行結果の管理が困難
• 異なったバージョンのリリースに対してソースコードのマージが難しい
©2018 LogiGear Corporation
チームによるテスト自動化の難しさ
拡張性の問題
• 3rdパーティ製のドライバーコントロールは一般的手法がなく、そして日々代わってしまう。自動化ツールからの3rdパーティの制御は非常に困難である場合が多い
• メジャーなプラットフォームしかサポートされない
• マイナーなプラットフォームをどうサポートしていくかはなんら考えられていない
マルチプラットフォームのサポートの問題:
• いくつかのプラットフォームをサポートするのに、わざわざそれぞれのプラットフォームに対応したツールを使わなければならない
• プラットフォーム対応するために自分でコード書き、自分でメンテナンスしなければならない
©2018 LogiGear Corporation
テストの自動化の技術的問題
©2018 LogiGear Corporation
ソリューション
TestArchitectは大規模かつ進化の早くソフトウェア開発に対応するためのテスト自動化フレームワークです
ブラウザOS
アプリケーション
自動化エンジン
TPAアクションベーステスト手法
ABT管理
TLM
LogiGearの開発した TestArchitect™ プラットフォームは大規模ソフトウェアの自動化に対応します。
TestArchitect® は特許取得済US Patent No. 8,775,558 under Device and Method Automation for Image-based User Interfaces
アクションベースのテストコンポーネント
[スピード, メンテナンス性, 急速に増大するコードでの再利用]
テスト自動化のライフサイクル管理コンポーネント [管理に対応]
自動化エンジン TPA (Technology Plug-
in Architecture) | MPS – マルチプラットフォーム[技術変更に対する耐性]
Test Automation Acceleration Platform
©2018 LogiGear Corporation
TLM
アクションベーステスト手法
ABT
©2018 LogiGear Corporation
A BETTER WAY TO AUTOMATE
1行1行のテストステップはアクションによって定義されます
テストモジュール
テストケース
LogiGearはアクションベースのテスト(ABT)を推奨しています。それは モジュール設計 かつ アクション指向のテスト手法で、大規模なソフトウェアに対する自動テストをチームで実現させます。
強力なテスト自動化のプラットフォーム
TPA
大規模化そして進化するソフトウェアに対応する自動化テスト
©2018 LogiGear Corporation
システムレベルのアクション郡(i.e., “クリック” or “enter”)
[ビルトインもしくはユーザスク
リプトのアクション]
アプリケーションレベルのアクションCシステムレベルのアクションの組み合わせやアプリケーションレベルのアクションの作成が可能 (i.e., “order entry”)
[ユーザ定義アクション]
その他のあらゆるアプリケーションの事前設定
Action Based Testing(ABT)多層になったアクションのアーキテクチャー
大規模かつ進化の早いソフトウェアに対するテストの自動化
管理
TLM
アクションベースのテスト手法
ABT
©2018 LogiGear Corporation
ビルトインサポート.Net, Java, WPF, WinFormsIE, Firefox, ChromeWindows, Linux, Android, iOS 7, etc.
マルチプラットフォームをサポート (MPS)プラグインをサポートするアーキテクチャー (PPA)クロスプラットフォームのサポート, マイナーなプラットフォームに対するサポート
強力なテスト自動化のプラットフォーム
自動化エンジン
TPA
大規模かつ進化の早いソフトウェアに対するテストの自動化
©2018 LogiGear Corporation
大規模かつ進化の早いソフトウェアに対するテストの自動化
デスクトップ Web モバイル
マルチプラットフォームサポート
自動化エンジン
TPA
ブラウザOS
アプリケーション
アクションベースのテスト手法
ABT管理
TLM
©2018 LogiGear Corporation
A BETTER WAY TO AUTOMATE
自動化テストのライフサイクル管理: • 計画• オーナーのアサイン• 監査• ワークフローと進捗管理• バージョン管理
他のアプリケーションとの拡張性サードパーティのツールとの統合: Jira, Jenkins, QC
大規模かつ進化の早いソフトウェアに対するテストの自動化
Test Automation Acceleration Platform
大規模かつ進化の早いソフトウェアに対するテストの自動化
©2018 LogiGear Corporation
テスト プロデューサー(Actions USER)
テスト担当者,、その製品ドメインのエキスパート、等々
(プログラミングスキルは持ってない)
「アクション」を利用して、Excelライクなテンプレートでわかりやすいビジネスシナリオのテストケースを作成
「アクション」プロデューサー
開発者(プログラミングスキルを持つ)ABTL を利用してキーワード形式を持つユーザー定義アクションを作成
自動化テスト担当者(多少のプログラミングスキルを持つ)
• ABTL 使い複雑なユーザ定義アクションを作成
• C/C++, Java or Pythonを利用してユーザーに特化したアクションを作成
STAFFING MODEL 製品ドメインスキル
プログラミングスキル
テスト
ユーザ定義のアクション
製品
ビルドインされたアクション(386 のアクション)*
ユーザが自ら追加するアクションスクリプト(必要時)
(*) この386のアクションは最も一般的なテストを網羅するアクションです
柔軟性のあるエンジニアの配置
©2018 LogiGear Corporation
特徴
• 「 早期に」「カンペキに」「素早く」「 繰り返し」行うテストを実現
• 大規模かつ進化の早いソフトウェアに対するテストの自動化
• TDD(Test-Driven Development)の自動化テストの加速
• 自動化テスト数を強力に増加させ、またテスト網羅率を担保させる
• 確固たる自信を持ってソフトウェアをリリースできる
“LogiGear’s proprietary
automation tool,
methodology and cost
effective services play an
important role in our
software testing efforts.”
Nagaraj Srinivasan
VP of Technology,
Halliburton
SCRUM BOARD SYSTEM
テストシステムの例
©2018 LogiGear Corporation
Data Storage Layer
Transactional Data
Webアプリ
Web-AP Tier (IIS-ASP.NET)
Web API
Internet
Internet
クライアント
©2018 LogiGear Corporation
Demonstration of the TestArchitect automates the test
例:テストシステムの例
アクションベーステスト (ABT)
©2018 LogiGear Corporation
ABT’s ハイレベルのテスト設計
Modules Planning
©2018 LogiGear Corporation
テスト要求
生成
No. Module Name Scope/High Level Test Objectives Priority
1 New Issue - Create a new issue 1
2 Update Issue - Update a specific issue 1
3 View Issue - View issues on SCRUM board- View details of a specific issue
2
4 Delete Issue - Delete a specific issue 1
…
モジュール計画
解析
*要求仕様 は製品の要求仕様 (PRD), ユーザストーリ, 顧客との議論, UIのモックアップ/スクリーンショット等々が含まれます。
モジュール設計
©2018 LogiGear Corporation
生成モジュール設計
分析
テストモジュール
Objectives
Initial - setup
Test cases
Final - cleanup
No. モジュール名 Scope/High Level Test Objectives 優先順位
1 New Issue Create a new issue 1
モジュール設計 (cont.)
©2018 LogiGear Corporation
テストモジュール
Objectives
Initial - setup
Test cases
Final - cleanup
アクションのキーワード
©2018 LogiGear Corporation
アクション
パラメータ
分離した考え
©2018 LogiGear Corporation
影響範囲の限定された変更
ハイレベルなアクション
©2018 LogiGear Corporation
クリック
「製品」を選択「 カートに追加 」にクリック「 購入」にクリック
オーダーエントリー
低レベルアクションが
結合されます
ハイレベルなアクションを作るため
より高いレベルのアクションを作るためにさらに組み合わせることができる。
チェックアウト
自動化
©2018 LogiGear Corporation
テストモジュール
Objectives
Initial - setup
Test cases
Final - cleanup
アクションのライブラリ
インターフェース
Automation Engine – TestArchitect Playback
「アクション」ライブラリとインファーフェースがテストケースを動かします。
テストチームにおける役割
©2018 LogiGear Corporation
自動化
エンジニア
テスト担当者
製品ドメインの識者
テストチームのマネージャ
ハイレベルアクション
カスタムアクション
Test Module
TC
Test Module
TC
Test Module &Objectives
TC
Agileにおけるテストの自動化
©2018 LogiGear Corporation
OBJECTIVE
Test Module
Test Modules & Objectives
スペック
バックログ
Test Development
OBJECTIVE
Test ModuleTest
Module
テストケース作成
アクション自動化
アプリ開発
スプリント
Test Module
ACTIONLIBRARY
INTERFACE
Test Module
Test Module
Test Module
Test DevelopmentTest Development
製品化
自動化の再利用
製品
Test Automation
ACTIONLIBRARY
INTERFACE
Test Module
Test Module
Test Development
©2018 LogiGear Corporation
チームベースのテストの作成とそのコラボレーション
Agenda
チーム管理
テストケース管理
テンプレート
テスト実行&結果
バグトラッキング
リリース管理 & トラッキング
ダッシュボード
©2018 LogiGear Corporation
チーム管理 – アクセス権
アクセス権は機能郡によって制限されている
ユーザ登録は管理者
によってなされる
(リポジトリーベー
ス)
各ユーザはプロジェ
クトに特化したグ
ループに属する。
©2018 LogiGear Corporation
チーム管理 – プロファイル
ユーザ情報はマネージャによって管理されている
©2018 LogiGear Corporation
ユーザをプロジェクトにアサインする
リポジトリーにあるユーザは複数プ
ロジェクトにアサインされ、適宜な
アクセス許可が与えられる。
管理者権限をもって
いれば、ユーザ役割
で人をアサインする
ことができる。
©2018 LogiGear Corporation
強力なテストケース管理機能
アプリケーションの機能・要求に関しての情報が各テストケース中に十分はいっており、確実なテスト実行及びそのfail場合の解析ができます。
構造的な仕様になっているテストケース管理ツールはテストケースの作成・変更・削除を容易にします。
©2018 LogiGear Corporation
構成が詳細かつ明確であるため, preconditionsやステップや期待値が簡易にマネージできる.
Test case
簡単にテストケースを移動したりコピーしたりサーチしたりすることができる
強力なテストケースマネージメント機能
©2018 LogiGear Corporation
各々のテストケースは1つ以上の要求仕様にマッピングされる(テストオブジェクト)。そうすることによりテストが効率的に実施され、そのテスト網羅率が明確にわかる。
各々のテストケースはテストステップ郡により構成され、それらはアクションとして定義されている。
もちろん他のテンプレートでステップbyステップのテストケースが定義されたといしも、それを包含でき、テストケースの再利用が可能です。
Test objectives
強力なテストケースマネージメント機能
©2018 LogiGear Corporation
テストモジュールやテストケースをある特定のテスト担当者にアサインしたり、トラッキングしたりできます。TestArchitectではテストスイートに任意のテストケースを含むことができます。
各々のテストスイートはテストモジュールやテストケースを包含し、そのテストスイートは指定したバージョンをテスト対象とすることができる。
強力なテストケース管理機能
©2018 LogiGear Corporation
テンプレート
テストモジュールはテ
ンプレート化されてお
り、テスト担当者が典
型的なフォーマットで
テストケースを作成で
きます。もちろんそれ
は「アクション」のテス
ト方法にのっとってい
ます。
テストモジュールはそれ単体で独立しており、実行させることができる。逆にテストモジュールに含まれる個々のテストケースは、他の要素に依存しているため単独ではテスト実行できない。
©2018 LogiGear Corporation
データ指向のテスト
• テストのデータをテストのモジュールとテストスクリプトから分離
する
• ただ単にデータを追加することにより、テスト網羅率を増加させる
ことができる
• テストスクリプトのメンテナンスが容易
©2018 LogiGear Corporation
データ・セットの定義
この中で定義されたテストはデータ・セットを使うことができる。データ・セットのデータを様々な値に変えてテストする。
check orders totalは毎回毎回結果がチェックされる
生データのセット
データ指向のテスト
©2018 LogiGear Corporation
バグ・トラッキング
• バグの起票・編集・アサイン・トレースができる
• バグや障害がテストケースにリンクされ、そのテストケースも要求仕様にリンクするため、バグのトレーサビリティが担保できる
• もしたくさんの”in process”ステータスのバグがあったとしてもプロジェクトマネージャがその時点の製品品質が想定できる。
©2018 LogiGear Corporation
既知のバグのトラッキング
既知のバグを既知のバグと印をつけることにより、そのバグをテストの結果から外すことができる
©2018 LogiGear Corporation
テスト実行
• 特定のテストケースの実行
• 複数のテストモジュールの実行
• コマンドラインのツールである– テストはコマンドラインのシェルから実行できる
– テスト実行に関してはフレキシビリティがあり、特にスケジュール機能は特筆したものがある。
• リモートでのテスト実行– TestArchitectのコントローラは事前にホストにインストールをすることにより、テストをホストからリモートで実行できる。
• 多数のデバイスに対してテスト実行ができる
• 並行してテスト実行ができる
©2018 LogiGear Corporation
テスト結果
• 様々なタイプのリポート機能– シリアルなテスト結果
– 抽出したテスト結果
– テストスイートの結果
– 部分結果
©2018 LogiGear Corporation
テスト結果のレビュー(既知のバグも含めた)
テスト結果レビューは、バグがJiraでクローズされているかもチェックできる。
©2018 LogiGear Corporation
特定のテストケースやテストモジュールのバグに関してもチェックできる
素早いバグの起票がバグトラッキングシステムにできる
結果をJiraに添付できる
©2018 LogiGear Corporation
テスト結果
• テスト結果をリポジトリーに追加できる
• テスト結果をエクスポートできる– テスト結果は変換して、ZIPやHTML, XMLやxUnitでエクスポートできる
• ZIPフォーマットのテスト結果をインポートできる– 圧縮されたZIPフォマットのテスト結果をインポートできる
• テスト結果の比較– トラックやデバックを新旧の問題でできる
• 最終のテスト結果のを見る– 最も直近のテスト結果をみることができる
©2018 LogiGear Corporation
テスト結果
• ベースラインの結果を見ることができる
• リモートでのテスト実行結果を見ることができる– リモート環境でテスト実行できるとともに、結果をリモートで見る
ことができる
• テスト結果をブラウザで表示– テスト結果はどんなwebブラウザでも表示できる.
– 結果だけをみるためにTestArchitectは必要としない
©2018 LogiGear Corporation
リリース管理とトラッキング
テスト結果をバージョンごとに遡ることができる。
もちろんテスト結果はバージョンを紐づけることができ、そしてそのバグどのバージョンのどのテストで起こったかを知ることができる
©2018 LogiGear Corporation
ダッシュボード
Panel
ダッシュボードページ
• 直感的に理解しやすいダッシュボードになっている。プロジェクトがどういう状態なのかが明確にわかる。
• TestArchitectの直接コネクトし、様々データをカスタマイズして表示ができる
• 全てのテストの管理・組織化・トラックを1っ箇所でおこなうことができる.
• テストタスクや進捗管理やテスト結果の管理をヘルプします。
• 最新のリポジトリーと同期して、最新の情報を得ます。
ダッシュボード
©2018 LogiGear Corporation
ダッシュボーロ: ページ, プロファイル&パネル
セッティングメニュー
©2018 LogiGear Corporation
ダッシュボードのヒートマップのプロファイル
各人のダッシュボードが各人で作成でき、それをカスタマイズできる
©2018 LogiGear Corporation
ヒートマップの表示
テストが失敗しているのが赤でしめされている。 (暗い赤は何度も同じ問題がおきている)
©2018 LogiGear Corporation
様々な周辺ツールとのサポート
©2018 LogiGear Corporation
自動化テスト開発者
• 自動化テスト開発者(ドライバー部分を書かない人)はテストケースに書くことに集中し、ビジネスシナリオ に注力に機能をテストする。自動化テスト開発者はコーディングスキルはいらない
• テストケースは 読むこ・書くこと・メンテナンスするとが非常に簡単。 “スクリプティング”のテストの自動化とひかくしてみてください。
• テスト計画やテストケース作成が簡単にマネージできる。
• 高品質のテストケースを早く作成できる、そのことにより十分な必要なテストケース数まで簡単に達することができる。
• テストケースのメンテナンス作業が容易である。もしテスト対象のアプリケーションが変更されても、すぐにテストケースが対応できる。
©2018 LogiGear Corporation
http://www.logigear.com/
Business Partners• Value Added Reseller
• Competitors
• Product Resellers
www.logigear.jp | www.logigear.com | www.testarchitect.com
LogiGear Viet Nam – Ho Chi Minh1A Phan Xich Long, Ward 2
Phu Nhuan District
Ho Chi Minh City
Tel: +84 839 954 072
LogiGear Viet Nam - Da Nang City346 Street 2/9
Hai Chau District
Da Nang CityTel: +84 511 365 533
LogiGear USA – San Mateo1850 Gateway Drive, Suite 175,
San Mateo, CA 94404
Foster City, CA 94403
Tel: +1650 572 1400
LogiGear USA - Houston10777 Westheimer Suite 1000
Houston, TX 77042
Tel: +1 650 572 1400 ext. 380
LogiGear USA - Seattle 2225 N 56th St
Seattle, WA 98103
Tel: +1 650 572 1400
LogiGear Japan – Head Quater1-51-1 Hatsudai Center Bldg. 407, Hatsudai, Shibuya-ku, Tokyo 151-0061,
Japan
Tel 1: +81 3 4500 8702