最近のagile-testing
前回にひきつづき。
virtual training for testers
BDD/ATDD(参照)のオンライントレーニングってなんかあるんですかね、という話。だいたい有料トレーニングコースの話題なんだけど、それ以外に出てた
Rubyスクリプティングテクニック ―テスト駆動による日常業務処理術(原題:Everyday Scripting with Ruby: For Teams, Testers, and You)、pairwith.usのペアプロ動画がちょっと興味深い。
Testing moving from waterfall to iterative
テストプロセスをアジャイルにしたいがQAの反発があるという話。先週に引き続き盛り上がってる。
品質指標を測定してアジャイル開発の効果を示せとか。
Layer Acceptance Test Should Call in MVC Application
どのレイヤーに対して受け入れテストを行うかという話。もりあがってる
- ユニットテストはビジネスロジックレイヤーに対して、受け入れテストはUIに対して
- ひとつのコードで複数のレイヤーに対してテストする方法があるよ(Pluginインタフェースを作って、ビジネスレイヤ直接呼ぶかselenium経由でUI呼ぶかを抽象化。実際やろうとしたらけっこう面倒な気がするが参考になる)
- ユーザが直接触れないビジネスレイヤーに対してやるテストは受け入れテストにならないのでは?
- UIに対してやるテストは遅いしメンテナンス性が悪い
- 可能な限り低いレイヤーに対して受け入れテストを行ったほうがいい。計算が正しいかどうかはビジネスレイヤーに対して、計算結果が表示されているかどうかはUIレイヤーに対して
browser compatibility testing
さまざまなブラウザ/プラットフォームでテストすることのROIについて。特定のブラウザ/プラットフォームの組み合わせでしか発生しないバグってどれだけあるのよ。
- うちのwebアプリはプレゼンテーション層をなるべく薄くしてる(jsやAjaxもなるべく避けてる)からそんなに必死にテストしなくてもいい。
- ユーザが多そうな組み合わせはテストしてるけど、差が出ることはほとんどない。
- リッチなUIを使い出したらたいへんでしょうね
- ブラウザごとの性質
- 私の経験からすると、表示上のバグくらいしかない
- そういうのは自動化テストで検出できないため手動テストするしかない
- あるブラウザでしか起こらない機能上のバグはそうない
- どんなテストがいいかは結局アプリの性質と開発者の能力に依存するよね
- リッチなJSアプリならブラウザ間で挙動が違いまくりますよ
- ↑jQueryとか使ってるなら大抵の差異は吸収してくれるよ。レンダリングについてははブラウザ間で違ったりするけど。
- GWTいいですよ
- combinational testingの概念を学びなさい
- http://csrc.nist.gov/groups/SNS/acts/
- (カバレッジを保ちつつパラメータの組み合わせを減らす。直交表とかそのへんの話っぽいですね)
*1:よくわかんなかった。原文: ... if you have lots of interaction between the browser and, say, the file system, ...