人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

お世話になっております。
PHP をメインにして Web アプリを制作している者です。今回は Web アプリで効率よく単体テストを実装するための手法についての質問です。

現在、前任者から引き継いだ案件をひとりでやっているのですが、単体テストがろくに実装できていないため、回帰テストが綿密に実施できず、品質がなかなか保証できません。

以前の質問で、
http://q.hatena.ne.jp/1172210806
ということで SeleniumIDE を教えていただき、さっそく活用しているのですが、これだとどちらかというと統合テスト寄りのテストになってしまいます。

そこでテスト・ツールとしては PHPUnit(現状では PHP4 を使っているので) を導入し、単体テストを組み込もうとしていますが、テスト対象の関数の粒度や Web 帳票の出力ということから、テストの実装に躓いています。

そこで質問です。
Web アプリに対する単体テストの実装で参考になる資料を御存知ないでしょうか?

以上、宜しくお願いします。

●質問者: 大蘇 蓮風
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:PHP PHPUnit Web アプリ テスト
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● sukiyaki22
●0ポイント

phpをインストールすればいいんじゃないですか?むつかしいですか?

◎質問者からの返答

質問の趣旨をまったく理解されていないので最低ポイントにさせていただきます。


2 ● KUROX
●70ポイント

単体テストがしやすい構造に設定してくださいというのが

わたしの考えです。だから今回はそうなってないので

つらいんじゃないかなとも思います。

------------------------------------------------

単体のUnitテストがしやすいような、設計になってないと

うまくいかない場合が多いです。

関数の粒度をきめれないのもそのためだと思います。

Web 帳票の出力もどっちかというと結合テストよりだと思います。

単体のUnitで異常を検地した場合は、ソース変更がまずいと

言うことが分かりますが、検地しなかった場合は、大丈夫か

そうでないかは本当は分からないと思います。

--------------------------------------------------

コメントに書いていらっしゃることは、すでに単体テストを

超えていると思います。モジュール(クラス)がある一定上に

相互関係でないと動かない場合は、単体テストでは思えません。

◎質問者からの返答

回答ありがとうございます。

やはり、おっしゃる通りのようですね。

コメントにあるような画面要素は、単なる代入か、あるいはライブラリ関数でプルダウン・リストなどに展開されています。もちろん、これらライブラリ関数の粒度はそれなりに小さく、単体テストも実装しやすいです。

ですが、おっしゃる通り、若干の連動項目(プルダウン A の選択によってプルダウン B が変化する)があるくらいですし、画面によっては入力項目数が多いので、統合テストとして認識するしかないのでしょう。


もしかすると、現段階では無理に単体テストを実装しようと四苦八苦するより、テスト・ケースを整備して(画面の)統合テストのケースを増やすほうが、賢い選択かもしれません。

テスト・ケースの生成には「HAYST 法」というものを勉強しています。実験計画法の直交表の応用です。

もし、機能組み合わせ的に網羅的なケース群を Excel かなにかの補助で生成することができれば、ケースへのバグ混入率も下げることができ、再現性もあり、なおかつ SeleniumIDE 用のテスト・ケースへのコンヴァートも視野に入ってくるでしょう。

御意見をいただけたおかげで発想の方向が変わってきました。よい検討材料ができたということで感謝します。m(_ _)m

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ