ブラウザ操作自動化ツール SeleniumIDE

書籍で取り扱っているのは
Slenium IDE
これは
Firefox のアドオンでブラウザ操作の記録。実行を
手軽に扱えるツール
Selenium1 系列なので、 WebDriverにある
ネイティブ機能は使えない
条件分岐、同じ処理を
関数などにしてまとめることができない
このためテスト規模が大きくなると
テストコードの保守は難しい
ある程度プログラミングに自信があるなら
Selenium2 を使ったほうがよいようだ
それでも、この書籍で
Seleniuum IDEを紹介しているのは
プログラミングしなくても
気軽に操作の記録、実行ができるから
小規模テストでプログラムをかかなくて済むということから
Selenium IDEが紹介されているようだ
私の環境の場合は
windows や Mac ではなく Ubuntu なので
やりかたを検索
ubuntu selenium ide install
で検索するとでてくる
http://programmers.blog37.fc2.com/blog-entry-14.html
を参考にさせていただきました
http://docs.seleniumhq.org/download/
へアクセスし
Slenium IDE のバージョンをクリックすると
アドオンのインストールを聞かれるので
これを許可すればインストールされ
firefox を再起動すればつかえるようになっています
また、今回は
firebug
firePath
のアドオンも追加します
これで、準備ができたので、テストが可能になります

web アプリのテストツール

web アプリのテストツールは
大きくわけて2種類
ブラウザの操作を自動化するブラウザベース型ツール
そして
ブラウザをシミュレートすることで
ブラウザを使わずテストするヘッドレス型ツール
ブラウザベース型は
ブラウザを実際に使って
クリック
テキスト入力を自動で行なうタイプのツール
まるで、素早く操作しているようにかんじる
本物のブラウザを使うため
ブラウザエミュレータでは検出しきれない問題を検出できたり
IE
Firefox
Chrome などの環境依存問題も発見できる
Selenium などがこれに該当するツール
ヘッドレス型は
エミュレータの中でテストを完結するタイプの自動化ツール
本物のブラウザをつかわないからヘッドレスという名前らしい
本物のブラウザじゃないので
高速動作が可能
JavaScript の関数レベルでの論理レベルチェックができる
テストフレームワーク
継続的インテグレーションとの相性がよい
継続的インテグレーションは
Ci
(Continuous Integration の略)
ともいう
これはテストを定期的に実施して
開発中段階からアプリの品質を保つ手法のこと
実際に継続的インテグレーションをするなら
テストを自動化して
テストの実行自体も自動化する
有名なツールは
Jenkins

テスト技法について

テスト技法
テスト対象の設計情報を元に行なうテストが
ホワイトボックステスト
逆なら
ブラックボックステスト
抜け漏れがないように
まんべんなく行なう網羅的テスト

的を絞ってピンポイントに行なうテスト
これらを軸にテスト技法を分類したのが
テスト技法ポジショニングマップ
他にも
境界値に着目するテスト技法の境界値テストとか
直交表
オールペア法などがある
次にテストの自動化
アジャイル開発のプラクティスにあるテスト駆動開発では
テストを先に記述してから開発する
これはテストの自動化がないとできない
アジャイル開発とは
動くソフトウェアを重視し
計量で変化に柔軟に対応できるソフトウェア開発手法

Evernote API

Evernote API
Evernote も Dropboxと同じように
オンラインストレージを提供する
Dropboxとの違いは
Dropboxは、ファイルやフォルダーの保管に使われる
Evernoteは
メモなどのデータを保存するのに使われる
Evernote APIを使えば
オンラインストレージへノートを作り
保管できる
利用するには
ruby
python
Java
などで、Evernote APIを呼び出す
簡易なWebアプリを作るなら
レンタルサーバーとかを使うことで
オンラインストレージよりも
容易に利用できる

バックエンドにするには

基本的に、localStorage に保存したり
スマホで入力した内容を他の環境では
確認ができない
こんなときにはバックエンドのストレージとして利用できる技術をつかう
例えば Dropbox のAPI
Dropbox API は javascript から直接利用できるAPI
ないみたいだけど
バックエンドに
Python
Ruby
Java
などで
Dropbox API を呼び出せば
オンラインストレージを使える

オフラインでも web アプリを使用できるように

オフラインでも web アプリを使用できるようにしたいなら
ApplicationCache を使う
これは
キャッシュマニフェストファイルへ
オフライン時にブラウザに保存するファイルを記述する方法
こうすればブラウザにファイルをキャッシュさせ
オフラインでもwebアプリを使える
キャッシュマニフェストファイルの1行目には
CACHE MANIFEST
という文が入る
シェルスクリプトで
#!/bin/bash
とかとするのと同じ要領
キャッシュ機能は
キャッシュマニフェストファイルが更新されると
再度アプリのキャッシュが行われる
マニュフェストを更新しないと
プログラムファイルをいくら更新しても意味が無いので注意
通常はマニュフェストファイルにコメントで
バージョンをもたせる
#Version:20130430
というように
ほとんどの場合はタイムスタンプにしたり
バージョン番号で管理する
ファイルの書き方は
サーバーのファイルを編集するやり方に近い
CACHE:
というセクションへ
キャッシュさせたいファイルを記述する
書き方は
URL
ファイルの絶対パスなどで書き込む
FALLBACK
セクションには、リソースにアクセスできないときに表示するファイルを指定する