2007/03/06

Selenium

これでWebアプリケーションの機能テスト自動化が無償でできそうだ。
この手のツールで自分が知っているのは有償なものばかりだっただけに、
評価してみる価値ありあり。

■Selenium 0.7利用手順書
http://codezine.jp/a/article.aspx?aid=436

■OpenQA:Selenium(本家サイト)
http://www.openqa.org/selenium/

2007/03/05

実行計画とバインドピーク

どーなんOracle。。。と言いたい内容。
というよりも使い方を理解していないから発生する問題なのか。
一度動作したSQLの修正は検討の余地ありだな。

■SELECT文の実行Step
(1)構文のチェック
(2)表、列の定義チェック
(3)アクセスするオブジェクトへの権限チェック
(4)実行計画の生成
(5)共有プール上に実行計画を含め解析結果をキャッシュ

共有プールには実行計画がキャッシュされるので、
SQL実行時に以下の2パターンで実行処理が行われる。

HARD PARSE:共有プールに解析済みの同一のSQL文が存在しない場合に実行される解析処理
SOFT PARSE:共有プールにすでに解析済みの同一のSQL文が存在した場合に、それを再実行する処理

もちろんHARD PARSEの方がパフォーマンスに影響を与える。

■実行計画
DML文(SELECT,UPDATE,DELETEなど)を実行するためのステップ(索引/行の読み込み、ソート、変換などの様々な動作)が含まれる組み合わせ。
以下の2つのアプローチが存在する。
CBO:コストベース・アプローチ
RBO:ルールベース・アプローチ

■統計情報
統計情報とは、表、索引などのレコード件数や、使用している領域、カーディナリティ、データ分布 などのデータ特性を表す情報。

■バインドピーク
HardParse時にバインド変数にセットされていた値を考慮して実行計画を決定する機能
(Oracle9i以降)

■URL
Oracle SQLチューニング講座(6) パフォーマンスを向上させるSQLの記述法
http://www.atmarkit.co.jp/fdb/rensai/orasql06/orasql06_1.html

Oracle SQLチューニング講座(3) SQLチューニングの必須知識を総ざらい(後編)
http://www.atmarkit.co.jp/fdb/rensai/orasql03/orasql03_2.html

パフォーマンスチューニング
http://www15.ocn.ne.jp/~tashi/html/oracle/dev_tuning.html

2007/03/01

FIT

今まで機能テストもNUnitとNDbUnitの組み合わせで実施していたが、
Fit(Framework for Integrated Tests)を利用しての試験ができるようだ。

Fitとは機能テストを自動化及び可視化し、顧客をそのプロセスを巻き込む事を目的として実装されたテストフレームワークのようです。XUnitがオブジェクト単体の品質を保証するのに対し、Fitはビジネスプロセス(ビジネスルール)の品質を保証する事を目的としている。

テスト対象のアプリケーションがBCEモデル(Boundary-Control-Entity)を採用している場合、
ビジネスルールを保持するControl以降がそのテスト対象となるのだろう。

「顧客を巻き込む」と謳ってあるが、文献を読むと、あくまで間接的な巻き込みを意味しビジネスアナリストやテスターの手を経て進められる。

と自分なりの理解を記述してみた所で気になる点。
(1)テストのパラメータや結果がJavaBeansやDataSetのような
   Entityオブジェクトな場合、テストはどう記述するのだろうか
(2)テストを実行する上で必要なデータの取り扱いに利便性はあるのだろーか
   (UnitTestならいざ知らず、機能テストはこの自動化が重要)

まー勉強してみるか。CruiseControl.NETのWebダッシュボードがFit対応してるようだし。


■Excel の機能テストのプロセスに顧客を巻き込む
https://www.microsoft.com/japan/msdn/msdnmag/issues/05/02/ExcelUnitTests/default.aspx

■コード品質を追求する: FITで解決する
http://www-06.ibm.com/jp/developerworks/java/060317/j_j-cq02286.shtml