Vistaとヘルプパス
VistaではWinHelpが標準でサポートされてない。
更にアプリケーションからWinHelpを起動するとヘルプのパスが狂う。ヘルプのインデックスを開くと、ヘルプが見つかりませんとなる。これはどうしたらいいのかというと、
VistaではWinHelpが標準でサポートされてない。
更にアプリケーションからWinHelpを起動するとヘルプのパスが狂う。ヘルプのインデックスを開くと、ヘルプが見つかりませんとなる。これはどうしたらいいのかというと、
ソフトウェアテストについて学んだのでまとめてみる。
まずテストを実施する上での目標。
目標;最小限の労力で、より多くの欠陥を見つけ出す。
この目標を分析するとテストには
①欠陥を多く抽出できること
②テストケースを少なくすること
の2種類のことが要求されていることがわかる。
①に対応するのが、制御フローテスト、データフローテスト、同値クラステスト、境界値テスト、デシジョンテーブルテスト、状態繊維テスト、ドメイン分析テスト、ユースケーステスト。
②に対応するテストが、ペア構成テスト、優先順位テストである。
更に①はソフトウェアの制御を考慮したホワイトボックステスト(制御フローテスト、データフローテスト、同値クラステスト?)と、中身の制御を考慮しないブラックボックステスト(上記以外)に分類されている。
制御フローテスト
プログラム中のステートメントや条件分岐を見て、通りうる経路をチェックする。プログラム中のステートメントを少なくとも1回実行させるだけとか、全ての条件分岐の経路を少なくとも1回実行させるなど、テストパターンにはいろいろレベルがある。
データフローテスト
プログラム中の変数(データ)について注目したテスト。プログラム中の変数は必ず、定義、初期化、使用、消滅というライフサイクルを持っているので、各変数がこのライフサイクルに従っているかをチェックする。例えば定義されていない変数が使用されていないかチェックすることが、このテストに該当する。
同値クラステスト
同じ処理がなされるデータ、同じ結果を返すデータの集合を同値クラスという。例えばaとb2つの入力値を持ち、足し算をする処理があったとする。この場合、aとbの値が何であろうと必ずa+bという処理を通過するので、結果がa+bであれば、a+bという処理に間違いはないことが証明できる。このように同じ結果をひとまとまりと考えて、テストケースを考えるのが同値クラステストとなる。
境界値テスト
正常な結果を返すテストケースと異常な結果を返すテストケースの境界を調べるのが境界値テスト。A>0かをチェックする機能ならば、境界は0となり、その周辺の1と-1をチェックする。
デシジョンテーブルテスト
条件の集合を作成し、それぞれの条件が取りうる値を設定して、その組み合せをチェックする。例えば条件1が真、条件2が真、条件3が偽の場合は結果がどうなるのかなど、組み合せに注目するテスト。
状態遷移テスト
ボタンをクリックというイベントが発生し、次の画面に遷移するというように、各処理を状態遷移図で表し、通りうる状態遷移の経路をテストケースとして採用するテスト。
ドメイン分析テスト
境界値テストの多次元版。境界値テストは変数が一つしかないが、ドメイン分析は複数の変数をテストできる。
ユースケーステスト
ユーザが機能をどう使うかということに注目し、実際にユーザが使うシナリオについてテストする。例えばユーザが印刷をするシナリオを考えると、文書を保存→メニューバーのファイルを選択→印刷を選択→印刷画面で設定というシナリオが考えられる。この順序に従ってテストを行うことがこのテストに該当する。
ペア構成テスト
全ての組み合せをテストするとテストケースがかなり多くなる場合、全てのペアをテストすることでテスト工数を減らすことができる。
優先順位テスト
テストすべき機能を優先順位に基づいて絞り込む。例えば過去に多くの不具合が発生したモジュールやよく使う機能など、機能を重要度に応じて分類してテストを行う。
以上のようにソフトウェアテストにもいろいろある。いずれのテストも操作に対して期待通りの結果を出すかということを確認するものなので、結果を明確に定義しなければ有効でない。仕様の突き詰めがテストケースの作成に影響を与えると思った。
今回は、ちょっと前に先生の学会運営の手伝いをしたときに見つけたソフトウェアを紹介。国際会議というのは大抵、電子的に論文を投稿して査読者が査読して、その結果をまた反映して投稿という一連のプロセスを経て開催されるわけなのだが、最近の学会はどこも、この一連のプロセスを管理可能な電子査読システムを持っている。こういうシステムは自前で作っているものと思いきやフリーで提供されているものもあるようだ。今日紹介するOpenConfもそのその一種で次の場所で詳細を知ることができる。
OpenConf
上記のページのDownloadでメールアドレスや会議名を必要事項を記入して"Request OpenConf"をクリックすると、メールアドレスにダウンロード先URLが送られてくる。なおOpenConfはPHPで動いているのでインストール前に以下の環境を用意する必要がある。
ダウンロードしたファイルを展開したらサーバのWebのルートディレクトリにアップロードして、次のファイルに書き込み権限を与える。
インストールはウェブブラウザからできるみたいで、http://[host]/openconf/openconf.phpにアクセスしてウィザードに従ってしインストールする。なおインストーラはDBも作成してくれるが、失敗することもある。
DBは手動でインストールすることもできるのでウェブでのインストールに失敗したらドキュメントを参照して欲しい。
次にdb.phpを編集する。セットアップしたデータベース名やユーザ名、パスワードを入力して保存する。
// Database user
define("OCC_DB_USER","");
// Database password
define("OCC_DB_PASSWORD","");
// Database hostname
define("OCC_DB_HOST","localhost");
// Database name
define("OCC_DB_NAME","");
続いてconfig.phpを編集する。以下は最低限必要な設定項目。
$OC_installCompleteの値を1に設定して、インストールを完了する。
http://[host]/openconf/にアクセスするとインストールは完了。
デフォルトのパスワードは
以上の作業をすればOpenConfのインストールができる。
しかし研究室のサーバの環境のせいでPHPからMySQLへのアクセスができなかったので、結局動くところを見ることはできなかった。残念。
プログラマ定番エディタの一つEmacsをMacOSXで使う。
Carbon Emacs
上からパッケージをダウンロードしてアプリケーションディレクトリへコピーするだけで使える。