1つの大きな手順
1つの考え:次のようなメソッドを作成することにより、カットアンドペーストのコードを回避しようとしているように聞こえます。
testScreen(title, fieldList, linkList, param1, param2, param3,...) {
test that the layout at the top of the screen is correct
test if PageTitle == title?
for each field in fieldList:
check that it appears in order on the screen
for each field in linkList:
check that it appears in order on the screen
test if param1 is whatever...
test if param2 is whatever...
etc.
test that the bottom of the screen is correct
}
多くの小さな手順(ツールキット)
また、反対のアプローチを検討しましたか?1つの大きなtestScreen()プロシージャに100万個のパラメータを渡す代わりに、必要に応じて作成する小さなヘルパープロシージャの独自のフレームワークまたはツールキットを作成することもできます。お気に入り:
testScreenTop()
verifyLinks(list)
testScreenBottom()
これらのプロシージャをすべての画面にカットアンドペーストしますが、コードの小さなチャンクをカットアンドペーストし、カットアンドペーストされていない共通部分(各小さなプロシージャの内容)を切り分けています。
カット&ペースト
カットアンドペーストされたコードが私を噛まなかったのは、コードを変更する前に捨てられたときだけでした。UIテストに関する私の最大の懸念は、テストがどれほど早く廃止されるかです。コードを変更する前にすべてのコードを捨ててしまった場合は、切り取りと貼り付けが可能なニッチを見つけているかもしれません!また、カットアンドペーストされたコードの下流にコードがない場合(アプリケーションのUIなど)、それほど悪くはありません。3行以上を貼り付けている場合は、それについて何かを検討します。少なくとも最小化するための措置を講じてください!
自動化されたUIテスト
ヘック、任意の手法を使用した手動テストよりも自動UIテストで優れた生産性を証明できる場合(自動テストの作成/保守のコストは毎回手動でテストするよりも低くなりますが、品質は同じです)、論文を書くべきだと思います。私はそれを読むでしょう!タイトルを見ることができます。「UIテスト用にコードをカットアンドペーストしてNet Win!」