Your SlideShare is downloading. ×
0
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Magento Test Automation Framework
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Magento Test Automation Framework

1,158

Published on

Magento Cafe #11で発表した資料です。 …

Magento Cafe #11で発表した資料です。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,158
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Magento Test Automation Framework 紹介&使用感レポート 株式会社フラッツ CTO 天方 貴久 2012年6月 Copyright (C) 2012 FLATz Inc. All rights reserved. 1
  • 2. 自己紹介• 天方 貴久• 株式会社フラッツ CTO• 趣味 – 天体観測 – SF小説を書くこと• Magento歴 – ここ1年はMagentoばかりいじっている Copyright (C) 2012 FLATz Inc. All rights reserved. 2
  • 3. Magento Test Automation Frameworkとは?• Magento Test Automation Framework(MTAF)• Magentoの自動テストのためのフレームワーク – 機能テスト – 実際にブラウザを使ったテスト – https://github.com/magento/taf • githubでソースコードが公開されています Copyright (C) 2012 FLATz Inc. All rights reserved. 3
  • 4. Magento の 人力テストの問題点(1)• テストが大変 – Magentoは標準でも機能数が非常に多い • 人力でのテスト項目は数百から数千項目 – Magentoの各機能はほかの機能と連携している • ある機能の不具合を修正したら、連携している部分もテスト しなければならない • 影響範囲を検討するのは難しい Copyright (C) 2012 FLATz Inc. All rights reserved. 4
  • 5. 人力テストの問題点(2)• テストを漏れなく遂行できるか• コストを払って繰り返しテストをするか• テストを速くできるか Copyright (C) 2012 FLATz Inc. All rights reserved. 5
  • 6. テストの自動化をすると• テストを漏れなく遂行できるか →テストは明確に定義される• コストを払って繰り返しテストをするか →テストは何回でも実施できる →人は張り付いている必要はない• テストを速くできるか →人力にくらべて高速にできる。 Copyright (C) 2012 FLATz Inc. All rights reserved. 6
  • 7. 人力テストのとある方法 HTTP Magento CE 操作・確認 ブラウザ 私 Copyright (C) 2012 FLATz Inc. All rights reserved. 7
  • 8. MTAFをつかったテストだとこうなる 私 実行 HTTP 操作 結果取得 自動テストプログラム ブラウザ Magento CE Copyright (C) 2012 FLATz Inc. All rights reserved. 8
  • 9. MTAFをつかったテストだとこうなる 私 実行 HTTP Test.php Selenium RC Driver HTTP 操作 結果取得 Selenium Magento CE UIMap.yml RC Server 自動テストプログラム ブラウザ DataSet.yml PHP Unit Copyright (C) 2012 FLATz Inc. All rights reserved. 9
  • 10. 実際にやってみる Copyright (C) 2012 FLATz Inc. All rights reserved. 10
  • 11. TAFのメリット• テストの品質が一定になる• 繰り返しテストができる• テストを高速に実施できる Copyright (C) 2012 FLATz Inc. All rights reserved. 11
  • 12. TAFのメリット• ブラウザテストができる – JavaScriptとかPHPテンプレートのエラーで動きません(> <)/ みた いなことがない• 最初からテストコードが付いている – Magento標準の機能テスト一式が最初からある Copyright (C) 2012 FLATz Inc. All rights reserved. 12
  • 13. TAFの構成の限界• デザイン崩れはわからない。 – そこは目視チェックが必要• 単体テストはできない – ライブラリやAPIのバリエーションテストには不向き• テストを追加するにはプログラムを組む必要がある – テスト準備には開発者が必要 Copyright (C) 2012 FLATz Inc. All rights reserved. 13
  • 14. MTAFの構成(必要なソフトウェア)• PHP 5.2.0以上(PHP UnitとMagentoに必要)• JRE1.6以上(Selenium RCに必要)• PHPUnit 3.5.13以上• Selenium RC 1.0.3以上、または 2.0 rc2• Magento Community Edition 1.5以上 Copyright (C) 2012 FLATz Inc. All rights reserved. 14
  • 15. MTAFがサポートするブラウザ• Mozilla Firefox 3.x以上• Google Chrome• Internet Explorer 6.0以上 Copyright (C) 2012 FLATz Inc. All rights reserved. 15
  • 16. TAFのテストの具体例の紹介:フォルダ構造 Copyright (C) 2012 FLATz Inc. All rights reserved. 16
  • 17. TAFのテストの具体例の紹介:テストケース(1)class Something_Create_Test extends Mage_Selenium_TestCase{ // 前提条件設定 protected function assertPreConditions() { $this->loginAdminUser(); // 管理者ログイン $this->assertTrue($this->checkCurrentPage(dashboard), Wrong page is opened); // 管理メニューのmanage_storesを選択 $this->navigate(‘manage_stores’); // ① // manage_storesが表示されていることを確認 $this->assertTrue($this->checkCurrentPage(‘manage_stores’), // ② Wrong page is opened); } Copyright (C) 2012 FLATz Inc. All rights reserved. 17
  • 18. TAFのテストの具体例の紹介:テストケース(2) // 管理画面ナビゲーション動作 public function test_Navigation() { // 検証 $this->assertTrue($this->clickButton(‘create_store_view’), // ③ There is no "Create Store View" button on the page); $this->assertTrue($this->checkCurrentPage(new_store_view), Wrong page is opened); $this->assertTrue($this->controlIsPresent(button, back), There is no "Back" button on the page); $this->assertTrue($this->controlIsPresent(‘button’, ‘save_store_view’), There is no "Save" button on the page); $this->assertTrue($this->controlIsPresent(button, reset), There is no "Reset" button on the page); } Copyright (C) 2012 FLATz Inc. All rights reserved. 18
  • 19. TAFのテストの具体例の紹介:テストケース(3) // 必須フィールドのみのテスト public function test_WithRequiredFieldsOnly() { // フォームにセットするデータ読み込み $storeData = $this->loadData(‘generic_store’, Null, ‘store_name’); // A // 操作 $this->clickButton(‘create_store’); $this->fillForm($storeData); $this->saveForm(‘save_store’); // 検証 $this->assertTrue($this->successMessage(‘success_saved_store’) // ④ , $this->messages); $this->assertTrue($this->checkCurrentPage(‘manage_stores’), // ① After successful creation store should be redirected to Manage Stores page); }} Copyright (C) 2012 FLATz Inc. All rights reserved. 19
  • 20. TAFのテストの具体例の紹介:UIMapmanage_stores: mca: system_store/ // ② click_xpath: //ul[@id=‘nav’]//a[contains(@href, ‘system_store’)] // ① title: Stores / System / Magento Admin uimap: buttons: create_store_view: button[span=‘Create Store View’] // ③ messages: success_saved_store: li[normalize-space(@class)=‘success-msg’]// ④ Copyright (C) 2012 FLATz Inc. All rights reserved. 20
  • 21. TAFのテストの具体例の紹介:DataSetgeneric_store: // A website: Main Website store_name: Generic Store(%randomize%) root_category: Default Categoryedit_store: store_name: Main Website Store root_category: Default Category default_store_view: Default Store View Copyright (C) 2012 FLATz Inc. All rights reserved. 21
  • 22. 実際のソースコードめぐり Copyright (C) 2012 FLATz Inc. All rights reserved. 22
  • 23. TAFの使用感(1)• Magentoの標準機能の全体的なテストを実施できるのはうれしい – すごい量のテストコード – 自動化テストに取り組むためのフレームワークを自分で作る必要はない • UIMap、データセット、ユーザログインなどのテストの前提となるテスト機能• 実は標準のマニュアルの手順だけだとうまく動かない? – Magento 1.5用なので1.6だとエラーが出る – Windows用のマニュアルなのでLinuxだと戸惑う• 結構1回のテストに時間がかかる – 1回の全テストに10時間以上かかる• 日本語環境、多言語環境はどうするのか? – 日本語用のデータセットの準備や日本語エクステンション用のXpathの書き換えが必要 Copyright (C) 2012 FLATz Inc. All rights reserved. 23
  • 24. TAFの使用感(2)• Magento TAFはどんなときに使った方がいいか – Magento 1.5,1.6,1.7系 • 継続開発、繰り返し開発の場合 – 使うことを検討してみるのはあり。 • 単発の開発の場合 – 日本では、初期導入コストは高いので要検討 – Magento 2.0系 • 試していないが、使えないと思う。 • Magento 2.0のフレームワークには標準でUnit Testの機能があるので、 自動化に興味がある場合はそちらを試したほうがいい – Magento 2.0 はテスト自動化の本命? – TAFは機能テストだが・・・ Copyright (C) 2012 FLATz Inc. All rights reserved. 24
  • 25. TAFのマニュアル• ユーザマニュアル、インストール手順書 (英語)がTAF本家で公開さ れている – https://github.com/magento/taf/blob/master/MagentoTestAutomationFram eworkUsersGuide.pdf – https://github.com/magento/taf/blob/master/MagentoTestAutomationFram eworkInstallationGuide.pdf Copyright (C) 2012 FLATz Inc. All rights reserved. 25
  • 26. おわり• Magento全体の品質があがり、より安心できるようになることを 願って Copyright (C) 2012 FLATz Inc. All rights reserved. 26
  • 27. エンジニアを募集• Magentoの開発に興味のあるエンジニアを募集しています Copyright (C) 2012 FLATz Inc. All rights reserved. 27
  • 28. 連絡先• 株式会社フラッツ(twitter:@flatz) – 天方貴久 (twitter: @cmmpower) – http://www.flatz.jp/ Copyright (C) 2012 FLATz Inc. All rights reserved. 28

×