2014/05/03

「4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス」は実践的で良い教材ですね

STAR(Software Testing Automation Reserch; テスト自動化研究会)の方々が作成・公開されている「4時間で学ぶ、効率的な自動テストスクリプトのメンテナンス」をやってみました。確かに4時間くらいでできます。

この教材の内容はサイトに書いてある通りです。
オープンソースのブラウザテストツール「Selenium WebDriver」の使い方と、テストスクリプトを効率よくメンテナンスする方法について、実際にプログラムを書きながら学べるチュートリアル形式教材です。

日本語かつ無料で提供されているSelenium WebDriverのチュートリアルとしては一番実践的かつ分かりやすいと思います。

ひと通りやってみて感じた良い点は以下の通り。

  • 演習で必要な環境はひと通り提供されます。自分で用意するのはJava、Eclipse、Chromeです。
  • 演習で必要になるSeleniumの機能はひと通り最初の解説で説明されています。他のドキュメントなどは参照する必要がありません。
  • 例(ホテルの予約)が具体的です。
  • タイトルにメンテナンスとある通り、メンテナンス性を向上するため、ページオブジェクトパターンが解説されています。実際にテスト対象が変更された場合にテストコードを修正する例もついてきます。
これはこれで十分だと思いますが、さらに追加して欲しい点としては、複数ブラウザ対応の実現方法を盛り込むことでしょうか。

2014/02/17

Stanform大学のDBコース、半分くらい終わりました

Stanford大学のオンラインコースを使って主にRDBを勉強しています。慣れてきたので、だいたいどういうものか紹介をしておきます。コースが修了できたら、また報告しますね。

DBコースを受講したわけ


最近まで、仕事では直接DBを触る機会が少なかったのですが、昨年の10月から海外勤務になり、業務内容が全面的にDBを扱う仕事に大きく変わったため、Stanford大学のオンラインコースを使って主にRDBを勉強しています。

元々は、何かオンラインのコースを取りたいなと思っていて、分野として候補がいくつかある中、丁度良いタイミングで始まったのがDBだったので、コレを選んだ次第です。

DBコースの内容


内容は以下の様な感じ。
  • Relational Database Overview
  • XML Data
  • JSON Data
  • Relational Algebra
  • SQL
  • Relational Design Theory
  • Querying XML
  • Unified Modeling Language
  • Indexes
  • Transactions
  • Constraints and Triggers
  • Views
  • Authorization
  • Recursion
  • Online Analytical Programming
  • NoSQL Systems
期待通り、SQLやテーブル設計などRDBの内容が中心ですが、XMLやJSONなども含まれています。

受講の仕方


基本的に開講と同時に全教材が開放されて、どこから進めても良い形式になっているようです。ただし、提出期限は上から順番になっているので、上からやった方が良いと思います。

各項目に対して進め方は各項目に対して以下を繰り返す感じです。
  • 講師の説明ビデオを聞く
  • 簡単な4択のクイズに答える(得点なし)
  • 基本問題
    • 選択問題(小得点)
    • 実際にクエリを書く問題(中得点)
  • チャレンジ問題
    • 実際にクエリを書く問題(高得点)

コースの修了について


基本的には回答を提出して自動採点する仕組みになっています。そして、回答を提出するたびに現在の修了状況が採点されます。基本問題をひと通り解けば、50%は完了し、コースは修了できるようです。もし良い成績を残したければ、チャレンジ問題にも挑戦した方が良いです。

教材が英語だけど大丈夫?


私の場合、今、日本人がいない職場にいて、英語で仕事しているので、英語のコースを受講する分は特に問題はありません。

ただし、まだ知識が浅い内容に対して、若干、早口で講義が行われると、ちょっとつらくなって何度も聞き直す必要があったりします。結局は、基本問題を解きながら、具体的な物を見つつ、教材を読み直して理解するという流れになりがちです^^; また、それでもよく分からない場合は、今回は日本語の教材がネット上に転がっているので、必要に応じてGoogleで調べながらやっています。

英語のヒアリングが苦手な人にはちょっときついかもしれません。

負荷について


内容や自分の知識レベルにもよるのでしょうが、コースを修了したい人は週3〜4時間、良い成績を残したい人は週7〜8時間くらいかけないとダメなようで、フルタイムの人なら同時期に1コースが限度だと思います。

進め方の工夫について


開講と同時に全教材と締め切りが公開されますので、それに合わせてプライベートの予定を含めて、スケジュールを組んでおくことをおすすめします。難しい問題で手こずる可能性がありますので、常に締め切りより1週間程度は前倒しで進めましょう。

また、チャレンジ問題は締め切りが後になっているので、ついつい後回しにしてしまいがちですが、スケジュールの余裕があるかぎりは、基本問題をやった後に、早めに手を付けた方が良いと思います。

--

ということで、今回は中間報告です。無事に修了できたら、再度ブログ上でレポートを書きますね。

CodezineのSeleniumチュートリアルをやっています

今の勤務先の業務に、Seleniumを使ったテストが予定されているので、実務でやる前に、自分でもSeleniumによるテスト自動化を体験しておこうと思ってチュートリアルで学習しています。

やっているのは以下の連載の第2回。

WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium2」入門 第2回:「Selenium2」のインストール手順と初めの一歩 

内容は以下の通り、簡単なサンプルを使って、Selenium IDEとSelenium Web Driverの基礎の基礎を学べる良記事です。

  • 環境設定
    • Selenium IDEのインストール
    • Selenium Web Driverのインストール(Javaライブラリ、ドライバの両方)
  • Selenium IDEでブラウザ操作の記録、JUnitテストコードのエキスポート
  • Selenium Web Driverでテストコードの実行

これの次は以下を試す予定です。

PageObjectパターンは、Selenium開発者の間で推奨されているデザインパターンです。テスト対象のWebページに対して、直接、Selenium Web Driver APIを使った低レベルなコードを書くのではなく、テスト対象のWebページの外部仕様を表現するクラスを用意し、そのクラスに対してテストコードを書くやり方です。コレをやるとテストコードがすっきりして、良いテストが書けるようになります。

このチュートリアルのあとは、一旦、所属チームの方針で決められているテスティングフレームワーク TestNG の勉強を「TestNG Beginner's Guide 」でやって、本格的なSeleniumの勉強を「Selenium Testing Tools Cookbook 」でやろうと思います。

2014/01/23

【読書】海賊と呼ばれた男

2013年の本屋大賞というポップが目立っていて気になっていた「海賊とよばれた男 上」「海賊とよばれた男 下」を読みました。どうも文庫も出ていないそうで、やや高いので、サンフランシスコのジャパンタウンにて会員割引10%で購入!

著者は百田直樹さん、最近ヒットしているらしい映画「永遠の0」の原作者の方です。内容は出光興産の創業者・出光佐三をモデルにした歴史・経済・成り上がり・青春小説です。上下巻あり、かなり長いですが、非常に読みやすく、テンポも良い小説であっという間に読んでしまいました。

いちおうフィクションらしいのですが、かなり史実に忠実に書かれているとのこと。祖父母の世代は日章丸事件というとかなり有名だそうですが、ちょっと世代的にあまりよく知りません^^;

出光佐三氏は太平洋戦争前に生まれ、大八車で小麦を運び、手売りする商売から始め、アメリカで需要が出始めた石油に着目し、戦後の復興期に国内への石油の供給で貢献した方のようです。

戦前・戦中・戦後と、業界のルールを無視したとしても、石油事業を通じて日本の繁栄を常に目指してきたことで、戦中までは同業他社にいじめぬかれ、戦後は石油メジャーにやられほうだいだったようです。

しかし、戦後、石油メジャーによる日本市場の支配に対抗するため、当時、元宗主国である英国と石油利権で抗争中であったイランの国有会社と石油販売の契約を結んだことで、石油メジャーとは敵対関係になったものの、日本のエネルギー安全保証と会社の業績の面で大変な功績を上げ、世界的に名を轟かせたそうです。

小説を通して感じるのは、出光佐三(小説中は国岡鋳造)の一本スジの通った人生哲学、目先の商売ではなく日本の繁栄を常に考えた行動、そして戦後の反映を支えた当日の日本人達の謙虚さ・ひたむきさ・辛抱強さでしょうか。私自身は戦後40年近く立って生まれた人間であり、彼らのような強さは微塵もないですが。。記憶の中にある大正生まれの祖父母の人間性を小説の中に見た思いでした。

そのうち、この小説も映像化されるのかな〜。そしたら見てみたいです。

2014/01/05

【読書】SONYとマッキンゼーとDeNAとシリコンバレーで学んだ グローバル・リーダーの流儀




日本のベンチャー企業がシリコンバレーの企業を買収し、米国市場、ならびに世界での成功を目指す過程が物語形式と客観的な解説の組み合わせで進行します。章ごとに、日本と欧米企業の労働観や組織観の違いから発生する具体的な軋轢を紹介し、両者の違いを分かりやすく解説した上で、それを乗り越えていく過程を示しています。

著者の考えとして、欧米企業のやり方を過度に礼賛するわけでもなく、我々日本人の特性を活かしながら海外企業とうまくやっていく方法を考えることを提案している点は好感が持てます。著者によるとソニーの創業者盛田氏が著者の理想とするグローバル・リーダーのようです。

近年、海外企業を買収して、海外事業を発展させようとするケースは多いと思います。その際に本書に出てくるような日本の本社と現地子会社の間での軋轢のような話は往々にして見られる現象だと思います。日本から現地に赴任して海外子会社のオペレーションを担当する駐在員、あるいは海外企業と頻繁に仕事する機会のある人にも良い書籍かもしれません。

ちなみに、グローバルと言ってもシリコンバレーの話だけですし、タイトルにあるマッキンゼーとDeNAはほぼ関係ありません。これはマーケティング上の都合でしょう^^;

【読書】10年後の仕事のカタチ10のヒント シリコンバレーと、アジア新興国から考える


いわゆるグローバル企業で働き、海外で生活しているお二人の対談を元にした書籍です。

昨今のグローバル化で、単純労働だけでなく知識労働さえも簡単に海外にアウトソースされていく時代にあって、今後10年間のキャリアをどう考えるかヒントとなる内容です。グローバルグローバルと恐怖心を煽る内容でもなく、ノマドノマドと礼賛する内容でもないです。

あくまでも中立な立場で、現在の世界中の仕事のあり方、今後不利になる働き方・有利な働き方を解説しています。時代の流れを味方に付け、能力を活かしていきいきと生きていくかはあなた自身。そういうやる気をもらえる書籍です。

今後のキャリア、海外での仕事に興味ある人にオススメ。

2013/12/26

Java + Selenium Web Driver 2.x の入門書 or 記事

仕事で Selenium Web Driver 2.x(言語は Java )を使う予定なので書籍や入門記事を読んでいます。参考になりそうな書籍や記事を以下に挙げておきます。

書籍


Selenium 2 Testing Tools: Beginner's Guide


入門者はこれくらいでしょうか。残念ながらAmazonの評判よくありませんね。買って読んでいますが、少し解説が親切ではない印象です。

また、Web Driver の解説が少ないようです。良い点は intelliJ と JUnit 4 を使った例が解説されている点、きれいなテストコードを書くためのデザインパターン(PageObject Patternなど)が解説されている点です。





記事


公式のチュートリアルです。Web上では最も情報が多い印象です。

The 5 Minute Getting Started Guide


リポジトリを置いている Google Code 側にもチュートリアルがあります。本家との住み分けは分かりません。こちらはものすごい初歩的な内容とデザインパターンの解説があり、その間のドキュメントに乏しい点が残念です。

WebDriverの採用で生まれ変わったOSSのブラウザテストツール「Selenium 2」入門


解説が分かりやすく、例が具体的で参考になります。JenkinsやSelenium Grid とのからみが解説されている点も良いと思います。日本語の解説では一番良い印象です。

Selenium WebDriverでWebアプリのテストが変わる

解説は短いですが、例が具体的で良いです。冒頭の『Webのテストに超絶便利な「Selenium WebDriver」とは』という箇所で Selenium WebDriver を使うテストの登場人物(テストコード、driver、server、Webブラウザ)が図つきで解説されている点は初心者にとってありがたいですね。

--

とりあえず最初に読むと良さそうなのは以上。新たに良い記事が投下されることはなさそうな気がしますが、見つけたらブログで紹介しますね。